tolua++ tolua_toxxx API 設計缺陷與正確使用模式
問題背景 tolua++ 綁定層常用 tolua_tonumber、tolua_tostring 等 API 從 Lua 堆疊取參數,原型: lua_Numbe
陣列越界導致變數被竄改:堆疊佈局與未定義行為深度剖析
案例現場 運算式堆疊 st[MAXSIZE] 與變數 top 在堆疊上相鄰,因條件判斷錯誤導致 st[-1] 寫入,實際修改了 top 的值。 錯誤程式碼片段
Linux 多執行緒程式設計:pthread 控制與同步機制精要
執行緒優勢 建立/銷毀開銷遠小於進程 共享進程位址空間,資料交換高效 典型應用場景 非同步事件處理 阻塞型 I/O 並發(如網路伺服器) 計算密集型任務
C 語言實作:輸入首字母猜星期幾(支援二次輸入區分)
需求分析 用戶輸入星期英文首字母,程式判斷對應星期幾。若首字母相同(T: Tuesday/Thursday,S: Saturday/Sunday),需提示輸入第
遞迴求解年齡問題:數學歸納法在程式設計中的應用
問題描述 5 人同桌,第 5 人比第 4 人大 2 歲,第 4 人比第 3 人大 2 歲……第 1 人 10 歲。求第 5 人年齡。 遞迴模型 1 程式
選擇排序法實作與分析:從冒泡排序到高效排序演進
程式碼審視 原標題「冒泡排序改良」,實際程式碼實作為選擇排序:每輪掃描未排序區間最小值,與首位交換。 完整可執行程式 #include <stdio.h
C 語言尋找質數:埃拉托斯特尼篩法變體實作 (0~100)
演算法思路 陣列標記法:建立大小 N 陣列,索引即數字。初始化每個索引為自身值。從 2 開始,若該索引值非 0 (即為質數),則將其所有倍數標記為 0。最後遍歷
電腦圖形學經典:Cohen-Sutherland 編碼裁剪演算法 C 语言完整实现
演算法原理 Cohen-Sutherland 線段裁剪演算法將平面分為 9 區域,每個端點賦予 4 位元編碼 (上/下/左/右),透過邏輯運算快速判斷線段完全內
C 語言 volatile 關鍵字深度解析:從硬體到編譯器優化
核心定義 volatile 告訴編譯器:該變數可能在程式不可見的情況下被修改(硬體、中斷、其他執行緒),每次存取必須直接讀寫記憶體,禁止寄存器快取與相關優化。
Linux 平台 C/C++ 開發基礎 (三):行程控制與訊號處理
建立子行程:fork() #include pid_t fork(void); // 子行程返回 0,父行程返回子行程 PID,失敗返回 -1 經典 for
Linux 平台 C/C++ 開發基礎 (二):I/O 模型深度解析
Unix 哲學:一切皆檔案 磁碟檔案、終端機、Socket、管道、裝置... 統一以 檔案描述符 (File Descriptor, FD) 代表,操作介面統一
Linux 平台 C/C++ 開發基礎 (一):核心架構與必要知識
Linux 系統程式設計分層架構 理解各層職責與介面,是高效開發的前提: 層級組件角色關鍵介面 硬體CPU、記憶體、磁碟、網卡...物理資源— 核心空間Lin
C 語言布林邏輯模擬:#define 定義 TRUE/FALSE 常數
背景:C89 無原生布林型別 C99 前 (stdbool.h 提供 bool, true, false) 需自行定義布林常數。慣例用整數 1 代表真、0 代表
C 語言 register 關鍵字:請求暫存器配置優化存取速度
register 核心語意 register 告訴編譯器:「盡可能將此變數放在 CPU 暫存器中」,以避免記憶體存取延遲。但這只是「建議」,編譯器可視暫存器可用
C 語言 auto 關鍵字:區塊作用域與變數遮蔽示範
auto 歷史與現狀 auto 是 C 語言最古老的關鍵字之一,早期用於明確宣告「自動儲存類別」區域變數 (預設行為)。C++11 後被重新定義為型別推導,但