C语言中的windows.h头文件件到底有什么用

12:36 提问
C语言头文件里放声明,其实现放哪?
我写了一个头文件a.h,实现在a.c中,主文件中#include "a.h",报错。。。我想知道头文件的声明和定义的规范使用方法。。谢谢。。
按赞数排序
首先搞清楚,include和头文件的关系。
include的作用是将这个文件的内容插入到include所在的位置,从而构成一个完整的源代码文件被编译。
那么头文件是什么,实际上头文件里可以放任何东西,源代码文件也可以放任何东西,include也可以随意包含。
只是看这三者放在一起,经过替换,得到的源代码最终是否成立。
C要求函数先声明,再使用,所以如果函数被很多源代码同时使用,那么为了减少麻烦(每个文件都必须把函数原型写一遍),就把它们集中起来写在头文件中,每个源代码去include
这是头文件的作用。
回到你的问题,实现放在哪里,按理说放在哪里都可以,但是从最能体现头文件的意义和使用价值的角度来说,应该放在一个单独的源代码文件中。
你将鼠标的光标放在你需要知道的头文件上,然后按【ctrl+鼠标左键】就能跳到那个头文件里定义的界面了;
其它的都是一样的,将鼠标光标移到你要查看的方法或类上,按【ctrl+鼠标左键】;
这个快捷键你最好记住,能省不少麻烦
如果回答对您有帮助,请采纳
a.c中有没有包含那个头文件
好多的大神给出了精彩的回复:对于你的问题,给出两个答复:一个是本身自带库文件,一个是你自己创建的.h文件。
include(studio.h);
include(studio.h);
a.h文件里给出声明,在a,c里实现函数,然后在其他.c文件里加上#include后就可以直接调用了
a.h放声明,a.c放实现,a.c和main.c都要#include"a.h"
不知道你是什么错误,放出来看看把。
#include”a.h"就相当于在这个位置插入a.h这个文件的内容。
与头文件同名的源文件内进行实现
其他相关推荐
其他相似问题请教:能不能把所有的头文件(*.h)都包含在一个头文件里?【c语言吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:541,955贴子:
请教:能不能把所有的头文件(*.h)都包含在一个头文件里?收藏
这样就不用记哪个函数要包含哪个头文件了。
我做了个试验,代码如下:
/*try1.c*/
#include&&zym.h&
main()
{
&&int&i,j;
&&for&(i&=&0;&i&20;&i++)
&&{
for(j&=&0;&j&20;&j++)
&&if((i+j)%2&==&0)
&&&&printf(&%c%c&,219,219);
&&&&printf(&&&);
&&printf(&\n&);
&&}
}
/*try1.c完*/
/*try2.c*/
#include&&stdio.h&
main()
{
&&int&i,j;
&&for&(i&=&0;&i&20;&i++)
&&{
for(j&=&0;&j&20;&j++)
&&if((i+j)%2&==&0)
&&&&printf(&%c%c&,219,219);
&&&&printf(&&&);
&&printf(&\n&);
&&}
}
/*try2.c完*/
两个文件除了第一行include的头文件不同之外其它完全一样,
zym.h的内容为:
/*&My&h&file&for&the&initial&of&all&progrems&*/
/*&Zhao&Yumin&*/
/*&&*/
#include&&all.h&
all.h的文件内容为:
/*#include&&all&of&the&h&files*/
/*&Zhao&Yumin&*/
/*&&*/
#include&&&alloc.h&
#include&&assert.h&
#include&&bios.h&
#include&&conio.h&
#include&&ctype.h&
#include&&dir.h&
#include&&dos.h&
#include&&errno.h&
#include&&fcntl.h&
#include&&float.h&
#include&&graphics.h&
#include&&io.h&
#include&&limits.h&
#include&&malloc.h&
#include&&math.h&
#include&&mem.h&
#include&&process.h&
#include&&setjmp.h&
#include&&share.h&
#include&&signal.h&
#include&&stdarg.h&
#include&&stddef.h&
#include&&stdio.h&
#include&&stdlib.h&
#include&&string.h&
#include&&time.h&
#include&&values.h&
编译try1.c&和&try2.c两个文件,
try1.exe&大小为9.43&KB&(9,663&字节),占用空间10.0&KB&(10,240&字节)
try2.exe&大小为9.36&KB&(9,589&字节),占用空间10.0&KB&(10,240&字节)
以上均在tc2.0内进行。
请问我的想法可不可行?
另外,在include文件夹里还有个sys文件夹,里面有3个头文件,我像前面那样直接#include&&文件名.h&&编译时出错,只好又删了,请问要怎么包含?谢谢!
达内c语言,c语言强化班,120天入门到精通,轻松就业,学习无忧!高中以上」c语言,选达内」全球高端IT培训机构.
完全是可以的!
那3个可以这么包含:
#include&&sys/XXX.h&
登录百度帐号推荐应用  C语言的著作中,至今还没发现把.h文件的用法写的透彻的。在实际应用中也只能依葫芦画瓢,只知其然不知其所以然,甚是郁闷!闲来无事,便将搜集网络的相关内容整理一下,以便加深自己的理解
理论概述:.h中一般放的是同名.c文件中定义的变量、数组、函数的声明,需要让.c外部使用的声明。
1)h文件作用:  
& & &1.方便开发:包含一些文件需要的共同的常量,结构,类型定义,函数,变量申明;
  2. 使函数的作用域从函数声明的位置开始,而不是函数定义的位置(实践总结)
  3 .提供接口:对一个软件包来说可以提供一个给外界的接口(例如: stdio.h)。
2)h文件里应该有什么:常量,结构,类型定义,函数,变量申明。
3)h文件不应该有什么:变量定义, 函数定义。
4)extern问题:   1.对于变量需要extern;
  2.对于函数不需要因为函数的缺省状态是extern的.如果一个函数要改变为只在文件内可见,加static。 5)include包含问题:虽然申明和类型定义可以重复,不过推荐使用条件编译。   #ifndef _FILENAME_H,
  #define _FILENAME_H   &&
  #endif
实践总结: 先看最简单的程序:hello world
1 /*test1.c*/2 main()3 {4   printf("Hello World!\n"); 5 }
注意,test1中并没有.h文件,编译可以顺利通过。把程序做下改动,下面这个:
1 /*test2.c*/2 prtstr()3 {4   printf("Hello World!\n"); 5 }6 main()7 {8
prtstr(); 9 }
test2.c中还是没有.h文件,编译仍可以顺利通过。再把程序改动下:
1 /*test3.c*/ 2 main() 3 { 4   prtstr();
7 prtstr() 8 { 9   printf("Hello World!\n"); 10 }
test3.c中仍然没有.h文件,编译失败&_&。难道函数的位置影响编译的过程?现在我们来熟悉一下C语言中的概念:作用域。
  我们在这里只讲述与.h文件相关的顶层作用域, 顶层作用域就是从声明点延伸到源程序文本结束, 就prtstr()这个函数来说,他没有单独的声明,只有定义,那么就从他定义的行开始,到文件结束, 也就是说,在test2.c的main()函数的引用点上,已经是他的作用域。 test3.c的main()函数的引用点上,还不是他的作用域,所以会编译出错. 这种情况怎么办呢? 有两种方法 ,一个就是让我们回到test2.c, 顺序对我们来说没什么, 谁先谁后不一样呢,只要能编译通过,程序能运行, 就让main()文件总是放到最后吧。那就让我们来看另一个例程,让我们看看这个方法是不是在任何时候都会起作用.&
1 /*test4.c*/
7 play1() 8 { 9
12 main() 13 { 14
play1(); 15 }
这就是经常用到的一种算法, 函数嵌套。play1 和play2 这两个函数哪个放到前面呢?这时就需要我们来使用第二种方法,使用声明.
1 /*test5.c*/
2 play1();
3 play2(); 4
7   play1();
9   play1() 10 { 11   play2(); 12 } 13 main() 14 { 15   play1(); 16 }
  一个大型的软件项目,可能有几千个,上万个 play, 而不只是 play1,play2这么简单, 这样就可能有 N 个类似 play1(); play2(); 这样的声明, 这个时候就需要我们想办法把这样的 play1(); play2(); 另行管理, 而不是把他放在.c文件中, 于是.h 文件出现了.
1 /*test.h */ 2 play1();
3 play2();
4 /* test6.C */ 5 #include &test.h&
8   play1();
9 } 10 play1(); 11 { 12   play2(); 13 } 14 main() 15 { 16   play1(); 17 }
上面是.h文件的最基本的功能。
阅读(...) 评论()2008年3月 Linux/Unix社区大版内专家分月排行榜第二
2012年9月 Linux/Unix社区大版内专家分月排行榜第三2007年6月 Linux/Unix社区大版内专家分月排行榜第三
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
2013年3月 C/C++大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 direct.h头文件的作用 的文章

 

随机推荐