Socket 協議設計升級:從自定義協議到 Google Protobuf 實踐與性能分析
痛點:自定義協議的維護地獄 項目早期採用自定義二進制/文本協議,面臨: 解析代碼冗餘:每新增字段需同步修改發送端打包、接收端解析、長度計算、版本兼容邏輯。 效
C++ 指針與引用深度對比:底層機制、賦值語義、const 綁定、函數參數選型完全指南
核心區別速覽 特性指針 (Pointer)引用 本質存儲地址的變量,獨立內存單元變量的別名,不佔用額外內存(概念上) 初始化可延遲,可為 nullptr必須在
C/C++ typedef 完全指南:四大核心用法、與 #define 本質區別、跨平台類型定義最佳實踐
typedef 四大核心用法 1. 簡化結構體聲明(C 語言必備) // 無 typedef:C 中必須寫 struct Tag struct Studen
C 語言指針進階:跨函數修改實參值、多級指針參數、動態內存跨函數傳遞完全圖解
核心原則:C 語言只有值傳遞 函數參數傳遞本質是拷貝實參的值。若要在被調函數中修改主調函數的變量,必須傳遞該變量的地址(指針)。 一級指針參數:修改指向的值
C 語言基礎速查:數據類型佔用字節、運算符優先級、表達式求值、強制轉換、自增自減陷阱
數據類型佔用字節(Linux x64 / ILP64 模型) 類型字節數示例/備註 char1char ch=a; short int2 int4 long
進程創建與終止全生命周期:從雙擊 EXE 到 ExitProcess
Windows/Linux 統一啟動流程 Shell 啟動:雙擊/命令行 → Shell 調用 CreateProcess (Win) / fork+exec
C/C++ 函數參數傳遞機制深度解析:值、指針、引用的本質區別
四種交換函數對比 // 1. 值傳遞:無法修改實參 void Exchg1(int x, int y) { int tmp = x; x = y;
C++ String 類手寫實現:深拷貝、運算符重載、三大/五大法則完整演示
核心設計要點 動態內存管理:char* data 指向堆內存,負責釋放 深拷貝語義:拷貝構造、賦值運算符必須分配新內存並複製內容 自賦值檢查:if (this
閱讀源碼利器:GCC -E 預處理輸出消除條件編譯干擾
痛點場景 大型項目中充滿 #ifdef/#if/#else 條件編譯,直接閱讀源文件時,被大量灰色代碼干擾,難以聚焦當前構建配置下的實際邏輯。 一條命令解決
直接插入排序算法詳解:原理、優化、哨兵機制與性能分析
基本思想 假設數組 R[1..n],初始 R[1] 自成有序區,無序區為 R[2..n]。第 i-1 趟(i=2..n)將 R[i] 插入有序區 R[1..i-
Windows 開發中 LPCTSTR 與 std::wstring 相互轉換指南
類型本質 LPCTSTR = const TCHAR*,指向寬字符(Unicode 構建)或窄字符(MBCS 構建)的只讀指針。 std::wstring =
C++ extern 關鍵字詳解:跨文件變量聲明與 const 變量鏈接特性
核心概念:聲明 vs 定義 定義:分配存儲空間,可初始化。一個程序中有且僅有一個定義。 聲明:告知類型與名字,不分配空間。可多次聲明。 extern int
C++ 學習書籍推薦:從入門到進階的經典組合
核心教材推薦 《C++面向對象程序設計——基於Visual C++ 2010》 以面向對象技術為核心,系統講解標準 C++ 語法與編程技術。 利用調試工具深度
C 語言宏定義(#define)深度解析:無參、帶參、嵌套、與函數區別
一、無參數宏定義 #define PI 3.1415926 #define R 3.0 #define L 2*PI*R // 可使用已定義宏 #de