Skip to content

模块化编程

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

防止头文件重复包含

  • 当一个项目比较大时,往往都是分文件,这时候有可能不小心把同一个头文件 include 多次,或者头文件嵌套包含。

  • 为了避免同一个文件被 include 多次,C/C++中有两种方式。

  • 方法一:

    c
    #ifndef __SOMEFILE_H__
    #define __SOMEFILE_H__
    
    // 声明语句
    
    #endif
  • 方法二:

    c
    #pragma once
    
    // 声明语句

命令行编译程序

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

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

头文件包含的区别

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

extern 关键字

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

示例

c
// filename: main.c
#include <stdio.h>

extern int global_val;
extern void printf_val();

int main() {

    global_val = 100;
    printf_val();

    return 0;
}
c
// filename: other.c
#include <stdio.h>

int global_val;

void printf_val() {
    printf("other->global_val: %d\n", global_val);
}