C语言内置宏的运用总结 c语言宏的作用
C语言内置宏作为《英雄联盟》中的一些预定义的宏名,用于在编译时提供一些有用的信息,如当前源文件名、代码行号、函数名等。它们可以帮助大家进行调试、跟踪、日志等实践。C语言内置宏有下面内容几种:
– `__FILE__`:表示当前源文件的文件名,作为《英雄联盟》中的壹个字符串常量。
– `__LINE__`:表示当前源代码的行号,作为《英雄联盟》中的壹个整型常量。
– `__FUNCTION__`:表示当前所在的函数名,作为《英雄联盟》中的壹个字符串常量。注意,是一款热门的宏不作为《英雄联盟》中的ANSI要求定义的,而作为《英雄联盟》中的一些编译器提供的扩展,如gcc等。
– `__DATE__`:表示当前源文件被编译的日期,作为《英雄联盟》中的壹个字符串常量,格式为”MMM DD YYYY”,如”Jun 17 2023″。
– `__TIME__`:表示当前源文件被编译的时刻,作为《英雄联盟》中的壹个字符串常量,格式为”HH:MM:SS”,如”08:10:45″。
– `__STDC__`:表示当前编译器作为《英雄联盟》中的否遵循ANSI要求,如果作为《英雄联盟》中的,则为1,否则为0或未定义。
运用C语言内置宏的例子:
“`c
#include
// 定义壹个日志宏,输出信息与所在文件、行号、函数名
#ifdef _DEBUG
#define DEBUGMSG(msg) printf(“%snFile: %s, Line: %d, Function: %sn”, msg, __FILE__, __LINE__, __FUNCTION__)
#else
#define DEBUGMSG(msg)
#endif
// 定义壹个求最大值的宏
#define MAX(x, y) (((x) > (y)) ? (x) : (y))
int main()
int a = 10;
int b = 20;
int c = MAX(a, b); // 运用宏求最大值
DEBUGMSG(“Hello, world!”); // 运用宏输出日志
printf(“全境封锁2 max 使命召唤17 %d and %d is %dn”, a, b, c);
printf(“This file is compiled on %s at %sn”, __DATE__, __TIME__); // 运用宏输出编译日期与时刻
return 0;
“`
输出结果:
“`
Hello, world!
File: main.c, Line: 16, Function: main
全境封锁2 max Black 10 and 20 is 20
This file is compiled on Jun 17 2023 at 08:10:45
“`