簡體   English   中英

C ++ 11自動變量:float array vs auto

[英]C++11 auto variable : float array vs auto

聲明的浮點數組的大小是suing auto與實際大小不同。 為什么會這樣?

例如:

宣言:

float duto[] = {2.2222f,2.223f,34.5f,1.0f,9.0f};
auto dutot = {2.2222f,2.223f,34.5f,1.0f,9.0f};

尺寸打印:

std::cout << " float array size v: " << sizeof(duto)<<std::endl;
std::cout << " auto v: " << sizeof(dutot)<<std::endl;

輸出:

float array size v: 20
auto v: 16

auto dutot = {2.2222f,2.223f,34.5f,1.0f,9.0f};

auto here實際上被推斷為initializer_list<float> 所以你要打印initializer_list<float>的大小。

我剛剛在我的ubuntu 14.04上看了g ++ 4.8.2中的initializer_list實現。 它包含兩個成員_M_array_M_len _M_array是一個指針, _M_len的類型是size_t。 所以我猜你的機器是64位。 因為指針和size_t通常是64位平台上的8個字節。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM