c语言学习--宏定义、条件编译、文件包含(就是include)
2017-12-30 09:17
2111 查看
C语言提供的三种预处理功能,分别是条件编译、宏定义、文件包含。
一、定义
1、条件编译
—般情况下,C语言源程序中的每一行代码.都要参加编译。但有时候出于对程序代码优化的考虑.希望只对其中一部分内容进行编译.此时就需要在程序中加上条件,让编译器只对满足条件的代码进行编译,将不满足条件的代码舍弃,这就是条件编译(conditional
compile)。
2、宏定义:
宏定义是C语言提供的三种预处理功能的其中一种,这三种预处理包括:宏定义、文件包含、条件编译。宏定义和操作符的区别是:宏定义是替换,不做计算,也不做表达式求解。
3、文件包含
在C语言中文件包含是指一个源文件可以将另一个源文件的全部内容包含进来。该命令的作用是在预编译时,将指定源文件的内容复制到当前文件中。文件包含是C语言预处理命令三个内容之一。
预处理指令
翻译成0跟1之前执行的指令;有宏定义;条件编译;文件包含(就是include)
预处理指令在什么时候执行:在代码翻译成0和1之前执行;
预处理指令的位置是随便写的;但是是有作用域的;从编写指令的那一行代码开始,一直到文件结尾;
1.宏定义可以带参数也可以不带参数;
不带参数
#define是宏定义的开头;所有的预处理指令都是以#开头;
宏定义的格式:#define 宏名 值;宏名一般写大写或者以K开头;变量名一般写小写;
#define COUNT 6
表示在编译之前对代码全部过一遍;在双引号里面的COUNT不会被替换;
#undef COUNT表示对COUNT取消,那么开始就失效,下面无法使用;
.
带参数的宏名;
#define sum(v1,v2) v1+v2
可以直接调用int c = sum(a,b);宏的作用就是把左边的东西转成右边的东西;
即int c= sum(a,b) =a+b;int c = sum(2,3)*sum(6,4)如果不加括号结果是24,因为int c = sum(2,3)*sum(6,4)=2+3*6+4=24;正确写法:int c =( sum(2,3))*(sum(6,4))
只做替换工作,不做运算;
一般是每个参数都有括号;而且结果值也要加上括号;
#define pingfang(a) ((a)*(a))
带参数的宏定义,参数和结果值都要加小括号;
条件编译
#if
条件编译,一般是判断宏的值;
#define A 5 #if(A == 10) printf("");#elif(A=5) printf("");#else printf('");#endif return 0;
#endif一定要写;这个作用是表示后面的代码和条件编译没有关系;表示条件编译结束;
文件包含
<>表示系统自带的文件;“”表示自定义的文件;
不能循环包含;不允许你包含我,我包含你;
函数的定义不可以写多次;但函数的声明可以多次写;程序不会报错;
#ifndef ABC #define ABC 54354 int sum(int a,int b); #endif
最好以文件名为宏名;
一个文件有一个宏名;可以保证每一个头文件不被执行多次;
致谢:
1、条件编译
2、宏定义
3、文件包含
一、定义
1、条件编译
—般情况下,C语言源程序中的每一行代码.都要参加编译。但有时候出于对程序代码优化的考虑.希望只对其中一部分内容进行编译.此时就需要在程序中加上条件,让编译器只对满足条件的代码进行编译,将不满足条件的代码舍弃,这就是条件编译(conditional
compile)。
2、宏定义:
宏定义是C语言提供的三种预处理功能的其中一种,这三种预处理包括:宏定义、文件包含、条件编译。宏定义和操作符的区别是:宏定义是替换,不做计算,也不做表达式求解。
3、文件包含
在C语言中文件包含是指一个源文件可以将另一个源文件的全部内容包含进来。该命令的作用是在预编译时,将指定源文件的内容复制到当前文件中。文件包含是C语言预处理命令三个内容之一。
预处理指令
翻译成0跟1之前执行的指令;有宏定义;条件编译;文件包含(就是include)
预处理指令在什么时候执行:在代码翻译成0和1之前执行;
预处理指令的位置是随便写的;但是是有作用域的;从编写指令的那一行代码开始,一直到文件结尾;
1.宏定义可以带参数也可以不带参数;
不带参数
#define是宏定义的开头;所有的预处理指令都是以#开头;
宏定义的格式:#define 宏名 值;宏名一般写大写或者以K开头;变量名一般写小写;
#define COUNT 6
表示在编译之前对代码全部过一遍;在双引号里面的COUNT不会被替换;
#undef COUNT表示对COUNT取消,那么开始就失效,下面无法使用;
.
带参数的宏名;
#define sum(v1,v2) v1+v2
可以直接调用int c = sum(a,b);宏的作用就是把左边的东西转成右边的东西;
即int c= sum(a,b) =a+b;int c = sum(2,3)*sum(6,4)如果不加括号结果是24,因为int c = sum(2,3)*sum(6,4)=2+3*6+4=24;正确写法:int c =( sum(2,3))*(sum(6,4))
只做替换工作,不做运算;
一般是每个参数都有括号;而且结果值也要加上括号;
#define pingfang(a) ((a)*(a))
带参数的宏定义,参数和结果值都要加小括号;
条件编译
#if
条件编译,一般是判断宏的值;
#define A 5 #if(A == 10) printf("");#elif(A=5) printf("");#else printf('");#endif return 0;
#endif一定要写;这个作用是表示后面的代码和条件编译没有关系;表示条件编译结束;
文件包含
<>表示系统自带的文件;“”表示自定义的文件;
不能循环包含;不允许你包含我,我包含你;
函数的定义不可以写多次;但函数的声明可以多次写;程序不会报错;
#ifndef ABC #define ABC 54354 int sum(int a,int b); #endif
最好以文件名为宏名;
一个文件有一个宏名;可以保证每一个头文件不被执行多次;
致谢:
1、条件编译
2、宏定义
3、文件包含
相关文章推荐
- 《黑马程序员》预处理指令(宏定义、条件编译、文件包含)(C语言)
- 黑马程序员——C语言——宏定义、条件编译、文件包含等
- c语言三种预处理--宏定义,文件包含,条件编译
- 黑马程序员--IOS学习笔记总结 预处理指令(宏定义、条件编译、文件包含)
- C语言学习入门 (六) 预处理指令:宏、条件编译、文件包含
- C语言学习入门 (六) 预处理指令:宏、条件编译、文件包含
- IOS开发---C语言-㉑预处理指令:宏定义、条件编译、文件包含
- 【黑马程序员】iOS学习之路——C语言之宏定义、条件编译和条件包含及typedef
- 6.C++ 宏定义、文件包含、条件编译、内部函数和外部函数
- C语言学习11:typedef和define区别,头文件的使用以及 <>和“”区别,宏定义中#和##的用法,条件编译,gcc和c99中宏定义使用printf和sprintf,条件编译避免头文件包含
- 【原创】头文件、宏定义、条件编译、避免头文件重复包含
- C/C++编译预处理:宏定义指令、文件包含指令、条件编译指令和特殊符号处理
- C08_C语言-宏、条件编译、文件包含
- C++编译预处理:宏定义指令、文件包含指令和条件编译指令
- 【Xcode学C-6】宏定义#define、条件编译#if、文件包含、内部外部函数以及typedef的用法
- 15-预处理指令1-宏定义、条件编译、文件包含
- 预处理(宏定义、文件包含、条件编译)
- c语言的预处理指令分3种 1> 宏定义 2> 条件编译 3> 文件包含
- c语言预处理,包含(宏定义,包含,条件编译)
- C++编译预处理:宏定义指令、文件包含指令和条件编译指令