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(“The max of %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

The max of 10 and 20 is 20

This file is compiled on Jun 17 2023 at 08:10:45

“`

本文和图片来自网络,不代表火豚游戏立场,如若侵权请联系我们删除:https://www.huotun.com/game/529417.html

(0)
上一篇 2024年3月1日 下午1:06
下一篇 2024年3月1日 下午1:08