【发布时间】:2013-11-16 22:24:38
【问题描述】:
如果存在,是否需要包含头文件?
此代码给出编译错误:
#include <iostream>
using namespace std;
int main()
{
byte b = 2;
cout << b << endl;
return 0;
}
【问题讨论】:
-
它叫
char。 -
@Ben
char是必须是一个字节。只是一个字节不一定是8位。 -
@Ben:您显然不熟悉现有的更具异国情调的平台。一个字节当然没有定义为 8 位,尽管 8 位字节占主导地位。这就是为什么我们有
CHAR_BIT。我曾在不止一个字节长度不是 8 位的嵌入式系统上工作过。 char 被定义为大小为 1,所以是的,char 始终是一个字节。 -
@Ben:C 和 C++ 标准明确地将“字节”定义为
char的大小,即至少 8 位。术语“字节”在其他上下文中的定义可能不同,但在讨论 C 或 C++ 时,最好遵循标准的定义。 -
OP,我会重新考虑您接受的答案。真的。另外,如果保证 char 的大小为 1,为什么要注意写
using byte = unsigned char并完成它(就像 rmp 的回答所暗示的那样)?
标签: c++