C99变量命名之嵌入式改良匈牙利命名
标识符命名清晰,简明,有意义,使用完整英文单词,禁止使用单个字符,除了循环计数器外和汉语拼音.除头文件保护宏外,不使用下划线 _ 作为标识符的开头或结尾变量采用小写字母加下划线组合局部循环变量允许使用i、j、k 等单个字符;uint32_t current_power; /* 符合规范 */uint32_t audio_state; /* 符合规范 */uint32_t sbsbsbb; /* 不符合规范 */uint32_t wen_du; /* 不符合规范拼音 */核心逻辑: 前缀变量属性类型,主体业务含义前缀_变量命名_说明列表前缀全称含义事例g_global全局变量g_sys_clks_static文件静态局部变量s_cache_cntm_memberC 类成员变量m_dev_handleststruct结构体实体st_task_parampstptrstruct结构体指针pst_task_paramppointer普通指针p_buf系统型匈牙利嵌入式 C标记存储属性、数据类型g/st/pst/u32工业、单片机、驱动代码主流90 年代大量 C 语言嵌入式、单片机、驱动工程师学习 Windows 匈牙利命名思路自行简化改造吸收微软「前缀标记类型 作用域」的核心逻辑简化成嵌入式更短缩写st struct 结构体实体pst pointer struct 结构体指针g_ global 全局变量s_static 静态配套u8/u32/pu8这类硬件底层专用前缀。简单理解思路起源 Windows 老匈牙利但 st/pst/g_ 是嵌入式行业二次改造出来的分支规范。2. 历史脉络梳理70 年代匈牙利程序员 Charles Simonyi 发明应用匈牙利语义前缀和类型无关他加入微软后Windows 团队魔改成系统匈牙利写 Win32 API、MFC 并推向全世界这是所有带类型前缀命名的源头做单片机、Linux 驱动、工控的 C 程序员借鉴这套 “前缀编码信息” 思想简化、新增了st、pst、g_、s_这套简写形成嵌入式专属变体现在现状新版 Windows、现代 C 官方不推荐匈牙利命名但嵌入式、底层驱动、老工业代码至今还大规模用g_/st/pst。