C++ 结构数组和相等数组之间的区别

标签 c++ c arrays memory struct

<分区>

例如之间的内存使用/执行速度是否有任何差异

struct test
{
   int a;
   float b;
   char c;
}; 

test ar[30];

int arr1[30];
float arr2[30];
char arr3[30];

?让我们假装,我们不是在谈论工作舒适度或程序员方面的事情,只是执行速度/内存使用。

最佳答案

绝对是在内存使用方面。

当你分配test ar[30]时,你实际上是在分配:
int - float - char - (padding) - int - float - char - ...

在您的第二个示例中,您正在分配:
int - int - int - .... - float - float - ... - char - ...

所以你内存中的布局是完全不同的,这会对你的性能产生影响(取决于你做的OFC)

关于C++ 结构数组和相等数组之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26369935/

相关文章:

c++ - Gtkmm 构建错误

javascript - 如何从数组中的所有对象中删除一个简单的特定键值对

arrays - 英特尔 Fortran 95 编译器是否允许模块数组的大小不固定?

关于从 'std::ostream&' 类型的临时对象初始化 'std::ostream"类型的非常量引用的 C++ 编译器错误

c++ - 如何获取仅包含另一个 vector 的最后 n 个元素的 vector ?

c - 不读取注册表的 UAC 状态

c - 在 C 中解释 "if (result1) *result1 = t2"语句时遇到问题

c - asctime时间输出错误

c - 何时在程序中首先获取高速缓存行?

c++ - Google Test 宏似乎不适用于 Lambda 函数