C_C++变量命名规则

变量命名规则是为了增强代码的可读性和容易维护性。以下为C++必须遵守的变量命名规则:

1、 变量名只能是字母(A-Z,a-z)和数字(0-9)或者下划线(_)组成。

2、 第一个字母必须是字母或者下划线开头。

3、 不能使用C++关键字来命名变量,以免冲突。

4、 变量名区分大小写。

变量命名规则:

一、             用最短字符表示最准确的意义。

二、             使用变量前缀。

1、  整型前缀

int               nId;           //int前缀:n

short             sId;            //short前缀:s

unsigned int      unId          // unsigned int 前缀:un

long              lId;             //long前缀:l

2、  浮点型前缀

float              fValue;      //float前缀:f

double             dValue;     //double前缀:d

3、  字符型前缀

char                chChar;    //char前缀:ch

4、  字符串前缀

char                szPath;     //char字符串前缀:sz

string              strPath;   //string字符串前缀:str

CString             strPath;   //MFC CString类前缀:str

5、  布尔型前缀

bool                bIsOK;      //bool类型前缀:b

BOOL                bIsOK;      //MFC BOOL前缀:b

6、  指针型前缀

char *              pPath;      //指针前缀:p

7、  数组前缀

int                 arrnNum;                   //数组前缀:arr

CString             arrstrName;    //数组前缀+类型前缀+名称

8、  结构体前缀

STUDENT             tXiaoZhang;     //结构体前缀:t

9、  枚举前缀

enum                 emWeek;          //枚举前缀:em

10、              字节的前缀

BYTE                 byIP;                   //字节前缀:by

11、              字的前缀

DWORD              dwMsgID;        //双字前缀:dw

WORD               wMsgID;           //单字前缀:w

12、              字符指针前缀

LPCTSTR             ptszName;       //TCHAR类型为ptsz

LPCSTR              pszName;                  //pcsz

LPSTR               pszName;                  //psz

13、              STL容器前缀

vector        vecValue;          //vector容器前缀:vec

14、              RECT矩形结构前缀

RECT                 rcChild;              //rc

CRECT                rcChild/             //rc

15、              句柄前缀

HWND                hWndDlg;         //h

HBRUSH              hBr;                    //h

HPEN                hPen;                 //h

HBITMAP             hBmpBack;       //h

16、              Windows颜色前缀

COLORREF            crFont;               //cr

17、              Windows DC前缀

CDC                 dcClient;           //dc

三、             类的成员变量以m_开头,后面为变量,变量同时还要加前缀。

CString                 m_strName;    //m_开头+类型前缀+名称

四、             定义一个变量,为了简化,在不影响变量意义的情况下,可仅仅使用前缀。

RECT                    rc;

五、             全局变量一律以g_开头,后面为变量,变量同时还要加前缀。

int                     g_ID;                  //g

六、             定义结构体,保证C和C++兼容,采用typedef语句,并且结构体类型全部大写,以T_开头,指针形式以PT_开头。

typedef            struct       tag TSTUDENT

{

int            nId;

CString     strName;

}STUDENT,*PSTUDENT;

STUDENT                  tXiaoZhang;     //完整定义结构体

七、             变量由多个单词组成,则每个单词的首个字母大写。

int                       nStudentID;

CString                   strStudentName;

八、             定义一个类以C或者T做为类名前缀。

class                     CMyListCtrl;

class                     TMyListCtrl;

九、             MFC控件绑定值类别或者控件类类别,需要以m_开头并且加前缀。

CEdit                      m_EDT_strValue;              //Edit绑定控件类别

CListBox                   m_LB_nName;                     //ListBox

CListCtrl                  m_LC_Name;                     //ListCtrl;

CComboBox                  m_CB_Name;                    /ComboBox

十、             控件ID尽量简化并表明控件类型和意义。

Button                     IDC_BNT_NAME;

Edit                       IDC_EDT_NAME;

ListBox                    IDC_LB_NAME;

ListCtrl                   IDC_LC_NAME;

ComboBox                   IDC_CB_NAME;

最新文章

  1. curl_init函数用法
  2. Linux ubuntu 10.10安装OpenCv
  3. checked Exception和unchecked exception
  4. String类详解,StringBuffer
  5. Ubuntu 安装
  6. 【大数阶乘】NYOJ-28
  7. web 前端 shopnc项目 首页分类一开始做前端,我是拒绝的
  8. 排序(4)---------希尔(shell)排序(C语言实现)
  9. .Net程序员学用Oracle系列(27):PLSQL 之游标、异常和事务
  10. poj2524 解题报告
  11. python-02 数据类型、字符编码、文件处理
  12. Django Models 查询操作
  13. ESLint学习小记
  14. Java 创建一个简单的验证码图片
  15. 报文分析4、TCP协议的头结构
  16. java中对list进行分页显示数据到页面
  17. Mybatis3.2不支持Ant通配符TypeAliasesPackage扫描的解决方案
  18. Eigen使用矩阵作为函数参数
  19. 使用InstallUtil发布windows服务
  20. WebJars are client-side web libraries (e.g. jQuery & Bootstrap) packaged into JAR (Java Archive) files

热门文章

  1. Mol Cell Proteomics. |赵赟| 全面地分析个人尿蛋白质组学的变化揭示出不同的性别变化
  2. CF10D/POJ2127 LCIS解题报告
  3. zabbix对tcp状态监控
  4. angularJs1.x 版本中 uib-tabset 如何默认激活不同的标签页
  5. Selenium WebDriver原理(二):Selenium是如何操纵浏览器的?
  6. Java定时任务的几种实现方式
  7. 在SpringBoot中使用Docker(利用dockerfile-maven-plugin插件)
  8. 系统启动与Linux的初始化_1
  9. c++11 多线程入门教程(一)
  10. 合理设置apache httpd的最大连接数--linux