头文件中可以写函数吗,单片机编程时自己定义的头文件里面是否可以写进子函数

1,单片机编程时自己定义的头文件里面是否可以写进子函数 这个是可以的,通用的头文件中,也有很多函数,使用时可以调用, 自定义的函数也一样,使用时调用即可可以
2,请问C语言怎么把函数放在头文件里面呢你可以创建头文件 , 头文件是以".h"结尾的文件名,而main()函数所在的文件则是以".c"结尾的,".c"后缀的文件内部,也就是main函数内部主要是调用各个功能函数,函数的声明部分一般放在在".h"后缀的头文件中 , 这样是为了实现C语言的结构化,创建好了头文件,就可以在头文件内部实现各个函数的声明 , 具体的一个完整的函数声明可以用下面的加法函数例子来说明 ://include<add.h>,头文件名为add的头文件float add(float x,float y)/*定义add函数*/float z;z=x+y;return(z);}这个函数的返回值是float(浮点型或是实型),add为函数名 , 调用的形参都是float类型,数目为两个形参x,y 。x,y是接受main()函数中的实参传过来的具体值,然后进行运算 。main函数调用只要这样就可以:#include<stdio.h>#include<add.h>main()float c;c=add(4.6,5.4);printf("x+y=%d",c);}
3,函数实现代码可以写在头文件中吗对于小的简单程序来说,完全可以不要cpp,除了main所在的cpp,但是很多情况下cpp是更好的选择或者说是必须的我举几个例子:1. 当你的项目很大,如果全部都写到h里 , 则每次改动和编译都需要全部编译,往往大部分代码不需要重新编译,若写到cpp里编译成库 , 则改动后可以尽可能少编译2. 当然,大的项目需要结构清晰,h里放数据结构以及接口定义而不用管实现,往往有利于阅读和维护,就像别人只需要知道你是做什么的,至于如何做到大可不用关心3. 有种情况似乎更需要把实现分开,比如两个h定义了两个class,它们都相互引用对方 , 则至少其中一个会用到非完整类型,即只有声明没有定义的类型 , 试想编译器在不知道完整类型的情况下是不知道如何生成代码的,所以写到cpp里才可以解决 。这个例子有点难懂 , 但遇到的时候就会明白了【头文件中可以写函数吗,单片机编程时自己定义的头文件里面是否可以写进子函数】
4,如何在头文件中声明函数函数声明由函数返回类型、函数名和形参列表组成 。形参列表必须包括形参类型,但是不必对形参命名 。这三个元素被称为函数原型,函数原型描述了函数的接口 。定义函数的程序员提供函数原型,使用函数的程序员就只需要对函数原型编辑即可 。比如:【返回类型】 函数名(参数1类型 参数1,参数2类型 参数2,……);实例:bool swap(int a,int b); 例子中函数的返回类型为bool型,两个参数都是int型,一个名称为a ,一个名称为b函数声明中的形参名往往被忽略,如果声明中提供了形参的名字,也只是用作辅助文档 。另外要注意函数声明是一个语句,后面不可漏分号!如果是自己写的函数,在声明函数的同时要对函数进行定义 。假设头文件名为head.h,源文件名为main.cpp,两个文件在同一个目录下在头文件中直接加上int swap(int a,int b);这一句就可以了在源文件中还要加上include"head.h"并且加上函数的定义:boolswap(int a,int b)int c;c=a;a=b;b=c;}注意在头文件中声明后记得在源文件中包含这个头文件,要不然是找不到函数的定义的 。5 , 在头文件中写函数规范吗加载头文件的实质是什么如何避免重复引我反过来回答吧 。1. #include就是把头文件的内容搬过来 。编译器是只编译C文件的,它不会单独编译头文件,头文件只是被包含的 。如果一个头文件没有被任何C文件包含,则该头文件中的内容不会被编译到 。2. 如果程序规模不大,函数写在头文件里也行,但有些项目非常大,几百万行代码,上万个文件,如果一个头文件同时被好几千个C文件包含,这时如果该头文件里有很多函数的实现 , 那么这些函数将被重复编译好几千遍 。有些大型开源项目(例如OpenOffice),完全编译一次要花十几个小时,时间就是这么浪费的 。1、一般会是在.c里面写函数的实现 。如果该函数除了在对应.c中使用还在其他.c中使用 , 则将函数声明放在对应.h中,其他.c文件只要包含该.h文件即可 。同时该不能定义成static 。2、可以在头文件里使用#ifndef _A_H_#define _A_H_......#endif//.h文件结尾处编译的命令错了吧gcc a.c b.c -o main其他没问题 , 即使不加b.h编译也不会错6,函数实现代码可以写在头文件中吗一般来说头文件是用来声明,cpp是实现,如果什么没变,实现变了,依赖这个类的地方就不用重新编译了 。还有如果是声明和定义都写在一起,编译器默认认为它是inline,生成的2进制代码比较多可以的 , 可以将类声明和定义都完整实现写在头文件里 。可以 但必须要有一个.cpp文件做主程序对于小的简单程序来说,完全可以不要cpp,除了main所在的cpp,但是很多情况下cpp是更好的选择或者说是必须的我举几个例子:1. 当你的项目很大 , 如果全部都写到h里,则每次改动和编译都需要全部编译 , 往往大部分代码不需要重新编译,若写到cpp里编译成库 , 则改动后可以尽可能少编译2. 当然,大的项目需要结构清晰 , h里放数据结构以及接口定义而不用管实现,往往有利于阅读和维护,就像别人只需要知道你是做什么的,至于如何做到大可不用关心3. 有种情况似乎更需要把实现分开,比如两个h定义了两个class,它们都相互引用对方,则至少其中一个会用到非完整类型 , 即只有声明没有定义的类型,试想编译器在不知道完整类型的情况下是不知道如何生成代码的,所以写到cpp里才可以解决 。这个例子有点难懂,但遇到的时候就会明白了7 , 请问C语言怎么把函数放在头文件里面呢你可以创建头文件,头文件是以".h"结尾的文件名 , 而main()函数所在的文件则是以".c"结尾的 , ".c"后缀的文件内部,也就是main函数内部主要是调用各个功能函数 , 函数的声明部分一般放在在".h"后缀的头文件中,这样是为了实现C语言的结构化 , 创建好了头文件,就可以在头文件内部实现各个函数的声明,具体的一个完整的函数声明可以用下面的加法函数例子来说明 ://include<add.h>,头文件名为add的头文件float add(float x,float y)/*定义add函数*/{float z;z=x+y;return(z);}这个函数的返回值是float(浮点型或是实型),add为函数名,调用的形参都是float类型,数目为两个形参x,y 。x,y是接受main()函数中的实参传过来的具体值,然后进行运算 。main函数调用只要这样就可以:#include<stdio.h>#include<add.h>main(){float c;c=add(4.6,5.4);printf("x+y=%d",c);}一般的做法是,头文件里写函数的声明,而实现写在.c文件里

    推荐阅读