1.无参数的宏定义
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
//宏 常量
//1.不重视作用域
//2.可以用undef卸载宏
//3.宏常量 没有数据类型
void test()
{
#define MAX 100
}
int main()
{
test();
int a = MAX;
printf("%d", a);
return 0;
}
说明:
2.带参数的宏定义(宏函数)
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
//宏 函数
//1.将短小,频繁使用的函数写成宏函数
//2.加括号保证运算完整性
//3.优点:空间换时间
#define SUM(x,y) x+y
void test()
{
int ret = SUM(10, 20);
printf("%d", ret);
}
int main()
{
test();
return 0;
}
建议写法:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
//宏 函数
//1.将短小,频繁使用的函数写成宏函数
//2.加括号保证运算完整性
//3.优点:空间换时间
#define SUM(x,y) ((x)+(y))
void test()
{
int ret = SUM(10, 20);
printf("%d", ret);
}
int main()
{
test();
return 0;
}
注意:
一些特殊的预定宏
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
void test()
{
printf("%s\n", __FILE__);
printf("%d\n", __LINE__);
printf("%s\n", __DATE__);
printf("%s\n", __TIME__);
}
int main()
{
test();
return 0;
}