代码:
static const void *const uniquePtr = &uniquePtr;
…将在编译单元中提供一个唯一的void
指针。以这种方式为喜欢将名称作为 void*
的 API 生成唯一句柄或名称非常方便。
使用示例:
明智的做法是将此模式包装在一个宏中以避免使用它出错,并封装该想法以便它自行记录。
但这引出了一个问题:是否有一个可以用来命名宏的成语名称?:
#define DECLARE_VOID_THING(name) static const void *const name = &name
DECLARE_VOID_THING(aHandle);
DECLARE_VOID_THING(anotherHandle);
有什么想法吗?
最佳答案
如上文所述,(很可能)没有标准的说法,因此您可以自由选择您认为最好的任何说法。也许像 UNIQUE_VOID_POINTER
之类的东西。
关于c - c习语的名字—— `static void *thing = &thing;`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28983215/