小编Mcf*_*fly的帖子

在C中读写结构

我知道C中的结构可能不会像代码中那样布局内存.例如:

struct a {
     short x;
     int y;
};
Run Code Online (Sandbox Code Playgroud)

假设2字节短路和4字节整数,实际上可能在内存中占用8个字节,因为编译器希望在4字节边界上对齐成员...因此在x和y之间存在2个字节的松弛.

这使得读取和写入结构在语言,编译器和硬件之间不可移植.读取和写入它们的唯一方法是成员.是的,Endianness也是一个问题,交换必须在成员级别进行,但我们假设这不是问题.

Fortran有一个派生类型(结构)的"序列"说明符,它告诉编译器在给定内存时将成员布局在内存中.这允许便携式读取和写入派生类型.

我的问题是:有没有办法在便携式(可维护)方式中用C做类似的事情?

c fortran

8
推荐指数
2
解决办法
301
查看次数

标签 统计

c ×1

fortran ×1