预编译:在真正编译之前设置一些变量,环境设置。
主要的命令有
- #define——宏定义:文本替换,不能提供变量类型检查,还有需要主要宏定义函数时,
结合顺序有时候发生变化。 - #if #elif #else #endif
可以实现代码的分块执行。实现分块调试。#include<stdio.h> #include<stdlib.h> #define num 1 int main() { #if num==1 srand(12); for(i=0;i<5;i++) { int ret1=rand(); printf("%d\t",ret1); } printf("\n"); #else int *ans=(int *)calloc(5,sizeof(int)); for(i=0;i<5;i++) printf("%d\t",ans[i]); printf("\n"); #endif return 0; }
- #ifdef #ifndef #else #endif
这组预编译命令和上面的差不多。它是只要define了该名字,不需要考虑是不是有值。 - #error
#error 预处理指令的作用是,编译程序时,只要遇到#error 就会生成一个编译错误提
示消息,并停止编译。其语法格式为:
#error error-message
注意,宏串error-message 不用双引号包围。遇到#error 指令时,错误信息被显示,可能同时
还显示编译程序作者预先定义的其他内容。