我应该使用sizeof关键字(它返回该类型)包含带size_t定义的头文件(例如cstddef或stddef.h)吗?包含由sizeof运算符返回的size_t的头文件
例如:
//..no include
int main()
{
size_t n; //error: unknown type size_t
sizeof(int); //ok, but returned size_t type also undefined
return 0;
}
我应该使用sizeof关键字(它返回该类型)包含带size_t定义的头文件(例如cstddef或stddef.h)吗?包含由sizeof运算符返回的size_t的头文件
例如:
//..no include
int main()
{
size_t n; //error: unknown type size_t
sizeof(int); //ok, but returned size_t type also undefined
return 0;
}
你只需要包括cstddef
或stddef.h
如果你需要明确地使用size_t
(即在声明或定义)。如果您想要这样做,则没有必要使用sizeof
来确定特定类型的大小。例如,以下语句不要求包含任何头文件以使用sizeof
来确定类型的大小。
int a = sizeof(foo);
if(sizeof(foo) == 12) {}
如果你专门为信息寻找有关sizeof
我建议你把C++标准的更多信息,看看5.3.3([expr.sizeof]
)。
如果由于某种原因,你不希望有一个头,你可以让C++推断正确的类型:
decltype(sizeof(0)) n;
一个不错的 - 根本没有头文件 - 但也很难看 – 2014-12-13 20:03:06
你可以使用size_t = decltype(sizeof(0));''一次,然后像平常一样使用'size_t'。 – Andrew 2016-05-11 09:58:46
如果你想明确地使用'size_t'然后是。如果不是,那么不。 – 2014-12-13 18:10:34
你必须。很不好,我不知道哪个标题。它也是std :: size_t for C++。 – 2014-12-13 18:15:18
根据http://en.cppreference.com/w/cpp/types/size_t它在多个头文件中定义。 – 2014-12-13 18:22:38