用c编程时,如果在头文件里定义了几个函数,需要在那个头文件里用extern声明一下这些函数么?

以前都在头文件里声明的,没有问题。但是今天用extern声明以后报出好多错,说我的函数名字没有undeclare,然后我把extern声明函数的语句删了就好了,这是怎么回... 以前都在头文件里声明的,没有问题。但是今天用extern声明以后报出好多错,说我的函数名字没有undeclare, 然后我把extern 声明函数的语句删了就好了,这是怎么回事? 展开
 我来答
L_o_o_n_i_e
2010-11-10 · TA获得超过4.2万个赞
知道大有可为答主
回答量:8507
采纳率:38%
帮助的人:5192万
展开全部
extern 是外部的意思。

如果 在头文件里 写的只是 几个函数的原型声明,而函数定义在别的文件中,则可以加 extern。编译器 做 链接时 会到 外面(.obj 或库)去找。

如果 在头文件里 写了完整的函数定义,那么,它就不是外部函数。不能加extern。

一般情况下,好象不用写extern,编译器在本程序找不到,自己会到库里找,找不到会报错。VC++编译器。
姜桃
2010-11-10 · TA获得超过582个赞
知道小有建树答主
回答量:406
采纳率:0%
帮助的人:345万
展开全部
如果你在a.h 中声明 a。c中实现, 却在b。c中调用,又对a。h中其他东西不感兴趣,就在b。h 中 extern 就行了,我估计你那样是 在前边 include a。h 又 exturn了 所以会出现undeclare这种情况
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhao61
2010-11-10 · TA获得超过1459个赞
知道小有建树答主
回答量:1065
采纳率:0%
帮助的人:865万
展开全部
extern就是字面的上的意思,表示由extern修饰的函数位于别的文件里,在编译的时候先认为这些函数是存在的或者在其他文件里去找,链接的时候再做处理。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式