c头文件包含其他头文件,c语言 头文件互相包含怎么办

1,c语言 头文件互相包含怎么办1234567891011121314 头文件先把函数声明一下,如:.h文件:intfunc_a();intfunc_b();a.c文件intfunc_a() //实现}b.c文件intfunc_b() //实现}如果不在工程同一个目录下,就得用绝对路径#include<文件路径>或#include"文件路径"文件路径可以是绝对路径,如:c:\text.h#include "c:\text.h"
2,C头文件包含的疑问 寻解惑你觉得int a;是声明还是定义呢?当然是声明 。当然是写在头文件 , 如:/*a.h*/#ifndef A#define AI2C_Handle h_i2c;#endif/*a.c*/#include"a.h"/*b.h*/#include"a.h"/*b.c*/#include"b.h"//这样在b,c中就不用重新分配了 。//你对#ifndef 没理解够吧你好!在头文件中声明一次,在其他.c文件中使用关键字extern进行引用 。如果对你有帮助,望采纳 。
3,关于C多文件编译如果两个头文件都需要包含另一个头文件而这为何宏判断不能使用呢在b里面说明a的宏出现了,然后c里面a那部分不就不会出现了吗 。不是大牛,只是路过,求学习#ifndef #define ... #endif对此肯定起作用的(只要定义得当) 。理论上,同一个头文件#include多次是没关系的,只要头文件符合标准并使用了#ifndef #define ... #endif进行控制 。所以你应该是还有别的问题 。如果可以的话,我需要看一下你的各个头文件,才能确定具体的问题所在 。你先要确保:#ifndef #define ... #endif格式正确:#ifndef _a_xxxx_h_/* 这个名称只要不重复是无所谓的 */#define _a_xxxx_h_/* 要和上面的一样 */... #endif【c头文件包含其他头文件,c语言 头文件互相包含怎么办】
4,用C语言编程时开头部分包括的很多头文件属于C语言的头文件还是库函数 。是c编译系统提供的一批库函数 。不同的编译系统所提供的库函数的数目和函数名以及函数功能是不完全相同的 。但是ANSI C标准提出了一批建议提供的标准库函数 。因此有些库函数是大多数编译系统通用的 。例如:一些常见的#include<math.h>#include<ctype.h>#include<string.h>#include<stdio.h>#include<stdlib.h>包含conio.h的文件 。该文件称位头文件 。双引号表示从当前目录中找,如果找不到就到标准库中找 。#include <conio.h>这个是从标准库中找 。c的头文件,就是一些别人帮你编好的集成了一些功能的c源文件 , 如果你不想用那些功能或者你想自己写,就不用include其实每个头文件都是一个函数,只不过那些函数是编译系统自带的所以称为是库函数..例如stdio.h这个头文件里就包涵了输入输出的一些数据处理功能后返回到主调函数中去..开头的#include<....>也就是说把外部的函数声明,让内部的函数认识它.准确地说:c语言编译系统的头文件也就是c语言编译系统为你写好了的文件 里面有 如printf scanf abs 等等库函数 你可以包含头文件之后直接用;)5,C多文件编译如果两个头文件都需要包含另一个头文件而这两个假如你现在有 a.h b.h c.h三个头文件,A B C三个程序都要调用这时候你可以这样,比如A B C三个程序都要用到#include <string>那么他们的头文件里你可以这样写#ifndef STRING_ABC_H#define STRING_ABC_H#include <string>#endif这样当编译器第一次编译string的时候就已经定义宏了 。。下次遇到同样的宏就会跳过你好!假如你现在有 a.h b.h c.h三个头文件,A B C三个程序都要调用这时候你可以这样,比如A B C三个程序都要用到#include 那么他们的头文件里你可以这样写 #ifndef STRING_ABC_H #define STRING_ABC_H #include #endif 这样当编译器第一次编译string的时候就已经定义宏了 。。下次遇到同样的宏就会跳过 打字不易,采纳哦!#ifndef #define ... #endif对此肯定起作用的(只要定义得当) 。理论上,同一个头文件#include多次是没关系的,只要头文件符合标准并使用了#ifndef #define ... #endif进行控制 。所以你应该是还有别的问题 。如果可以的话,我需要看一下你的各个头文件,才能确定具体的问题所在 。你先要确保:#ifndef #define ... #endif格式正确:#ifndef _A_XXXX_H_/* 这个名称只要不重复是无所谓的 */#define _A_XXXX_H_/* 要和上面的一样 */... #endif#ifndef #define ... #endif应该可以的啊,你头文件要用大写的 。用A_H别用a.h

    推荐阅读