宏、內聯函數與普通函數深度對比:展開機制、類型安全、性能權衡與工程規範
三者本質區別速覽 維度宏 #define內聯函數 inline普通函數 處理階段預處理(文本替換)編譯(符號表內聯展開)編譯/鏈接(調用指令) 參
C 語言可變參數格式化字符串封裝:xm_vsprintf_ex 一行調用
痛點 每次需要格式化字符串都要寫: va_list ap; va_start(ap, fmt); char *buf = malloc(len); vsprin
C++ std::list 迭代器失效完全指南:erase/remove 正確用法與避坑實戰
核心結論 erase(it) 使 it 失效,返回下一個有效迭代器。 remove(val) 刪除所有等值元素,返回 void,不提供下一迭代器。
C++ 虛函數機制深度解析:父子類構造/析構順序、多態調用與覆蓋vs隱藏
核心規則速覽 構造函數不能是虛函數(創建對象時類型已確定)。 析構函數應聲明為 virtual(基類指針刪除派生對象時保證正確析構)。 虛函數實現
C 調用 Python 常見異常排查指南:模塊導入失敗、屬性錯誤與語法陷阱
場景:嵌入式 Python 解釋器調用 使用 Python.h API(PyImport_ImportModule、PyObject_GetAttrString
C 語言 fflush 深度解析:標準流緩衝機制與實戰陷阱
緩衝模型速覽 全緩衝:填滿緩衝區才刷新(如文件預設)。 行緩衝:遇換行符刷新(如 stdout 連終端)。 無緩衝:立即輸出(如 stderr)。 核心行
C 語言輕量級 XML 生成器:靜態緩衝區與縮進控制實現
設計目標 無第三方依賴,純 C 標準庫。 支持任意嵌套深度的標籤縮進。 提供開始標籤、結束標籤、屬性值標籤三種原語。 輸出目標可重定向(文件、
ftruncate 截斷文件必須搭配 fflush 與 rewind 完全指南
問題現象 直接調用 ftruncate() 截斷文件時,常遇到內容殘留、文件大小不變、後續讀寫出現亂碼或 \0 字符等異常。根因在於 標準 I/O 緩衝區與文件
C++ struct 與 class 深度對比:默認訪問權、繼承語義、模板參數與聚合初始化
核心結論:只有一個關鍵字的區別 struct 與 class 在 C++ 中功能完全等價,唯一差別在於默認訪問控制: 特性structclass 默認
C 語言計算文件 MD5 值完整實現(含 16/32 位輸出)
架構概覽 md5.h / md5.c:RSA Data Security 參考實現,提供 MD5Init/Update/Final 三大核心 API。
C++ 指針自增運算符深度解析:*p++ vs (*p)++ vs *++p
核心規則:運算符優先級與結合性 運算符優先級結合性含義 ++ (後綴)最高左→右先取值,再自增 * (解引用)高右→左取指針指向的值 ++ (
多字符常量深度解析:32 位 int 如何裝下四個字符
現象:conn 竟是一個整數 C/C++ 允許在單引號中放入多個字符,形成多字符常量: int what = conn; // 合法,類型為 int 運行結
*p++ vs (*p)++ vs *++p