如何使用VisualStudio2010开发C?

如何使用VisualStudio2010开发C?,c,visual-studio,visual-studio-2010,visual-c++,C,Visual Studio,Visual Studio 2010,Visual C++,有没有一种方法可以使用Visual Studio 2010开发纯ANSI C?将文件扩展名更改为.C可以让您开始学习,但下面是对项目文件的一些更改。详情请参见此处: 还有一个很好的播客:是的,这是可能的。MSDN在此处提供了一些信息: 步骤一是设置编译器生成C代码,而不是C++代码。从项目的属性中执行此操作。展开C/C++标题,单击“高级”。将“compileas”属性设置为“compileasc代码”(这与在命令行上指定相同)。更简单的方法是只使用扩展名*.c命名文件 第二步是禁用Micros

有没有一种方法可以使用Visual Studio 2010开发纯ANSI C?

将文件扩展名更改为.C可以让您开始学习,但下面是对项目文件的一些更改。详情请参见此处:


还有一个很好的播客:是的,这是可能的。MSDN在此处提供了一些信息:

步骤一是设置编译器生成C代码,而不是C++代码。从项目的属性中执行此操作。展开C/C++标题,单击“高级”。将“compileas”属性设置为“compileasc代码”(这与在命令行上指定相同)。更简单的方法是只使用扩展名

*.c
命名文件

第二步是禁用Microsoft对ANSI标准的扩展。这些都受法律的管辖。您也可以在项目的属性中找到这些属性<代码>/Za导致编译器对不符合ANSI标准的语言构造发出错误。
/Ze
开关启用Microsoft特定的扩展;您要确保此选项已关闭


虽然我不相信微软完全支持C99标准。请参阅(并投票支持!),来自VC++团队,并获得一个具体的例子,说明这种缺乏支持的情况在哪里变得明显。然而,它完全支持C90标准。

@Atha:我不明白这句话怎么会不想煽动一场火战。你含蓄地诋毁微软的C编译器为“不合适的”编译器,这似乎一点也不公平。你显然没有为你的观点提供任何形式的支持,甚至没有明确表明这实际上是一种观点。你只对GCC有个人偏好,当然没有什么不对的,但是如果GCC比C.EXE更贴切的话,没有什么比G.CC更客观的了。如果你可以把它与一个想法捆绑在一起。MS编译器是正确的C++编译器而不是一个合适的C编译器。为什么会有人想用一个不应该做C的编译器来开发C。MS编译器甚至与C90都不完全兼容。@Atha:再一次,你声称它不是一个合适的C编译器,但没有为你的观点提供任何支持。检查我的答案;如果你知道你在做什么,它是一个非常有效的C编译器。规范中也有GCC不完全符合的地方。争论这些问题并不是特别有效。文档中没有任何内容说微软的编译器“不应该做C”。@Cody我认为Atha带来的差异是因为在msvc中遇到基本的兼容性问题似乎更为常见,而在GCC中则不太常见。即使不是这样,msvc也有一些奇怪的特性,它们似乎是为了最小化代码的可移植性而设计的,而这些特性不会立即降低销量。尝试使用任何类型的向导来生成样板代码—它们生成的代码似乎会阻塞其他编译器。您可能还想搜索“mscv c compliance”或“msvc供应商锁定”。请注意,由于版本2005/Ze开关已被弃用。@WindRider可能是因为它是默认选项。指定它与不指定它的含义相同。这使它变得毫无意义。您需要的唯一开关是
\Za
。如果指定了,您将严格遵守ANSI标准;如果没有,您将获得特定于Microsoft的扩展。/Za开关(答案中的第二步)位于properties>>C/C++>>Language下我认为VS 2012和更早版本只支持C89 C标准,除了大量C99扩展。At是一条关于它的讨论线索。它还提到微软没有计划支持任何最新的C标准。