c语言之良好的编程习惯(二)

1.在使用变量时应该遵循一下良好的编程习惯。

<1>定义有意义的变量名,有助于程序自成文档,可以减少注释。

<2>用作变量名的标识符,第一个字母应该小写。大写字母开头和字母全部大写的标识符有专门的含义。

<3>变量名使用多个单词可使程序具有更好的可读性,这种情况下,需要将第一个单词外的每个单词首字母大写或在每个单词之间加入下划线_以区分不同的单词。

2.只有内建数据类型和函数对象类型适用于传值调用。对于其他类型,建议使用引用常量传参,而不是传值。因为引用常量参数的方式更高效,而且可以避免“截断问题”

3.定义的静态存储变量无论是全局的还是局部的,该变量定义和初始化都是在程序编译时进行的。在实际应用中,如果没有为静态变量赋初值,某些编译器进行编译时,可能会出

错,为了安全起见,应该在声明变量时进行初始化。

4.并非所有的递归数学公式都可以转为递归程序。在递归结构进行大型程序设计时,需要考虑到可理解性和效率之间的关系。

5.任何递归程序都可以通过控制系统堆栈转为非递归程序。

6.仅当程序大部分函数都使用某个变量时,才应将其变量声明为全局变量。如果只有一些函数,则应将该变量作为参数传递给这些函数,并不将他们声明为全局变量。

7.内部函数(staic)在一些情况下具有非常重要的作用。例如使用内部函数可以防止在其他文件代码中由于误操作调用该函数而破坏其数据。

8.用户编写登录程序时使用getch()函数,在输入用户名密码时不显示输入信息。

9.使用putchar和putch函数输出字符,当输出超过窗口的右边界时会自动转到下一行的开始继续输出。当窗口内填满内容仍然没有结束输出时,窗口屏幕会自动逐行上移直到输

出结束为止。

10.用户使用完文件之后关闭文件,如果程序在结束后没有显示地关闭文件,有可能会丢失数据。如果文件不是正常关闭,缓冲区的内容可能没有写在磁盘上。

11.在文本模式下最好少用fseek函数,因为已存在库函数的转义,在文本模式下“\r\n”还是被fseek函数当作两个字符。

12.c语言的高级文件处理能被大多数程序员理解,因此如果用户使用的是fopen(),fgetc()等此类高级函数,将会帮助程序员更好的理解代码。

13.文件句柄可以是任何有效的标识符,由大小写字母、数字、下划线字符组成。文件句柄没有标志性的前缀,因此为了使得文件句柄有所区别,程序员经常以

全部大写字母表示。

14.使用rename()函数时需要注意一下两点。

<1>在重命名打开文件之前,必须先关闭该文件

<2>当使用rename函数将某个文件从不受保护的位置复制到受保护的位置时,该文件仍保持较低的限制权限,即该文件不受保护。

15.同上,使用remove()函数时必须先关闭它。

c语言之良好的编程习惯(二)

时间: 2024-10-10 15:23:36

c语言之良好的编程习惯(二)的相关文章

c语言之良好的编程习惯(一)

1.在程序的某些地方加上简短的注释会增加程序的可读性. 2.在书写格式上,所有的case需要对齐,每个case后的语句要有一定的缩进并对齐,以便容易的看出各个分支的条件依据与对应执行的操作. 允许将想通操作的case及对应的常量表达式连续排列,对应的操作的语句组和break只在最后一个case出出现. 3.一般情况下头文件中包括变量.宏定义.枚举.结构和函数接口的声明,而C文件中包括具体实现细节. 4.自定义头文件时,应避免与编译器提供的头文件冲突.可以采用的方法是定义标识符时不使用前缀,即不使

c语言之良好的编程习惯(三)

1.同一个文件在每次调用输入输出函数时,都将产生一个新的ferror()函数值,因此在调用输入输出函数后应该立即检查ferror的函数值,否则信息会丢失. 2.使用临时文件中需要考虑以下两个问题. <1>保证临时文件间的文件名不互相冲突 <2>保证临时文件中的内容不被其他用户偷看.删除.修改. 3.使用目录时需要考虑以下几点. <1>信息量大小.目录适合存放小的信息量,可以利用指针指向大的文件. <2>信息的类型.目录通常是属性的信息. <3>读

c语言之良好的编程习惯(四)

1.在编写程序时,尽量减少内存的开销. 2.注释的内容要清楚明了,含义准确,防止二义性. 3.注释不要用缩写. 4.注释应与描述的代码相近,对代码的注释应放在代码的上方或右方. 5.编写程序使用缩进可以减少很多不必要的语法错误,同时也非常有利于调试. 6.在编辑实现一定功能的C语言程序时,首先要有一个清晰的思路,例如需要实现什么功能,关键是什么.语句流怎样控制.虽然不一定写出来,但至少心里有数. 7.养成边写边调试的习惯. 8.编译之前仔细检查是否有人为造成的编写错误,以免浪费时间. 9.在对运

C语言控制台窗口图形界面编程(二)

下面介绍几个用于控制台窗口操作的API函数,如下: [cpp] view plaincopy //获取控制台窗口信息 GetConsoleScreenBufferInfo(); //获取控制台窗口标题 GetConsoleTitle(); //更改指定缓冲区大小 SetConsoleScreenBufferSize(); //设置控制台窗口标题 SetConsoleTitle(); //设置控制台窗口信息 SetConsoleWindowInfo(); 下面的示例程序用于说明此类函数的使用: [

如何养成良好的 C++ 编程习惯(一)—— 内存管理

开篇导读 “养成良好的编程习惯”其实是相当综合的一个命题,可以从多个角度.维度和层次进行论述和评判.如代码的风格.效率和可读性:模块设计的灵活性.可扩展性和耦合度等等.要试图把所有方面都阐述清楚必须花很多的精力,而且也不一定能阐述得全面.因此,本系列文章以软件开发的基础问题为切入点,阐述程序设计和代码编写方面的细节问题,以点带面,旨在激发大家的思考与总结,希望能为大家带来实际的帮助.     虽然本系列文章定位为科普读物,但本座相信它们不但适合新手们学习借鉴,同时也能引发老鸟们的反思与共鸣.欢迎

Scala 中的函数式编程基础(二)

主要来自 Scala 语言发明人 Martin Odersky 教授的 Coursera 课程 <Functional Programming Principles in Scala>. 2. Higher Order Functions 把其他函数作为参数或者作为返回值,就是 higher order functions,python 里面也可以看到这样使用的情形.在酷壳上的博客有一个例子就是将函数作为返回值. 2.1 匿名函数 在 python 里边叫 lambda 函数,常常与 map(

编程习惯

源文件文件名必须和 公开的类名相同(包过大小写)编程习惯 可读性 1.注释 加一些代码描述语言 //单行注释 /* */ 多行注释 /** */ 多行注释2.每个语句缩进3.标示符 语法:字母.数字._ .$ 数字不能开头 严格区分大小写 不能使用关键字和保留字(goto .const) 类名:单词首字母大写 HelloWorld 变量.方法名:第一个单词首字母小写,后面单词首字母大写 helloWorld 包名:全小写 常量:全大写

黄金点游戏的尝试与编程习惯的改变尝试

这一次,软件工程老师给我们所有同学出了个难题,什么呢?结对编程!说到结对编程,我想至少对于我来说是一个完全陌生的领域,为什么这么说呢?原来的C语言作业也好,C++作业也好,我大多是单枪匹马的自己在做前期的构想,中期的编程调试,到后期的查找错误修改问题,即使是有其他人的参与也只限于我腆着脸去找同班同学或者其他班的大神求助,但大体上还是我一个人在战斗.但是这次不一样,这次按照老师布置的作业要求,需要结对的两人坐在一台电脑前,合用一个键盘,一个鼠标,共同编写一个程序代码.这样,编程的全过程就变得和原来

游戏网络编程(二)

游戏网络编程(二) 本篇介绍Socket编程,因为我觉得每个开始接触网络编程的人应该都是先从了解socket编程开始的吧.后面介绍的WebSocket也会和Socket编程的概念做比较,因此先介绍下Socket编程. 游戏网络编程二 什么是Socket 常用的Socket函数API WinSock CSocket Socket函数介绍 socket bind listen accept connect sendsendto recvrecvfrom select setsocketoptgets