解码C语言关键字

数据类型关键字(12个)

基础类型

关键字 用途 示例
char 字符类型 char c = 'A';
int 整型 int num = 10;
float 单精度浮点型 float f = 3.14f;
double 双精度浮点型 double d = 2.718;
void 无类型(函数/指针) void func();

类型修饰符

关键字 用途 示例
short 短整型(如16位) short s = 100;
long 长整型(如32/64位) long l = 100000L;
signed 有符号类型(默认) signed int a = -5;
unsigned 无符号类型 unsigned int u = 42;

复合类型

关键字 用途 示例
struct 定义结构体 struct Point { int x, y; };
union 定义联合体 union Data { int i; float f; };
enum 定义枚举类型 enum Color { RED, GREEN };

控制语句关键字(12个)

条件分支

关键字 用途 示例
if 条件判断 if (x > 0) { ... }
else 条件分支的否定分支 else { ... }
switch 多路选择结构 switch (value) { ... }
case switch 中的分支标签 case 1: ... ; break;
default switch 的默认分支 default: ... ; break;

循环控制

关键字 用途 示例
for 循环结构 for (int i=0; i<10; i++)
while 条件循环 while (x < 100) { ... }
do 后测试循环 do { ... } while (cond);
break 跳出循环或 switch break;
continue 跳过当前循环迭代 continue;

跳转语句

关键字 用途 示例
goto 无条件跳转到标签 goto error_handler;
return 函数返回值 return 0;

存储类别关键字(4个)

关键字 用途 示例
auto 声明自动变量(默认存储类型,通常省略)。
在C语言中,局部变量默认隐含auto,表示变量存储在栈区,生命周期随代码块结束而销毁。
auto int x = 5;(完全等价于 int x = 5;,实际编程中auto可省略)
extern 声明外部全局变量或函数(仅声明,不分配内存),用于引用其他文件中定义的全局变量/函数,实现跨文件共享。 // 在文件A中定义全局变量
int global_var = 10;

// 在文件B中用extern声明并使用
extern int global_var;
printf("%d", global_var); // 输出10
register 建议编译器将变量存储在寄存器中(而非内存),适用于频繁访问的变量(如循环计数器),以提高访问速度。
注意:编译器可忽略此建议;寄存器变量不能取地址(&)。
register int i; // 建议将i存放在寄存器
for (i = 0; i < 10000; i++) { ... } // 频繁使用i,适合用register
static 修饰局部变量
- 作用:延长生命周期至程序结束(仅初始化一次),但作用域仍局限于函数/代码块内。
- 特点:函数调用间保持值不变,避免重复初始化。

修饰全局变量
- 作用:限制作用域为当前文件(仅本文件可见)。
- 特点:避免跨文件命名冲突,实现数据隐藏。

修饰函数
- 作用:限制函数仅能在当前文件内被调用。
- 特点:隐藏实现细节,增强模块化,避免函数名冲突。
// 修饰局部变量
void count() {
  static int num = 0; // 仅初始化一次
  num++; // 每次调用值递增(首次1,二次2...)
}

// 修饰全局变量
static int file_only_var = 20; // 仅当前文件可访问

// 修饰函数
static void inner_func() { // 仅当前文件可调用
  printf("内部函数");
}

类型修饰符(2个)

关键字 用途 示例
const 定义常量(不可修改) const int MAX = 100;
volatile 告知编译器变量可能被意外修改(防止变量在运行的过程中被优化而出现程序错误—面试) volatile int flag = 0;

其他关键字(2个)

关键字 用途 示例
sizeof 计算类型/对象所占字节数 size_t size = sizeof(int);
typedef 为类型定义别名 typedef int Length;
posted @ 2025-09-19 14:21  YouEmbedded  阅读(19)  评论(0)    收藏  举报