一、注释
关于注释的问题:c里有两种注释方法:/**/和//,编译器会在编译过程中会忽略掉注释的部分,但是真的忽略会将其替换成空格。
全局变量、常量必须加注释。
注释代码段时注重为何做(why),而不是how。
二、位运算符
& 按位运算
| 按位或
^按位异或
~取反
<<左移
>>右移
三、static
1.修饰全局静态变量
在全局变量之前加上关键字static,全局变量就被定义成为一个全局静态变量。
1)内存中的位置:静态存储区(静态存储区在整个程序运行期间都存在)
2)初始化:未经初始化的全局静态变量会被程序自动初始化为0(自动对象的值是任意的,除非他被显示初始化)
3)作用域:全局静态变量在声明他的文件之外是不可见的。准确地讲从定义之处开始到文件结尾。
好处:
定义全局静态变量的好处:
(1)不会被其他文件所访问,修改
(2)其他文件中可以使用相同名字的变量,不会发生冲突。
2.修饰局部静态变量
在局部变量之前加上关键字static,局部变量就被定义成为一个局部静态变量。
1)内存中的位置:静态存储区
2)初始化:未经初始化的全局静态变量会被程序自动初始化为0(自动对象的值是任意的,除非他被显示初始化)
3)作用域:作用域仍为局部作用域,当定义它的函数或者语句块结束的时候,作用域随之结束。
3. 修饰静态函数
在函数的返回类型前加上关键字static,函数就被定义成为静态函数。
定义静态函数的好处:
(1)其他文件中可以定义相同名字的函数,不会发生冲突
(2)静态函数不能被其他文件所用。
从static的好处可以看出其实static的最大的作用是将变量或函数隐藏在本文件中,对于其他的文件中这些变量或方法不可见。
其实static的变量改变了其存储位置,都在静态代码区(codesegment)中,延长了其生存时间。