C语言常用关键字
根据ANSI标准定义的从语言函数一共32个
数值等基本类型
数值类型
- void : 表示声明函数无返回值或声明无类型的指针。
- char : 字符类型,存储编码值,本质上属于整型数据
- int : 整型,通常为编译器指定的机器字长
- float : 单精度浮点型
- double : 双精度浮点型
修饰关键字
- short:修饰int 表示短整型,可省略 被修饰的 int
- long:修饰int 表示长整型,可省略被修饰的int
- signed:修饰整型数据,有符号数据类型
- unsigned: 修饰整型数据,表示无符号
复杂类型
- struct:结构体声明
- union:共用体声明
- enum:枚举声明
- typedef:声明类型别名
- sizeof:得到特定类型或指定变量的大小
存储级别关键字
- auto:指定为自定变量,有编译器自动分配以及释放,通常在栈上分配
- static:指定为静态变量,分配在静态变量区,修饰函数时,指定函数作用域为文件内部
- register:指定为寄存器变量,建议编译器将变量存储到寄存器中使用,也可以修饰函数形参,建议编译器通过寄存器而不是堆栈传递参数。
- extern:指定对应变量为外部变量,即在另外的目标文件中定义,可以认为是约定由另一个文件声明的对象的一个引用
- const:与volatile合称为"cv特性",指定变量不可被当前线程或进程改变,但有可能被系统或其他进程或线程改变
- volatile:,指定变量的值有可能被系统或其他进程改变,强制编译器每次从内存中读取该变量的值。
控制语句
跳转结构
- return:函数返回关键字,返回特定值
- continue:结束当前循环进入下一轮循环
- break:跳出当前循环
- goto:无条件跳转
分支结构
- if
- else
- switch
- case
- default
循环结构
- for:循环结构 for(1,2,3)4;执行顺序 1 >2>4>3>2>4
- do:后置循环
- while:前置循环
static
在C语言中,函数默认情况下是global的,函数名前面添加static关键字能够使他们变成静态。添加了static的函数被限制到声明他们的文件中。因此,当我们需要限制对函数的访问时,我们可以使用static.此外在不同文件中可以允许存在拥有相同函数名的static函数
修饰局部变量时,转换为静态局部变量
修饰全局变量时,变为私有变量其它文件不可引用
// a.c char a = 'a'; static int b = 1; // b 是a.c的私有变量// main.c #include "./a.c" extern char a; // 此时a可以被其他文件引用 extern int b; // 报错 int main () { }static的第二个作用是 保持变量内容的持久
存储在静态数据区的变量会在程序刚开始运行时进行初始化,也是唯一一次初始化。存储在静态数据存储区的变量有两种,分别是全局变量和static关键字修饰的变量。只不过和全局变量比起来,static变量可以控制变量的可见范围,同时无论修饰的变量是否是局部变量,每次对static变量操作时,第二次执行时都能够获取之前改变的值。
int fun() { static int count = 10; return count--; } int main() { for(int i = 0; i <= 10; i--){ printf("%d\r\n",fun()); }; return 0; } // out 10 9 8 7 ... 1;static 的初始变量默认值为0.
总结
static首要功能是变量隐藏,其次因为变量存储在静态存储区,所以它具备持久性和默认值为0的特性。
inline
inline是c99的特性。在c99中,inline是向编译器建议,将被inline修饰的函数以内联的方式嵌入到调用这个函数的地方。而编译器会判断这样做是否合适,因此最终决定是否内嵌。
static inline的优势
static inline会

浙公网安备 33010602011771号