C 語言 const int* p 與 int* const p 徹底解析:誰被修飾、誰不可變
核心口訣:從右向左讀 指針聲明中,const 修飾緊鄰其右側的實體 (或左側無右側實體時修飾左側)。 兩種經典形式對比 聲明讀法 (右→左)含義可修改項 c
C 語言 printf 格式化輸出完全手冊:格式符、標志、寬度、精度、長度修飾符
調用格式 int printf(const char *format, ...); int fprintf(FILE *stream, const char
C 語言結構體內存對齊規則詳解:#pragma pack、屬性屬性、大小計算實戰
為什麼要對齊? CPU 訪問內存以字 (Word) 為單位 (32位機 4B,64位機 8B)。變量地址若為其大小的整數倍,單指令完成訪問;否則需兩次總線事務拼
Linux 用戶態獲取納秒級時間:clock_gettime 完整使用指南
核心 API #include int clock_gettime(clockid_t clk_id, struct timespec *tp); 時
深度解析 CPU 高速緩存架構:原理、映射機制、偽共享與程序優化指南
為什麼需要 Cache? CPU 主頻 (GHz) 與內存延遲 (ns) 差距巨大。以 i5-2400S (2.5GHz) 為例: 時鐘週期:0.4ns L1
C 語言字串連接函數 strcat 與 strncat 差異詳解與安全實踐
函數原型 char *strcat(char *restrict dest, const char *restrict src); char *strncat
C 語言函數指針完全指南:聲明、調用、回調、跳轉表與泛型演算法
函數指針基礎 函數指針指向可執行代碼入口地址,本質是代碼區指針。聲明語法: // 函數原型 int max(int a, int b); // 函數指針變數
C 語言條件編譯完整指南:#if、#ifdef、#ifndef、#elif、#else、#endif 用法詳解
條件編譯概述 預處理器根據常量表達式值或宏定義狀態,決定哪些代碼參與編譯。實現跨平台適配、調試開關、版本裁剪、防重複包含等核心功能。 指令速查表 指令功能典
C 語言單鏈表核心操作完整實現:創建、遍歷、插入、刪除、查找、排序、反轉
數據結構定義 typedef struct Node { int data; struct Node *next; } Node, *PNod
C 語言 do-while(0) 慣用法深度解析:宏定義、錯誤處理、代碼塊封裝
為什麼要用 do { ... } while(0)? 這是 C 語言中廣泛使用的編譯期技巧,利用 do-while 循環恰好執行一次的特性,構建一個獨立的語句塊
STM32F4xx 中斷驅動 GPIO 模擬 I2C 總線:狀態機實現與回調機制
設計動機 主流 GPIO 模擬 I2C 多為輪詢延時,佔用大量 CPU 周期。本實現採用定時器中斷推動狀態機,實現非阻塞、後台自動化的 I2C 主機控制器。
將 Arduino 作為純 AVR 開發板使用:Eclipse + AVR Plugin 工具鏈避坑指南
核心思想 Arduino UNO 本質是 ATmega328P MCU + 預燒錄 Bootloader + Arduino IDE 預編譯庫。若只想用它作通用
藍牙遙控小車製作實錄(二):Arduino 控制邏輯與串口指令解析
專案現狀 車體機械結構已搭建完成,包含底盤、雙電機驅動輪、萬向輪、Arduino UNO 主控板、L298N 電機驅動模組、HC-05/HC-06 藍牙模組、電
Linux 進程間通信 (IPC) 七大機制全景總結
概覽 進程間通信 (IPC) 是作業系統提供的協調機制,解決獨立地址空間進程間的數據交換與同步。Linux 提供 7 種經典 IPC 方式,各有優勢適用場景。
素數高效判定算法完全指南:從試除法到 Miller-Rabin 確定性測試與 C 實現
算法演進全景 算法時間複雜度確定性適用範圍實現難度 試除法O(√n)✅n < 10^12極簡 優化試除 (6k±1)O(√n/3)✅n < 10^14簡
不相交集 (Union-Find) 數據結構 C 實現:路徑壓縮、按秩合併、完整測試與應用場景
核心 ADT 設計 // uf.h #ifndef UF_H #define UF_H typedef struct UF *UF; UF uf_creat