【发布时间】:2019-01-10 22:39:13
【问题描述】:
在.NET Core CLR源代码中,我找到了如下宏定义:
#define CORECLR_HOSTING_API(function, ...) \
extern "C" int function(__VA_ARGS__); \
typedef int (*function##_ptr)(__VA_ARGS__)
CORECLR_HOSTING_API(coreclr_shutdown,
void* hostHandle,
unsigned int domainId);
cmets 说 this 定义了一个函数原型和一个函数指针。有没有人能够“翻译”这个非宏版本的样子?也就是说,如果它没有包裹在宏中,它会是什么样子? “*function##_ptr”部分让我很困惑......
【问题讨论】:
-
如果它显示
extern "C" …,那么代码是为 C++ 而不是为纯 C 编译器设计的。
标签: c c-preprocessor preprocessor