C语言宏
宏定义常量
#include <stdio.h>
#define SIZE 100
#define BANNER "WARNING:"
int main(void){
printf("%d
", SIZE);
printf("%s
",BANNER);
return 0;
}
宏定义数据类型
#include <stdio.h>
#define string char*
int main(void){
string banner = "HELLO, WORLD!";
printf("%s
",banner);
return 0;
}
宏定义函数
#include <stdio.h>
#include <stdlib.h>
#define random (rand()%100)
int main(void){
while(1){
int num = random;
printf("%d
", num);
if (num >= 50){
break;
}
}
return 0;
}
宏定义带参数函数
#include <stdio.h>
#include <stdlib.h>
#define max(a,b) a>b?a:b
int main(void){
int max_num;
max_num = max(10,100);
printf("%d
",max_num);
max_num = max(10,6);
printf("%d
",max_num);
return 0;
}
宏解除定义
#undef xxx
预处理
三个已知
#include <stdio.h>//包含文件
#define SIZE 100 //定义宏
#undef SIZE //解除宏定义
条件宏定义
#define MAX 100
#ifdef MAX //如果定义了MAX宏
#undef MAX
#else //否则
#define MAX 10
#endif
#ifndef MIN//如果没有定义MIN
#define MIN 2//定义宏MIN为2
#endif
另外的条件判断
#include <stdio.h>
#include <stdlib.h>
#define MAX_THREAD 10
#if MAX_THREAD > 5
#undef MAX_THREAD
#define MAX_THREAD 5
#endif
int main(void){
printf("%d
",MAX_THREAD);
return 0;
}
/*同理#else和#elif的用法与else 和else if类似*/
最后两个
/*
#error 当遇到标准错误时,输出错误消息
#pragma 使用标准化方法,向编译器发布特殊的命令到编译器中
*/