学习目标:
- 掌握C语言的预处理指令以及使用
学习步骤:
- 预处理指令的概括
- 预处理指令的使用
- 总结
主要内容:
预处理指令的概括
含义 | 指令 |
---|---|
导入模块 | #include |
宏定义 | #define #undef |
条件编译 | #if #else #elif #endif |
条件定义 | #ifdef #ifndef |
预处理指令的使用
#include
#include
用于在文件中导入某一模块(使用模块中的定义或者函数)。
#include <stdio.h> /*导入stdio.h 这个标准输入输出*/
/*头文件一般只能包含以下内容*/
/*变量,宏定义,函数声明,类声明,类型定义,其它头文件的引用*/
int main(){
printf("hello world"); /*printf函数是stdio.h所包含的函数声明*/
return 0;
}
#define
#undefine
#define
宏定义主要用于文本替换,其会在编译前的预处理阶段处理完,其生命周期从定义开始到文件尾部结束,或者到#undefine
结束。
// Include
#include <stdio.h>
// Define
#define PI 3.14
int main(void){
float r = 0, s = 0; /*定义半径r, 面积s*/
printf("请输入半径以求面积(回车结束):");
scanf("%f", &r);
s = PI*r*r;
printf("圆的面积为%f",s);
return 0;
}
#undef PI
/*此时 PI 不再可用了*/
#if
#else
#elif
#endif
#if
#else
#elif
#endif
的使用和if-else十分类似,但是#elif
是else if
的简写,条件编译语句被满足之后将会执行下面的语句,且#if
和#endif
总是一起使用的。
// Include
#include <stdio.h>
// Define
#define MAX 100
int main(void){
#if MAX == 100 /*#if 要求判断条件为整型常量表达式故而不能含有变量*/
printf("MAX存在");
#elif MAX == 90
printf("MAX存在,但不可用");
#else
printf("MAX不存在");
#endif
return 0;
}
#ifdef
#ifndef
#ifdef
#ifndef
同上面的条件编译类似,但是判断的是是否定义,下面我们使用代码来解释。
// Include
#include <stdio.h>
// Define
#define MAX 100
int main(void){
#ifdef MAX
printf("MAX已定义");
#else
printf("MAX未定义");
#endif
/*====================================*/
#undef MAX
#ifndef MAX
printf("MAX未定义");
#else
printf("MAX已定义");
#endif
return 0;
}
学习总结:
预处理指令的处理过程是在链接编译之前,主要作用是替换文本,选择编译的代码等,我这里为了演示方便,将预处理指令写在了main函数当中,大家切勿效仿我的行为,这种写法是十分糟糕的。
标签:Language,MAX,endif,else,Program,printf,include,预处理 From: https://blog.csdn.net/SuilZuilZ/article/details/143706023