最新发布

C 语言静态断言简介

函数 assert 在程序运行期间做诊断工作,从 C11 开始引入的静态断言 _Static_assert 可以把检查和诊断工作放在程序编译期间进行。
阅读全文

C 语言 C11 函数指定符 _Noreturn 和头 <stdnoreturn.h>

在 C 语言里,有些函数是不返回的,比如 longjmpexitabort。从 C11 开始引入了一个函数指定符,也就是关键字 _Noreturn,意思是“不返回”。如果在一个函数的声明里有这个函数指定符,则意味着它不返回到调用者。
阅读全文

C 语言内联函数简介

C99 及之后的函数声明中有一个 C89 中不存在的选项:可以包含关键字 inline。这个关键字是一个全新的声明指定符,不同于存储类型、类型限定符以及类型指定符。为了理解 inline 的作用,需要把 C 编译器在调用函数和从函数返回过程中产生的机器指令可视化。
阅读全文

C 语言初始化器简介

为了方便,C 语言允许在声明变量时为它们指定初始值。为了初始化变量,可以在声明符的后边书写符号 =,然后在其后加上初始化器。(不要把声明中的符号 = 和赋值运算符相混淆,初始化和赋值不一样。)
阅读全文

C 语言声明符简介

声明符包含标识符(声明的变量或函数的名字),标识符的前边可能有符号 *,后边可能有 []()。通过把 *[]() 组合在一起,可以创建复杂声明符。
阅读全文

C 语言类型限定符简介

早先在 C 语言中一共有两种类型限定符:const 和 volatile。C99 引入了第三种类型限定符,即 restrict,它只用于指针;C11 又引入了第四种类型限定符,即 _Atomic,可用于除数组和函数之外的类型。
阅读全文

C 语言声明的语法

声明符可以只是一个标识符(简单变量的名字),也可能是标识符和 [] 以及 * 的各种组合,用来表示指针、数组或者函数。声明符之间用逗号分隔。表示变量的声明符后边可以跟随初始化器。
阅读全文