宏中的多个值

问题描述 投票:0回答:1

我能找到解析这个宏的帮助吗?语法看起来熟悉又陌生。

#define   MACRO_NAME   [0] = value0, [1] = value1, [2] = value3

这是我在维护代码时遇到的一个宏。 任何帮助将不胜感激。

c macros
1个回答
0
投票

这是一个简单的宏。预处理器会将任何出现的

MACRO_NAME
替换为
[0] = value0, [1] = value1, [2] = value3

因此,宏似乎有一个目的是“指定数组的初始化”,但是,它的用处却很难想象。它要求在 value0 展开的位置定义

value1
value3
MACRO_NAME
(作为变量或宏)。
例如:

#define value0 12 #define value1 17 int value3 = 24; int a[4] = {MACRO_NAME, [3] = 100}; int b[5] = {MACRO_NAME, [3] = 200, [4] = 11};

© www.soinside.com 2019 - 2024. All rights reserved.