C 語言預處理器進階:# 字串化、## 符號連接與 __VA_ARGS__ 可變參數巨集實戰
一、 # 字串化運算子 在類函式巨集替換部份,# 將巨集參數轉換為字串常值。過程稱「字串化」。 #define PSQR(x) printf(the squar
C++ 調用 C 函式完整指南:extern "C" 機制、頭檔改造與鏈接實戰
一、 核心問題:名稱修飾 C++ 支援函式多載,編譯器會對函式名進行名稱修飾,編碼參數型別等資訊生成唯一符號。C 編譯器不修飾,符號即函式名。直接混合編譯會導致
C/C++ 中 struct 與 typedef struct 差異深度解析:跨語言、別名機制與宣告陷阱
一、 核心差異:C 語言 vs C++ 1. C 語言:必須用 typedef 建立型別別名 // 寫法 A:帶標籤 + typedef typedef st
Linux 網路程式設計:使用 ioctl 與 socket 獲取本機網卡 IP 位址完整指南
一、 核心方法:ioctl + SIOCGIFADDR (單網卡) 適用於已知網卡名稱 (如 eth0) 獲取 IPv4 位址。 #include <sy
雙向鏈結串列 (C 語言) 完整詳解:結構、操作、通用實現與巨集擴展技巧
一、 雙向鏈結串列基本概念 每個節點包含三個域:data (資料)、prior (前驅指標)、next (後繼指標)。兩條鏈向相反方向,支援雙向遍歷,插入/刪除
C 語言記憶體與指標進階:參數傳遞陷阱、動態記憶體回傳與野指標根治
一、 指標參數傳遞記憶體的核心誤區 若函式參數是指標,在函式內對該指標重新分配記憶體 (malloc),無法影響呼叫端的原始指標。 錯誤示範 void Get
C 語言指標與記憶體管理:分配方式、常見錯誤與指標/陣列深度對比
一、 記憶體分配三大方式 靜態儲存區:編譯期分配,程式全生命週期存在。如全域變數、static 變數。 堆疊:函式執行時自動分配區域變數,函式結束自動釋放。速
STM32 SysTick 定時器實現精準微秒/毫秒延遲函數詳解
前言 STM32 核心內建的 SysTick 定時器是實現精準延遲的首選工具。本文詳細解析基於 SysTick 普通倒數模式的 delay_us、delay_m
C 語言 volatile 關鍵字深度解析:從原理到避坑指南
前言:volatile 是什麼? volatile 告訴編譯器:「這個變數的值可能在程式不可控的情況下發生變化,請不要優化對它的存取,每次都要直接從記憶體讀寫。
徹底掌握 C 指標:指向指標的指標(雙重指標)詳解
前言:指標基礎回顧 在深入探討「指向指標的指標」之前,我們先快速回顧一下指標的核心概念。指標本質上是一個變數,其值為另一個變數的記憶體位址。透過指標,我們可以間
Linux epoll 事件類型完整解析:EPOLLIN/OUT/PRI/RDHUP/ERR/HUP 觸發條件與邊緣觸發實戰
epoll 核心事件類型 事件宏觸發條件說明 EPOLLIN可讀:新連線到達、資料到達、對端正常關閉最常用,包含聽套接字接受連線 EPOLLOUT可寫:發送緩
C/C++ sprintf 完整使用指南:格式化、浮點數控制、字串連接、位址輸出與回傳值技巧
sprintf 基礎原型 int sprintf(char* buffer, const char* format, ...); 將格式化結果寫入 buffe
C/C++ 二維陣列指標完整解析:行指標、列指標、遞減轉換與地址等價關係
核心概念:行指標 vs 列指標 二維陣列名 a:指向**第一行**的行指標,型別 int (*)[COLS]。 一維陣列名 a[0], a[1]:指向**第一
C++ const 深度解析:參數、回傳值、成員函數與 mutable 例外
const 修飾函數參數 輸入參數:加 const 保護 指標/引用傳遞:void func(const char* p); void func(const
軟體介面交互與易用性改進總結:智慧記憶、減少重複、導航優化
前言 優秀的使用者體驗源於細節打磨。本文歸納三大面向 21 條具體改進準則,涵蓋智慧記憶、減少重複交互、導航與介面跳轉,可作為 UI/UX 審查清單。 一、軟
C++ STL map 完整使用指南:構造、插入、查找、迭代與效能優化
map 核心特性 關聯式容器,**鍵值對一對一映射**,鍵唯一(multimap 允許重複鍵)。 底層**紅黑樹**實作,**元素按鍵自動排序**(預設 st
C++ 經典筆試題精解:鏈表反轉與 String 類完整實作
題目一:單向鏈表反轉 目標:將 1→2→3→4→5 反轉為 5→4→3→2→1,原地操作,O(n) 時間,O(1) 空間。 核心邏輯:三指標迭代法 next