如何定义类型取决于指针大小是否等于特定值的变量



我知道C/C++预处理器不知道sizeof,但我想用类似的方式定义一个变量:

#if sizeof(char*) == 8
uint64_t a;
#else
uint32_t a;
#endif

有可能吗?

您可以这样使用std::conditional_t

std::conditional_t<sizeof(char*) == 8, 
uint64_t, 
uint32_t> a;

最新更新