C++11 執行緒、鎖與條件變量入門(一):std::thread 基礎與異常處理
C++11 標準庫引入 <thread>、<mutex>、<condition_variable>,提供可攜式多執行緒支援。
C++ 開發者必掌握的 10 大 C++11 新特性(一):auto、nullptr、範圍 for 循環
C++11 引入大量新特性,本文精選 10 項應成為所有 C++ 開發者常規裝備的核心特性,首發 3 項。 1. auto:型別推導占位符 舊標準 auto
讓 C 程式更高效的 10 種方法(一):避免冗餘呼叫與記憶體存取優化
代碼之美在於簡潔、有效、緊湊與高效。本文介紹規範 C 代碼的 10 大原則(分兩部分),首兩項聚焦函數呼叫與記憶體存取優化。 0. 避免不必要的函數呼叫 反例
C 語言全域變數那些事兒(一):多重定義、強弱符號與連結器決議陷阱
全域變數是 C 語言語法語義核心知識點,需從三維理解:程式設計師眼中的變數、編譯/連結器眼中的符號、機器眼中的記憶體區塊。本文通過實例揭示非 static 全域
Apache 基金會決定廢棄 C++ 標準庫 stdcxx:開源生態的自然選擇
Apache 軟體基金會(ASF)董事會決議終止 Apache C++ 標準庫專案 stdcxx(原 Rogue Wave 商業庫開源)。 專案背景 200
二叉樹迭代器算法:從遞迴到顯式堆疊,再到 yield 語義的跨語言視野
二叉樹前/中/後序遍歷是遞迴經典應用,但實際應用需將遍歷抽象為迭代器,解耦演算法與資料結構。本文從遞迴遍歷出發,推導非遞迭迭代器實現,分析時空複雜度,並對比 y
Visual Studio 2013 對 C++11/14 標準支援現況:微軟的追趕之路
微軟歷來因 C++ 標準支援滯後遭詬病,C++98 尚未完全實現,C++11 發布近兩年,VS2013 僅實現「最重要部分」。GCC 與 LLVM 已更早全面支
Alan Cox 的單向鏈表 prev 指標妙用:延遲策略減少系統開銷
Linux 1.2.13 網路協議棧 /net/inet/dev.c 中,Alan Cox 使用 pt_prev 指標維護單向鏈表前驅節點,實現「延遲回調」策略
C 語言結構體成員偏移計算:從 offsetof 到零地址技巧的深度解析
結構體成員偏移是 C 語言核心功夫。本文通過兩個例子,層層遞進從庫函數到手工計算,最終揭示 Linux 核心廣泛使用的零地址技巧與 container_of 核
GCC 遷移至 C++ 實現:為什麼要用 C++ 編譯 C++ 編譯器?
2012 年 8 月 15 日,GCC 合併 cxx-conversion 分支,意味著 GCC 本身必須用 C++ 編譯器建構,原始碼全面轉向 C++。這引發
C++ 程式設計師自信心曲線:從「會寫 C++」到真正駕馭的漫漫長途
學習 C++ 多年,觀察過無數程式設計師的學習軌跡。C++ 是把「雙面刃」,唯有深諳其道者方能駕馭。Linus 曾言:「C++ 是門可怕的語言,更可怕的是大量不
世界上最簡單的無鎖哈希表:開放定址法與線性探測的 Lock-Free 實現
無鎖哈希表能提升多執行緒效能,但實作複雜度高、除錯極難(堆疊資訊失效、列印日誌改變時序)。可行策略是同時維護無鎖版與鎖版本,透過替換定位問題。本文分享一個極簡無
六個變態的 C 語言 Hello World:宏展開、指標運算與位運算的極致花式寫法
以下六個程式片段皆能在 GCC 編譯通過(最後一個需 G++),展示 C 語言預處理器、指標運算、位運算與控制流的極限花式寫法,純屬技藝展示,切勿用於生產代碼。
正確釋放 vector 記憶體:swap 技巧與 shrink-to-fit 實戰
在微博看到一個關於 std::vector 記憶體洩漏的疑問:呼叫 clear() 後記憶體未釋放,疑似洩漏。回覆指出:「vector 的 clear 不影響
最短的 C 語言崩潰程式:從除零錯誤到單一符號的極致精簡
寫一個會崩潰的 C 語言小程式,聽起來像是個奇怪的作業,但在某些教學實驗課中,這卻是極具教學意義的經典練習。這不僅能讓學生理解記憶體模型、編譯鏈接流程,更能深入
C++11 並發編程入門(一):std::thread、互斥鎖與條件變數完整指南
std::thread 基礎 頭檔 <thread>,支援普通函數、Lambda、仿函數,可傳遞任意參數(預設按值,需 std::ref 傳引用)。
30 分鐘掌握 C# 泛型:從 List什麼是泛型? 泛型讓你定義型別參數化的類別/方法,實際型別在使用時才指定。核心優勢:**程式碼重用 + 型別安全 + 效能(避免裝箱/拆箱)**。 基礎:Li
純 C 語言實現 Socket.IO 伺服器:基於 libev + GLib 的輕量級實戰
專案背景 純 C 實現 Socket.IO 伺服端,僅支援 Linux,依賴 libev(高效事件迴路)與 GLib(資料結構、正則、哈希表)。專案託管於 Gi