是否可以在 C 预处理器中实现 strlen()
?
给定:
#define MYSTRING "bob"
是否有一些预处理器宏,X
,让我说:
#define MYSTRING_LEN X(MYSTRING)
最佳答案
它不使用预处理器,但 sizeof 是在编译时解析的。如果您的字符串在数组中,您可以在编译时使用它来确定它的长度:
static const char string[] = "bob";
#define STRLEN(s) (sizeof(s)/sizeof(s[0]))
请记住,与 strlen()
不同,上面的 STRLEN
将包含空终止符。
关于c - C预处理器中的strlen?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5022067/