C语言预定义宏与编程基础

需积分: 50 3 下载量 131 浏览量 更新于2024-08-19 收藏 838KB PPT 举报
"这篇资源是关于C语言基础知识的讲解,特别是预定义宏的使用,以及C语言的历史、特点、优缺点、基本概念和GCC编译器的介绍。" 在C语言中,预定义宏是一类特殊的标识符,它们在编译期间由编译器自动替换为特定的值。以下是一些常用的预定义宏: 1. **`__LINE__`**:这个宏在编译时会被替换为当前源代码行的数字,是程序员调试代码时非常有用的工具,因为它可以提供出错位置的精确行号。 2. **`__FILE__`**:它会被替换为包含该宏的源文件的名称,通常是一个字符串字面量,这对于跟踪错误发生的位置非常有帮助。 3. **`__DATE__`**:此宏在编译时会被替换为编译日期,格式通常是"月份 日 年份",例如 "Feb 14 1993"。 4. **`__TIME__`**:类似地,它会被替换为编译时间,格式为"小时:分钟:秒",如"15:30:45"。 5. **`__STDC__`**:这个宏用于检测编译器是否遵循C标准。如果编译器支持C89/90标准,它的值将是1;如果支持C99或更高版本,也可能是1,具体取决于编译器的实现。 C语言的标准化历程包括C89(ANSI C)和C99两个重要阶段,这两个标准对C语言的语法和库函数进行了规范和扩展。C语言以其高效、可移植性和功能强大而著称,但也因为其灵活性和对错误检查的宽松而可能导致一些潜在的问题。 编写C程序的基本步骤包括预处理、编译和连接。预处理阶段处理预处理器指令,如`#include`,编译阶段将源代码转换为机器码,连接阶段则合并所有目标文件和库,生成最终的可执行文件。`GCC`是广泛使用的C编译器,支持多种编程语言,并可在多种操作系统上运行。GCC提供了丰富的编译选项,例如 `-c` 只编译不连接,`-o` 指定输出文件名,`-std` 选择C语言标准,`-pedantic` 和 `-Wall` 分别用于严格遵循标准和显示所有警告。 在简单的"Hello World!"程序中,我们可以看到几个关键的C语言特性: - `#include<stdio.h>` 是预处理器指令,用于引入标准输入输出库。 - `main` 函数是C程序的入口点。 - `printf` 是一个库函数,用于输出字符串到标准输出。 - `return 0;` 结束`main`函数并返回退出状态。 这份资源涵盖了C语言的基础知识,对于初学者来说是一份很好的学习资料。