小编이정민*_*이정민的帖子

为什么整数类型需要是little-endian?

我很好奇小端,我知道计算机几乎都有小端方法.

所以,我通过一个程序进行了调查,来源如下.

int main(){

int flag = 31337;
char c[10] = "abcde";
int flag2 = 31337;

return 0;

}
Run Code Online (Sandbox Code Playgroud)

当我通过gdb看到堆栈时,

我注意到有0x00007a69 0x00007a69 ...... ...... ...... .... ... 0x62610000 0x00656463 ......

所以,我有两个问题.

一方面,

如何能够char c[10]在旗帜下的价值?

我预计在堆栈顶部有flag2的值,在flag2下有char c [10]的值,在char c [10]下有flag的值.

像这样

7a69
"abcde"
7a69
Run Code Online (Sandbox Code Playgroud)

第二,

我预计价值会以小端的方式存储.

结果,"abcde"的值存储为"6564636261"

但是,31337的值不是通过little-endian存储的.

那只是'7a69'.我以为它应该是'697a'

为什么整数类型不符合little-endian?

c stack endianness

0
推荐指数
1
解决办法
388
查看次数

标签 统计

c ×1

endianness ×1

stack ×1