c++ - 在 C/C++ 中获取结构或 union 成员的字节大小或字符大小?

标签 c++ c unicode sizeof

假设我想从以下位置获取以字节或字符为单位的名称字段的大小:

struct record
{
    int id;
    TCHAR name [50];
};

sizeof(record.name) 不起作用。

最佳答案

这个解决方案并不像你想象的那么漂亮:

size_in_byte = sizeof(((struct record *) 0)->name)

size_in_chars = _countof(((struct record *) 0)->name)

如果您想在 Windows 以外的其他平台上使用第二个,请尝试:

#define _countof(array) (sizeof(array)/sizeof(array[0]))

关于c++ - 在 C/C++ 中获取结构或 union 成员的字节大小或字符大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1882195/

相关文章:

c - 将函数作为参数传递,带或不带 & 符号 c

c++ - 树的递归和非递归过程

c++ - 如何使用 C++ 控制台应用程序返回一个大数字

c++ - 如何使用 Qt 构建静态库和可执行文件?

c - 是 unsigned char a[4][5]; [1][7];未定义的行为?

c - 如何将剩余的 for 循环更改为递归函数?

python - 如何解码消息的 mime 部分并在 Python 2.7 中获取 **unicode** 字符串?

php - UTF-8 到 Unicode 代码点

regex -\w 是否匹配 Unicode 标准中定义的所有字母数字字符?

c++ - 使用 C++11 检查函数签名是否相同?