网站首页 > 技术文章 正文
1 什么是关键字?
C语言关键字是指被C语言编译器预定义并具有特殊含义的保留字。这些关键字在C语言中具有特殊的用途和语法意义,用于表示语言的各种结构、数据类型、控制流程和操作符等。C语言的关键字是有限的,每个关键字都有其特定的含义和用法。
由于这些关键字在C语言中具有特殊含义,因此在编写代码时,不能将关键字用作普通标识符的名称,如变量名、函数名等。否则,编译器将无法正确解析和处理这些标识符。关键字在C语言中起到了关键的作用,它们定义了语言的基本语法和结构,使得我们能够编写出符合C语言规范的程序。
2 有哪些关键字?
2.1 C99标准前关键字
关键字 | 说明 |
auto | 声明自动变量 |
break | 跳出当前循环 |
case | 开关语句分支 |
char | 声明字符型变量或函数返回值类型 |
const | 定义常量,如果一个变量被 const 修饰,那么它的值就不能再被改变 |
continue | 结束当前循环,开始下一轮循环 |
default | 开关语句中的"其它"分支 |
do | 循环语句的循环体 |
double | 声明双精度浮点型变量或函数返回值类型 |
else | 条件语句否定分支(与 if 连用) |
enum | 声明枚举类型 |
extern | 声明变量或函数是在其它文件或本文件的其他位置定义 |
float | 声明浮点型变量或函数返回值类型 |
for | 一种循环语句 |
goto | 无条件跳转语句 |
if | 条件语句 |
int | 声明整型变量或函数 |
long | 声明长整型变量或函数返回值类型 |
register | 声明寄存器变量 |
return | 子程序返回语句(可以带参数,也可不带参数) |
short | 声明短整型变量或函数 |
signed | 声明有符号类型变量或函数 |
sizeof | 计算数据类型或变量长度(即所占字节数) |
static | 声明静态变量 |
struct | 声明结构体类型 |
switch | 用于开关语句 |
typedef | 用以给数据类型取别名 |
unsigned | 声明无符号类型变量或函数 |
union | 声明共用体类型 |
void | 声明函数无返回值或无参数,声明无类型指针 |
volatile | 说明变量在程序执行中可被隐含地改变 |
while | 循环语句的循环条件 |
2.2 C99标准新增关键字
关键字 | 说明 |
_Bool | 一种基本数据类型,用于表示布尔逻辑值,其值只有两种:0(假)或1(真) |
_Complex | 一种数据类型,用于创建复数 |
_Imaginary | 一种数据类型,用于创建虚数 |
inline | 用于函数定义的修饰符,编译器会将该函数的调用处直接展开为对应的函数体内容,而不需要进行函数调用的过程 |
restrict | 一种类型限定符(Type Qualifiers),用于告诉编译器,对象已经被指针所引用,不能通过除该指针外所有其他直接或间接的方式修改该对象的内容 |
2.3 C11标准新增关键字
关键字 | 说明 |
_Alignas | 用于指定最小对齐要求。它可以用于类型定义或变量定义,用来指定数据的对齐方式 |
_Alignof | 用来获取数据类型的对齐要求 |
_Atomic | 用于提供原子性操作。原子性意味着操作是不可中断的,要么完全执行,要么完全不执行,在执行过程中不会被其他线程或事件打断 |
_Generic | 它允许你在编译时根据表达式的类型来选择不同的代码分支。这个特性可以用来实现类似于模板函数的功能,但是不需要使用者关心具体的类型,这是因为类型信息在编译时就已经被确定了 |
_Noreturn | 用来指定函数永远不会返回。这有助于编译器优化代码和避免无意义的警告信息 |
_Static_assert | 它用于在编译时进行静态断言。如果断言条件为假,编译器将在编译时显示指定的错误消息,并且终止编译过程 |
_Thread_local | 用来声明线程本地存储的变量。这意味着每个线程都有其自己的变量副本,且该副本与其他线程隔离 |
-- E N D --
职创未来是一家专注于科技创新与数字化专业人才培养的高新技术企业
点击下方了解详情吧
想要获得技能提升和职业发展
我们有这些好课
Web大前端|JaveEE开发|C/C++|嵌入式/物联网|UI全链路设计
猜你喜欢
- 2024-10-26 C语言、嵌入式项目中一些常用知识及技巧第一弹
- 2024-10-26 C语言编程:最常见 7 道C语言面试题,还是有不少人弄不明白?
- 2024-10-26 初识C语言:简介、环境搭建、第一个HelloWorld
- 2024-10-26 C|volatile关键字使用细节及适用场合
- 2024-10-26 C语言干货:函数知识详解(变量的作用域,全局变量,静态变量)
- 2024-10-26 小白入门C语言20问20答2(新手c语言)
- 2024-10-26 C语言的简单了解及学习2(c语言的入门知识)
- 2024-10-26 C 语言基本语法(c语言的基础语法)
- 2024-10-26 C语言数据怎么描述?最全面解析,C语言基础教学档案!编号零零五
- 2024-10-26 C语言void关键字的高级玩法,6个样例代码告诉你
- 02-21走进git时代, 你该怎么玩?_gits
- 02-21GitHub是什么?它可不仅仅是云中的Git版本控制器
- 02-21Git常用操作总结_git基本用法
- 02-21为什么互联网巨头使用Git而放弃SVN?(含核心命令与原理)
- 02-21Git 高级用法,喜欢就拿去用_git基本用法
- 02-21Git常用命令和Git团队使用规范指南
- 02-21总结几个常用的Git命令的使用方法
- 02-21Git工作原理和常用指令_git原理详解
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)