自定义头文件,预处理

本文详细介绍了自定义头文件的使用,包括何时需要创建头文件,头文件的书写格式,以及如何处理包含头文件时""和<>的区别。同时讲解了条件编译的概念及其应用场景,并总结了预处理阶段的注意事项。最后,通过实例展示了如何拆分多个.c文件并管理全局变量。
摘要由CSDN通过智能技术生成

一、自定义头文件。
1、自定义头文件一定要写的吗?
不一定要写的,当声明的语句比较多的时候,就会将这些声明的语句写到头文件中。

2、 可以写到自定义头文件中的内容有哪些?
1)包含系统的头文件:#include <stdio.h>
2)宏定义:#define OK 0
3)自定义函数接口声明: int fun(int x,int y);
4)结构体声明:
struct data{
    int a;
    int b;
};

3、自定义头文件书写格式。
1)头文件文件名格式: xxx.h (my_head.h)
2)头文件内容开头必须写:
#ifndef _MY_HEAD_H_    -> 如果之前没有定义过_MY_HEAD_H_
#define _MY_HEAD_H_    -> 那么就定义_MY_HEAD_H_

3)可以明确列出需要包含的内容。
//系统头文件
//函数声明
//宏定义
//结构体声明

4)头文件结束后,必须写上这个
#endif

5)在.c文件写上
#include "my_head.h"  等价于 #include "./my_head.h"  表示在当前的目录下寻找my_head.h,如果找不到,那么就提示找不到头文件。

4、举例子。
参考: header_demo/

5、使用""与<>来包含头文件有什么区别?
双引号"":先在指定的路径下去寻找头文件,如果找不到,则会去系统中寻找头文件,如果找不到,则报错。
尖括号<>:直接去系统中寻找头文件,如果找不到,就报错。

1)使用尖括号来包含系统头文件。
#include <stdio.h>

int main(int argc,char *argv[])
{
    printf("helloworld!\n");
    return 0;
}

结果: 编译通过。   -> 直接去系统中寻找stdio.h,找到了!

2)使用尖括号来包含自定义的头文件。
假设当前目录下有一个头文件叫my_head.h,头文件内容:
-----------------------------
#ifndef _MY_HEAD_H_
#define _MY_HEAD_H_

#include <stdio.h>

#endif
------------------------------
#include <my_head.h>

int main(int argc,char *argv[])
{
    printf("helloworld!\n");
    return 0;
}
结果: 编译不通过,提示头文件找不到。 -> 直接去系统中寻找my_head.h,没找到!

解决方案:在编译时,添加-I来指定头文件的路径。
     g

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值