导航:首页 > 源码编译 > 编译头文件函数

编译头文件函数

发布时间:2022-05-07 04:47:19

1. 如何在C++头文件中定义函数,然后在源文件中使用

/*在text。h头文件中进行声明*/

#include<iostream>

using namespace std;

void display(int,int);/*使用该函数来实现输出*/

/*在texxt。cpp中进行定义,注意第一行,很重要因为不是c++标准库中的头文件,所以不能用<>,而要用""括起头文件*/

#include "text.h"

void display(int x,int y)

{

cout<<"A="<<x<<"B="<<y<<endl;

}

/*在主函数中进行调用函数*/

#include "text.h"

int main()

{

int a,int b;

cout<<"please input a &b"<<endl;

cin>>a>>b;

display(a,b);

return 0;

}

(1)编译头文件函数扩展阅读:

关于上述中一些关键词的注意事项

h叫做头文件,它是不能被编译的。“#include”叫做编译预处理指令,可以简单理解成,在1.cpp中的#include"1.h"指令把1.h中的代码在编译前添加到了1.cpp的头部。每个.cpp文件会被编译,生成一个.obj文件,然后所有的.obj文件链接起来你的可执行程序就算生成了。

你要在.h文件中严格区分声明语句和定义语句,好的习惯是,头文件中应只处理常量、变量、函数以及类等等等等的声明,变量的定义和函数的实现等等等等都应该在源文件.cpp中进行。

至于.h和.cpp具有同样的主文件名的情况呢,对编译器来讲是没有什么意义的,编译器不会去匹配二者的主文件名,只认#include等语句。

但是这样写是一种约定俗成的编程风格,一个类的名字作为其头文件和源文件的主文件名比如Class1.h和Class1.cpp,这个类的声明在Class1.h中,实现在Class1.cpp中,看起来比较整齐,读起来方便,也很有利于模块化和源代码的重用。

2. 关于c语言头文件编译和运行的问题

1、只要在程序开头加入#include<头文件名>,在编译过程当中,头文件自动会被添加到源文件当中一起进行编译。
2、编译,编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。
C源程序头文件-->预编译处理(cpp)-->编译程序本身-->优化程序-->汇编程序-->链接程序-->可执行文件。

3. c++中如何编译头文件,编译头文件的作用,

编译头文件的理解窍门,在include语句。
你可以理解为,include就是替换,在编译的时候,在include的位置完整的将头文件“嵌入”进去,在cpp文件中共同编译。如果一个头文件没有被任何文件包含(include),那么它不会编译。
头文件,你可以简单的认为就是“避免重复”,将重复的声明放在一起,方便代码阅读和管理,同时头文件具有方便接口和安全检查方面的作用。

4. C++头文件中函数声明定义

其实,网上有很多类似的文章,随便网络一下就可以查明白,虽然明白,但我还是帮你网络了一下系统的文章。

C++/C源程序通常分为两类文件。一类文件用于保存程序的声明,称为头文件;另一类文件用于
保存程序的实现,称为源文件(或者定义文件)。
编译器在扫描到一条函数调用语句时首先应当知道该函数的原型或定义,函数原型一般都放在头文件中,函数定义则放在源文件中,当源文件或头文件通过#include指令包含另一个头文件的时候,编译预处理器用头文件的内容取代#include伪指令。这就是说,头文件的所有内容最终都会被合并到某一个或某几个源文件中,如此将每一个包含的头文件递归地展开后形成的源文件就叫编译单元。如果象你说的,直接在头文件中定义函数的执行代码,也是可以的,但这会造成编译单元多了一些不必要的代码。

头文件的主要作用如下:

1)通过头文件来调用库功能。在很多场合,源代码不便(或不准)向用户公布,只要向用户
提供头文件和二进制的库即可
2)头文件能加强类型安全检查。如果某个接口被实现或被使用时的方式与头文件中的声明不
一致,编译器就会指出错误
3)头文件可以提高程序的可读性(清晰性)。

5. linux下编写c语言头文件,编译时出现“函数未定义”

出现该错误的原因为编译时只变编译了源文件的一部分,故在链接时无法从编译好的目标代码中找到print函数,所以出错。


根据你的源文件结构,个人推荐先单独编译源文件为多个object文件,再统一链接。

方法如下

gcc-cmain.c#-c参数的作用是让gcc只编译,不链接
gcc-ctest.c
gcc-omainmain.otest.o#将编译好的目标代码链接

当然,以上是在gcc为编译器的前提下执行,如使用clang等其他编译器,方法类似(clang的调用方法与gcc高度兼容)

6. C语言头文件里面应该写什么东西

1、一般做法是头文件里只写 函数 原型。函数定义部分可以编译成 .obj 形式。应用时,调用程序里写头文件和调用语句,编译时,把.obj 链接进去就可以了。你也可以把头文件和 .obj 给别人,别人可以使用你的函数,但看不见你的源程序 -- 库程序的基本原理就是这样的。当然,不编成.obj ,而直接把10多个函数源程序写进去也可以。

2、C语言头文件

(1)在C语言家族程序中,头文件被大量使用。一般而言,每个C++/C程序通常由头文件(header files)和定义文件(definition files)组成。头文件作为一种包含功能函数、数据接口声明的载体文件,主要用于保存程序的声明(declaration),而定义文件用于保存程序的实现 (implementation)。 .c就是你写的程序文件。

(2)一般在一个应用开发体系中,功能的真正逻辑实现是以硬件层为基础,在驱动程序、功能层程序以及用户的应用程序中完成的。头文件的主要作用在于多个代码文件全局变量(函数)的重用、防止定义的冲突,对各个被调用函数给出一个描述,其本身不需要包含程序的逻辑实现代码,它只起描述性作用,用户程序只需要按照头文件中的接口声明来调用相关函数或变量,链接器会从库中寻找相应的实际定义代码。

(3)从以上结构图来看,头文件是用户应用程序和函数库之间的桥梁和纽带。在整个软件中,头文件不是最重要的部分,但它是C语言家族中不可缺少的组成部分。编译时,编译器通过头文件找到对应的函数库,进而把已引用函数的实际内容导出来代替原有函数。进而在硬件层面实现功能。

7. 关于在linux下用gcc编译头文件

首先,确定你的头文件都用宏隔开了,防止了重复定义。例如,在file.h 中的开头就是
#ifndef __FILE__HEAD___
#define __FILE__HEAD___
//头文件中的内容
#endif //__FILE__HEAD___
之后,
file.h中用到了list.h ,所以file.h中#include "list.h"//假设头文件都在同一目录下
list.h中用到了preapre.h 所以list.h中#include "prepare.h"
prepare.h中用到了node.h 所以prepare.h中#include "node.h"

在某些情况下,由于代码组织等的问题,还是会出现编译问题,这个就是代码组织技巧的问题了,要根据具体代码具体判断了。
另外,准确的说头文件只是在编译的第一步,预处理的时候使用了,真正被“编”的应该是源文件,这个是编译原理方面的问题了。

8. c语言中如何编译含头文件的函数

在使用头文件声明的函数或结构的文件中添加#include"该头文件"
一般来说该头文件和.c文件同一目录,或者放到编译器能自动找到的位置

9. c编译器编译了头文件中的主函数,但未编译头文件中的了函数

应该是没有关系的,你把编译步骤写清楚,编译结果和参数说清楚。
根据我对编译器的理解,这种情况不会发生,最大可能性有几种:
1、你的代码本身就很小,你没有注意到,(一个20K行的程序,编译出来只有不到15K是十分正常的)因为程序里往往包括注释、空行等。
2、程序的体积往往取决于变量初始化,例如static int i[1000]={0};这会产生大量的无效代码。
3、其他编译器代码体积问题。
4、编译参数导致优化方式不一致
其他:如果程序可以运行,说明一定全部都编译了。
具体的问题,你可以把全部代码都给我,我帮你看看。这么简单说有时很难,毕竟写程序考虑到编译器和硬件缺陷的人现在很少。

阅读全文

与编译头文件函数相关的资料

热点内容
喷油螺杆制冷压缩机 浏览:579
python员工信息登记表 浏览:377
高中美术pdf 浏览:161
java实现排列 浏览:513
javavector的用法 浏览:982
osi实现加密的三层 浏览:233
大众宝来原厂中控如何安装app 浏览:916
linux内核根文件系统 浏览:243
3d的命令面板不见了 浏览:526
武汉理工大学服务器ip地址 浏览:149
亚马逊云服务器登录 浏览:525
安卓手机如何进行文件处理 浏览:71
mysql执行系统命令 浏览:930
php支持curlhttps 浏览:143
新预算法责任 浏览:444
服务器如何处理5万人同时在线 浏览:251
哈夫曼编码数据压缩 浏览:426
锁定服务器是什么意思 浏览:385
场景检测算法 浏览:617
解压手机软件触屏 浏览:350