一、基本类型
1.c语言整数类型的大小并没有精确的定义,而是随着编译器的类型而变化,ANSI C能保证的只是数据的最小尺寸。char>=8位,short>=16位,int>=16位,long>=32位。
2.因此,可以用typedef定义int16和int32,然后根据实际的机器环境把它们定义为int,short,long等类型。但是,标准头文件<inttypes.h>已经定义了标准名称int16_t,uint32_t等。
二、指针声明
1.c语言中声明的语法为
基本类型 生成基本类型的东西
基本类型不必多说,生成基本类型的东西包括*p,a[10]或者f()这样的符号,表明被生命的变量是指向基本类型的指针,基本类型的数组或者返回基本类型的函数。所以,
char *p1,p2;//p1为指向char的指针,p1为char变量。
2.如果函数的返回值为void时,则声明和定义时应该书写一致。比如:只有下面两种情况
①声明:f();定义:f(){} ②声明:void f(); 定义:void f(){} (注:切不可交换使用)
三、声明风格
全局变量和函数在某个相关的.c文件中定义,然后在.h中进行外部声明。在其他需要使用的.c文件中,只需要include对应.h文件即可。(注:定义变量的.c文件也应该包含该头文件,便于编译器检查定义和生命的一致性。)
顺便说一下,声明如下:
extern int i;
extern int f();
定义如下:
int i=0;
int f()
{
return 1;
}
三、存储类型
1.static
(有关static的使用方法,可以参考 static使用方法)
简单起见,同一个静态函数或变量的所有声明都必须包含static存储类型。
2.extern
存储类型extern只对数据声明有意义。对于函数,只是一种格式上的提示,说明函数的定义可能在另外一个函数文件中。
3.auto
没有用途,已经过时。它是从c语言的无类型前身B语言中继承下来的。在B语言中,没有像int这样的关键字,声明必须包含