分享
 
 
 

[原创]使用Visual Studio .NET编写纯C程序的提示

王朝c#·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

使用Visual Studio .NET编写纯C程序的提示

作者:lover_P

所谓的纯C程序,是指该程序(包括可执行程序或库)之源代码所用语法严格遵守C89标准,且所用之库函数,要么为C89标准所支持之标准库函数,要么为第三方以纯C程序所编写之库函数。

上面是我对“纯C程序”做的一个非标准的、递归的定义。

使用Visual Studio的朋友们都知道,作Visual Studio套件的Visual C++集成开发环境并没有提供C语言编译器,我们只能使用C++编译器对C程序进行编译。尽管Eckel Bruce认为,用C++编译器来编译C程序可以发现程序中隐含的可能的错误(参见《Think in C++》),但我坚持认为这不是一个好办法:这只会让大家写出那些运用了大量C++特性的C程序。这种程序是不可取的。Bjnare Stroustrup也认为,C++应当是一门独立于C语言的、全新的程序设计语言。因此,我们需要一个能够编写纯C程序的开发环境和编译器。

Visual Studio .NET中的C++编译器为我们提供了这样功能!Visual Studio .NET中的C++编译器不仅大大加强了对C++标准的支持,通过一些配置,还可以对纯C程序进行编译!在本文中我将对其配制方法进行一个简要的介绍,希望能够对那些喜欢纯C程序设计的朋友们有所帮助。也希望初学C语言程序设计的朋友能够写出漂亮的C程序。

集成开发环境的配置

首先,在建立项目的时候,选择Win32控制台应用程序即可,但一定要选择“空项目”选项。这样就能防止Visual Studio向导为我们产生不必要的源文件(代码)和设置一些不必要的编译器选项。具体操作方法见如下图示:

选择“文件”-〉“新建”-〉“项目”:

在“新建项目”对话框中,在“项目类型”李表框中选择“Visual C++项目”,并在“模板”列表框中选择“Win32 控制项目”模板。别忘了在“名称”文本框中输入项目的名称,这里我起名为“PureC”:

点击“确定”按钮后,将弹出“Win32 应用程序向导”对话框,别急着点“确定”:

最初,在我看到这个对话框的时候,还真没注意过“应用程序设置”这个选项(可能是我太笨了罢-_-b)。因此,我们要:

点击“应用程序设置”选项卡,选中“附加选项”中的“空项目”:

这一步是问题的关键。如果我们没有选择“空项目”,Visual Studio .NET的向导会为我们添加一些支持用于支持Windows应用程序的源文件(如“stdafx.h”、“stdafx.c”等),而且还会对编译器进行一些设置。尽管这些设置对于编写Windows API程序非常有用,但对于我们编写纯C程序来讲,是非常不利的。因此,我们有必要选择“空项目”。

点击“确定”按钮后,我们便得到了一个空的项目,观察一下“解决方案资源管理器”列表框,我们发现,已经没有了向导为我们产生的烦人的多余的源文件了。这时,我们需要手动地将我们的源文件添加到项目中。在这里我们添加一个新的源文件“PureC.c”。在“解决方案资源管理器”列表框中的“源文件”文件夹图表上单击右键,选择“添加”-〉“添加新项”:

在弹出的“添加新项”对话框中,选择“C++ 文件”即可。并在“名称”文本框中输入源文件的名称。注意,必须在文件名中写明扩展名“.c”,否则IDE将自动为该文件添加“.cpp”扩展名:

接下来,我们要设置一下项目的属性。在“解决方案资源管理器”的项目(这里是“PureC”)上单击右键,在弹出菜单中选择“属性”。将弹出“属性页”对话框。在左侧的树状视图中展开“C/C++”节点,选择“高级”节点;在右侧出现的列表框中,将“编译为”列表项改为“编译为 C 代码(/TC)”:

点击“确定”按钮,OK,大功告成了。

控制台选项的配置

这个题目有点……那个……了。我的直观感觉就是用控制台命令行编译程序的人应该都是虾(就算不是大虾,也得是个小虾),对于命令行的选项应该是了解的很了。我也就不过多献丑了,简单而言,只要在命令行中添加/TC选项,就可以把一个源文件编译为纯C代码。

测试

经过这样一番调教,我们中有了一个能够编写纯C代码的环境了。空口无凭,我们得用一段程序验证一下。为我们的PureC.c添加如下一段代码:

/*

* Model: PureC.c

* Author: [url=http://lover_p.cstc.net.cn][url=http://lover_p.cstc.net.cn][url=http://lover_p.cstc.net.cn]lover_P

* Date: 2004-6-3

*

* Test the pure C envirment in VS.NET

*/

struct A {

int i;

};

int main() {

A a;

a.i = 10;

}

/* end */

这段代码对于C++程序来说是完全正确的,完全可以通过编译且没有错误和警告。但这并不是“纯C程序”,因为在C标准中,当以结构类型作为变量类型时,在变量的声明语句中必须显式地出现struct关键字。因此,在我们这个“纯C环境中”编译这段代码,将会得到N多错误报告。

因此,我们要把main()函数的第一行改为纯C形式的声明语句:

struct A a;

这样,再次编译,将是0错误0警告。

总结

最后,这个“纯C环境”只是辅助性的,要想学会编写“纯C程序”,首先要仔细学习标准C语言。不要指望这个环境能教会你写“纯C程序”,就像上面的例子,仅仅缺少一个关键字,在Visual Studio .NET 2003种将会得到这么多错误:

e:\Workspace\C++\PureC\PureC.c(14): error C2065: “A” : 未声明的标识符

e:\Workspace\C++\PureC\PureC.c(14): error C2146: 语法错误 : 缺少“;”(在标识符“a”的前面)

e:\Workspace\C++\PureC\PureC.c(14): error C2144: 语法错误 : “<未知>”的前面应有“<未知>”

e:\Workspace\C++\PureC\PureC.c(14): error C2144: 语法错误 : “<未知>”的前面应有“<未知>”

e:\Workspace\C++\PureC\PureC.c(14): error C2143: 语法错误 : 缺少“;”(在“标识符”的前面)

e:\Workspace\C++\PureC\PureC.c(14): error C2065: “a” : 未声明的标识符

e:\Workspace\C++\PureC\PureC.c(15): error C2224: “.i”的左侧必须具有结构/联合类型

如果你对标准C不是很了解的话,面对这么多错误肯定是无从下手的。因此,语言的学习是很重要的,环境只是一个辅助的功能。

最后,祝大家能够学好这门最NB的语言。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有