Google C++ 風格指南筆記(一):頭文件依賴管理
1. 前置聲明優於 #include 頭文件包含會引入編譯依賴,修改頭文件觸發連鎖重編譯。能用前置聲明(class Foo;)的地方盡量不用 #include。
Google C++ 風格指南筆記(五):格式規範
行長度 每行不超過 80 字符。 縮進 僅使用空格,禁用 Tab,每級縮進 2 空格。 函數聲明 ReturnType ClassName::Functio
C++ 編譯器函數編譯流程:名字查找、重載決議、存取檢查
三階段編譯期處理流程 對於 .cpp 中的函數呼叫 f(args...),編譯器依序執行: 名字查找:在可見作用域中尋找同名實體 重載決議:從候選集中選擇最佳
C++ 字元大小寫轉換:無分支位運算實作 (面試必考)
題目限制 實作 char toupper(char c)、char tolower(char c) 輸入保證為 ASCII 英文字母 [a-zA-Z] **嚴
C++ 解漢諾塔變體:盤子移動狀態合法性驗證
問題描述 經典漢諾塔:三根柱子 (左/中/右),N 個大小不同的盤子,小盤必須在大盤之上,一次移一個。本題變體:**給定任意中間狀態 (三柱盤子序列),判斷該狀
C++ 實用技巧 (四):極簡單元測試框架——十幾行巨集實現 IDE 整合
設計目標 零依賴、零配置、單一標頭檔 測試案例自動註冊、自動執行 (全域物件建構子) TEST_ASSERT(expr) 失敗即拋出異常 → IDE 直接定位
C++ 實用技巧 (三):手寫智慧指標——引用計數實作與循環參考陷阱
目標:實作一個 Ptr<T> 智慧指標 需求清單: 預設建構 → 空指標 裸指標建構 → 取得擁有權,最後一個 Ptr 銷毀時 delete 複製
C++ 實用技巧(二):內存管理、異常安全與 RAII
前言 接上篇內存洩漏檢測,本文深入剖析指針誤用導致的內存洩漏、野指針、異常安全問題,並給出現代 C++ 解決方案。 一、錯誤使用 memset/memcpy
C++ 實用技巧 (一):記憶體洩漏偵測與預防核心守則
一、Visual C++ 內建記憶體洩漏偵測:_CrtDumpMemoryLeaks 最簡單、最有效的偵測方式,僅需在主程式進入點加入: #define _CR
C/C++ 語言核心機制深度解析:關鍵字、記憶體、型別系統
關鍵字語義深度剖析 1. extern 函數前:無意義,函數預設即為外部連結 變數前:宣告為外部連結符號,定義在別處 調用慣例/動態庫/語言連結 (__cd
C++ 千分位分隔符格式化:面試題最佳解法與負數擴充
題目需求 實作 char* format_thousands_separator(unsigned long val),要求: 呼叫者無須釋放回傳指標 支援連
C++ 泛型排序器:支援任意容器與元素類型的統一介面
問題背景 STL 排序演算法各有限制: std::sort、partial_sort:需隨機存取迭代器 (vector, deque),不支援 list li
C++ 詞法分析器原型實作:從原始碼到 Token 流
專案背景 大學編譯原理課程作業:嘗試以 C++ (MFC) 實作一個簡易 C++ 詞法掃描器。程式碼雖未完工,但展示了核心流程:檔案讀取 → 字串分割 → 分界
C++ 模板類別陣列特化:實現固定大小容器的泛型封裝
動機:為何需要陣列特化? 標準泛型容器 (如 std::vector) 存儲單一類型物件。但若需求是「容器內每個元素皆為 同類型的固定大小陣列」,例如: AD
VB.NET 目錄遞歸複製與刪除完整實作範例
前言 檔案系統操作看似簡單,實則涉及權限、路徑處理、遞歸遍歷等細節。本文提供可直接用於專案的 VB.NET 靜態工具類,實現目錄樹的完整複製與刪除,包含完整錯誤
深入解析 C++ 浮點數二進制表示與 IEEE 754 標準
前言:一個令人驚訝的現象 考慮以下程式碼: int num = 9; float *pFloat = (float *)# printf(num