在OJ开发学习的过程中,需要考虑一个代码文件长度的问题,那么能不能用宏定义来大幅度的增加预处理之后的代码长度呢?
一. 第一次实验:
#include<stdio.h>
#define a bb
#define b cc
int main()
{
int a;
return 0;
}
为什么不是这样呢: 变量a -> bb -> cccc
执行
gcc -E Main.c -o Main2.c
实际上得到的结果:
# 4 "Main.c"
int main()
{
int bb;
return 0;
}
只替换了一次 , a - > bb
这时考虑一个问题,是怎样替换的?
文件指针扫描到a时,把a替换为bb,那么下一次文件指针不管是在当前位置,下一个位置,都应该是b,都应该替换为cc,然而没替换。。。继续实验
二. 第二次实验
#include<stdio.h>
#define a bb
#define b cc
int main()
{
int aa;
return 0;
}
结果:
# 4 "Main.c"
int main()
{
int aa;
return 0;
}
没有替换。
在这里省略若干次不明目的的实验过程。。。