欢迎来到天天文库
浏览记录
ID:35294312
大小:18.65 KB
页数:5页
时间:2019-03-23
《c语言基础自学总结之九预处理》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、C语言基础自学总结之九:预处理要点:1.预处理一般是指在程序源代码被翻译为目标代码的过程中,生成二进制代码之前的过程2.一个程序运行的过程叫做编译,编译分为4个过程,第一步:预处理,第二步:编译,编译之前是c语言,编译之后是汇编语言,第三步:汇编,第四步:链接。3.预处理是:把.c文件变成.i文件,他们都是c语言文件,预处理做的第一件事就是展开头文件,把文件内容写出来。第二件事就是替换宏。一、宏例子1:什么叫做宏#include#defineN6//这就是宏,意思是用6替换N,从这里开始程序所有的N就
2、是6.在预处理的时候,N九备替换成6,宏是发生在预处理的单纯的字符串的替换,//define,无参宏定义的一般形式为:#define标识符字符串,不是c语言不用;结尾。intmain(void){inta=N;printf("%d",a);return0;}例子2:宏的使用#include#defineBUF6voidscan(char*buf){inti;for(i=0;i3、/inti;//for(i=0;i#defineP(a)a++intmain(void){intb=9;P(b);//预处理时,这里替换成b++,过程时,p(b)替换到上面的宏p(a),a++替换成了b++再替换下去,变成b++printf("%d",b);return4、0;}二、typedef1.typedef在计算机编程语言中用来为复杂的声明定义简单的别名,与宏定义有些差异。它本身是一种存储类的关键字,与auto、extern、mutable、static、register等关键字不能出现在同一个表达式中。例子1:typedef是什么#includetypedefinti_t;//i_t是int的一个别名,一般都用_t结尾,表示typedef,当然也可随意,是c语言要用;结尾intmain(void){i_ta;printf("%ld%ld",sizeof(a5、),sizeof(i_t));return0;//typedef不是宏,在预处理时不进行替换。}例子2:使用//#includetypedeflonglen_t;//怎么声明一个变量就怎么声明一个typedef(别名)。typedefint*p;//声明一个指针的别名typedefint(*b)[10];//int*xx[10]前面加上typedefxx就是一个数组指针类型,同理成为了一个数组指针类型。intmain(void){len_ta;pq=NULL;//用别名p声明一个int*类型的q。bl6、;//相当于int*l[10]printf("%ld%ld%ld",sizeof(a),sizeof(q),sizeof(b));}
3、/inti;//for(i=0;i#defineP(a)a++intmain(void){intb=9;P(b);//预处理时,这里替换成b++,过程时,p(b)替换到上面的宏p(a),a++替换成了b++再替换下去,变成b++printf("%d",b);return
4、0;}二、typedef1.typedef在计算机编程语言中用来为复杂的声明定义简单的别名,与宏定义有些差异。它本身是一种存储类的关键字,与auto、extern、mutable、static、register等关键字不能出现在同一个表达式中。例子1:typedef是什么#includetypedefinti_t;//i_t是int的一个别名,一般都用_t结尾,表示typedef,当然也可随意,是c语言要用;结尾intmain(void){i_ta;printf("%ld%ld",sizeof(a
5、),sizeof(i_t));return0;//typedef不是宏,在预处理时不进行替换。}例子2:使用//#includetypedeflonglen_t;//怎么声明一个变量就怎么声明一个typedef(别名)。typedefint*p;//声明一个指针的别名typedefint(*b)[10];//int*xx[10]前面加上typedefxx就是一个数组指针类型,同理成为了一个数组指针类型。intmain(void){len_ta;pq=NULL;//用别名p声明一个int*类型的q。bl
6、;//相当于int*l[10]printf("%ld%ld%ld",sizeof(a),sizeof(q),sizeof(b));}
此文档下载收益归作者所有