C 語言中級知識體系總覽:sizeof、對齊、指標、結構體、前置處理與函數進階
一、sizeof 關鍵細節 **編譯期常數** (VLA 除外),不產生執行期指令。 `sizeof(型別)` 需括號,`sizeof 變數` 可無括號。 `
C 語言面試題精選詳解 (一):關鍵字、記憶體、指標、演算法與系統基礎
一、關鍵字與儲存類別 1. `static` 三大用途 場景效果範例 函數內區域變數靜態儲存期,保持值跨呼叫,僅初始化一次`static int count
C 語言從零手寫 Linux Shell:內建指令、外部程式執行、管道與重導向雛形
設計理念 Linux 指令分內建 (Shell 進程直接執行,如 `cd`, `exit`, `export`) 與外部 (獨立可執行檔,如 `ls`, `gr
C 語言進階指南 (一):整數型別轉換陷阱與記憶體分配最佳實踐
第一部分:整數型別轉換 — 隱形殺手 經典陷阱:有號與無號比較 long i = -1; if (i < sizeof(i)) { //
Linux 進程間通訊實戰:共享記憶體 + 信號量實現生產者-消費者模型
背景 父進程從鍵盤讀取文字行,經由**共享記憶體**傳遞給子進程,子進程寫入檔案。使用 **System V 信號量** 同步雙向存取,確保「寫一行、通知一次、
OpenGL GLSL 透視投影矩陣 C 語言完整實作
專案架構 本範例展示使用 GLSL 330 + C (GLUT/GLEW + vmath) 實現 3D 透視投影渲染管線。著色器負責頂點變換與著色,C 端負責建
Linux 多線程基礎:線程專屬資料與 Shell 模擬實作
一、線程專屬資料(Thread-Specific Data, TSD) POSIX 線程提供 pthread_key_t 機制,讓同一進程內不同線程擁有同名但獨
Linux 線程池實戰:條件變量與互斥鎖構建生產者-消費者模型
專案背景 本文展示一個基於 POSIX 線程(pthread)的線程池範例:多個計算線程 產生數列項(1/i),兩個消費者線程 分別執行「累加」與「交替加減」聚
Linux TCP 服務實戰:帶超時處理的並發伺服器完整實作
概覽 本文完整呈現一個基於 select() 多路復用、fork() 多進程並發、支援連線超時的 TCP 伺服器與對應客戶端。涵蓋 Socket 建立、綁定、監
C 語言效能優化:減少運算量的兩大核心策略
前言 程式優化的第二大方向 (第一是減少記憶體存取) 是**減少 CPU 運算指令數**。本文歸納兩大核心思路:演算法層面降低複雜度與實作層面消除冗餘運算。
Objective-C KVC(鍵值編碼)核心機制與實戰指南
什麼是 KVC? Key-Value Coding (KVC) 是 Objective-C 提供的一種間接存取物件屬性的機制:以字串為鍵,透過 valueFor
Objective-C 靜態方法與靜態屬性深度解析
前言 在 .NET 體系中,static 關鍵字佔據核心地位——靜態方法與屬性無需實例化即可直接呼叫。Objective-C 同樣擁有 static 關鍵字,但
C 語言結構體記憶體對齊完整指南:原理、計算、pragma pack 實戰
為什麼要對齊 CPU 存取記憶體以「字」為單位 (32 位 = 4 字節,64 位 = 8 字節) 未對齊存取需兩次總線週期讀取高低位拼湊,效能大幅下降 某些
C 語言五子棋勝負判定演算法:掃描四方向 O(1) 高效實作
問題背景 五子棋盤面 15×15 或 19×19,每落一子需即時判斷是否形成五連珠。暴力掃描全盤 O(N²) 過慢,**僅掃描最新落子周圍四方向** 可達 O(
C 語言實現霍夫曼樹與霍夫曼編碼完整指南
霍夫曼樹定義 給定 n 個權值 {w1, w2, ..., wn},構造含 n 個葉子節點的二叉樹,葉子權值為給定權值,**帶權路徑長度 (WPL) 最小**
Objective-C 自定義物件歸檔解檔:NSCoding 協議完整實現
NSCoding 協議 自定義物件若要支援歸檔 (序列化) 必須實現 `NSCoding` 兩個必要方法: - (void)encodeWithCoder:(