如何使用Visual Studio 2005或Visual Studio 2008编译纯C语言程序!!【图文】

转载自:http://hi.baidu.com/_%E2d_%B7%B3_%DE%B2%C2%D2/blog/item/5d4b7573c01ded198601b011

       谁说VS2005不能编译纯C程序?当然能,而且很简单,和编译C++差不多,所以具体的我就不多说了,首先请参考我这篇文章:

    http://hi.baidu.com/_%E2d_%B7%B3_%DE%B2%C2%D2/blog/item/ad0796110b1fa214b8127b5b.html

     其中有区别的就是这一步:

   


我们在这时候输入的是main,那么添加的文件就会使main.cpp

此时我们输入PurC.c,注意,扩展名一定要输入.c!!务必!!!!!

然后点添加,

我们添加这样的一个简单程序到文本编辑器中:

#include

int main()
{
struct class
{
   char sname[10];
};
struct class a;
scanf("%s",a.sname );
printf("%s",a.sname );

return 0;
}

然后点编译:

1>------ 已启动生成: 项目: PurC, 配置: Debug Win32 ------
1>正在编译...
1>Main.c
1>e:\documents\visual studio 2008\projects\purc\main.c(10) : warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>        d:\program files\microsoft visual studio 9.0\vc\include\stdio.h(306) : 参见“scanf”的声明
1>正在链接...
1>正在嵌入清单...
1>生成日志保存在“file://e:\Documents\Visual Studio 2008\Projects\PurC\Debug\BuildLog.htm”
1>PurC - 0 个错误,1 个警告
========== 生成: 成功 1 个,失败 0 个,最新 0 个,跳过 0 个 ==========

一般情况下,我们可以忽略这个警告,特别是已经习惯了Turbo C或者VC6.0的人。

我们可以将这段代码调整到main.cpp中看看。

1>------ 已启动生成: 项目: baidu, 配置: Debug Win32 ------
1>正在编译...
1>main.cpp
1>e:\documents\visual studio 2008\projects\baidu\main.cpp(5) : error C2332: “struct”: 缺少标记名
1>e:\documents\visual studio 2008\projects\baidu\main.cpp(6) : error C2236: 意外的“class”“main::”。是否忘记了“;”?
1>e:\documents\visual studio 2008\projects\baidu\main.cpp(6) : error C3381: “main::”: 只有在用 /clr 选项编译的代码中才有程序集访问说明符
1>e:\documents\visual studio 2008\projects\baidu\main.cpp(8) : warning C4094: 无标记的“class”未声明符号
1>e:\documents\visual studio 2008\projects\baidu\main.cpp(9) : error C2332: “struct”: 缺少标记名
1>e:\documents\visual studio 2008\projects\baidu\main.cpp(9) : warning C4099: “main::”: 类型名称以前使用“class”现在使用的是“struct”
1>        e:\documents\visual studio 2008\projects\baidu\main.cpp(6) : 参见“main::”的声明
1>e:\documents\visual studio 2008\projects\baidu\main.cpp(9) : error C2236: 意外的“class”“main::a”。是否忘记了“;”?
1>e:\documents\visual studio 2008\projects\baidu\main.cpp(10) : warning C4832: 标记“.”在 UDT“main::a”之后是非法的
1>        e:\documents\visual studio 2008\projects\baidu\main.cpp(9) : 参见“main::a”的声明
1>e:\documents\visual studio 2008\projects\baidu\main.cpp(10) : error C2027: 使用了未定义类型“main::a”
1>        e:\documents\visual studio 2008\projects\baidu\main.cpp(9) : 参见“main::a”的声明
1>e:\documents\visual studio 2008\projects\baidu\main.cpp(10) : error C2228: “.sname”的左边必须有类/结构/联合
1>e:\documents\visual studio 2008\projects\baidu\main.cpp(11) : warning C4832: 标记“.”在 UDT“main::a”之后是非法的
1>        e:\documents\visual studio 2008\projects\baidu\main.cpp(9) : 参见“main::a”的声明
1>e:\documents\visual studio 2008\projects\baidu\main.cpp(11) : error C2027: 使用了未定义类型“main::a”
1>        e:\documents\visual studio 2008\projects\baidu\main.cpp(9) : 参见“main::a”的声明
1>e:\documents\visual studio 2008\projects\baidu\main.cpp(11) : error C2228: “.sname”的左边必须有类/结构/联合
1>生成日志保存在“file://e:\Documents\Visual Studio 2008\Projects\baidu\Debug\BuildLog.htm”
1>baidu - 9 个错误,4 个警告
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

可以看到,发生了错误!

因为此时默认调用了c++的编译器,而当扩展名是.C的文件时,默认调用了C的编译器

好了,今天就这样了。!

 

你可能感兴趣的:(C,学习)