下载此文档

C语言深度剖析读书笔记.docx


文档分类:IT计算机 | 页数:约31页 举报非法文档有奖
1/31
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/31 下载此文档
文档列表 文档介绍
C语言深度剖析读书笔记.docx1、 定义:所谓定义就是(编译器)创建一个对象,为这个对象分配一块内存并取上一个名字,这个名字就是我们经常说的变量名或对象名。一个变量在一定的区域(比如函数内,全局等)只能定义一次。2、 声明:(1) 告诉编译器,这个名字已经匹配到令一块内存上了,下而的代码所用到的变量或对象是别的地方定义的。(2) 告诉编译器,这个名字我先预定了,别的地方再也不能用它来作为变量名或对象名。3、 定义和声明的区别:定义创建了对象并为这个对象分配了内存,声明并没有分配内存。4、 Register修饰符的限制:register变量必须是能被CPU寄存器所接受的类型。意味着register变量必须是一个单个的值,并且其长度应小于或等于整型的长度。而且register变量可能不存放在内存中,所以不能用取地址运算符“&”来获取register变量地址。5、 Static的作用:(1)修饰全局变量:静态全局变量的作用域仅限于变量被定义的文件中,其它文件中即使用extern声明也没办法使用它。准确的说作用域是从定义之处开始,到文件结尾处结束,在定义之前的那些代码页不能使用它,要想使用,就耍要在前面加extern***。要避免这种问题,直接在文件顶端定义就行To(修饰全局变量,实际上是改变了该变量的链接属性)(2) 修饰局部变量:静态局部变量,在函数体内定义的,就只能在这个函数里使用了,同一个文件中的其它函数也用不了。由于被static修饰的变量总是存在内存的静态区,所以即使这个函数运行结束,这个静态变量也不会被销毁,函数下次使用时仍然能使用到这个值。(修饰局部变量时,实际上是修改了该变量的存储属性)(3) 修饰函数:函数前加static使得函数成为静态函数。该丙数的作用域被局限在本文件中(又成为内部函数)。(修饰函数时,实际上是修改了该函数的链接属性)6、 数据类型:数据类型的作用就像大小不同的模子,在内存上根据模子的大小(类型)刻出固定大小(类型)的一块块内存。7、 变量的命名规则:(1) 较长的单词,去掉“元咅”形成缩写。(2) 标识符由多个单词构成时,每个单词的第一个字母大写,其余全小写。(3) 尽量避免名字中出现数字编号,除非逻辑上的确实需要编号。如驱动开发时为管脚命名,非编号名字反而不好。(4) 多个文件之间共同使用全局变量或函数要加范围限定符(建议使用模块名(缩写)作为范围限定符)。(GUI_,etc)(5) 含义标志命名规则,变量名使用名词数组,函数名使用动词数组(6) 程序中不得出现仅靠大小写区分的相似的标识符。(7) 一个函数名禁止被用于其它Z处。(8) 所以宏定义、枚举常数、只读变量全用大写字母命名,用下划线分割单词。(9) 考虑到习惯问题,局部变量中可采用通用的命名方式,仅限于n,i,j等作为循环变量使用。一般说,习惯上用等作为int类型变量;c,ch等作为字符型变量;a等表示数组;p等表示指针。当然这仅仅是一般习惯,除了使用i,j,k等可以用来表示循环变量外,別的字符变量名尽量不要使用。(10) 定义变量的时候不要忘了初始化。定义变量时编译器并不一定清空了这块内存,它的值可能是无效数据。(11) 不同类型的数据之间运算要注意精度扩展问题,一般低精度向高精度数据扩展。8、 sizeof:sizeof是关键字,而不是函数。Sizeof在计算变量所占的内存空间大小时,括号可以省略,而计算类型(模子)大小时不能被省略。一般情况下不要省略,加上括号,继续当做一个“函数”来使用。9、 计算机中数据存储:计算机系统中,数值一律用补码来表示(存储)。主耍原因是使用补码,可以将符号位和其它位统一处理;同时,减法也吋以按加法来处理。另外,两个用补码表示的数相加时,如果最高位(符号位)有进位(向符号位的进位?),则进位被舍弃。正数的补码与其原码一致;负数的补码:符号位为1,其余位为该数绝对值的原码按位取反,然后整个数加1。(-1的补码为Oxff)10、 Bool变量与“零值”进行比较:不要写成讦(bFlag==0),錨人一种bFlag是整型的感觉。写成if(bFlag=FALSE);或者写成if(bFlag==TRUE),也不好。因为,FALSE的值在编译器屮被定义为0;但TRUE在VisualC++中定义为1,而在VisualBasic中TRUE定义为-1。而写成if(bFlag);或者if(!bFlag);就比较好,该种写法既不会引起误会,也不会由于TRUE或者FALSE的不同定义值而出错。以后写代码就要这样写。11、 Float变量与“零值”进行比较:不能写成if(fVal==),要写成if((fVal>=EPSINON)&&(fVal<=EPSINON));//EPSINON为定义好的精度12、 指针变量与“零值”进行比较定义指针:int*p

C语言深度剖析读书笔记 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数31
  • 收藏数0 收藏
  • 顶次数0
  • 上传人ttteee8
  • 文件大小255 KB
  • 时间2019-11-15