作者查詢 / LPH66
作者 LPH66 在 PTT [ C_and_CPP ] 看板的留言(推文), 共6694則
限定看板:C_and_CPP
看板排序:
全部Math8895C_and_CPP6694Minecraft2011puzzle1798Little-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-21MATLAB1MDscience6th1Moto_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<< 收起看板(252)
3F→: 你為什麼會認為它們代表同樣的東西?10/01 16:25
16F→: 那這就是原 PO 講法不對了10/07 19:23
17F→: 真是要那個意思的話原 PO 應該貼 struct 宣告出來10/07 19:23
18F→: 而不是使用存取方式來表達結構10/07 19:25
3F推: 有的時候轉型的低階指令會不好做, 像一樓的就是 SIMD10/01 21:13
4F→: 用一加一減的做法在 SIMD 指令比寫轉型好做10/01 21:14
5F→: 四捨五入這回事會直接變成硬體邏輯在處理10/01 21:15
2F推: 置底十三誡之八08/31 12:39
1F推: insert_node 當中對 head_node 的改動沒有傳出來08/13 22:54
2F→: 請傳入這個指標的指標以改動你要的指標值08/13 22:54
6F推: 這題我印象中轉數字一定爆...08/08 22:15
7F→: 不管轉整數或轉浮點數都一樣08/08 22:16
1F推: 這裡用的是 C/C++ 裡當 string literal 併排時會合併的語法07/25 06:44
2F→: 例如你寫 "A" "B" "C" 和你寫 "ABC" 是一樣的意思07/25 06:44
3F→: 那這裡會是 "The square of " "y" " " 併排07/25 06:44
4F→: 其中 #x 如你所理解的變成了一個 string literal07/25 06:45
5F→: 然後套用這個合併語法就變成 "The square of y " 了07/25 06:45
6F→: 因此這裡並不是 #x 外面多一組引號07/25 06:45
7F→: 而是一個 string literal, 跟著 #x, 再跟著另一個 literal07/25 06:46
9F推: 對, 就單純是 macro 不會代換 string literal 裡的東西07/25 14:51
10F→: 個人認為這個 string literal 併排規則其實就是解決這問題07/25 14:52
11F→: 才發展出來的語法...07/25 14:52
12F→: string literal 裡的字編譯器除了會轉譯跳脫序列外只會照搬07/25 14:54
13F→: 這樣寫的人也不用擔心我寫的字串突然變了07/25 14:55
14F→: 那所以要代換 string literal 就需要一個在 "" 外的東西07/25 14:55
15F→: 這就是併排規則出場的時候了07/25 14:56
3F推: https://en.cppreference.com/w/c/language/generic07/23 09:56
4F→: C11 的新東西, 讓編譯器用式子的形態選式子執行07/23 09:56
4F推: 順便提一下, reference 確實在某種意味上「有存」型別長度06/27 03:16
5F→: 但它不是存在程式執行的記憶體裡, 而是編譯器會記著它06/27 03:17
6F→: 這也是為什麼型別簽名會被編譯器檢查出不合的部份原因06/27 03:17
3F推: 你只能手動改, C/C++ 沒有其他中繼語言類程式語言中會有的06/22 11:06
4F→: reflection 類的機制存在 (因為是編譯式語言的關係)06/22 11:07
5F推: 最接近的方式只有讓你的結構能用 get<> 存取06/22 11:11
6F→: 但這仍然需要在結構之外額外定義 get<N> 對這結構的特化06/22 11:11
7F→: 然後以下是我的水晶球: 我猜你大概是想要做些除錯列印06/22 11:15
8F→: 如果只是這樣的話你可以隨著結構額外維護一個列印函數06/22 11:16
9F→: 當結構有改時記得去列印函數裡增減06/22 11:16
14F推: 所以其實是成員的遍歷, 只是遍歷處理邏輯類似想抽出來06/22 14:20
15F→: 那這其實就是 visitor pattern, 把遍歷邏輯抽出來之後06/22 14:20
16F→: 寫一個處理函數手動列舉成員遍歷06/22 14:21
17F→: C++ 有 template 可以把遍歷邏輯寫的簡潔一點06/22 14:21
18F→: C 只能用 macro 達成類似的效果06/22 14:21
19F→: 但不管哪一個, 列舉成員這件事只能手動06/22 14:22
20F→: 就算要支援 get<> 存取也跑不掉手動指定哪一個抓哪一個06/22 14:23
28F推: 我不是說列舉成員用 macro 喔, 而是說處理函數用 macro 寫06/23 00:25
29F→: 然後手動把所有成員在 visit 函數裡列舉出來這樣06/23 00:29
30F→: 真的硬要的話, 是有一種有點微妙的寫法是06/23 00:44
31F→: 列舉成員也寫成 macro, 然後所有需要成員列表的程式碼改用06/23 00:48
32F→: 這個列舉 macro 來代入 (包含結構定義)06/23 00:48
33F→: 像是 https://ideone.com/R7mgyM 這個樣子06/23 00:49
34F→: 那這個寫法其實初看不好理解, 要新增處理也麻煩06/23 00:53
35F→: (要多訂一個 macro 再在要的地方引用)06/23 00:54
36F→: (↑事實上這個新 macro 就是我這段推文第一行說的處理函數)06/23 00:55
37F→: 那就看你的需求值不值得把結構和它的處理寫成這種麻煩樣了06/23 00:56
41F推: 嘛, 上面這招我是從 LLVM 學來的...06/24 10:48
42F→: 裡面有很多需要手動列舉某類的所有東西的定義和處理06/24 10:48
43F→: 這時他們會把列舉出來的這些東西獨立寫成一個 .def 檔案06/24 10:49
44F→: 當需要這份列舉時就定義處理的 macro 再引入該 .def 檔即可06/24 10:50
45F→: 我上面的寫法只是把那個 .def 檔案再寫成一個 macro 而已06/24 10:50
46F→: 那這裡原 PO 的要求裡正好列舉的東西是某結構的所有成員06/24 10:52
4F推: 這裡應該是指一個指標本身的常數性和指標指向值的常數性06/20 03:06
5F→: 常數性這種事是綁在變數上的, 只要有一個方式參照變數06/20 03:06
6F→: 那就能談論這個參照存取的常數性 (不可變性)06/20 03:06
7F→: 但當我們 assign 值出來時, 我們是複製值06/20 03:07
8F→: 因此這最頂層變數參照被我們解參照了, 其常數性不再有意義06/20 03:08
9F→: 因此講忽略有點簡略, 因為會忽略的原因是解參照取值了06/20 03:09
10F→: 在這個例子裡, int& 這是一個 C++ 參照, 參照一個變數06/20 03:10
11F→: 所參照的變數是 ci, 這裡是參照指定並沒有解參照取值06/20 03:11
12F→: 所以就算是頂層的常數性依然會保留06/20 03:11