模块化编程
- 把函数声明放在头文件
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);
}