单文件

  1. // hello.c文件
  2. #include <stdio.h>
  3. int main() {
  4. printf("Hello, Word!\n");
  5. return 0;
  6. }

C程序从源代码到可执行程序需要经过四个阶段:预处理、编译、汇编和链接,流程如图所示
C程序编译运行流程.png
在Linux开发环境中使用gcc构建C程序的命令:

  1. gcc -c hello.c -o hello.o # 编译
  2. gcc hello.o -o hello # 链接
  3. ./hello # 运行生成的可执行程序

如果是单文件程序也可以简化命令为:

  1. gcc hello.c -o hello
  2. ./hello

模块

一个模块通常是由一个头文件和一个或多个源文件构成。比如,hello.h和hell.c就构成了一个模块。

  1. // hello.h文件
  2. void hello(); // 函数声明
  1. // hello.c文件
  2. #include "hello.h" // 头文件的文件路径
  3. #include <stdio.h>
  4. void hello() {
  5. printf("Hello, World!\n");
  6. }

我们可以在其他模块里通过包含该模块的头文件来使用该模块中的内容。

  1. // main.c文件
  2. #include "hello.h" // 添加要使用的模块头文件
  3. int main() {
  4. hello(); // 调用模块中的函数
  5. return 0;
  6. }
  1. 这个由两个模块组成的程序的编译执行命令为:
  1. gcc -c hello.c -o hello.o # 编译第一个模块
  2. gcc -c main.c -o main.o # 编译第二个模块
  3. gcc hello.o main.o -o main # 链接两个模块
  4. ./main