c - 需要帮助从 ltp 测试套件文件 tst_res.c 理解这个宏

标签 c macros

这个宏有什么作用?我无法理解它的定义:

#define PAIR(def) [def] = { .name = #def, .val = def, },

来自:ltp-full-20120401/lib/tst_res.c 第 183 行

你可以从这个link获取源码

最佳答案

看起来它是用来初始化结构数组的。

#define PAIR(def) [def] = { .name = #def, .val = def, },

如下使用的宏PAIR(FOOBAR)将扩展为:

[FOOBAR] = { .name = "FOOBAR", .val = FOOBAR, },

.name.val 将是数组元素的 struct 类型的成员。

关于c - 需要帮助从 ltp 测试套件文件 tst_res.c 理解这个宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10662650/

上一篇:CGI 编程

下一篇:c - 默认参数提升

相关文章:

c - 为什么 "gcc-std=c99 ...."不允许我使用 VLA?

c++ - 如何在 Linux 中将共享库转换为静态库

c++ - 用于将后缀附加到 unsigned long long 文字的宏

c++ - 带有来自第一个宏的参数的宏到另一个宏

c - limits.h 中的 LONG_BIT

c - 如何在 IronPython 中访问宏

C 内存分配影响 char 数组长度

scala - 如何在Scala控制台中使用宏?

macros - 普通口齿不清 : how can a macro define other methods/macros with programmatically generated names?

c++ - Visual Studio 包含缩短的项目宏