bog*_*dan 3 c c++ unicode sizeof
假设我想从以下位置获取name字段的字节大小或字符:
struct record
{
int id;
TCHAR name [50];
};
Run Code Online (Sandbox Code Playgroud)
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]))
小智 5
在C++中:
#include <iostream>
using namespace std;;
struct record
{
int id;
char name [50];
};
int main() {
cout << sizeof( record::name) << endl;
}
Run Code Online (Sandbox Code Playgroud)
编辑:有几个人指出这是C++ 0x代码,所以我想我必须撤回我对VC++的不友好评论.这不是我在自己的C++代码中使用过的编程结构,但我不得不想知道为什么sizeof在C++ 03中不能这样工作?你给它起一个名字,它给你的大小.我以为它不需要工作需要一些努力.但这就是C++标准的奇迹:-)
| 归档时间: |
|
| 查看次数: |
384 次 |
| 最近记录: |