相关疑难解决方法(0)

C结构中的松弛字节

我知道词边界的概念,计算机使用词边界存储结构.我正在使用64位操作系统的64位CPU.limits.h中__WORDSIZE宏的值是64.所以我的单词边界是8个字节对吗?

我有两个结构:

struct a
{
int a;
char b;
float c;
};
Run Code Online (Sandbox Code Playgroud)

sizeof(struct a)给出12作为答案.sizeof(int)是4. sizeof(float)是4.

For struct b{
char a;
char b;
char c;
char d;
};
Run Code Online (Sandbox Code Playgroud)

sizeof(struct b)是4.

这些输出表明字边界是4个字节.我如何找到单词边界.它真的等于sizeof(int)吗?

奇怪的是:

struct c{
char a;
char b;
char c;
char d;
char e;
}
Run Code Online (Sandbox Code Playgroud)

sizeof(struct c)是5个字节.任何人都可以解释这个.

c struct

4
推荐指数
1
解决办法
2179
查看次数

gcc如何在特定平台上获得每种类型的对齐方式?

它是硬编码到gcc的源代码还是以某种方式以编程方式获取?

gcc alignment

3
推荐指数
1
解决办法
868
查看次数

标签 统计

alignment ×1

c ×1

gcc ×1

struct ×1