读书人

问一个栈中内存布局的有关问题

发布时间: 2012-02-21 16:26:23 作者: rapoo

问一个栈中内存布局的问题
int main()
{
char p[] = "abcd ";
printf( "%c,%c ", *p,*(p+1));
return 0;
}
输出结果是a,b
p中的内容应该是在栈中,栈中的内存布局应该是
高地址 d
| c
| b
低地址 a
但是Intel的机器不应当是little-endian的吗,那应该是
低地址 -- 高地址
d c b a
啊,
sigh,不知道是哪儿想晕了


[解决办法]
布局 只在特殊情况下考虑。
[解决办法]
没错, 单字节的数据没有little-endian 之说。
[解决办法]
little-endian只对多字节(如DWORD和WORD)有用,尤其在PE文件里面出现得多
0x1e ef
little-endian里面是ef1e这样存储的
单字节的没有这个区别~

读书人网 >C语言

热点推荐