c语言创建项目后项目中的源文件里的函数可以相互访问,这是怎么回事??? 那为什么还需要在头文件里搞
c语言创建项目后项目中的源文件里的函数可以相互访问,这是怎么回事???那为什么还需要在头文件里搞#ifnd...#endif去包含其他函数??...
c语言创建项目后项目中的源文件里的函数可以相互访问,这是怎么回事???
那为什么还需要在头文件里搞#ifnd...#endif去包含其他函数?? 展开
那为什么还需要在头文件里搞#ifnd...#endif去包含其他函数?? 展开
3个回答
展开全部
.c 和相应的 .h文件访问是正常的。.h就是.c的声明。
用#include包含之后就可以访问被包含的文件内的函数。
另外,在工程其他文件中有extern声明的话不用包含也可以使用。
就这几种情况了吧。
#ifndef
#endif
是条件编译,可以处理不同的预编译情况,比如处理32位和64位操作系统使用的不同内存地址宽度等。
用#include包含之后就可以访问被包含的文件内的函数。
另外,在工程其他文件中有extern声明的话不用包含也可以使用。
就这几种情况了吧。
#ifndef
#endif
是条件编译,可以处理不同的预编译情况,比如处理32位和64位操作系统使用的不同内存地址宽度等。
追问
你说工程中其他文件用extends就可以访问其他函数,但是我记得用vs编写的C程序都是在一个工程里面的啊!就是想知道在头文件里包含函数声明是应用在什么场合?
追答
一个工程? 一个工程师可以包含很多文件的啊。
函数声明,比如说,vs没有自带mysql的库,或者你想使用官方的最新的库,那就需要在头文件中包含你新添加的库
#include
当你使用到了需要的函数,而这个函数没有在其他被include的文件中存在时,就需要声明。
这么说吧,编译器是一行一行读代码的,你没有声明时,编译器看到函数这一行,不懂这个函数是干嘛的,就不能去执行。而前面声明一下,就告诉编译器,后面有对这个函数的定义,请自行查找。然后编译器在读到你使用函数的地方就会去调用那个函数的定义。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
后面定义的函数可能访问前面定义的函数,而前面定义的函数不能访问后面定义的函数,若要访问,得在前面的函数体开始处声明一下后面定义的函数才行。这是C的规矩。你说的“互相”访问,在不作任何声明时恐怕不行……
追问
一个C的project在一个源文件中的函数在没有任何声明的情况下的确可以调用另一个源文件的函数,一个源文件内函数的调用就遵从你以上的说法。不知道这个是不是对的
一个C的project在一个源文件中的函数在没有任何声明的情况下的确可以调用另一个源文件的函数,一个源文件内函数的调用就遵从你以上的说法。不知道这个是不是对的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不同源文件里的函数并不能相互访问
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询