C/C++ 數值轉換陷阱:從一道面試題深入剖析整型提升與編譯器行為
看似簡單的題目「d=1, -d 等於多少?」實則暗藏玄機。本文將從一個經典的 C/C++ 面試題切入,層層剖析整型提升、無符號數運算、編譯器選項對代碼行為的深遠
C++Builder ZIP 壓縮解壓、目錄複製刪除整合類:ZLIB DLL 動態呼叫
類別設計 ZipAndFile 整合三大功能: ZIP 壓縮/解壓(動態載入 ZLibWrap.dll)。 目錄遞迴複製。 目錄遞迴刪除(含唯讀屬性處理、當前
C++ 安全整數比較:處理有號/無號混合比較的完整模板實作
問題 assert(-1 < 1U); // 失敗!-1 被提升為無號大數 4294967295 C++ 整數提升規則導致有號負數轉為巨大無號數,比較結果違背直
C++Builder 多執行緒下載實作:TCriticalSection 同步與自動釋放
架構概覽 全域 TCriticalSection* CS 保護共享資料。 執行緒類別繼承 TThread,覆寫 Execute。 FreeOnTerminat
C++ Primer 重讀筆記(七):函式設計精要與進階特性
何時避免傳值(改用參考/指標) 需在函式內修改實參值。 大型物件傳值拷貝成本高。 型別不可拷貝(如 std::unique_ptr、std::mutex、st
C++ Primer 重讀筆記(六):陳述式控制流程與除錯技巧
空陳述式加註解 while (cin >> val) // 讀取直到失敗 ; // 故意空主體,加註解提高可讀性 switch 預設標籤必
luabind coroutine resume 斷言失敗 Bug 分析與修正
現象 使用 luabind::resume_function 啟動 coroutine,Lua 腳本有語法錯誤時,C++ 端 call_function.hpp
luabind 擴充實作:為 Lua 物件新增 obj_size() 取得長度
背景 Lua 5.1+ 使用 # 運算子取得物件長度(table 元素數、字串長度)。table.getn() 已棄用。luabind 未直接暴露 lua_ob
C++ Primer 重讀筆記(五):運算式評估序、位元操作、記憶體管理與型別轉換
求模/餘數與負數 C++ 標準規定:a % b 的結果符號與 a 相同(C++11 起)。但在 C++98/03 中,若運算元含負數,結果為實作定義。跨平台程式
C++ Primer 重讀筆記(四):陣列與指標現代最佳實務
現代 C++ 原則 優先使用 std::vector 與 std::string,僅在效能關鍵路徑的類別內部實作才考慮原始陣列與指標。 指標初始化鐵律 int
C++ Primer 重讀筆記(三):標準庫 string 與 vector 核心用法
string 輸入行為 cin >> s:跳過前導空白,讀取至下一個空白為止(空格、換行、定位字元)。 範例:輸入 Hello World
C++ Primer 重讀筆記(二):變數與基本型別核心總結
字面值後綴與型別 後綴型別範例 L / llong1L U / uunsigned1U UL / ulunsigned long1UL F / ffloat3
C++ Primer 重讀筆記(一):快速入門關鍵點
第一章核心觀念 每個 C++ 程式必須有 main 函式,且它是作業系統唯一顯式呼叫的函式。 std::endl 不僅換行,還會刷新緩衝區(flush),除錯
C/C++ 輕量級日誌巨集:分級輸出、零開銷、易整合
設計動機 標準 C/C++ 無內建日誌庫,printf 無分級控制。 log4cpp 等重型庫引入成本高、編譯慢、部署麻煩。 需求:極簡標頭檔、編譯期開關、分
C/C++ 二維動態陣列三種分配策略效能與易用性大比拚
方法一:一維陣列模擬(手動計算索引) col; int* arr = new int[row * col]; // 存取:arr[row * col + c
從零打造簡易 String 類別:Str 完整實作與設計考量
設計目標 參考《Accelerated C++》實作一個精簡且功能完整的 Str 類別,涵蓋建構、複製、輸入輸出、連接、索引、大小查詢,並展示運算子多載、型別轉
std::string 字符數組轉換三大函數:c_str()、data()、copy() 差異全解析
函數簽名與行為對照 函數回傳/輸出結束符生命週期常見用途 c_str()const char*有 (\0)臨時,下次非 const 操作失效C API 互操作