如果对象是静态的,C++ 会计算每次调用的 sizeof

标签 c++ static sizeof

假设我有一个大小不能改变的对象的静态数组。

struct vector2 { //8 Bytes
    float x, y;
};

计算机是在每次调用 sizeof 时计算大小还是存储在某处?如果不是,它的性能是否与存储在某处的性能相同?

std::cout <<  sizeof(vector2) << std::endl;
std::cout <<  sizeof(vector2) << std::endl;

这样快吗

Byte sizeOfVector2 = sizeof(vector2);
std::cout <<  sizeOfVector2 << std::endl;
std::cout <<  sizeOfVector2 << std::endl;

最佳答案

sizeof 在编译时计算。

关于如果对象是静态的,C++ 会计算每次调用的 sizeof,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42601658/

相关文章:

c++ - 为什么 std::variant 不能保存数组对象类型而 union 可以?

swift - 在具有一堆静态单元格的 TableView 中设置所有标签的文本颜色

c++ - 显式切片派生对象

c - C 中 Sizeof 的行为

c++ - friend 类中没有 return 语句

c++ - 使用 BFSVisitor 在连接的组件中传播值? ( boost ,C++)?

java - Sonar : Instance methods should not write to "static" fields

c - "sizeof"的结果取决于括号的位置。为什么?

c - 通过将指针整数与 sizeof(int) 相乘来使用 realloc 不起作用

c++ - 有没有办法从服务中运行可执行文件?