当前位置: 首页 > news >正文

C语言关键字

C语言的关键字是C语言语法的基础,用于声明变量类型、控制程序流程等。C语言共有32个关键字(在C90标准中,C99标准之后新增了五个关键字,但主流编译器仍主要支持C90标准的关键字集),这些关键字可以分为几个主要类别:数据类型关键字、控制语句关键字、存储类型关键字和其他关键字。以下是根据这些分类列举的一些C语言的关键字:

数据类型关键字(12个)

  • char:声明字符型变量或函数。
  • double:声明双精度变量或函数。
  • enum:声明枚举类型。
  • float:声明浮点型变量或函数。
  • int:声明整型变量或函数。
  • long:声明长整型变量或函数。
  • short:声明短整型变量或函数。
  • signed:声明有符号类型变量或函数。
  • struct:声明结构体变量或函数。
  • union:声明共用体(联合)数据类型。
  • unsigned:声明无符号类型变量或函数。
  • void:声明函数无返回值或无参数,声明无类型指针。

控制语句关键字(12个)

  • 循环语句
    • for:一种循环语句。
    • do:循环语句的循环体。
    • while:循环语句的循环条件。
    • break:跳出当前循环。
    • continue:结束当前循环,开始下一轮循环。
  • 条件语句
    • if:条件语句。
    • else:条件语句否定分支(与if连用)。
    • goto:无条件跳转语句。
  • 开关语句
    • switch:用于开关语句。
    • case:开关语句分支。
    • default:开关语句中的“其他”分支。
  • 返回语句
    • return:子程序返回语句(可以带参数,也可以不带参数)。

存储类型关键字(4个,但注意C99标准新增了restrict,但这里仅列出C90标准的)

  • auto:声明自动变量(一般不用显式声明,默认为auto)。
  • extern:声明变量是在其他文件正声明(也可以看做是引用变量)。
  • register:声明寄存器变量(尽量存储在CPU寄存器中,以提高访问速度)。
  • static:声明静态变量(具有局部作用域,但生命周期贯穿整个程序执行期间)。

其他关键字(4个,但注意C99标准后typedef通常不被视为其他关键字,而是存储类型关键字的扩展)

  • const:声明只读变量。
  • sizeof:计算数据类型或变量长度(实际上是操作符,但常被视为关键字)。
  • typedef:用以给数据类型取别名。
  • volatile:说明变量在程序执行中可被隐含地改变(编译器不要对其进行优化)。

请注意,随着C语言标准的发展,新的关键字和特性可能会被引入。然而,上述列出的是C90标准中定义的关键字集,它们构成了现代C语言编程的基础。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 昇思25天学习打卡营第22天|基于MindNLP+MusicGen生成自己的个性化音乐案例
  • 如何在 VitePress 中增加一个全局自定义组件
  • 如果想不明白,那就读书吧
  • windows系统下编译和使用grpc
  • 代码随想录——打家劫舍Ⅱ(Leetcode 213)
  • 对JAVA的包package的理解
  • 2024华为数通HCIP-datacom最新题库(H12-831变题更新⑧)
  • rocketmq普通消息-消息类型
  • idea中maven无法下载内网自建的Nexus私服中的依赖
  • 优化冗余代码:提升前端项目开发效率的实用方法
  • 搭建 STM32 网关服务器的全流程:集成嵌入式 C++、TCP/IP 通信、Flash 存储及 JWT 认证(含代码示例)
  • 了解郑州自闭症寄宿学校:提供专业康复服务与关怀
  • 《昇思25天学习打卡营第24天》
  • Springboot 开发之 RestTemplate 简介
  • 微信小程序-获取手机号:HttpClientErrorException: 412 Precondition Failed: [no body]
  • 收藏网友的 源程序下载网
  • 【5+】跨webview多页面 触发事件(二)
  • conda常用的命令
  • laravel5.5 视图共享数据
  • Shell编程
  • Vue 重置组件到初始状态
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 规范化安全开发 KOA 手脚架
  • 浅谈web中前端模板引擎的使用
  • 双管齐下,VMware的容器新战略
  • 最近的计划
  • 积累各种好的链接
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (13)Hive调优——动态分区导致的小文件问题
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (2024,LoRA,全量微调,低秩,强正则化,缓解遗忘,多样性)LoRA 学习更少,遗忘更少
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (分布式缓存)Redis持久化
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (转)setTimeout 和 setInterval 的区别
  • (转)Sql Server 保留几位小数的两种做法
  • (转)Windows2003安全设置/维护
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .NET delegate 委托 、 Event 事件
  • .NET设计模式(11):组合模式(Composite Pattern)
  • .pyc文件还原.py文件_Python什么情况下会生成pyc文件?
  • // an array of int
  • @Autowired自动装配
  • [CQOI 2010]扑克牌
  • [Enterprise Library]调用Enterprise Library时出现的错误事件之关闭办法
  • [Erlang 0129] Erlang 杂记 VI 2014年10月28日
  • [exgcd] Jzoj P1158 荒岛野人
  • [idea]关于idea开发乱码的配置
  • [Latex] Riemann 问题中的激波,接触间断,膨胀波的 Tikz 绘图
  • [Linux] 用LNMP网站框架搭建论坛
  • [Linux]基本指令(二)
  • [MySQL]基础的增删改查