作者查詢 / yvb
作者 yvb 在 PTT [ C_and_CPP ] 看板的留言(推文), 共838則
限定看板:C_and_CPP
看板排序:
25F推: 若是要 "正確的" 把 double "誤" 當做 int 來印, 應該寫做10/27 20:42
26F→: printf("%d\n", *(int *)&w); 結果 35.14 會是 -206158430210/27 20:42
27F→: 而原 PO 的 printf("%d\n", w); 在 Linux 系統開了 ASLR 時,10/27 20:43
28F→: 甚至每次顯示結果都不同, 真的像是亂數一般. 顯然是 va_list10/27 20:43
29F→: 這個黑盒子中不知發生了什麼事.10/27 20:43
42F推: 其實我前面只是要指出, 原PO 的問題, 在 X86-64 的環境下,10/30 00:46
43F→: 並非單純是 IEEE754 的問題, 照規則算出 "亂數" 會不符合;10/30 00:47
44F→: 當然, 若是在 i386 (32-bit) 的環境, 應該就會回歸單純了.10/30 00:47
45F→: 另外, 上面 regs 的推論, 會讓人覺得在瞎子摸象, 可參考10/30 00:47
46F→: (1) http://goo.gl/yP27aR 及 (2) http://goo.gl/WPLhd910/30 00:48
47F→: 此外, 依據 (1) 及其後 List 的 X86-64 段落, 我的測試使用10/30 00:48
48F→: Linux => System V AMD64 ABI, 但原PO 則為 Win10 cygwin64,10/30 00:48
49F→: 不知是會採用 SysV 還是 M$ X64 calling convention ?10/30 00:48
50F→: 有關 regs 的相關推論, 不知是否依舊完全符合?10/30 00:49
6F→: 發[問題]不是有格式?且程式用貼圖有點糟,建議用置底那篇方式.10/04 08:37
7F→: 然後scanf處有warning但不影響; 後半比較像是算總字數而已.10/04 08:45
8F→: 問題在於, printf 出來的 13 13 是否如同預期.10/04 08:47
9F→: 也就是說, 犯了置底十三誡中,第一誡的延伸, 陣列後段無初值.10/04 08:51
27F推: 至少 P 大很有良心地給 puts() 而非 system() 來加映.09/28 19:16
7F推: 把你的測資, 7 2 改為 7 4 測看看; 然後 7 4 移到 2 4 前再測08/24 18:27
2F推: 41. 55. 有問題.04/28 20:25
8F推: 試問 table()中, 寫一句 *((double *)table1) = *table1 + 1;02/23 18:45
9F→: 可不可以? 若可以, 呼叫 table() 十次後, *table1 會是多少?02/23 18:46
10F→: 試試看寫在 function 內和 function 外的差別.02/23 18:47
11F→: 上一句是指 const array.02/23 18:54
12F→: const array 加上 static 也可以再試試看.02/23 18:58
22F推: 真沒試過用 nm 看 VC2013 編譯出來的程式... 可行嗎?02/25 14:23
19F推: 因為你沒貼出的 fig10_12.cpp 的 main() =>02/15 21:03
20F→: Employee manager( "Bob", "Blue", birth, hire );02/15 21:03
21F→: "Bob" 和 "Blue" 是 const.02/15 21:04
33F→: 補充一下, 我前面 const 的說法適用於02/23 18:48
34F→: C++ How to Program 5/e ( https://goo.gl/kzkntP ) 的02/23 18:48
35F→: Figure 10.12 ( https://goo.gl/U3mEkj );02/23 18:48
36F→: 但原 PO 的版本有點不同 (可能是 8/e 的版本?),02/23 18:48
37F→: 不是 const char * const, 而是 const string &,02/23 18:49
38F→: 那就應該是前面 love大 的說法才對.02/23 18:49
39F推: 試著分別用 string bob = "Bob", blue = "Blue";02/23 18:51
40F→: 以及 char bob[] = "Bob", blue[] = "Blue";02/23 18:51
41F→: 搭配 Employee manager( bob, blue, birth, hire );02/23 18:51
42F→: 看看有何結果 (考慮 char[] 轉型是什麼情況); 此外,02/23 18:51
43F→: 改成 manager( string("Bob"), string("Blue"), ...02/23 18:51
44F→: 以及 manager( string(bob), string(blue), ...02/23 18:52
45F→: 再試看看. 問題就在於是 lvalue 還是 rvalue.02/23 18:52
26F推: 32位元通常類似狀況一,只是8bytes=>4bytes,位址相對縮減.02/10 20:25
27F→: 而64位元,沒特別指定編譯參數,似乎比較偏向狀況三.02/10 20:28
28F→: 若64位元gcc指定-fpack-struct之類,應該會是狀況二,02/10 20:31
30F→: 但不知狀況一要在何種64位元環境下會發生...02/10 20:35
31F→: 回littleshan大,當然不是只分32和64,但LPH66大回nick5130,02/10 20:44
32F→: 看來就是專指64bit.而上面skygrango推文應該是指32bit的情況.02/10 20:46
33F→: 若要再討論其它位元的環境,可能要指定清楚是什麼架構系統,02/10 20:47
34F→: 那水晶球大大的文章恐怕補充不完了 :P02/10 20:48
40F推: 問題就是不知哪找ILP64環境,或如何編譯出ILP64程式(能run否?)02/13 18:03
13F推: 影片太模糊, 看不清楚 make 的過程發生了什麼.02/07 20:16
14F→: 至少把 make 過程, 所輸出的文字內容, 呈現清楚吧...02/07 20:17
15F→: 誰知道錯誤的魔鬼, 藏在哪段文字的細節裏...02/07 20:18
25F→: 不知你們的 makefile 是怎樣的內容, 是否可以 make V=1 之類,02/08 20:13
26F→: 看到編譯時如何叫用ccache的詳情, 看看傳了什麼參數給ccache.02/08 20:15
27F→: 或者看看 ccache 的設定檔, 看有沒有 compiler check 的設定,02/08 20:17
28F→: 相關部分請參見 ccache online manual.02/08 20:18
33F推: 那看看 which g++, 看看 g++ 是否 symbolic 到 ccache.02/08 21:03
34F→: 若是如此, 那改一下 PATH 讓 g++ 指到 "真正的" g++ .02/08 21:05
35F→: 另外, ccache 可以設個人的設定檔. 仍參見 manual.02/08 21:06
36F→: 剛再看了一下 ccache manual, 設定甚至可用環境變數.02/08 21:09
45F推: 會因為 -I 後的寫法而結果不同, 也許所用的 ccache 有 bug,02/10 19:20
46F→: 也許更新 ccache 版本會好? 或是有什麼特別, 奇怪的設定?02/10 19:23
18F推: 是存在原PO想像的線, 但不是電腦對接用 http://goo.gl/sZlZZA02/03 06:10
19F→: 電腦對接的線像 http://goo.gl/qz6sSJ http://goo.gl/KuSWoR02/03 06:10
20F→: 或是 http://goo.gl/aUvmT7 , 也就是並非單純的連接線.02/03 06:10
33F推: 可能是沒相關標準的關係, USB電腦對接線可能還有若干名稱,02/04 00:43
34F→: 諸如 USB Link cable, USB File transfer cable 之類...02/04 00:43
35F→: 有的線可能還可設定為 Data-Link 或 Network-Adapter 的模式;02/04 00:44
36F→: 前者似乎要用特定檔案傳輸程式, 不知是否有API可供程式操作,02/04 00:44
37F→: 後者則是把對接線模擬為網路卡, 使用上就如同網路線對接.02/04 00:44
38F→: 但是這樣的線, 一方面不便宜, 另一方面透過驅動程式後,02/04 00:44
39F→: 速度不如想像中高; 還不如用一般網路連線方式來得便利.02/04 00:45