C/C++命名风格

分享到:

存在C/C++中的四种命名风格:

帕斯卡(Pascal)命名法

    将标识符的首字母和后面连接的每个单词的首字母都大写。可以对三字符或更多字符的标识符使用Pascal 大小写。

    例如: MyFirstValue

骆驼(Camel)命名法

    将标识符的首字母小写,而每个后面连接的单词的首字母都大写。

    例如:myFirstValue

匈牙利命名法 

    匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。

   例如:iFirstValue

UNIX命名法

   K&R命名法是所有标示符的字母小写,单词之间通过下划线分割

   例如:my_file_value

第一种风格和第三种风格是MFC或者说MS的程序员大量使用的风格,他们会还会在全局变量前加g_,在成员变量前加m_;

第二种风格是面向对象语言所使用的风格;

第四种风格是很多Unix/Linux程序员所使用的风格,包括STL、boost库、Linux系统都使用这种风格,私有成员函数前面会加_。

我自己的风格更倾向与第二种风格,为什么呢?如果我们大量定义了自己的类型,那我们使用匈牙利命名法就会遇到麻烦,会出现很多的重名前缀,如果我们只是去标示原始类型那代码会产生混乱,这样的价值标示的价值也不再存在。我们使用帕斯卡法来命名了类,再去用帕斯卡命名成员或者成员函数会混淆类和普通成员之间的区别。个人的风格如下:

命名空间:使用全小写

类:使用帕斯卡命名法

成员函数和数据成员:使用驼峰命名法,区别局部变量和参数的时添加this指针表明

更重要的是我们所处的开发平台和环境也决定了我们的代码风格和命名风格,如果你去做linux kernel开发那就使用Linux kernel风格吧,如果你是用Qt来做开发,那你就使用Qt代码所使用的风格。
昵    称:
验证码:

相关文档:

  • C程序运行时内存结构分析
    静态变量存储在静态存储区,局部变量存储在动态存储区(栈),代码存放在代码区 寄存器,EBP指向栈底,ESP指向栈顶,EIP指向正在执...
  • C++ 异常堆栈跟踪器:libcsdbg
    libcsdbg 是一个 C++ 异常堆栈跟踪器。当异常被抛出、捕获和处理时,libcsdbg 提供可工具来创建和处理异常堆栈的跟踪,并通过调用堆栈来...
  • 异步DNS解析C语言库 c-ares
    c-ares 是一个用来异步的执行 DNS 请求和名字解析的 C 库。...
  • 免费的C/C++的线程库
    免费的C/C++的线程库...
  • C语言字符串处理库 cstring
    cstring 是一个小型、简单的C类库,用来操作C语言风格的字符串。...
  • 五个好的C语言编程实践
    前几天,我看到一个关于编程语言的调查,我发现到目前为止,C 编程语言在全球开发者中仍然稳居前三。如此多的代码使用C来编写,我...
  • C++界面库:DuiEngine
    一个C++界面库. 1. 作者将金山的BKWin进行了深度改写,从而使之更易于使用和开发。相比传统的WTL而言,DUIEngine增加了许多窗口特效,...
  • 用于 Web 的 C++ 编译器:Duetto
    Duetto通过允许编程人员做如下的事情,来组合emscripten和node.js的优势用C++编写web应用,重用现有的代码,并且使得移植到浏览器的应用和...
  • C++书籍推荐
    本文内容来自国外著名编程问答网站Stackoverflow评选的C++推荐书单!推荐大家看原版英文,但这些书大部分也都有中文版!...
  • java嵌入c,c++程序指南
    本文为在 32 位 Windows 平台上实现 Java 本地方法提供了实用的 示例、步骤和准则。本文中的示例使用 Sun Microsystems 公司创建的 Java Developmen...
  • C++ Resources Compiler - 生成 C++ 源码文件
    C++ Resources Compiler 是一个工具,用来生成一个 C++ 源码文件,包括相应的头文件,用以嵌入任意数据文件并提供一个 Resource 类用来访问这...
  • C语言编译器 nwcc
    nwcc 是一个Unix系统的C语言编译器,支持 FreeBSD/OpenBSD/Linux/Solaris on 80x86 (with nasm and gas), FreeBSD/Linux on AMD64 (with yasm and gas), Solaris on SPARC (64-bi...
  • C++ 解析器 Cling
    Cling 是一个交互式的 C++ 解析器,基于 LLVM 和 C++ 的前端 clang。可用于替换当前 C++ 解释器 CINT,比 CINT 强...
  • 一个 C++ 的基准测试管理库:Celero
    对代码进行持续性开发和有意义的基准测试是一个复杂的任务。虽然测试工具本身(Intel® VTune™ Amplifier, SmartBear AQTime, Valgrind)与应用程...
  • C++11 多线程:数据保护
    在编写多线程程序时,多个线程同时访问某个共享资源,会导致同步的问题,这篇文章中我们将介绍 C++11 多线程编程中的数据保护。...
  • Windows版GCC TDM-GCC
    TDM-GCC 是 Windows 下的编译器套件。...
  • C/C++文件操作,数据处理
    在ANSI C中,对文件的操作分为两种方式,即流式文件操作和I/O 文件操作,这里我们只介绍流式文件操作。(1)FILE...
  • C语言哈希表 uthash
    uthash 是一个C语言的哈希表,支持各种结构类型的存储、添加、删除,这些操作都在固定的时间完成,跟哈希表本身的大小无关。键也可...
  • C++获取时间的方法
    C++获取时间的方法...
  • C语言的hash表实现:uthash
    uthash是一个C语言的hash表实现。它以宏定义的方式实现hash表,不仅加快了运行的速度,而且与关键类型无关的优点。 uthash使用起来十...