千家信息网

C语言中代码宏有什么用

发表于:2025-01-25 作者:千家信息网编辑
千家信息网最后更新 2025年01月25日,这篇文章将为大家详细讲解有关C语言中代码宏有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、定义宏#define ARRAY_SIZE 100double
千家信息网最后更新 2025年01月25日C语言中代码宏有什么用

这篇文章将为大家详细讲解有关C语言中代码宏有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

1、定义宏

#define ARRAY_SIZE 100double data[ARRAY_SIZE];

如下图,上方代码在编译器进行宏替换时会将代码中的ARRAY_SIZE替换成100

2、宏函数

宏函数的参数是没有任何类型的概念的,因此

宏函数使用如下,代码中的MAX(3,4)会替换成宏定义的表达式

#define MAX(a,b) a > b ? a : bint n1 = MAX(3,4);

注意


上方替换出错,是因为给宏函数的参数传递的是一个表达式,可以使用下图方法

宏函数的参数不要传表达式,如下图,表达式进行了2次运算

3、多行宏

使用斜杠连接下一行代码,适用于代码很长的宏

#define IS_HEX_CHARACTOR(ch)   \( (ch) >= '0' && (ch) <= '9') || \( (ch) >= 'A' && (ch) <= 'F') || \( (ch) >= 'a' && (ch) <= 'f')int main(){    printf("is hex charactor:%d", IS_HEX_CHARACTOR('a'));}

4、宏变长参数

#define PRINTLNF(format, ...) printf(format, __VA_ARGS__)


5、原样输出变量名

6、例子

#include #define PRINTF(format, ...) printf("("__FILE__":%d) %s: "format,__LINE__,__FUNCTION__, ##__VA_ARGS__)#define PRINT_INT(value) PRINTF(#value":%d \n", value)int main(){    int no = 1;    PRINT_INT(no);    return 0;}

7、宏与函数的差异

关于"C语言中代码宏有什么用"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

0