1.结构目录
声明类:用于声明方法,方便方法管理和调用;
实现类:用于实现声明的方法;
应用层:调用方法使用
写过java代码的兄弟们可以这么理解:
声明类 为service层
实现类 为serviceimpl层
应用层 为conlloter层
2.Dome
- 把函数声明放在头文件xxx.h中,在主函数中包含相应头文件
- 在头文件对应的xxx.c中实现xxx.h声明的函数
3.防止头文件重复包含
- 当一个项目比较大时,往往都是分文件,这时候有可能不小心把同一个头文件 include 多次,或者头文件嵌套包含。
- 为了避免同一个文件被include多次,C/C++中有两种方式。
方法一:
#ifndef __SOMEFILE_H__
#define __SOMEFILE_H__// 声明语句#endif
方法二:
#pragma once// 声明语句
4.命令行编译程序
gcc -g main.c func.c -o main.exe //编译
xxx.exe //运行
- -g 指定编译的文件,多个文件用空格隔开。注意:只需要编译c文件,h文件不需要加入进去;
- -o 指定生成可执行文件的名字;
- 注意查看是否在当前文件夹
-
命令行显示中文乱码,修改命令:
chcp 65001
头文件包含的区别
- <> 表示系统直接按系统指定的目录检索
- "" 表示系统先在 "" 指定的路径(没写路径代表当前路径)查找头文件,如果找不到,再按系统指定的目录检索
extern关键字
extern主要用于声明外部变量或函数,当我们将一个变量或函数声明为extern时,那么就表示该变量或函数是在其他地方定义的,我们只是在当前文件中引用它。
dome
#include <stdio.h>extern int global_val;
extern void printf_val();int main() {global_val = 100;printf_val();return 0;
}
#include <stdio.h>int global_val;void printf_val() {printf("other->global_val: %d\n", global_val);
}