作者查詢 / LPH66
作者 LPH66 在 PTT [ C_and_CPP ] 看板的留言(推文), 共6694則
限定看板:C_and_CPP
看板排序:
全部Math8895C_and_CPP6694Minecraft2013puzzle1798Little-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)
18F推: 關鍵字: "多型" 有書的話去找這個地方仔細讀08/18 18:05
2F推: 可能是; C++ 有 template 所以可以 inline 比較函式08/14 07:49
3F→: 但 qsort 一定是(間接)呼叫08/14 07:49
4F→: 我沒實測過所以這只是推測就是了08/14 07:50
11F推: 喔對, 忘了它是 intro sort...08/15 00:01
46F推: 不過 restrict 只有 C99 有, C++ 因為多型的關係狀況複雜08/14 01:48
47F→: restrict 的語意碰上多型會有麻煩所以目前一直都沒有規定08/14 01:48
48F→: (連 restrict 在 C++ 都不是關鍵字)08/14 01:49
49F→: 雖然 g++ 有提供 __restrict 給 C++ 用但我不太清楚語意08/14 01:50
50F→: 修正一下, 是 C99 以後的 C 才有08/14 01:52
4F→: 他就是在問那個 bit 欄位的底層分配...07/21 06:44
5F推: 一般來說沒附字尾的整數是 int, 除非 int 裝不下07/19 08:22
6F→: 裝不下的時候會有一定的程序往上試型態, 試到裝下了就用07/19 08:22
7F→: 這是為什麼 0x80000000 是 unsigned int 的原因07/19 08:22
8F→: 1<<31 則是 1 和 31 這兩個常數進行運算07/19 08:23
9F→: bitshift 看左邊, 1 是 int 所以結果就是 int07/19 08:23
10F→: 這就是為什麼一般對 bitmask 的值會寫成 1U<<31 的原因07/19 08:24
11F→: 加個 U 就是說這個 1 是 unsigned int07/19 08:24
12F→: 順帶一提的是, C/C++ 沒有負 literal, 所有看起來是負數的07/19 08:25
13F→: 常數都是正常數加負號, 所以某些負值會產生很意外的結果07/19 08:26
2F推: 因為你單寫 1 的型態是 int, 寫 1UL 才是 unsigned long07/18 00:04
3F→: 0x80000000 則比較有趣, int 裝不下, 它變成 unsigned int07/18 00:06
3F推: 他就是要 Result0 編譯錯誤...不過倒是可以 #else #error07/12 04:31
7F推: 樓上正好在這裡不對, 因為 execlp 是可變參數07/02 18:32
8F→: 第三參數之後是被 ... 抓起來的, 所以放 NULL 會變成數字 007/02 18:33
9F→: 必須要真的傳進一個指標才行, 所以才需要 (char*) 轉型07/02 18:33
10F→: https://linux.die.net/man/3/execlp07/02 18:34
11F→: > since these are variadic functions, this pointer must07/02 18:34
12F→: > be cast (char *) NULL.07/02 18:34
13F→: 所以理論上單傳 nullptr 也是錯的, 也需要轉型07/02 18:35
14F→: (因為 nullptr 的型態是 std::nullptr_t)07/02 18:36
8F推: 這裡其實不是 TCHAR/wchar_t/char 的問題06/18 06:33
9F→: 而是 MySQL API 只收 const char * 的關係06/18 06:33
10F→: 雖然我沒用過, 但根據我在 PHP 的經驗, 這個 const char *06/18 06:33
11F→: 字串的編碼應該是先前 set names 所設定的編碼06/18 06:35
12F→: 那麼當原 PO 手上有的是 wchar_t 時, 就必須要先轉碼成06/18 06:35
13F→: 對應編碼的 const char * 字串再送進去06/18 06:35
14F→: 如果是 set names utf8; 的話, 用上面推文講的 windows API06/18 06:36
15F→: WideCharToMultiByte() 函數就可以轉了, 詳情可查 MSDN06/18 06:37
16F→: 這裡反而當使用 TCHAR 會搞亂, 因為如果 TCHAR 是 char 時06/18 06:37
17F→: 要先把這個 char* 字串轉成 wchar_t* 的 Unicode 字串06/18 06:39
18F→: (使用的是上面那個函式的反向版 MultiByteToWideChar() )06/18 06:39
19F→: 再轉成 UTF-8 字串才能送進去06/18 06:40
20F→: 比 TCHAR 是 wchar_t 時多了一個步驟06/18 06:40
21F→: 如果原 PO 沒有想要維護兩個版本的程式那建議不要 TCHAR06/18 06:41
22F→: 而就直接使用 wchar_t 就行了06/18 06:41
32F推: ...要不要來做個實驗? 就印個 "一" 字就好06/18 21:03
33F→: ......等等我看到了你的但書: 只限 ASCII Code = =06/19 10:04
34F→: 不過就算這樣還是不行的...除非你的 char buffer 別有用途06/19 10:05
35F→: 再不然就是你以為是 _UNICODE 其實是 _MBCS06/19 10:07
36F→: 所以 TCHAR 還是 char, 那自然可以 sprintf 到 char06/19 10:07
37F→: 這似乎也能解釋為什麼你會有只限 ASCII 的但書在06/19 10:08
45F推: 不好意思, TCHAR 是 Visual Studio 獨有的東西06/19 14:38
46F→: 就是為了一支程式能藉給定 _UNICODE 或 _MBCS 編出不同版本06/19 14:39
47F→: 所以不會有 printf 的 %? 語法, 只會有 _stprintf 的 %s06/19 14:40
48F→: 用 printf 印一個 TCHAR 一定是搞錯了什麼06/19 14:40
49F→: 然後, sql 敘述並不只會有拉丁字母, 指定欄位名和給值時06/19 14:48
50F→: 都會需要給定實際字串內容, 這正是 MYSQL_SET_CHARSET_NAME06/19 14:48
51F→: 的用途; 我不相信一個有一定規模的資料庫會沒有字串資料06/19 14:49
52F→: 甚至在開一個表格時對字串欄位都需要給定編碼了06/19 14:50
53F→: 雖然我只能猜測, 但它 API 設計只吃 char* 的理由06/19 14:50
54F→: 很有可能就是為了相容各種編碼, 因此只能以最原始的 char*06/19 14:50
55F→: 進行傳送, 再使用所設定的編碼進行解釋 / 填入資料庫06/19 14:51
56F→: 那為了要給定正確的編碼給這些欄位, 這樣子的轉碼是必須的06/19 14:51
57F推: _s 的函數需要傳入目標空間的最大大小, 位置在空間後面06/20 23:14
58F→: 所以你需要 swprintf_s(szDir, MAX_PATH, L"%s%s*", ...)06/20 23:15
59F→: 關於 wcstombs, 它需要配合 C 語言的 locale 介面來使用06/20 23:30
60F→: 問題是 setlocale 的設定方式是跟系統相關的06/20 23:30
61F→: 那這樣倒不如直接使用所在系統的 API 來做轉換06/20 23:31
62F→: 以你的狀況就是 Windows API06/20 23:31
6F推: 你這篇文章的問題在講了很多什麼是 API, 但沒講 API 是什麼06/09 12:48
7F→: 而這偏偏正是原 PO 最想問的事情06/09 12:49