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

What are each part of macros named in the C standard?

我正在写一篇关于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

不让读者产生歧义的准确术语是什么?

根据标准,Sec。 6.10.3, §9, 宏名用于替换时也称为宏名。在标准的定义部分,更具体地说是在 Sec. 3.3,说明你在问题中展示的类函数结构是一个"macro invocation"。所以

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

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