作者查詢 / 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)
10F推: NULL 其實是個很有趣的東西03/04 18:10
11F→: 版上的 C 語言常見誤解對此有詳細說明, 可以去看看03/04 18:10
12F→: 簡單說就是 NULL 和 0 之間的關係沒有你想的那麼單純03/04 18:12
13F→: 然後 C++ 還有 nullptr, 這個也請看版上講空指標常數那一篇03/04 18:14
15F推: 剛才找了一下跟 if 相關的東西, 我的印象沒錯03/05 04:00
16F→: C 的 if() 裡面是當做數值, 概念上等同於多寫一個 != 003/05 04:01
17F→: 這也是因為 C 語言沒有單獨的布林值, 所有判斷式都是 int03/05 04:01
18F→: 判斷條件成立則結果為整數 1, 不成立則為整數 003/05 04:02
19F→: 但 C++ 由於有獨立的 bool 型態, if() 裡面是轉成 bool03/05 04:03
20F→: 再看它究竟是 true 還是 false 決定03/05 04:03
21F→: 所以 if(s) 在 C 約等同於 if(s!=0)03/05 04:04
22F→: 但在 C++ 是約等同於 if((bool)s)03/05 04:04
17F推: placement new 只是把"要空間"跟"初始化"兩件事分開而已03/03 00:03
18F→: alignment 是"要空間"部份旳問題, 跟初始化無關03/03 00:03
19F→: 然後事實上 pA->Init() 跟 placement new 其實有 87% 像03/03 00:04
20F→: 最後, 問於一樓的問題, 如果 class 是 standard layout03/03 00:06
21F→: 那各元素的位置是確定的, 這時可以做一些手腳去達到對齊03/03 00:07
22F→: 不是 standard layout 基本上就不行了03/03 00:07
24F→: 倒過來, POD 是 standard layout 的一種03/03 00:11
25F→: 但 standard layout 可以包含一些有限度的繼承03/03 00:12
29F→: 喔, 那裡框框中那三行是 and 的關係, 不是 or 的03/03 00:20
30F推: placement new 是對任何 C++ 物件型態都能進行的操作03/03 00:29
31F→: 它就只是把你給的指標當做物件未來的所在地進行初始化而已03/03 00:30
33F→: 所以我才會說這跟你的 pA->Init() 有 87% 像03/03 00:32
34F→: standard layout 最大的好處是成員位置固定03/03 00:33
35F→: 因此可以拿來當做一些二進位資料交換的用途03/03 00:33
36F→: 那也因為位置固定, 所以只要知道想要對齊的成員是怎麼排的03/03 00:34
38F→: 就能調整開始位置使得其成員處在對齊的位置上03/03 00:34
39F→: serialization 是另一回事了, 這裡指的是整包寫出去那種03/03 00:35
40F→: 例如二進位檔案格式那樣03/03 00:35
42F推: 對, 這也是為什麼 offsetof() 可以用在 standard layout 上03/03 00:56
43F→: (或者該說「只能用在 standard layout 上」)03/03 00:57
4F推: 其實不用移, 直接補宣告就夠了03/02 22:42
19F推: >stupid0319 a[10] 不能用, a+10 倒是可以拿來比對03/02 00:24
20F→: 然後 &a[10] == &(*(a+10)) == a+10 所以也沒問題03/02 00:24
21F→: 這個是所謂 pointer to one-past-end, 可比對不可存取03/02 00:25
26F推: 對 a[10] 存取是未定義行為, 但比對指標是否為 a+10 合法03/02 10:04
27F→: 也就是這是 OK 的: for(char *p = a; p != a+10; p++) {}03/02 10:05
28F→: 在這樣的迴圈裡面的 p 只會指向 a[0]~a[9]03/02 10:06
29F→: 所以對其存取通通沒事03/02 10:06
30F→: 然後因為上面那行等式, a+10 可以改寫成 &a[10] 也是對的03/02 10:07
31F→: 也就是 a[10] 這樣的型式只在前面有取址時是合法的03/02 10:08
32F→: 沒有取址的話它不是存就是取都是非法的03/02 10:08
2F推: \r 是螢幕專用, 寫檔的話這些控制字元沒有用02/28 17:08
3F→: 最直覺的方式是 rewind(fout) 之後再寫入02/28 17:10
4F→: 不過要小心後來的資料太短沒有全部蓋掉的話會有殘餘留下02/28 17:10
5F→: 不過你已經有 \n 了那就是第一個換行之後的東西都別管就好02/28 17:11
6F→: 真的要全蓋掉的話可以考慮例如每次都多輸出固定數量的空白02/28 17:11
7F推: 1234.5 1234.5 跟 0.6 0.7 字元數就不一樣02/28 17:20
9F推: 可以啊, 不過既然要蓋掉舊資料那 rewind 稍微簡潔一點03/02 14:26
10F→: 你也可以直接寫 fseek(fout, 0, SEEK_SET); 意思是一樣的03/02 14:27
11F推: 高斯消去法一般不能直接寫成程式, 會有數值穩定度問題02/27 13:36
12F→: 一個小例子可見 #1EnRlkgw (Prob_Solve)02/27 13:36
27F推: 那個微軟 bug tracker 裡回文的 Geoff 的論點簡直奇文共賞02/27 06:33
28F→: compiler 也是程式, 做錯事就得修, 哪有一定要繞過的道理..02/27 06:35
29F→: 移掉三個 const 可以省掉 900K 程式各種意味上都是神奇02/27 06:36
1F推: 所以你已經懂了你上篇問的「函式後 const」的意思了嗎?02/23 01:36
2F→: 函式前的話, 那東西是回傳值, 所以就跟回傳值有關02/23 01:37
8F→: 如果有沒有 const 沒差的話寫 const 版就足夠了02/21 00:44
9F→: 有差的話用個 const_cast 把一種轉成另一種即可02/21 00:44
10F→: (即是四樓程式碼的做法)02/21 00:45
35F→: 簡單回應上面, 狀況一較接近 ILP64 ABI02/12 23:49
36F→: 但大家口中的 "64-bit" 多是 LP64 ABI,02/12 23:50
37F→: 所以會有 int 大小不同的狀況02/12 23:50
38F→: LP64 裡一般來說狀況三比較多, 但就如上面所說02/12 23:51
39F→: 在指定 pack struct 時會變成狀況二02/12 23:51