多文件编程

  • 把函数声明放在头文件xxx.h中,在主函数中包含相应头文件
  • 在头文件对应的xxx.c中实现xxx.h声明的函数

image.png

防止头文件重复包含

  • 当一个项目比较大时,往往都是分文件,这时候有可能不小心把同一个头文件 include 多次,或者头文件嵌套包含。
  • 为了避免同一个文件被include多次,C/C++中有两种方式。
  • 方法一: ```c

    ifndef SOMEFILE_H

    define SOMEFILE_H

// 声明语句

endif

  1. - 方法二:
  2. ```c
  3. #pragma once
  4. // 声明语句

命令行编译程序

gcc -g main.c func.c -o main.exe

  • -g 指定编译的文件,多个文件用空格隔开。注意:只需要编译c文件,h文件不需要加入进去;
  • -o 指定生成可执行文件的名字;

ps:命令行显示中文乱码,修改命令:chcp 65001

头文件包含的区别

  • <> 表示系统直接按系统指定的目录检索
  • “” 表示系统先在 “” 指定的路径(没写路径代表当前路径)查找头文件,如果找不到,再按系统指定的目录检索

    extern关键字

    extern主要用于声明外部变量或函数,当我们将一个变量或函数声明为extern时,那么就表示该变量或函数是在其他地方定义的,我们只是在当前文件中引用它。

示例

  1. #include <stdio.h>
  2. extern int global_val;
  3. extern void printf_val();
  4. int main() {
  5. global_val = 100;
  6. printf_val();
  7. return 0;
  8. }
  1. #include <stdio.h>
  2. int global_val;
  3. void printf_val() {
  4. printf("other->global_val: %d\n", global_val);
  5. }