C语言中新建一个C/C++头文件和一个与C/C++源文件有什么区别?
5个回答
展开全部
1、相同点:
头文件与源代码都是源文件,都用纯文本文件存储,都需要遵照C/C++语言规范来写,都可以使用类型定义和常、变量定义,都可以包含函数的声明和实现,都能包含宏定义,都使用相同的调用规范。
2、不同点:
C/C++的编译器规定源代码文件必须包含函数入口,即main函数,或者winmain函数。而头文件不得包含函数入口,也就是说,头文件不可以单独编译成一个程序,仅仅包含程序片断或者仅仅定义常、变量。
3、关联:
头文件是专为源代码调用而写的静态包含文件,可被源代码文件中的#include编译预处理指令解释,而将头文件完整拷贝到源代码的指令处,从而在编译时相当于在源代码中插入了函数声明或者实现。
某些头文件包含了静态库中的函数调用声明,包含了LIB文件的调用信息,编译时静态链接进程序;而某些头文件是专为方便API调用而写的,里面包含了动态链接库的调用信息和规范,只有在运行时将DLL载入内存提取函数执行。
也就是说,其实你将头文件里的信息完全写到源代码里,是可以实现完全相同的功能的。如果想要学写头文件,可以参照标准C/C++库的h文件。
头文件与源代码都是源文件,都用纯文本文件存储,都需要遵照C/C++语言规范来写,都可以使用类型定义和常、变量定义,都可以包含函数的声明和实现,都能包含宏定义,都使用相同的调用规范。
2、不同点:
C/C++的编译器规定源代码文件必须包含函数入口,即main函数,或者winmain函数。而头文件不得包含函数入口,也就是说,头文件不可以单独编译成一个程序,仅仅包含程序片断或者仅仅定义常、变量。
3、关联:
头文件是专为源代码调用而写的静态包含文件,可被源代码文件中的#include编译预处理指令解释,而将头文件完整拷贝到源代码的指令处,从而在编译时相当于在源代码中插入了函数声明或者实现。
某些头文件包含了静态库中的函数调用声明,包含了LIB文件的调用信息,编译时静态链接进程序;而某些头文件是专为方便API调用而写的,里面包含了动态链接库的调用信息和规范,只有在运行时将DLL载入内存提取函数执行。
也就是说,其实你将头文件里的信息完全写到源代码里,是可以实现完全相同的功能的。如果想要学写头文件,可以参照标准C/C++库的h文件。
展开全部
你好!
一般来说,头文件提供接口,源文件提供实现。但是有些实现比较简单的,也可以直接写在头文件里,这样头文件接口实现一起提供。
在编译时,源文件里的实现会被编译成临时文件,运行时刻程序找到头文件里的接口,根据接口找到这些临时文件,来调用它们这些实现。
头文件就是.h文件,一般用来放类的声明,平时你用的#include<string.h>就是包含这种文件
源文件就是.cpp文件,一般用来放你在头文件里声明的类成员函数的具体实现,一般一个.h文件总会有一个同名的.cpp
譬如现在我有一个类
class T
{
void printf(){}
}
这些内容就放在.h文件中
void T::printf(){......}
这些内容就放在.cpp文件中
(MFC的消息衍射类都是这样的)
一般来说,头文件提供接口,源文件提供实现。但是有些实现比较简单的,也可以直接写在头文件里,这样头文件接口实现一起提供。
在编译时,源文件里的实现会被编译成临时文件,运行时刻程序找到头文件里的接口,根据接口找到这些临时文件,来调用它们这些实现。
头文件就是.h文件,一般用来放类的声明,平时你用的#include<string.h>就是包含这种文件
源文件就是.cpp文件,一般用来放你在头文件里声明的类成员函数的具体实现,一般一个.h文件总会有一个同名的.cpp
譬如现在我有一个类
class T
{
void printf(){}
}
这些内容就放在.h文件中
void T::printf(){......}
这些内容就放在.cpp文件中
(MFC的消息衍射类都是这样的)
参考资料: http://edu.codepub.com/2010/1206/27753.php
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有区别,类定义放在头文件中,类的实现放在源文件中,类的实现也可以放在头文件中,这样做只是方便管理和维护。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没什么区别,在编译时都一样
只不过头文件需要引用才可以使用
只不过头文件需要引用才可以使用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我要看一下支持和反对的人数所以回答一下问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询