0.前言
xdm,今天是阳了的第一天,昨天是高烧,浑身酸痛,今天好多了。。。祝大家健康。
推荐一首歌《不是因为寂寞才想你》。看了《阿凡达2》,感觉没第一部好看哎。
1.extern
之前写过一篇博客extern关键字。今天讲一下和头文件的关系。
创建四个文件。
情形一:
main.h:
#ifndef __MAIN_H
#define __MAIN_H
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#endif
main.c
#include "main.h"
#include "extern.h"
extern int fromE;
void main(void)
{
printf("%d\n",fromE);
}
extern.h
#ifndef __EXTERN_H
#define __EXTERN_H
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void funcExtern(void);
#endif
extern.c
#include "extern.h"
int fromE = 666888;
void funcExtern(void)
{
printf("extern:%d\n",fromE);
}
上面这情形是我们经常用到的,我们编译
gcc main.c extern.c
没有问题。看看看情形二。
情形二:假设有这个需求,你不想使用extern关键字在引用文件里,我还是想通过头文件的形式,那我应该怎么做?简单,假设变量fromE还是在extern.c中声明定义,那我不想在main.c中使用extern,所以只能在extern.h中进行声明。如下:
extern.h
#ifndef __EXTERN_H
#define __EXTERN_H
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
extern int fromE ;
void funcExtern(void);
#endif
这样就不用在main.c中使用extern了。
2.总结
2022就要过去了,接下来两年是机会之年。。。先学会沉淀。