C语言程序设计--宏和预处理 - 土拨鼠不再挖洞
2019-01-08 02:44:00 Author: www.cnblogs.com(查看原文) 阅读量:6 收藏



宏定义常量


#include <stdio.h>

#define SIZE 100
#define BANNER "WARNING:"

int main(void){
	printf("%d\n", SIZE);
	printf("%s\n",BANNER);
	return 0;
}

宏定义数据类型


#include <stdio.h>

#define string char*

int main(void){
	string banner = "HELLO, WORLD!";
	printf("%s\n",banner);
	return 0;
}

宏定义函数


#include <stdio.h>
#include <stdlib.h>

#define random (rand()%100)

int main(void){
	while(1){
		int num = random;
		printf("%d\n", 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\n",max_num);
	max_num = max(10,6);
	printf("%d\n",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\n",MAX_THREAD);
	return 0;
}
/*同理#else和#elif的用法与else 和else if类似*/

最后两个


/*
#error	当遇到标准错误时,输出错误消息
#pragma	使用标准化方法,向编译器发布特殊的命令到编译器中
*/

文章来源: http://www.cnblogs.com/KevinGeorge/p/10236810.html
如有侵权请联系:admin#unsafe.sh