【连载】(C语言这些关键词你都知道吗?)——乐创DIY C语言讲义——4.7节 2024-03-31 08:15:41 4.7 C语言关键词一览 讲到上述最后一个内容为止,我们在之前学习的代码中或多或少地学习了一些C语言的关键词,但是这些关键词都是零散地介绍的。本节内容,将系统地将C语言中的关键词进行罗列讲解。早在C90时候,即第一版本的ISO C语言里面,一共包含了32个关键词,这些关键词在绝大多数的C语言书里面都会讲解,也是我们平时使用频率很高的一些关键词。如图4-7-1所示。 图4-7-1 C89/C90中的关键词后来到C99更新标准的时候,对C90中的关键词进行了扩充,此次扩充的关键词数量为5个,分别覆盖了数据类型的扩充,函数定义的扩充和指针限定等方面。C99新增的5个关键词如图4-7-2所示。 图4-7-2 C99新增的5个关键词_Complex和_Imaginary关键词,增加了C语言对复数的支持,包含标准头文件“<complex.h>”后,我们就可以用 complex来代表 _Complex,用imaginary来代表 _Imaginary,以及用“_Complex_I”或者大写字母“I”来代表虚数单位 i,也就是 -1的平方根。_Bool关键词,补充了C语言对布尔类型的支持,包含标准头文件<stdbool.h>后,我们可以用 bool 代替 _Bool ,true 代替 1 ,false 代替 0 。例如:bool logic_switch = true;logic_switch = false;我们前面所说的C语言中没有表示布尔类型的关键词,也是基于C90所说,因为C99后加的Bool类型关键词,它并不是类似于通常意义上面的原生C语言关键词,需要加入额外的头文件才能支持。最新的C语言版本C11,在C99的基础上增加了7个关键词,如图4-7-3所示。 图4-7-3 C11中增加的7个关键词这些关键词中,_Alignof给出指定数据类型内存对齐的字节数,如double按8字节对齐,其内存地址都是8的整数倍。_Alignas关键字指定某个变量按照其他数据类型对齐,如char正常按1字节对齐,可指定按short类型的2字节对齐。_Atomic关键词是针对多线程的原子操作而增加的关键词。 _Static_assert关键词是用于编译期间的断言,因此也称为静态断言。_Noreturn表明调用完成后函数不返回主调函数。注意,这与void返回类型不同。void类型的函数在执行完毕后返回主调函数,只是它不提供返回值。_Thread_local为线程存储类限定符。_Generic提供一种基于控制表达式的类型,在编译时选择数个表达式之一的方法。对于C11标准,我们在平时做C语言设计时,用的非常少,因为对于单片机开发来说,其程序设计比较简单,基本用不到C11中新增的功能。而对于Linux开发来说,底层程序开发都是基于GNU C语言的,而GNU C语言对标准C语言又有很多扩展,甚至C11中某些新特性是从GNU C中借鉴过来的。我们在指定GCC编译器编译C语言版本时,可以使用后缀命令-std=c11,来使编译器支持C11版本。如:-std=c++11,支持C++11标准;-std=gnu++11,支持C++11标准和GNU扩展特性;因此我们编译时,指定C语言版本,可以直接使用命令:gcc -o 程序名源文件.c -std=c11。我们后续的内容,基本都是基于C99来讲述的,对于使用到C11特性或者GNU扩展,在使用时会做必要的说明。有关C99中各个关键词的详细讲解,我们在学完指针和结构体之后会做一个完整的梳理。有关C语言各个版本特性比较以及各个新增关键词的使用,我们将会做成精品栏目推送。 赞 (0) 相关推荐 SCL语言基本语法规则:表达式 SCL:Structured Control Language,结构化控制语言. SCL是一种类似于计算机高级语言的编程方式,只是这种语言编写的程序,可以在PLC中运行.如果学过C语言或者VB语言,就 ... 微小的CMD 本文的目的是说明如何从任何应用程序(无论其类型(MFC,Win32,控制台))运行CMD命令,等待结果并使用您自己的用户界面查看它们. 背景 作为SecuredGlobe,Inc.日常工作的一部分,我 ... Python语言学习:python语言的特点、入门、基础用法之详细攻略 Python语言学习:python语言的特点.入门.基础用法之详细攻略 相关内容 Python 基础教程 python语言的特点 1.pickle功能:Python 有pickle 这个便利的功能.这 ... 【连载】(学了这么多年C语言,你真的了解static关键词吗)乐创DIY C语言讲义——4.4节 4.4 变量的补充 前面内容中,我们已经讨论了变量的定义,但是由于函数的概念还没有引入,因而这是不全面的,本节开始,我们再来补充一些变量的其他内容,这就相当于对变量这个概念的重新认识. 我们之前讲的变 ... 【连载】(一维数组的简单应用)——乐创DIY C语言讲义——5.3节 5.3 一维数组的简单应用 前面我们已经讲述了如何去定义一个一维数组,并且对所定义好的一维数组进行元素的读写和数组的遍历,本小节专门再来讲述一些数组的具体应用,使各位读者可以更好地去掌握一维数组. 首 ... 【连载】(函数私有化)乐创DIY C语言讲义——4.6节 4.6 函数私有化 C语言的语句非常简单,关键词也少得可怜,关于变量和函数的修饰符也就只有区区几个,因此一个关键词有时候有着多重含义,这也就是为何C语言明明非常简单,但是用起来又非常复杂的原因之一.C ... 【连载】(堆栈和递归函数)乐创DIY C语言讲义——4.5节 4.5 堆栈和递归函数 堆栈这个概念,最早学习微机原理的时候就学过,它表示的是一种在汇编语言调用子程序时候保存现场的存储空间,它所具有的数据结构属性就是先进后出,这个是我们之前学习计算机硬件时候讲述的 ... 【连载】(函数的参数和返回值)乐创DIY C语言讲义——4.3节 4.3 函数的参数和返回值 函数定义和声明好之后,整个函数也就定义好了,上一小节我们说到,声明函数原型的目的,就是将函数的信息传递给编译器"登记"下来,以便后续调用时进行参数的检查 ... 【连载】(函数声明和简单的Makefile文件)乐创DIY C语言讲义——4.2节 4.2 函数声明 当编译器检测到一个函数调用时,它产生代码传递参数,并且调用这个函数,等函数运行完成之后,接收到这个函数的返回值(如果函数有返回值).但是编译器是如何知道函数接收到的是什么类型和多少数 ... 【连载】(函数的定义)乐创DIY C语言讲义——4.1节 4.1函数的定义 到目前为止,我们所有的程序都是以"main()"函数作为程序的唯一入口的,对main函数的解释,也就仅限于其作为整个程序的入口.但是函数的定义,入口参数,返回值等 ... 【连载】(选择执行语句if else和switch)乐创DIY C语言讲义——3.8节(4) 4 选择执行语句 有些时候,我们希望程序既不顺序执行,也不只做单一的判断(代码运行还是不运行),很多时候,我们往往只希望对某一个条件的不同状态分别执行不同的语句,这样就构成C语言中的选择执行语句了.C ... 【连载】(循环执行语句while和if)乐创DIY C语言讲义——3.8节(3) 2 循环执行语句 计算机有一个强大的能力,快速地重复执行某一计算,这种重复计算多次的方法,是通过软件中的循环执行语句去实现的.C语言中实现循环语句结构的方式有三种,第一种为"for" ...