C_C++变量命名规则

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_BTN_NAME;

Edit                       IDC_EDT_NAME;

ListBox                    IDC_LB_NAME;

ListCtrl                   IDC_LC_NAME;

ComboBox                   IDC_CB_NAME;

 

http://www.zhangliangyi.com/post/18.aspx

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录 1、 C++对C的扩展 1 1简单的C++程序 1 1.1求圆的周长和面积 1 1.2初学者易犯错误模型 3 2程序设计方法的发展历程 4 3 C语言和C++语言关系 6 4 C++对C的加强 6 4.1 namespace命空间 6 4.2 “实用性”增加 6 4.3 register关键字增强 6 4.4变量检测增强 6 4.5 struct类型加强 6 4.6 C++中所有的变量和函数都必须有类型 6 4.7新增Bool类型关键字 6 4.8三目运算符功能增强 6 5 C/C++中的const 6 1 const基础知识(用法、含义、好处) 6 2 C中“冒牌货” 6 3 const和#define相同之处 6 4 const和#define的区别 6 5 结论 6 6引用专题讲座 6 1引用(普通引用) 6 2常引用 6 3 const引用结论 6 4const修饰类 6 5综合练习 6 7C++对C的函数扩展 6 1 inline内联函数 6 2 默认参数 6 3 函数占位参数 6 4 默认参数和占位参数 6 5 函数重载(Overroad) 6 8附录 6 附录1:C++语言对C语言扩充和增强的几点具体体现 6 附录2:C语言register关键字—最快的关键字 6 一、皇帝身边的小太监----寄存器 6 2、类和对象 6 1前言 6 2类和对象 6 2.1 基本概念 6 2.2类的封装 6 2.3 C++面向对象程序设计举例 6 2.4 作业 6 3对象的构造和析构 6 3.1构造和析构函数 6 3.2构造函数的分类及调用 6 3.3构造函数调用规则研究 6 3.4深拷贝和浅拷贝 6 3.5多个对象构造和析构 6 3.6构造函数和析构函数的调用顺序研究 6 3.7构造函数和析构函数综合练习 6 3.8 对象的动态建立和释放 6 4静态成员变量成员函数 6 4.1静态成员变量 6 4.2静态成员函数 6 4.3综合训练 6 5 C++面向对象模型初探 6 5.1基础知识 6 5.2编译器对属性和方法的处理机制 6 5.3总结 6 5.4 this指针 6 5.5全局函数PK成员函数 6 6 6友元 6 6.1友元函数 6 6.2友元类 6 7强化训练 6 1 static关键字强化训练题 6 2 数组类封装 6 3小结 6 8运算符重载 6 8.1概念 6 8.2运算符重载的限制 6 8.3运算符重载编程基础 6 8.4运算符重载提高 6 8.5运算符重载在项目开发中的应用 6 8.7附录:运算符和结合性 6 2、 继承和派生 6 3.1继承概念 6 3.1.1类之间的关系 6 3.1.2继承关系举例 6 3.1.3 继承相关概念 6 3.1.4 派生类的定义 6 3.1.5 继承重要说明 6 3.2派生类的访问控制 6 3.2.1单个类的访问控制 6 3.2.2不同的继承方式会改变继承成员的访问属性 6 3.2.3“三看”原则 6 3.2.3派生类类成员访问级别设置的原则 6 3.2.4综合训练 6 3.3继承中的构造和析构 6 3.3.1类型兼容性原则 6 3.3.2继承中的对象模型 6 3.3.3继承中的构造析构调用原则 6 3.3.4继承与组合混搭情况下,构造和析构调用原则 6 3.3.5继承中的同成员变量处理方法 6 3.3.6派生类中的static关键字 6 3.4多继承 6 3.4.1多继承的应用 6 3.4.2虚继承 6 3.5继承总结 6 4、多态 6 4.1多态 6 4.1.1问题引出 6 4.1.2面向对象新需求 6 4.1.3解决方案 6 4.1.4多态实例 6 4.1.5多态工程意义 6 4.1.6多态成立的条件 6 4.1.7多态的理论基础 6 4.2多态相关面试题 6 面试题1:请谈谈你对多态的理解 6 面试题2:谈谈C++编译器是如何实现多态 6 面试题3:谈谈你对重写,重载理解 6 #include <cstdlib> 6 #include <iostream> 6 using namespace std; 6 class Parent01 6 { 6 public: 6 Parent01() 6 { 6 cout<<"Parent01:printf()..do"<<endl; 6 } 6 public: 6 virtual void func() 6 { 6 cout<<"Parent01:void func()"<<endl; 6 } 6 virtual void func(int i) 6 { 6 cout<<"Parent:void func(int i)"<<endl; 6 } 6 virtual void func(int i, int j) 6 { 6 cout<<"Parent:void func(int i, int j)"<<endl; 6 } 6 }; 6 class Child01 : public Parent01 6 { 6 public: 6 //此处2个参数,和子类func函数是什么关系 6 void func(int i, int j) 6 { 6 cout<<"Child:void func(int i, int j)"<<" "<<i + j<<endl; 6 } 6 //此处3个参数的,和子类func函数是什么关系 6 void func(int i, int j, int k) 6 { 6 cout<<"Child:void func(int i, int j, int k)"<<" "<<i + j + k<<endl; 6 } 6 }; 6 void run01(Parent01* p) 6 { 6 p->func(1, 2); 6 } 6 int main() 6 { 6 Parent01 p; 6 p.func(); 6 p.func(1); 6 p.func(1, 2); 6 Child01 c; 6 //c.func(); //问题1 6 c.Parent01::func(); 6 c.func(1, 2); 6 run01(&p); 6 run01(&c); 6 system("pause"); 6 return 0; 6 } 6 //问题1:child对象继承父类对象的func,请问这句话能运行吗?why 6 //c.func(); //因为称覆盖,C++编译器不会去父类中寻找0个参数的func函数,只会在子类中找func函数。 6 //1子类里面的func无法重载父类里面的func 6 //2当父类和子类有相同的函数变量出现,发生称覆盖(子类的函数,覆盖了父类的函数。) 6 //3//c.Parent::func(); 6 //问题2 子类的两个func和父类里的三个func函数是什么关系? 6 面试题4:是否可类的每个成员函数都声明为虚函数,为什么。 c++编译器多态实现原理 6 面试题5:构造函数中调用虚函数能实现多态吗?为什么? c++编译器多态实现原理 6 面试题6:虚函数表指针(VPTR)被编译器初始化的过程,你是如何理解的? 6 面试题7:父类的构造函数中调用虚函数,能发生多态吗? c++编译器多态实现原理 6 面试题8:为什么要定义虚析构函数? 6 其他 6 4.3多态原理探究 6 4.3.1 多态的实现原理 6 4.3.2如何证明vptr指针的存在 6 4.3.3构造函数中能调用虚函数,实现多态吗 6 5、纯虚函数和抽象类 6 5.1基本概念 6 5.2抽象类案例 6 5.3抽象类在多继承中的应用 6 5.3.1有关多继承的说明 6 5.3.2多继承的应用场景 6 5.4抽象类知识点强化 6 5.5面向抽象类编程思想强化 6 5.4.1案例:socket库c++模型设计和实现 6 5.4.2案例:计算员工工资 6 5.4.3案例:计算几何体的表面积和体积 6 5.6 C面向接口编程和C多态 6 5.6.1函数类型语法基础 6 5.6.2函数指针做函数参数 6 5.6.3函数指针正向调用 6 5.6.4函数指针反向调用 6 5.6.5.C动态库升级成框架案例 6 5.6.6附录:诸葛亮的锦囊妙计 6
第 1 章 文件结构 1.1 版权和版本的声明 1.2 头文件的结构 1.3 定义文件的结构 1.4 头文件的作用 1.5 目录结构 第 2 章 程序的版式 2.1 空行 2.2 代码行 2.3 代码行内的空格 2.4 对齐 2.5 长行拆分 2.6 修饰符的位置 2.7 注释 2.8 类的版式 第 3 章 命名规则 3.1 共性规则 3.2 简单的 WINDOWS 应用程序命名规则 3.3 简单的 UNIX 应用程序命名规则 第 4 章 表达式和基本语句 4.1 运算符的优先级 4.2 复合表达式 4.3 IF 语句 4.4 循环语句的效率 ....................................................................................................... 29 4.5 FOR 语句的循环控制变量......................................................................................... 30 4.6 SWITCH 语句 .............................................................................................................. 30 4.7 GOTO 语句.................................................................................................................. 31 第 5 章 常量....................................................................................................................... 33 5.1 为什么需要常量 ....................................................................................................... 33 5.2 CONST 与 #DEFINE 的比较 ........................................................................................ 33 5.3 常量定义规则 ........................................................................................................... 33 5.4 类中的常量............................................................................................................... 34 第 6 章 函数设计 ............................................................................................................... 36 高质量 C++/C 编程指南, v 1.0 2001 Page 4 of 101 6.1 参数的规则............................................................................................................... 36 6.2 返回值的规则 ........................................................................................................... 37 6.3 函数内部实现的规则 ............................................................................................... 39 6.4 其它建议 .................................................................................................................. 40 6.5 使用断言 .................................................................................................................. 41 6.6 引用与指针的比较 ................................................................................................... 42 第 7 章 内存管理 ............................................................................................................... 44 7.1 内存分配方式 ........................................................................................................... 44 7.2 常见的内存错误及其对策 ........................................................................................ 44 7.3 指针与数组的对比 .................................................................................................... 45 7.4 指针参数是如何传递内存的? ................................................................................. 47 7.5 FREE 和 DELETE 把指针怎么啦? .............................................................................. 50 7.6 动态内存会被自动释放吗? .................................................................................... 50 7.7 杜绝“野指针” ....................................................................................................... 51 7.8 有了 MALLOC/FREE 为什么还要 NEW/DELETE ? ...................................................... 52 7.9 内存耗尽怎么办? ................................................................................................... 53 7.10 MALLOC/FREE 的使用要点 ...................................................................................... 54 7.11 NEW/DELETE 的使用要点 ........................................................................................ 55 7.12 一些心得体会 ......................................................................................................... 56 第 8 章 C++函数的高级特性 ............................................................................................ 57 8.1 函数重载的概念 ....................................................................................................... 57 8.2 成员函数的重载、覆盖与隐藏 ................................................................................ 60 8.3 参数的缺省值 ........................................................................................................... 63 8.4 运算符重载............................................................................................................... 64 8.5 函数内联 .................................................................................................................. 65 8.6 一些心得体会 ........................................................................................................... 68 第 9 章 类的构造函数、析构函数与赋值函数 ................................................................. 69 9.1 构造函数与析构函数的起源 .................................................................................... 69 9.2 构造函数的初始化表 ............................................................................................... 70 9.3 构造和析构的次序 ................................................................................................... 72 9.4 示例:类 STRING 的构造函数与析构函数 ............................................................... 72 9.5 不要轻视拷贝构造函数与赋值函数......................................................................... 73 9.6 示例:类 STRING 的拷贝构造函数与赋值函数........................................................ 73 9.7 偷懒的办法处理拷贝构造函数与赋值函数 ............................................................. 75 9.8 如何在派生类中实现类的基本函数......................................................................... 75 9.9 一些心得体会 ........................................................................................................... 77 第 10 章 类的继承与组合.................................................................................................. 78 高质量 C++/C 编程指南, v 1.0 2001 Page 5 of 101 10.1 继承 ........................................................................................................................ 78 10.2 组合 ........................................................................................................................ 80 第 11 章 其它编程经验...................................................................................................... 82 11.1 使用 CONST 提高函数的健壮性 .............................................................................. 82 11.2 提高程序的效率 ..................................................................................................... 84 11.3 一些有益的建议 ..................................................................................................... 85

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值