#include<>:引入c语言标准库头文件
#include"":引入自定义头文件
- 无参数的宏定义(宏常量)
1.可以使用undef卸载宏
2.不重视作用域,可以定义在任意位置,包括函数体内,作用范围从定义位置开始到源文件结尾处
3.宏常量没有数据类型
#define _CRT_SECURE_NO_WARNINGS #include#include #include void test0101() { #define MAX 1024 //#undef MAX } int main(void) { printf("MAX=%dn", MAX); return 0; }
- 带参数的宏定义(宏函数)
1.将短小、频繁使用的函数写成宏函数
2.加括号保证运算完整性
3.以空间换时间
- 条件编译
ifdef/ifndef/endif
#ifndef DUBUG
#define DEBUG
#endif
//------------------------
#ifdef DEBUG
void func() {
printf("Debug版本");
}
#else
void func() {
printf("非Debug版本");
}
#endif
//------------------------
#if 1
void func() {
printf("111");
}
#else
void func() {
printf("000");
}
#endif
- 特殊的预定义宏
#define _CRT_SECURE_NO_WARNINGS #include#include #include //__FILE__ 宏所在文件的源文件名 //__LINE__ 宏所在行的行号 //__DATE__ 代码编译日期 //__TIME__ 代码编译时间 void doWork(char* p) { if (p == NULL){ printf("文件:%s第%d行出错了n", __FILE__, __LINE__); printf("日期:%sn", __DATE__); printf("时间:%sn", __TIME__); return; } } int main(void) { //printf("MAX=%dn", MAX); doWork(NULL); return 0; }



