1.register
static 在代码块外或函数声明 用于更改标识符的链接属性
static 在代码块内的变量定义 用于更改存储类型
1
2
3
4
5
6
7
8
9
|
static int c; //链接属性为internal , 存储属性:静态,作用域:整个文件作用域
int d( int e1, int e2) //e1 e2 原型作用域,即 e1 和e2 不能相同
{ static int g=20; //代码块内 链接属性为无, 存储属性:静态,作用域:整个函数作用域
} |
static
int
c;
//链接属性为internal , 存储属性:静态,作用域:整个文件作用域
static
int
g=20;
//代码块内 链接属性为无, 存储属性:静态,作用域:整个函数作用域
g在程序运行完后,不会被销毁,重新调用函数,g不会再被初始化。
3.c的编程规范(部分)
1.变量名要可读
2.注意字母l和数字1,字母o和数字0;
3.宏定义,枚举类型,只读变量采用大写命名。
4,单字符变量名尽量不要用。
4.sizeof
sizeof 为c语言中32个关键字之一。
1
2
3
4
5
6
7
8
9
10
|
#include <stdio.h> void main()
{ double i=1.1;
sizeof ( double ); //正确
sizeof (i); //正确
sizeof double ; //错误
sizeof i; //正确
} |
sizeof i;//正确说明sizeof 为关键字而不是函数
一般应用时都加()。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
#include <stdio.h> void func( int b[3])
{ printf ( "%d \n" , sizeof (b));
} void main()
{ double b[3]={1,2,3};
func(b); printf ( "%d \n" , sizeof (b));
printf ( "%d \n" , sizeof (b[1]));
printf ( "%d \n" , sizeof (&b));
printf ( "%d \n" , sizeof (&b[1]));
} |
sizeof
(b) 返回的是数组的大小以4个字节为单位,
3个double类型 ,故为24
sizeof
(b[1])返回的是double类型 故为 8
void
func(
int
b[3])
{
printf
(
"%d \n"
,
sizeof
(b));
}
说明参数传递的是指针
printf
(
"%d \n"
,
sizeof
(&b));
printf
(
"%d \n"
,
sizeof
(&b[1]));
均为指针,故为4
1
2
|
sizeof ( int ) *q 求int的字节数后 乘q *在此处为乘法符号
sizeof ( int *q)求指针的字节数
|
5 if else
float变量与 0比较
1
|
if (a!=0)不应该这么写,
|
1
|
if ((a>=-EPSINON)&&(a<=EPSINON)应该这样写
|
指针变量与零值比较
1
|
if (NULL==p)
|
if else 语句书写时注意
1.一般将常量放在前面,这样如果将== 错写成 =,则成了赋值语句,给常量赋值是非法的,故可以检查出错误。
2,if 后不管有多少条语句,都要加{}
3.将发生概率大的写下前面
6swith case
1 case 后只能为 字符型或整型的常量或常量表达式。
2 每种情况都应该写入case 语句,不要将 最后一种情况写入 default语句