作者查詢 / LPH66
作者 LPH66 在 PTT [ C_and_CPP ] 看板的留言(推文), 共6704則
限定看板:C_and_CPP
看板排序:
全部Math8896C_and_CPP6704Minecraft2016puzzle1798Little-Games1256PHP992Web_Design736killercorp717java657SYSOP599Programming587Mathematica451Windows394IME389Prob_Solve389Ajax321RegExp298b94902xxx229PttBug229HOT_Game210Visual_Basic207Inference204Hunter198Steam168NTU-K9167KS94-317160EzHotKey138BoardGame131Conan122HarryPotter120CSSE116Flash104Database96GameDesign94AndroidDev91Android90Kindaichi_Q88Wikipedia74LaTeX71BBSmovie59SMSlife57DeathNote54riddle52Weyslii49wretch42IMO_Taiwan38Suckcomic38b96902HW37NTU37b94902HW35Doraemon30NTU-MAGIC26NTUDormM723NTUcourse21ONE_PIECE19b95902xxx18KSHS_Talk18b95902HW15NTNU_Lin_9615PLT15C_Chat14CSCouncil11PttCurrent11transgender9Translate-CS9VR9NTUDormG18Education7HSNU_10857KS93-3207NCKU-BEH957NDMC-D627PttNewhand7b99902HW6hikarugo6NtuDormM16youtuber6b96902xxx5b97902HW5CompilerDev5GO5L_LifeInfo5MJ5NSwitch5SummerCourse5tutor5Hsinchu4Liu4PushDoll4AppsForBBS3b98902HW3CSIE_WSLAB3Gossiping3Kao-KSHS3KS93-3163NARUTO3NTUST-DT93-23RSSH94_3013b97902xxx2ck50th3232ck55th3252ck58th3122CS_Badminton2CSIE_Mahjong2NANLIN3012NDHU-His962NTUDormFJr2NTUGIEE_EDA2PCman2PCSH91_3052PttSuggest2PttWeb2SFFamily2WinMine2Abin1AGO1Aquarius1Army-Sir1ASHS-93-li1AskaYang1B92310XXX1b99902xxx1blind_pc1Browsers1CCSH_92_3161CGU-MED-991CGU_EE981ck55th1201ck55th3241ck56th3181CK84Courage1CLHS-53-131CM38th071consumer1CPU_AM7011CPU_FC7311CSMU-MED941CTSH913021CTSH923051DaZhi6thH3021Eclipse1FJU-AM-901FJU-BA92C1FJU_GF1FSHS-94-3181Google1Grad-ProbAsk1Greenfield1HKday1Hoobastank1HORTUS-911HSNU_10731HSNU_9291HSNU_9381HSNU_9581HSNU_9851HSNU_9891HSNU_9901Hu_Yen_20041HY-40-Xin1ILSH-943131INSECT-901Itchie1Jay1JH30th3061Jinmen1joke1kekkai1KhalilFong1KS90-3091KS94-3151KS94-3211KS98-3021lab6211LD_IM93-21Linux1MATLAB1MDscience6th1Moto_GP1MuscleBeach1NCCU00_Stat1NCCU02_PSYCH1NCCU03_ETHNO1NCCU03_PF1NCCU04_MAT1NCCU04_Stat1NCCU98_RMI1NCCU99_Stat1NCHU-AGR001NCHU-AGR071NCKU-PH981NCUFingrad031Network1NIUECE911NTNU_bridge1NTOU-YP1NTPU-JLAW941NTPU_CK_CM1NTU-GIIB20021NTU-GIIB20041NTU95thLIS1NTUBIME-1021NTUCH-941NTUDormM61NTUE-Art961NTUE-CS1031NTUE_Nse961NTUE_Nse981NTUHistory881NTUHorti961NTUKGA1NTUMath911NTUMath941NTUMT-921NTUMystery1NTUNewPlace1NTUST-DT92-11NTUT_EE490A1NUTN_SSSS1Oguri_Shun1Old-Games1onlychild1Peitou29t3161Penny1PERCUSSION1PokeMon1PttHistory1Romances1RSSH93_3071SCU_ACCM971SM02th031SM05th3xx1SOFTSTAR1SSSH-13th3111STDM-87-3051Stephen1streetsinger1TFGCRC1THU-P-Softbo1TigerBlue1TMU9711Translation1TSH97_YK1Ur-hsing1VET_921w-inds1wegoJT3021WuLing46-3051WuLing46-3171YP91-3121YP92-3011YP92-3031YP94-3141<< 收起看板(253)
16F推: 不是不該用 char 陣列, 而是你要知道 char 陣列不等於字串12/07 22:59
17F→: strxxx 系列函數只能用在是字串的 char 陣列上12/07 23:00
18F→: 你的資料是從 /dev/urandom 裡複製來的所以是二進位資料12/07 23:00
19F→: 二進位資料不是字串所以不能用 strxxx 系列函數12/07 23:01
20F→: 所以只有 read 的回傳值 n 可信, 你要 write 也要用 n12/07 23:01
21F推: 話說回來, 既然是在練習 udp 傳輸, 一次就是固定一個大小12/07 23:04
22F→: 所以不管傳什麼資料都不是 strxxx 出場的時候12/07 23:04
23F→: 這也就是為什麼 read 這種 general 讀取的程式會回傳讀多少12/07 23:05
2F推: argv[0] 的大小只保證裝得下傳進來的字串12/05 18:51
3F→: 它後面有沒有其他字串是依執行環境而定12/05 18:51
4F→: 這裡的狀況是恰巧它後面緊接 argv[1] 所以 argv[1] 被蓋掉12/05 18:52
8F推: 就因為是自動幫你準備的參數所以沒轍, 你只能自己另外準備12/05 19:11
1F推: C 語言的部份你可以去找 extern 和 static 這兩個關鍵字12/04 17:18
2F→: (不是 C++ 的 static 喔, 那個另外還有 C++ 特有的意義)12/04 17:20
13F推: 什麼 fflush(stdin)... 不要亂教12/03 00:43
15F→: 這裡要 fflush 也是 fflush(stdout), 這個是可以用的12/03 00:44
16F推: 基本上是在猜測 printf 出來的東西因為被 buffer 住了12/03 08:25
17F→: 所以在推出去到螢幕之前就 sleep 了導致東西一次印出來12/03 08:27
18F→: fflush(stdout); 就是在強迫這些 buffer 住的東西印出來12/03 08:27
1F推: 你想要讓 testF 填入 p_entry 指向的東西, 那在傳進 testF12/02 19:13
2F→: 時就必須要給一個實際上指向那個 struct 的指標12/02 19:13
3F→: 你這樣寫變成傳入一個指向指標的指標, 所以就會有問題12/02 19:14
4F→: 正確的做法是 test_entry_t entry; testF(&entry);12/02 19:14
5F→: 或者如果你的 struct 是 malloc 來的話:12/02 19:14
6F→: test_entry_t *p_entry = (test_entry_t)malloc(...);12/02 19:15
7F→: testF(p_entry); 這樣子12/02 19:15
8F→: 啊, 上上行少一個 *, 總之意思應該到了12/02 19:16
11F推: 是轉型少了 *...12/02 19:18
1F推: 1. 要, 因為例如 "abcde" 佔的大小就是 6 byte12/02 01:05
2F→: 2. 語法不阻止你, 但最好不要, 尤其你又放在同專案編譯12/02 01:06
3F→: 這會造成連結時會發現兩個同名東西會不知道怎麼辦12/02 01:06
2F推: 觀念: getchar() 卡到讀到字為止, 要讀到字才有東西11/30 06:54
2F推: 後三個參數名字都跟你說了: actual 是實際值11/25 18:00
3F→: expected 是期待要有的值, fail 是失敗時寫錯誤訊息的函數11/25 18:00
4F→: actual 跟 expected 都是用來建構錯誤訊息的11/25 18:01
5F→: (可以看到在 fail(...) 裡面它們前面也有 # 字)11/25 18:01
6F→: 也就是這裡寫什麼錯誤訊息裡就會照樣出現什麼11/25 18:02
7F→: #condition 類似用途, 只不過這裡它會印出你的判斷式11/25 18:03
4F推: 一樓的方法其實就是自動化你所想到的方法11/23 23:51
5F→: 如果拿不到 stack trace 的話這不失為一個好方法11/23 23:52
6F推: 差不多, 不過函數本身一般參數即可, __FILE__ 用 char* 接11/24 00:11
7F→: __LINE__ 用 int 接11/24 00:11
8F→: 函數的參數名自己另外訂, 不能直接用 __FILE__ __LINE__11/24 00:12
16F推: 所以我前面就提了拿不到 stack trace 再說, 不然找那個最快11/24 02:25
20F→: 這其實就是 stack trace 實際上是怎麼追出來的方法11/24 17:44
21F→: 配合除錯資訊中哪裡到哪裡是哪個函式就能建構出 trace 了11/24 17:45
22F→: 但一般程式是不容易抓到這個地方的, 除非對環境很了解11/24 17:46
23F→: (ie. 能知道要怎麼去找到這個返回地址)11/24 17:46
24F→: 所以這種東西多半是 runtime 才會/才能提供11/24 17:47
1F推: constexpr 僅限呼叫有宣告為 constexpr 的函式11/22 00:24
2F→: 這些函式其函數內容當給定常數參數時可以靜態分析其值11/22 00:25
3F→: 而 constexpr 的規定有說這函數要編譯期可見11/22 00:26
5F→: 像 asin 這種連結期才知道的東西不能也不會宣告 constexpr11/22 00:26
8F→: 有個可能的實作法是這函數是模版, 這樣它編譯期一定可見11/22 00:28
9F→: 例如 std::numeric_limits<int>::max 就是這樣的例子11/22 00:28
10F→: 啊, 不用到那個, std::max 就是一個例子了11/22 00:29
11F推: 順帶一提, 標準規定的函式實作不能任意增減 constexpr 性11/22 00:38
12F→: 所以不會發生你家的 max 有但我家的 max 沒有結果爆炸11/22 00:38
16F推: 應該說標準規定有的就要有, 規定沒有的就要沒有11/22 05:40
17F→: 像我上面提的 max 標準都有 constexpr 所以實作也必須有11/22 05:41
18F→: 我猜原因可能還是一致性, 不會因為某個函數在某個實作上11/22 05:42
19F→: 有 constexpr 造成在其他編譯器上編不過11/22 05:42
20F→: en.cppreference.com/w/cpp/language/constant_expression11/22 05:43
21F→: 最下面 Notes 的那一段11/22 05:43