下面的代码:
#define DEF1 "first" #define DEF2 "second" #define INIT_LIST { DEF1, DEF2 }
有什么方法可以在编译时获得INIT_LIST中的条目数吗?
jmo0nnb31#
你可以把一个未知大小的字符指针数组作为一个复合字面值传递给sizeof,然后除以sizeof字符指针,得到INIT_LIST中的元素个数。喜欢
sizeof
#define INIT_LIST_ELEMENTS (sizeof((char*[])INIT_LIST) / sizeof(char*))
1条答案
按热度按时间jmo0nnb31#
你可以把一个未知大小的字符指针数组作为一个复合字面值传递给
sizeof
,然后除以sizeof
字符指针,得到INIT_LIST中的元素个数。喜欢