C++基础 学习笔记之一:源代码的格式化
C++基础 学习笔记一:源代码的格式化
1. 源代码中的标记与空白
C中的语句是以分号表示语句的结束。在C中空格和回车以及制表符均为相同作用,即三者通常可以互相替代。
例如可以将一个简单的main函数这样写:
int main(){cout<<endl;return 0;}
也可以这样写:
int main
() {cout
<<
endl;return
0;}
都可以通过编译。
空白
空格和回车以及制表符统称为空白。
标记
代码中不可分割的元素叫做标记,标记与标记之间需要用空白分开(括号,分号,逗号等符号可以不用分开)。
2. 源代码格式化(仅供参考)
上面的两个例子均可通过编译但是可读性不强,为了便于阅读需要遵循合理的风格,命名规则。
风格规范
- 每条语句尽量占一行,对于过于长的语句可以将语句用换行符切割成易读的较短的代码行。
- 每个函数都将花括号独占一行
- 函数的语句都要对函数体进行层级相对缩进。
- 函数的括号和函数名在同一行,参数过长要保持左括号与函数名再同一行。
- 空循环体可以用
continue;代替。 - 合理运用行注释和块注释
命名规则
- 类名首字母大写,名称为名词
- 方法(函数)名建议用动词命名首字母小写
- 变量名全部用小写
- 整个项目都遵循一种命名规则
命名规则推荐
没有一种命名规则是所有人都赞同的,但是有一些著名的命名规则现罗列在此。
匈牙利命名法
匈牙利命名法是由Microsoft程序员查尔斯·西蒙尼(Charles Simonyi) 提出的。其主要思想是“在变量和函数名中加入 前缀以增进人们对程序的理解。
匈牙利命名法关键:
标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合, 该单词要指明变量的用途,但这种命名法对于跨平台移植简直是灾难 。
形式如下:
全局变量名=范围前缀+下划线+类型前缀+数组前缀+自定义命名
局部变量名=类型前缀+数组前缀+自定义命名
函数命名=类型前缀+自定义命名
控件命名=控件前缀+自定义命名
控件事件命名=控件名称+下划线+事件名称
程序文件命名=模块名缩写+自定义命名
特点:
含义明确,便于程序维护、提高工作效率,但是繁琐。
基本原则
变量名=属性+类型+对象描述。
属性:
全局变量 g_ 常量 c_ 类成员变量 m_ 静态变量 s_ 类型部分
指针 p 函数 fn 句柄 h 长整型 l 布尔 b 浮点型(有时也指文件) f 双字 w 字符串 sz 短整型 n 双精度浮点 d 计数 c(通常用cnt) 字符 ch(通常用c) 整形 i(通常用n) 字节 by 字 w 实型 r 无符号 u 描述部分
最大 Max 最小 Min 初始化 Init 临时变量 T(或Temp) 源对象 Src 目的对象 Dest 举例:
hwnd :
h 是类型描述,表示句柄, wnd 是变量对象描述,表示窗口,所以 hwnd 表示窗口句柄;
pfnEatApple :
pfn 是类型描述,表示指向函数的指针, EatApple 是变量对象描述,所以它表示指向 EatApple 函数的函 数指针变量。
g_cch :
g_ 是属性描述,表示全局变量,c 和 ch 分别是计数类型和字符类型,一起表示变量类型,这里忽略了对 象描述,所以它表示一个对字符进行计数的全局变量。
**骆驼(Camel)命名法 **
骆驼式命名法(Camel-Case)一词来自 Perl 语言中普遍使用的大小写混合格式,而 Larry Wall 等人所著的畅销书 《Programming Perl》的封面图片正是一匹骆驼。 骆驼式命名法的命名规则可视为一种惯例,并无绝对与强制,为 的是增加识别和可读性。
驼峰法(小驼峰法)
变量一般用小驼峰法标识。驼峰法的意思是除第一个单词之外,其他单词首字母大写。常用于函数名。
Pascal法(大驼峰法)
相比小驼峰法,大驼峰法把第一个单词的首字母也大写了。常用于类名,属性,命名空间等
下划线命名法
下划线法是随着C语言的出现流行起来的,在UNIX/LIUNX这样的环境,以及GNU代码中使用非常普遍,用小写字 母和下划线来构成变量或函数名,每个逻辑断点处用下划线来标记。
C++基础 学习笔记之一:源代码的格式化的更多相关文章
- 尚学堂JAVA基础学习笔记
目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...
- 0003.5-20180422-自动化第四章-python基础学习笔记--脚本
0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...
- 【C#编程基础学习笔记】4---Convert类型转换
2013/7/24 技术qq交流群:JavaDream:251572072 教程下载,在线交流:创梦IT社区:www.credream.com [C#编程基础学习笔记]4---Convert类型转换 ...
- 【C#编程基础学习笔记】6---变量的命名
2013/7/24 技术qq交流群:JavaDream:251572072 教程下载,在线交流:创梦IT社区:www.credream.com [C#编程基础学习笔记]6---变量的命名 ----- ...
- 1.C#基础学习笔记3---C#字符串(转义符和内存存储无关)
技术qq交流群:JavaDream:251572072 教程下载,在线交流:创梦IT社区:www.credream.com ------------------------------------- ...
- Java基础学习笔记总结
Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...
- Mysql数据库基础学习笔记
Mysql数据库基础学习笔记 1.mysql查看当前登录的账户名以及数据库 一.单表查询 1.创建数据库yuzly,创建表fruits 创建表 ) ) ,) NOT NULL,PRIMARY KEY( ...
- Java基础学习笔记(一)
Java基础学习笔记(一) Hello World 基础代码学习 代码编写基础结构 class :类,一个类即一个java代码,形成一个class文件,写于每个代码的前端(注意无大写字母) XxxYy ...
- C#RabbitMQ基础学习笔记
RabbitMQ基础学习笔记(C#代码示例) 一.定义: MQ是MessageQueue,消息队列的简称(是流行的开源消息队列系统,利用erlang语言开发).MQ是一种应用程序对应用程序的通信方法. ...
随机推荐
- 添砖加瓦:几种常见的数据摘要算法(MD5、CRC32、SHA1和SHA256)
1.算法概述 数据摘要算法是密码学算法中非常重要的一个分支,它通过对所有数据提取指纹信息以实现数据签名.数据完整性校验等功能,由于其不可逆性,有时候会被用做敏感信息的加密.数据摘要算法也被称为哈希(H ...
- kafka&&kafka-manager部署安装
一.zk集群部署 二.kafka部署安装 1.创建kafka用户和日志路径,(直接执行) groupadd kafka useradd -g kafka kafka mkdir -p /web/kaf ...
- HTC新机A9足以取代iPhone 你相信吗?
你相信吗?" title="HTC新机A9足以取代iPhone 你相信吗?"> 自信和嘴硬之间,往往就是成功与失败的分水岭.乔老爷子当年推出iPhone.iPad等 ...
- Allenmind's Blog
听说,Sass和Compass更配哟.来看看Compass的基本用法! 目录 Compass和Sass 安装Compass 项目初始化 编译 Compass的模块 Compass的Helper函数 一 ...
- GLPI 0.85.5 上传漏洞分析
在exp-db上面看到的漏洞,这是原文链接:https://www.exploit-db.com/exploits/38407/ 但是POC给的很简单,这是原来的描述: " The appl ...
- 原创:Python爬虫实战之爬取代理ip
编程的快乐只有在运行成功的那一刻才知道QAQ 目标网站:https://www.kuaidaili.com/free/inha/ #若有侵权请联系我 因为上面的代理都是http的所以没写这个判断 代 ...
- 浅谈了解JDBC
目录 前言 作用 JDBC的架构 步骤 JDBC常见的关键字解释 前言 Java数据库连接,是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法.J ...
- 初学Qt——vs2012开发环境下的窗体跳转
最近接了份外快,要求使用vs+qt开发一个简单的数据管理系统.qt开发使用的语言是c++,然而c++只是大一第二学期有教过而已,基本也差不多忘光了,废话不多说,讲下今天遇到的问题吧 如标题所说,窗体跳 ...
- Java入门教程三(流程控制)
概述 程序有 3 种结构:顺序结构.选择结构和循环结构.分别为:if elseswitch case,while与do while,for, foreach,return,break ,continu ...
- Web网页布局的主要方式
一.静态布局(static layout) 即传统Web设计,网页上的所有元素的尺寸一律使用px作为单位. 1.布局特点 不管浏览器尺寸具体是多少,网页布局始终按照最初写代码时的布局来显示.常规的pc ...