×
嵌入式 > 技术百科 > 详情

有关c语言预处理

发布时间:2020-06-13 发布时间:
|
先看下面三个问题:
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函数是主函数,就是入口函数完成初始化工作后调用的函数。不同的初始化环境,有不同的入口函数及主程序....



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
物联传感与Atmel强强联手 达成智能家居战略合作协议