看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《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