|
|
1
4
标准要求您能够创建结构类型的数组。执行此操作时,数组必须是连续的。这意味着,无论为struct分配什么大小,它都必须允许您创建一个数组。为了确保这一点,编译器可以分配额外的空间 在…内
数据库中数据的空间
您可以提供自己的分配器和/或重载
换言之,只要文件中的数据是以与您试图读回数据基本相同的方式创建的,那么您需要的正是工作所需的。如果它是在另一台机器上创建的,或者是使用不同的编译器(甚至是使用不同标志的同一个编译器)创建的,那么您可能会遇到相当多的潜在问题--endianness、结构中的padding等方面的差异。
结构
一次一个--您真的需要一次读取一个结构中的项,然后将每个项放入一个临时
|
|
|
2
2
|
|
|
3
2
在您的例子中,每当对齐可能更改结构的布局时,都需要关注对齐。有两种方法可以使代码更易于移植。
其次,可以向结构中添加显式填充。此选项允许您维护原始结构的性能属性,但会使结构的布局更加明确。例如:
|
|
4
1
endianness
. STL保证存储在
至于对齐问题,谷歌
|
|
|
5
0
如果您编写的OO代码需要了解类的内部工作原理,那么您就错了。你不应该假设任何关于类的内部工作方式;您应该只假设方法和属性在任何平台/编译器上的工作方式相同。 您最好实现一个模拟向量功能的类(可能通过子类化向量)。作为一个“代理模式”实现,它可能只加载调用者访问过的那些结构。这将允许您同时处理任何endian问题。这种方式应该使它适用于任何平台或编译器。 |
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |