C标准中命名的宏的每个部分是什么?

时间:2017-09-22 16:50:09

标签: macros terminology

我正在撰写一篇与C语言相关的学术论文,但我对术语感到很困惑,并担心我使用的单词不符合标准。

例如,

#define AREA_CIRCLE(radius) (M_PI * radius * radius)
|<-----------------------A------------------------>|
|<-B->| |<---C--->| |<D >|  |<----------E--------->|

printf("%f\n", AREA_CIRCLE(1024));
               |<------A'----->|
               |<---C'-->| |E'|

我不太确定,但我猜是

A:  macro definition
B:  macro directive (preprocessor directive)
C:  macro name
D:  macro parameter
E:  macro substitution rule
A': macro ???
C': macro ???
E': macro argument

准确的术语是什么,不会使他们对读者不明确?

1 个答案:

答案 0 :(得分:1)

根据标准,Sec。 6.10.3,§9,宏的名称在用于替换时也称为宏名称。在标准的定义部分,更具体地说,在Sec。 3.3,声明你在问题中显示的类似函数的结构是“宏调用”。所以

printf("%f\n", AREA_CIRCLE(1024));
               |<------A'----->|
               |<---C'-->| |E'|

A':宏调用
C':宏名称
E':[宏]参数