C语言笔记——有关预处理

先看下面三个问题:

1.预处理是C语言的一部分吗?

2.包含“#”的都是预处理吗?

3.预处理后面都不需要加;吗?

下面是ANSI标准定义的C语言预处理指令

另外,ANSC还定义了如下宏:

_LINE_ 表示正在编译的文件的行号

_FILE_ 表示正在编译的文件的名字

_DATE_ 表示编译时刻的日期字符串,例如: "25 Dec 2007"

_TIME_ 表示编译时刻的时间字符串,例如: "12:30:55"

_STDC_ 判断该文件是不是定义成标准C

如果你用的是标准编译器,理论上支持上宏定义,当然,如果不是标准的话,有可能支持一部分,或者完全不支持。注意:宏名的书写由标识符与两边各二条下划线构成。

现在回到刚开始的问题:

1.预处理命令不是C语言文本的内容,是某个编译工具的功能,不同的编译工具,功能及命令是可能不同的.

2.---------------

3.---------------

还有两个经典的问题:

***“#define M 100”是宏定义吗?显然不是,去掉双引号的话,确实是宏定义,但是加上以后就是字符串了...

***C语言程序的执行入口在哪?或者说从哪儿开始?是main()函数吗?为什么?

析:

C语言程序的入口函数与开发工具及提供的运行库有关,通常在链接是可以指定。

在链接时,指定入口函数,但入口函数必须是运行启动库中支持的入口函数,如:mainCRTStartup 就是调用会调用主函数 main() 的入口函数。

因此,入口函数是运行库提供的,当然你也能定制自己的运行库,自己编写入口函数,入口函数主要是完成内存及运行库的初始化工作, 在C语言中 main函数是主函数,就是入口函数完成初始化工作后调用的函数。

同的初始化环境,有不同的入口函数及主程序......

永不止步步 发表于12-08 11:48 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67410个|学分:308467个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号