gpt4 book ai didi

C++11 自动变量 : float array vs auto

转载 作者:太空狗 更新时间:2023-10-29 19:57:45 24 4
gpt4 key购买 nike

声明为 auto 的 float 组的大小与实际大小不同。为什么会这样??

例如:

声明:

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这里实际上推导为initializer_list<float> .所以你打印的尺寸是initializer_list<float> .

我刚刚看了initializer_list在我的 ubuntu 14.04 上以 g++ 4.8.2 实现。它包含两个成员 _M_array_M_len . _M_array是一个指针,_M_len的类型是 size_t。所以我猜你的机器是 64 位的。因为 pointer 和 size_t 在 64 位平台上通常是 8 个字节。

关于C++11 自动变量 : float array vs auto,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30283728/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com