c语言头文件(extern)

1.概念

头文件是扩展名为 .h 的文件,包含了 C 函数声明和宏定义,被多个源文件中引用共享。有两种类型的头文件:程序员编写的头文件和编译器自带的头文件。

在程序中要使用头文件,需要使用 C 预处理指令 #include 来引用它。stdio.h 头文件,它是编译器自带的头文件。

引用头文件相当于复制头文件的内容,但是我们不会直接在源文件中复制头文件的内容,因为这么做很容易出错,特别在程序是由多个源文件组成的时候.
    
头文件的写法,把所有的函数和全局变量都声明。声明使用#ifndef  #define  #endif, 避免重复导入。(入口函数main不能声明,这是一个例外,  static修饰的全局变量不要声明)

static修饰全局变量的作用为:限制在当前文件中使用。
.c文件中要访问别的.c文件中的函数或全局变量, 就导入相应.h文件

2.引用头文件语法

使用预处理指令 #include 可以引用用户和系统头文件。它的形式有以下两种:

#include <file>

这种形式用于引用系统头文件。它在系统目录的标准列表中搜索名为 file 的文件。在编译源代码时,您可以通过 -I 选项把目录前置在该列表前。

#include "file"

3.引用<>与""的区别

#include < > 引用的是编译器的类库路径里面的头文件。

#include " " 引用的是你程序目录的相对路径中的头文件,如果在程序目录没有找到引用的头文件则到编译器的类库路径的目录下找该头文件。

4.头文件引用

如果一个头文件被引用两次,编译器会处理两次头文件的内容,这将产生错误。为了防止这种情况,标准的做法是把文件的整个内容放在条件编译语句中,如下:
#ifndef HEADER_FILE
#define HEADER_FILE

the entire header file file

#endif

自定义函数引用头文件myhead.h

/*===============================================
*   自定义函数:add.c
================================================*/
#include<stdio.h>
//.c文件中要访问别的.c文件中的函数或全局变量, 就导入相应.h文件
#include "./myhead.h"
int add(int a,int b){
    return a+b;
}
void test(){
    printf("tttt");
}

头文件myhead.h

/*===============================================
*   文件名称:myhead.h
*   描    述:创建自己的头文件,共享函数
================================================*/
#ifndef MYHEAD_H
#define MYHEAD_H
    extern int add(int,int);
	static void();
#endif

main方法引用add.c的函数

#include <stdio.h>
.c文件中要访问别的.c文件中的函数或全局变量, 就导入相应.h文件
#include "./myhead.h"
int main(){   
    printf("%d\n",add(3,4));
    //static修饰函数,使得其他源文件不能引用此函数。
    void();
    return 0;
} 

5.static

1.static修饰局部变量,延长了变量的生命周期,并且变量的地址将一直存在并保持不变。
2.static修饰全局变量,使得其他源文件不能引用此全局变量。
3.static修饰函数,使得其他源文件不能引用此函数。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值