测试程序:
#include <stdio.h>
int main(){
unsigned int ui = 10;
char c = 11;
unsigned char uc = 12;
int i = 13;
double d = 14;
short s = 15;
printf("ok\n");
printf("%p\n%p\n%p\n%p\n%p\n%p\n", &ui, &c, &uc, &i, &s, &d);
return 0;
}
Windows下:
- 先定义先入栈;
输出:
ok
0062FEAC
0062FEAB
0062FEAA
0062FEA4
0062FE96
0062FE98
Linux下:
- 按字节大小,大的先入栈;
- 字节大小相同的,后定义的先入栈;
输出:
ok
0x7fffee63bad8
0x7fffee63bad4
0x7fffee63bad5
0x7fffee63badc
0x7fffee63bad6
0x7fffee63bae0
分布图:
栈顶 |
---|
… |
c |
uc |
s |
ui |
i |
d |
栈底 |