Visual c++ visual studio如何告诉c++;c呢?

Visual c++ visual studio如何告诉c++;c呢?,visual-c++,Visual C++,正如标题所说,VisualStudio是否通过后缀?.c或.cpp来区分这两个文件? 我还有一个问题,首先我是这样说的: int main(int argc, char **argv) { LARGE_INTEGER TimeStart; LARGE_INTEGER TimeEnd; QueryPerformanceCounter(&TimeStart); static double Freq; static int getfreq; double mu,om;

正如标题所说,VisualStudio是否通过后缀?.c或.cpp来区分这两个文件? 我还有一个问题,首先我是这样说的:

int main(int argc, char **argv)
{
  LARGE_INTEGER TimeStart;
  LARGE_INTEGER TimeEnd;
  QueryPerformanceCounter(&TimeStart);
  static double Freq;
  static int getfreq; 
  double mu,om;
  double *v;
  int it,i,j;
 ....
}
但它带来了许多问题:

1>sor2d.c(23): error C2143: syntax error : missing ';' before 'type'
1>sor2d.c(24): error C2143: syntax error : missing ';' before 'type'
1>sor2d.c(25): error C2143: syntax error : missing ';' before 'type'
1>sor2d.c(26): error C2143: syntax error : missing ';' before 'type'
23林点为“静态双频”
但是,如果我在数据分配之后加上“QueryPerformanceCounter(&TimeStart);”,编译器就可以成功了。有人能告诉我为什么会发生这种情况,是因为我不小心遗漏了什么或无知…?

在C中,所有变量都必须在调用任何方法之前声明


默认情况下,Visual Studio会将.C文件编译为C。您可以覆盖它。

在C中,在调用任何方法之前必须声明所有变量


默认情况下,Visual Studio会将.C文件编译为C。您可以覆盖它。

在C89中,您必须在代码块顶部声明所有变量。您还可以将它们初始化为编译时常量(文字、扩展为文字的宏、已初始化的变量值以及可在编译时执行的任何上述操作)。不能在这些声明中散布其他类型的语句(如函数调用)


在C99中(C++中不支持Visual C++)和C++.

,这个限制被删除,您必须在代码块的顶部声明所有变量。您还可以将它们初始化为编译时常量(文字、扩展为文字的宏、已初始化的变量值以及可在编译时执行的任何上述操作)。不能在这些声明中散布其他类型的语句(如函数调用)


<>这个限制在C99(Visual C++和C++)中没有被删除。

如果我使用Visual Studio 2010 C++环境,这个问题仍然存在吗?我可以在上面的设置中使用“内联”吗?我不确定你的意思。如果你将文件重命名为<代码> .CPP < /代码>,或者手动重新配置编译器,将该源当作C++来处理,那么你就不会有这个问题了。
inline
关键字与变量声明的顺序无关。我的意思是我仍然使用.c作为后缀。但是你刚才说C99没有这个问题,所以我想知道更高级别的编译器,比如visual studio 2010是否也有这个问题。对于inline,我的意思是我可以在.c文件中使用inline。VS 2010仍然不支持C99。你可以告诉VS编译C作为C++代码,但是这可能有其他不希望的副作用。如果我使用Visual Studio 2010 C++环境,这个问题仍然应该存在吗?我可以在上面的设置中使用“内联”吗?我不确定你的意思。如果你将文件重命名为<代码> .CPP < /代码>,或者手动重新配置编译器,将该源当作C++来处理,那么你就不会有这个问题了。
inline
关键字与变量声明的顺序无关。我的意思是我仍然使用.c作为后缀。但是你刚才说C99没有这个问题,所以我想知道更高级别的编译器,比如visual studio 2010是否也有这个问题。对于inline,我的意思是我可以在.c文件中使用inline。VS 2010仍然不支持C99。你可以告诉VS编译C作为C++代码,但是这可能会有其他不希望的副作用。