精華區beta Programming 關於我們 聯絡資訊
> Arton0306:這裡我印出亂碼耶@@ 我手邊是用GCC/3.4.4編譯的@_@" 我剛剛用VC2005測了一下.. 可能是因為VC在pop後又放了別的東西回stack 所以資料被蓋掉了.. 在兩個function的 str宣告前面再多宣告一個 char tmp[500]; 並且把最佳化關掉(或用debug執行) 就可以看到這個結果 :X -- 我主要是要說明 char array 與 指向 string-literal 的 pointer 並不相同.. 所以舉了個例子用來蓋 char array的資料.. 沒拿vc測過所以沒注意到這個問題.. 請多包涵 orz -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.139.189.40
Arton0306:感謝^^ (您太客氣了XD) 另外 我是用DevC 210.58.5.192 10/19 01:53
jtmh:我也是用 Dev-C++, 最佳化關掉就行了,thx :)218.175.157.133 10/19 02:42
cole945:我是在freebsd上編的@_@" 差在系統o_Q? 220.139.189.40 10/19 02:50
jtmh:不懂,您是指 GCC 有開最佳化也能正常顯示嗎?218.175.157.133 10/19 03:01
ykjiang:-O3 後的確正常顯示,但這已經意義不大了 203.73.175.202 10/19 13:15
jtmh:您誤會了,我的「正常」是指不顯示亂碼,218.175.158.180 10/19 14:18
jtmh:而顯示 "XXXXXX"。218.175.158.180 10/19 14:19
cole945:好像我自己想太多了orz 用指令編預設應該220.139.176.164 10/19 16:48
cole945:是沒加最住化參數..但DevC++有加?220.139.176.164 10/19 16:48
ykjiang:DevC++ 內定的確會加一些參數 203.73.175.202 10/19 16:58
ykjiang:-O3後,印string,代表它放在literal pool 203.73.175.202 10/19 16:59
jtmh:大驚!! Dev-C++ 預設會開最佳化!?218.175.158.180 10/19 18:55
jtmh:我誤會了,Dev-C++ 預設只加 -o -I -L 三個。218.175.158.180 10/19 19:03
ledia:-O3 後印 "string" 可能是因為str2()沒執行? 140.112.30.56 10/20 16:45
ykjiang:這個可能我已經用兩個 printf 排除掉了 61.59.12.250 10/20 17:47