包括sizeof运算符返回的size_t的头文件

时间:2014-12-13 18:09:33

标签: c++ sizeof size-t

我是否应该包含带有size_t定义的头文件(例如cstddef或stddef.h)以使用sizeof关键字返回该类型?

例如:

//..no include

int main()
{
    size_t n;  //error: unknown type size_t
    sizeof(int);  //ok, but returned size_t type also undefined
    return 0;
}

2 个答案:

答案 0 :(得分:2)

如果由于某种原因你不想包含标题,你可以让C ++推断出正确的类型:

decltype(sizeof(0)) n;

答案 1 :(得分:1)

如果您需要明确使用cstddef(即在声明或定义中),您只需要包含stddef.hsize_t。如果您只想使用sizeof确定特定类型的大小,则没有必要。例如,以下语句不要求您包含任何头文件以使用sizeof来确定类型的大小。

int a = sizeof(foo);
if(sizeof(foo) == 12) {}

如果您正在寻找有关sizeof的信息,我建议您查看C ++标准的5.3.3([expr.sizeof])以获取更多信息。