我應該使用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