C语言预处理的相关知识.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《C语言预处理的相关知识.docx》由会员分享,可在线阅读,更多相关《C语言预处理的相关知识.docx(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C语言预处理的相关知识c语言预处理的相关学问导语:在c语言编译的时候,会经受以下几个步骤:预处理,编 译,汇编,链接,然后生成可执行文件。整个过程是一连串动作完成 的。而预处理阶段呢,也是在最先执行的一个步骤。相对来说,也是 比较重要的一个步骤。那么c语言预处理的相关学问呢?一起来学习 下吧:概念:以号开头的预处理指令如包含include,宏定义制 定#(10口血等,在源程序中这些指令都放在函数之外,而且一般放在 源文件的前面,所谓预处理其实就是在编译的第一遍扫描之前的所 作的工作,预处理是c语言的一个重要的功能,它由预处理程序单独 完成,当对一个源文件进行编译时,系统自动引用预处理程序,预处
2、 理在 源代码编译之前对其进行的一些文本性质的操作,对源程序编 译之前做一些处理,生成扩展的C源程序预处理阶段做了任务:1:将头文件中的内容(源文件之外的文件)插入到源文件中2:进行了宏替换的过程,定义和替换了由#(101优指令定义的符 号3:删除掉解释的过程,解释是不会带入到编译阶段4:条件编译预处理指令:ttinclude文件名先从存放C源文件的名目中查找,然后从指定的名目中去查找, 最终再从C语言的标准库文件中去查找重要:文件的多重包含问题概念:同一个文件被包含了多次结果:多重包含可能会消失重复定义的编译错误解决方式:使用条件编译(只能是一个源文件中去解决)来防止多 重包含,凡是在头文件
3、前后,用条件编译去编译如标准头文件的写法:ttifndef HEADER_NAME_Httdefine HEADER_NAME_Httinclude headername, h其他的代码ttendif假如在多个源文件中进行多重包含的话,使用多重包含的话是解 决不了的。需要检查。建议留意:在头文件中尽量不要去定义一些全局变量,可以在源文件中去定 义,用extern去修饰,将变量的作用于释放带整个程序预处理操作符和预定义宏预处理操作符号:#和#C语言中有两个预处理操作符号#和#,它可以在#(13n116中使用操作符号#通常成为字符串化的操作符号,它把其后的串变成用 双引号包围的串如:#define
4、 PRINT (FORMAT, VALUE) printf (the value of ttvalue is FORMAT ,VALUE)PRINT (%d, x+3);连接操作符号#可以把两个独立的字符串链接成一个字符串如:#define ADD_TO_SUM(sum_number, value) sum#sum_number+二 valueADD_TO_SUM(5, 25);预定义宏和其他指令:FILE进行编译的源文件名称LINE_文件当前的行号DATE_文件被编译的日期TIME_文件被编译的时间fun_当前所在的函数名称其他预处理terror自定义输出的错误,是不能链接生成可执行文件的#
5、line设置当前的文件从哪一行开头计算#line 100 hello, cttpragma字节对齐预处理指令pragma message (helloworld);输出提示相关信息以上是个人在学习过程中所做的一些总结性东西,如有不对的地 方,期望可以准时指出,欢迎连续访问。文档内容到此结束,欢迎大家下载、修改、丰富并分享给更多有 需要的人。gcc -E bin/helloworld. i src/helloworld. c预处理生成的是.i的文本文件,这个文本文件是可以直接通过 cat命令进行文本文件查看的宏定义在C语言中允许用一个标识符来表示一个字符串;称为宏,在预 处理时,对程序的宏进行替
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 预处理 相关 知识
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内