C语言常用关键字

根据ANSI标准定义的从语言函数一共32个

数值等基本类型

数值类型

  1. void : 表示声明函数无返回值或声明无类型的指针。
  2. char : 字符类型,存储编码值,本质上属于整型数据
  3. int : 整型,通常为编译器指定的机器字长
  4. float : 单精度浮点型
  5. double : 双精度浮点型

修饰关键字

  1. short:修饰int 表示短整型,可省略 被修饰的 int
  2. long:修饰int 表示长整型,可省略被修饰的int
  3. signed:修饰整型数据,有符号数据类型
  4. unsigned: 修饰整型数据,表示无符号

复杂类型

  1. struct:结构体声明
  2. union:共用体声明
  3. enum:枚举声明
  4. typedef:声明类型别名
  5. sizeof:得到特定类型或指定变量的大小

存储级别关键字

  1. auto:指定为自定变量,有编译器自动分配以及释放,通常在栈上分配
  2. static:指定为静态变量,分配在静态变量区,修饰函数时,指定函数作用域为文件内部
  3. register:指定为寄存器变量,建议编译器将变量存储到寄存器中使用,也可以修饰函数形参,建议编译器通过寄存器而不是堆栈传递参数。
  4. extern:指定对应变量为外部变量,即在另外的目标文件中定义,可以认为是约定由另一个文件声明的对象的一个引用
  5. const:与volatile合称为"cv特性",指定变量不可被当前线程或进程改变,但有可能被系统或其他进程或线程改变
  6. volatile:,指定变量的值有可能被系统或其他进程改变,强制编译器每次从内存中读取该变量的值。

控制语句

跳转结构

  1. return:函数返回关键字,返回特定值
  2. continue:结束当前循环进入下一轮循环
  3. break:跳出当前循环
  4. goto:无条件跳转

分支结构

  1. if
  2. else
  3. switch
  4. case
  5. default

循环结构

  1. for:循环结构 for(1,2,3)4;执行顺序 1 >2>4>3>2>4
  2. do:后置循环
  3. 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会

posted @ 2022-09-05 14:01  繁~匠  阅读(191)  评论(0)    收藏  举报