UNIX-C 88 - Introduction to GCC Extensions (unfinished)
# 前置知识
本文内容相对较为深入,在阅读本文档前,建议你先阅读我的其它所有非进阶文档,详见 C 语言栏目。
请注意:本文是面向进阶读者的,在阅读本文档前,请确保你已经具备了较为完整的 C 语言基础。
# 前言
GCC 扩展指的是由 GNU C 提供的、原本 ISO C 标准中没有的语言特性,它们丰富了 C 语言的功能,为程序员提供了更多便捷,但是这些特性仅在最广泛使用的 C 编译器 GCC 中有效。甚至,有些我们平时已经用惯了的语法,实际上都是 GCC 扩展的一部分。
- 注:GCC 官方文档把使用其独有方式实现 C 标准要求的行为也认为是 C 扩展。本文不把这部分内容算作是 C 扩展,而只囊括那些标准 C 没有的语法特性,还请注意。
可以通过检查宏 __GNUC__
是否被定义来判断 GCC 扩展是否可用,也可以使用编译选项 -pedantic
来指示 GCC 对使用了 GCC 扩展的程序输出警告消息。
#ifdef __GNUC__
// ...
#endif
在 C 语言栏目中,编号 以上的文章专用于介绍各种 GCC 扩展。
- 01
- Reading Papers - Kernel Concurrency06-01
- 02
- Linux Kernel - Source Code Overview05-01
- 03
- Linux Kernel - Per-CPU Storage05-01