C语言中32个关键字详解

由 ANSI 标准定义的 C 语言关键字共32个,根据关键字的作用,可以将关键字分为数据类型关键字和流程控制关键字两大类。

一、数据类型关键字

A 基本数据类型(5个)

void:声明函数无返回值或无参数,声明无类型指针,显示丢弃去处结果

char:字符型类型数据,属于整型数据的一种

int:整型数据,通常为编译器指定的机器字长

float:单精度浮点数据,属于浮点数据的一种

double:双精度浮点数据,属于浮点数据的一种

B 类型修饰关键字(4个)

short:修饰 int,短整型数据,可省略被修饰的 int

long:修饰 int,长整形数据,可省略被修饰的 int

signed:修饰整型数据,有符号数据类型

unsigned:修饰整型数据,无符号数据类型

C 复杂类型关键字(5个)

struct:结构体声明

union:共用体声明

enum:枚举声明

typedef:声明类型别名

sizeof:得到特定类型或特定类型、变量的大小

D 存储级别关键字(6个)

auto:指定为自动亦是,由编译器自动分配及释放。通常在栈上分配

static:指定为静态变量,分配在静态变量区,修饰函数时,指定函数指针作用域为文件内部

register:指定为寄存器变量,建议编译器将变量存储到寄存器中使用,也可以修饰函数形参,建议编译器通过寄存器而不是堆栈传递参数

extern:指定对应变量为外部变量,即在另外的目标文件中定义,可以认为是约定由另外文件声明的变量

const:与 volatile 合称“CV特性”,指定变量不可被当前线程/进程改变(但有可能被系统或其它线程/进程改变)

volatile:与 const 合称“CV特性”,指定变量的值有可被系统或其它线程/进程改变,强制编译器每次从内存中取得该变量的值

二、流程控制关键字

A 跳转结构(4个)

return:用在函数体中,返回特定的值(或者是 void 值,即不返回值)

continue:结束当前循环,开始下一轮循环

break:跳出当前循环或 switch 结构

goto:无条件跳转语句

B 分支结构(5个)

if:条件语句

else:条件语句否定分支(与 if �连用)

switch:开关语句(多重分支语句)

case:开关语句中的分支标记

default:开关语句中的“其它”分治,可选

C 循环结构(3个)

for:for 循环结构,for(1;2;3)4;的执行顺序为1->2->4->3->2...循环,其中2为循环条件

do:do循环结构,do 1 while(2);的执行顺序是1->2->1...循环,2为循环条件

while:while循环结构,while(1)2;的执行顺序1->2->1...,1为循环条件以上循环语句,当循环条件表达式为真则继续,是假则跳出循环。

三、C99 和 C89 标准对比多了些什么

1、restrict:指针类型修饰符

C99 中增加了适用于指针的 restrict 类型修饰符,它是�初始访问指针所指所指对象的唯一途径,因此只有借助 restrict 指针表达式才能访问对象。restrict 指针主要用做函数变元,或者指向由 malloc() 函数所分配的内存变量。restrict 数据类型不改变程序的语义。

如果某个函数定义了两个 restrict 指针变元,编译器就假定它们指向两个不同的对象,memcpy()函数就是 restrict 指针的一个典型应用示例。C89 中的 memcpy()函数原型如下:

代码:

void *memcpy(void *s1, const void *s2, size_t size);

如果 s1 和 s2 所指向的对象重叠,其操作就是未定义的。memcpy()函数中只能用于不重叠的对象。C99 中的 memcpy()函数原型如下:

代码:

void *memcpy(void * restrict s1, const void * restrict s2, size_t size);

通过使用 restrict 修饰 s1 和 s2 变元,可确保它们在该原型中指定不同的对象。

2、inline(内联)关键字

内联函数除了保持结构化和函数式的�定义方式外,还能使程序员写出高效率的代码。函数的每次调用与返回都会消耗相当大的系统资源,尤其是当函数调用发生在重复次数很多的循环语句中时。一般情况下,当发生一次函数调用时,变元需要进栈,各种�寄存器内存需要保存。当函数返回时,寄存器的内存需要恢复。如果该函数在代码内进行联机扩展,当代码执行时,这��些保存和恢复操作旅游活动会再发生,而且函数调用的执行速度也会大大加快。函数的联机扩展会产生较长的代码,所以只应该内联对应程序性能有显著影响的函数以及长度较短的函数。

3、新增数据类型

_Bool

值是0或1。C99 中增加了用来定义 bool、true 以及 false 宏的头文件夹,以便程序员能够编写同时兼容于 C 与 C++ 的应用程序。在�编写新的应用程序时,应该使用 头文件中的 bool 宏。

c语言程序关键字是什么,C语言中32个关键字详解相关推荐

  1. c语言中ANSI标准的关键字,C语言中32个关键字详解

    C语言中32个关键字详解 由 ANSI 标准定义的 C 语言关键字共32个,根据关键字的作用,可以将关键字分为数据类型关键字和流程控制关键字两大类. 一.数据类型关键字 A 基本数据类型(5个) vo ...

  2. sort在c语言中的作用,c语言中sort的用法详解.docx

    c语言中sort的用法详解.docx C语言中SORT的用法详解C语言的学习很多是比较复杂的,那么C语言中SORT的用法的用法你知道吗下面学习啦小编就跟你们详细介绍下C语言中SORT的用法的用法,希望 ...

  3. c语言4钟存储类型关键字用法,求C语言中的32个关键字及其意思? C语言中32个关键字的意思和用法~!...

    C语言中的32个关键字及其意思如下: 1.auto    声明自动变量 2.short    声明短整型变量或函数 3.int    声明整型变量或函数 4.long    声明长整型变量或函数 5. ...

  4. c语言程序float的意思,c语言中的float表示什么意思?

    c语言中的float表示什么意思? 发布时间:2020-04-03 14:51:43 来源:亿速云 阅读:384 作者:小新 c语言中的float表示什么意思?很多人都不太了解,今天小编为了让大家更加 ...

  5. 简述C语言中32个关键字

    在C语言中,一共有32个关键字,这些关键字我们可以将其非为两类:分别是数据类型关键字和流程控制类关键字.其中数据类关键字又可以分为A基本数据类型(5个).B类型修饰关键字(4个).C复杂类型关键字(5 ...

  6. c语言中extern关键字_了解C语言中的extern关键字

    c语言中extern关键字 In this article, we'll take a look at understanding the extern keyword in C. 在本文中,我们将了 ...

  7. c语言中for语句的用法及规则,C语言中for语句用法详解

    请看正文 C语言中,for语句是三种循环控制语句之一.也是比较常用且执行效率较高的一种.本文将详细阐述for语句的用法及使用注意事项. 一.基本用法 for(;;) { 循环体语句; } C语言中,f ...

  8. C语言中fopen函数用法详解

    fopen函数用来打开一个文件,其调用的一般形式为: 文件指针名=fopen(文件名,使用文件方式); 其中, "文件指针名"必须是被说明为FILE 类型的指针变量: " ...

  9. R语言中apply系列函数详解

    文章目录 apply lapply, sapply, vapply rapply tapply mapply R语言系列: 编程基础

最新文章

  1. boost::hana::detail::create用法的测试程序
  2. javascript-高级用法
  3. jQuery-Selectors(选择器)的使用(一、基本篇)
  4. linux中sleep详解实例
  5. 【ModelArts-Lab AI实战营】使用Postman测试Modelarts在线服务(图像分类、物体检测)
  6. ORACLE 多表关联 UPDATE 语句
  7. 2021年重庆市高考成绩查询时间复核,2021年重庆高考怎么查询是否被录取,具体录取时间安排...
  8. spring循环依赖 第二讲
  9. silverlight控件动画状态的过渡
  10. 基于PHP的教学管理系统_WEB管理系统_MySQL应用
  11. 财经365热点:当阿里巴巴不再讲“中台”
  12. L298N电机驱动模块
  13. UE4编辑器工具——制作一个批量改名的小工具
  14. 初学vue,模仿个静态网站
  15. 轻松解决U盘中病毒,文件变成.exe执行文件的问题
  16. 图像和视频的主要格式与编码格式。
  17. Blender烘焙光照贴图
  18. 苹果双系统怎么切换_苹果电脑双系统的好处
  19. 公司新加了一台友宝自动售货机引发的思考-适配者模式
  20. 少年宫计算机室管理制度,少年宫计算机室活动计划](4页)-原创力文档

热门文章

  1. 《游戏开发基础》课程论文丨基于Unity与Bolt的抗美援朝主题3D游戏设计
  2. 硬件设计 之 CAN通信-DSView逻辑分析仪使用-CAN波形测试
  3. 言简意赅之二进制运算符口诀
  4. 红黑树的性质以及时间复杂度证明
  5. Excel实用技巧分享:Excel如何跨工作表求和
  6. Ubuntu16.04中Docker的卸载和安装
  7. 极简实现 TiDB 冷热数据分层存储 | He3 团队访谈
  8. mysql 恢复 innodb_MySQL:Innodb恢复的学习笔记
  9. 【机器学习--朴素贝叶斯与SVM进行病情分类预测】
  10. linux模拟器玩三国战记,三国战纪风云再起街机版