【C语言-11】长代码的简化(宏定义)
1、打开C-Free,新建文件。
2、输入以下内容:
#include<stdio.h>
#include<windows.h>
#define BLUE SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE|FOREGROUND_INTENSITY);
#define RED SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_INTENSITY);
#define GREEN SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN|FOREGROUND_INTENSITY)
main()
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN|FOREGROUND_INTENSITY) ;
printf("更改为:绿色");
BLUE printf("\n蓝色");
RED printf("\n红色");
GREEN ;printf("\n绿色\n");
}
3、运行结果如图:
4、P.S.如下的这条命令是更改控制台字体颜色的代码,详见《【C语言-22】让控制台输出不同颜色的字符》
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN|FOREGROUND_INTENSITY) ;
1、宏声明的形式为:
#define XXX abcdedfg
这样声明后XXX便完全替代了abcdefg;
如例中BLUE完全替代了SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE|FOREGROUND_INTENSITY);
2、其效果与写出完整代码一模一样:
P.S.例子中主函数中的第一行代码是为了与宏定义作比较,以便于演示,实际是不需要的。
3、另外,宏替代的是所有字符代码,包括标点符号,因此如果宏中没有分号,在代码中记得加上,如图: