我在虚幻引擎 4 的源代码中发现了这一点,但没有识别出来。它的具体实例是:
#undef UCLASS
#define UCLASS(...) \
ARadialForceActor_EVENTPARM
我是一个相当新的程序员,这种宏对我来说并不熟悉。我的猜测是它定义了一个宏,它将采用函数的每个重载版本UCLASS
(换句话说,一个名为 的函数的每个实例UCLASS
,无论参数的类型和数量如何)并将其替换为变量ARadialForceActor_EVENTPARM
。那是对的吗?如果不是,有人知道这是什么意思吗?我尝试编写一个代码片段来测试它,但它返回了error: "." may not appear in macro parameter list
. 我会将它包含在下面,以防我对宏的看法是正确的,在这种情况下,如果有人能指出我在代码中出错的地方,我将不胜感激:
#include <iostream>
#define foo( . . . ) bar
using namespace std;
int foo() {cout <<54321<<endl;}
int main()
{ bar=12345;
cout<<bar<<endl;
return 0;
}