c - C预处理器中的strlen?

标签 c c-preprocessor strlen

是否可以在 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/

相关文章:

c - 将来自标准输入的输入存储在 C 中的数组中

C 中的 char* 与 const char*

c++ - 这是shell排序还是插入排序?

c - 使用 Windows MIDI API 时出现问题(播放时没有回调)

c - 使用 strlen 查找用户输入 c 的长度

c - 了解用于 strlen 优化的魔数(Magic Number) 0x07EFEFEFF

php - 异常的PHP字符串长度以及使用PHP搜索Elasticsearch时

c++ - C/C++ 别名函数到具有不同参数的其他函数

c++ - 空宏的替代方案

Cpp : How to understand and/or debug complex macros?