讲师中心 微信公众号
AI工具推荐 视频效率加速

C++ 函数命名中的匈牙利命名法实践指南

夜瑶君_6714

夜瑶君_6714

发布时间:2024-08-18 17:21:05

|

863人浏览过

|

来源于php中文网

原创

匈牙利命名法使用前缀表示数据类型和作用域,以提高可读性并减少错误。类型前缀:i(整数)、f(浮点数)、c(字符)、sz(字符串)、b(布尔值)、arr(数组)、p(指针)作用域前缀:无(局部)、g(全局)、s(静态)最佳实践:使用一致的前缀,保持简短,必要时使用作用域前缀。

C++ 函数命名中的匈牙利命名法实践指南

匈牙利命名法实践指南

匈牙利命名法是一种命名约定,在变量和函数名称中使用前缀来表示其数据类型和作用域。这种做法最早由 Charles Simonyi 于 1970 年代在匈牙利程序员中推广,因此得名。

优点:

立即学习“C++免费学习笔记(深入)”;

  • 提高代码可读性和可维护性
  • 减少类型错误和逻辑错误
  • 对于使用不同数据类型的复杂项目特别有用

前缀约定:

类型 前缀
整数 i
浮点数 f
字符 c
字符串 sz
布尔值 b
数组 arr
指针 p

作用域约定:

作用域 前缀
局部(函数内部) 没有
全局(函数外部) g
静态(函数或模块中) s

实战案例:

C++ 算法竞赛自动化测试数据生成与校验框架
C++ 算法竞赛自动化测试数据生成与校验框架

根据原题生成新题面、验证器及完整测试数据,自动套用 testlib 模板,用于用户要求生成测试数据时。

下载

考虑以下 C++ 程序:

void printMessage(char* message) {
    printf("%s\n", message);
}

使用匈牙利命名法,我们可以将函数名和变量名重写为:

void print_szMessage(char* szMessage) {
    printf("%s\n", szMessage);
}

通过添加前缀,我们可以清楚地看到 szMessage 是一个字符数组,并且 print_szMessage 函数接受一个字符数组作为参数。

最佳实践:

  • 使用一致的前缀约定,以保持代码的统一性。
  • 保持前缀简洁,通常使用单字符。
  • 避免过度使用前缀,因为它可能会使名称过于冗长。
  • 在需要时使用作用域前缀,例如当需要区分局部和全局变量时。

错误示例:

避免使用以下错误示例中所示的不必要的或模棱两可的前缀:

int nNumber;  // "n" 前缀并不明确表示数据类型
bool bMale;    // "b" 前缀与标准布尔类型命名约定冲突

通过遵循这些最佳实践,您可以有效地使用匈牙利命名法来提高 C++ 代码的清晰度和可维护性。

热门AI工具

更多
Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

相关专题

更多
数据类型有哪几种
数据类型有哪几种

数据类型有整型、浮点型、字符型、字符串型、布尔型、数组、结构体和枚举等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2431

2023.10.31

php数据类型
php数据类型

本专题整合了php数据类型相关内容,阅读专题下面的文章了解更多详细内容。

494

2025.10.31

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

422

2026.02.12

全局变量怎么定义
全局变量怎么定义

本专题整合了全局变量相关内容,阅读专题下面的文章了解更多详细内容。

3765

2025.09.18

python 全局变量
python 全局变量

本专题整合了python中全局变量定义相关教程,阅读专题下面的文章了解更多详细内容。

1550

2025.09.18

c++ 全局变量
c++ 全局变量

本专题整合了c++全局变量的使用、定义、作用域等等内容,阅读专题下面的文章了解更多详细内容。

199

2026.03.17

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

1558

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

2264

2023.09.04

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

80

2026.09.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Conan 2 Essentials 免费课程
Conan 2 Essentials 免费课程

共0课时 | 0人学习

CMake 与 Conan 集成实践
CMake 与 Conan 集成实践

共0课时 | 0人学习

Conan 2 高级依赖模型介绍
Conan 2 高级依赖模型介绍

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn