※ 引述《QQ29 (我愛阿蓉)》之銘言:
: int main() {
: BYTE xb = 1;
: double xb2 = 2;
: BYTE xb3 = 2;
: printf("%p , %p , %p", &xb , &xb2, &xb3);
: return 0;
: }
: 為啥 印出來差距是 19 和 9
: xb和xb2相差19...
: xb2和xb3相差9
: 實在無法理
: 請教各位
: thx....
這是 compiler 怎麼做的問題
同一個 compiler 在不同的參數下,也可能有不同的結果 ...
---------------------------------------------------------------------------
$ gcc --version
gcc (Debian 4.4.5-7) 4.4.5
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ gcc test3.c -O -o test3;./test3
0x7fff9a561fef , 0x7fff9a561fe0 , 0x7fff9a561fdf
15 , 1
$ gcc test3.c -O2 -o test3;./test3
0x7fff8cfbeaaf , 0x7fff8cfbeaa0 , 0x7fff8cfbeaae
15 , -14
---------------------------------------------------------------------------
不知道這樣有沒有解釋到你的疑惑 ...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.30.46