【阅读笔记】《C程序员 从校园到职场》第三章 程序的样式(大括号)
参考: https://blog.csdn.net/zhouzhaoxiong1227/article/details/22820533
一、.初始化数组变量
在实际的软件开发项目中,变量在使用前应初始化,防止未经初始化的变量被引用。
对于数组变量来说,恰当的初始化样例如下:
char szString[100] = {0};
定义了一个名为szString的包含100个字节的数组变量,并将该数组中每个变量的初始值赋为0。
二、 定义和初始化结构体变量
结构体变量的定义方法的样例如下:
typedef struct
{
……
}T_Struct;
该结构体变量的初始化样例如下:
T_Struct tStruct = {0};
很多开发人员都不注重对结构体变量进行初始化,这是不对的。要牢记的是,任何变量在使用前,都应进行初始化。
三、用在if、else、else if、for、while、do等语句中
在实际的软件开发项目中,if、else、else if、for、while、do等语句用得较多,对这些语句的书写要求如下:
(1)自占一行,执行语句不得紧跟其后。不论执行语句有多少都要加“{ }”。
这样做的目的是便于阅读,同时也有利于代码的维护。
假设定义了两个整型变量iIntVal1和iIntVal2,如果iIntVal1的值小于iIntVa2,那么就将iIntVal2的值赋给iIntVal1,则正反示例为:
反例:
if (iIntVal1 < iIntVal2) iIntVal1 = iIntVal2;
这样写出来的程序可读性很差,不利于对流程的跟踪及对版本的维护。
正例:
if (iIntVal1 < iIntVal2)
{
iIntVal1 = iIntVal2;
}
该代码和反例中的代码相比,简洁清晰,让人一目了然。
(2)程序的分界符“{”和“}”应独占一行并且位于同一列,同时与引用它们的语句左对齐。“{ }”之内的代码块使用缩进规则对齐(一般缩进4个空格)。如上面(1)所示。
四、用在switch语句中
switch语句也经常出现在产品代码中,要想写出逻辑清晰、可阅读性强的switch语句,需要遵循以下规则:
(1)一定要加上default分支,即使case分支已经将全部情况都包括了。
这样做是为了防止其它代码阅读者误以为漏写了default分支,也可表现出开发人员的思维的全面性。
(2)一个case分支和default分支要用“{ }”括起来,“{ }”中的内容需要缩进(一般缩进4个空格)。
这样做可使程序逻辑清晰,可读性更好。
假设定义了一个整型变量iSwitchFlag,可取值1、2、3,用switch语句对每种可取值的情况分别进行处理,则示例为:
正例:
switch (iSwitchFlag)
{
case 1:
{
DoSomething1(); //缩进4个空格
break;
}
case 2:
{
DoSomething2(); //缩进4个空格
break;
}
case 3:
{
DoSomething3(); //缩进4个空格
break;
}
default: //一定要有default分支
{
DoNothing();
break;
}
}
3) break语句要写到 “case”或者“default”的“{}”里面,这样可以体现出程序块的整体性,便于阅读。
五、用在函数中
众所周知,一个函数中的所有语句是包括在“{}”之中的。除此之外,“{}”在函数之中还有其它用武之地。
(1)分隔功能关联不大的语句块
在某些函数中,可能包含了很多功能,但这些功能之间的关联性很小,可以当作独立的代码来对待。这时,可以用“{}”将这些不同功能的代码块区分开来,增强代码的可读性,也便于对函数的维护和修改。
假设有一个函数ExampleFun,包含了三个较为独立的功能A、B和C,则可以如下组织该函数的代码。
void ExampleFun(void)
{
//功能A代码块开始
{
//功能A的实现代码
}
//功能A代码块结束
//功能B代码块开始
{
//功能B的实现代码
}
//功能B代码块结束
//功能C代码块开始
{
//功能C的实现代码
}
//功能C代码块结束
}
这样的代码具有自说明性,便于阅读和维护,提高了工作效率。
(2)突出添加或修改的代码
在代码行数较多的函数中,如果要添加或修改的代码量很少,即与原本已有的代码比起来,显得“很渺小”。这时,可以用“{}”将添加或修改的代码括起来,以突出代码的改动,方便阅读及对代码进行走查等。
同样以函数ExampleFun为例来说明,如下所示:
void ExampleFun(void)
{
……
……
……
//修改或添加代码块开始
{
//修改或添加的代码
}
//修改或添加代码块结束
……
……
……
}
【阅读笔记】《C程序员 从校园到职场》第三章 程序的样式(大括号)的更多相关文章
- 【阅读笔记】《C程序员 从校园到职场》第二章 学校到职场
一.代码规范: 1.变量命名(让人一眼看它是什么意思,要做什么操作),定义并初始化 2.函数命名规范(函数的功能)在主函数之前进行声明. 在实际项目中,一般不在函数调用者的内部来对被调函数进行声明,而 ...
- 【阅读笔记】《C程序员 从校园到职场》第八章 算法和协议(Part 2)
原文链接: 让你提前认识软件开发(19):C语言中的协议及单元测试示例 CSDN博客 https://blog.csdn.net/zhouzhaoxiong1227/article/details/2 ...
- 【阅读笔记】《C程序员 从校园到职场》第七章 指针和结构体
原文地址:让你提前认识软件开发(13):指针及结构体的使用 CSDN博客 https://blog.csdn.net/zhouzhaoxiong1227/article/details/2387299 ...
- 【阅读笔记】《C程序员 从校园到职场》第六章 配置文件,makefile 文件 (Part 2)
Contents: 1.配置文件(通常以 ini 结尾) 2.makefile文件 (Linux) PS: 这篇文章的内容,不太理解. 一.配置文件 本文以一个实际的小软件为例,介绍了C语言中配置文 ...
- 【阅读笔记】《C程序员 从校园到职场》第五章 内存操作
参考: 让你提前认识软件开发(8):memset()与memcpy()函数 https://blog.csdn.net/zhouzxi/article/details/22478081 让你提前 ...
- 【阅读笔记】《C程序员 从校园到职场》第六章 常用文件操作函数 (Part 1)
参考链接:https://blog.csdn.net/zhouzhaoxiong1227/article/details/24926023 让你提前认识软件开发(18):C语言中常用的文件操作函数总结 ...
- 【阅读笔记】《C程序员 从校园到职场》第四章 变量和函数
参考: Contents: 一.数据类型(对基本数据类型进行重定义——规范化) 二.变量和函数 (命名规则,注意事项) 三.静态变量及其使用 一.数据类型(对基本数据类型进行重定义——规范化) 1. ...
- 《C程序猿从校园到职场》带领大家从校园走向职场
七夕节刚过.就有好消息传来:本人新书<C程序猿从校园到职场>正式出版并在各大电商平台上发售了! 以下.让我们一起来赞赏一下纸质书的"风採"吧. 本书文件夹 第1章 概述 ...
- 《C程序猿从校园到职场》勘误
(本人正在參加2015博客之星评选.诚邀你来投票,谢谢:username=zhouzxi">http://vote.blog.csdn.net/blogstar2015/candida ...
随机推荐
- Java 8新特性探究(二)深入解析默认方法
什么是默认方法,为什么要有默认方法 简单说,就是接口可以有实现方法,而且不需要实现类去实现其方法.只需在方法名前面加个default关键字即可. 为什么要有这个特性?首先,之前的接口是个双刃剑,好处是 ...
- winfrom 动态添加控件,以及删除
private void btnadd_Click(object sender, EventArgs e) { int fileCount = 0; ...
- css3动画实现伪弹幕效果
如图所示: 效果还可以直接用麦唱APP把一首歌分享到微信里面看到,方法类似全民K歌的方法,都是用css3动画实现的, 代码如下:(这是我做真实效果前的一个dome) 直接粘代码就可以看到效果,里面有两 ...
- js中use或者using方法
看Vue.use方法,想起了以前工作中别人用过的use方法. var YANMethod = { using:function() { var a = arguments, o = this, i = ...
- 设计一个带有getmin功能的栈,保证时间复杂度在O(1)
2017-06-22 20:56:10 需要得到最小值,最简单的思路就是遍历一遍求出最小值.但是这样的时间复杂度会是O(n),不满足O(1)的要求.于是想到在建立一个栈来保存最小值. 具体操作是建立 ...
- genome repeat sequence | 基因组重复序列
基因组里的小写字母的序列就是soft masking,也就是被标记的重复序列. 怎么把重复序列提取出来,保存为bed文件? 参考:Uppercase vs lowercase letters in r ...
- hdu-5985 概率DP
http://acm.hdu.edu.cn/showproblem.php?pid=5985 作为队里负责动态规划的同学,做不出来好无奈啊.思考了一个下午,最好还是参考了别人的思想才写出来,数学啊!! ...
- windows如何简单安装mongodb
windows如何安装mongodb 步骤: 1.下载地址 2.选择zip(解压版本) 3.压缩文件解压到 /D:盘 4.在 D:盘 下建一个 data文件夹,data下建 db文件夹: D: ...
- JavaScript高级程序设计笔记(一)
---恢复内容开始--- 前三章为基础知识,为了方便以后查看,所以比较啰嗦.这里对函数的基本操作没有记录. 1.JavaScript的实现 虽然 JavaScript 和 ECMAScript 通常都 ...
- Misha and Palindrome Degree CodeForces - 501E (回文串计数)
大意: 给定字符串, 求多少个区间重排后能使原串为回文串. 先特判掉特殊情况, 对于两侧已经相等的位置之间可以任意组合, 并且区间两端点至少有一个在两侧相等的位置处, 对左右两种情况分别求出即可. # ...