社区
C语言
帖子详情
一个c小问题(菜鸟提问)
qingshuihepan
2010-05-28 09:03:53
我水平很菜,提问的估计也很搞笑,呵呵,高手见谅。
我在代码里面添加了一个.c文件A,里面有一个函数f,然后我在另外一个.c文件B中调用此函数f,但是,B文件中并没有包含对函数f的声明,也就是说没有包含文件A的.h,对函数f也没用做extern的声明。
问题是B文件对A文件中的函数f调用居然没有问题?
不懂啊,跟高手学习
...全文
130
12
打赏
收藏
一个c小问题(菜鸟提问)
我水平很菜,提问的估计也很搞笑,呵呵,高手见谅。 我在代码里面添加了一个.c文件A,里面有一个函数f,然后我在另外一个.c文件B中调用此函数f,但是,B文件中并没有包含对函数f的声明,也就是说没有包含文件A的.h,对函数f也没用做extern的声明。 问题是B文件对A文件中的函数f调用居然没有问题? 不懂啊,跟高手学习
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
赵4老师
2010-05-28
打赏
举报
回复
不要迷信老师、帖子、考题;
要迷信CPU、编译器、调试器。
innexy_sun
2010-05-28
打赏
举报
回复
编译是没有问题的 问题主要在连接上。如果A在B之前就可以找到函数f,否则应该找不到。就好像同一文件中
void f()
{b();}
void b()
{}
直接这样写会报错的
wzywsk
2010-05-28
打赏
举报
回复
编译器!!编译器~~
chistopher
2010-05-28
打赏
举报
回复
编译器支持
老马何以识途
2010-05-28
打赏
举报
回复
gcc,用Makefile应该是可以的,只需要指定源文件有A.c和B.c
周靖峰
2010-05-28
打赏
举报
回复
貌似现在的编译器不写extern也没事了
lylm
2010-05-28
打赏
举报
回复
[Quote=引用 5 楼 qingshuihepan 的回复:]
引用 1 楼 freezezdj 的回复:
C编译器根据你调用函数的参数类型和返回值,
给你默认的添加了一个函数声明,当然不一定准确,存在安全隐患。
所以还是自己声明一个好。
C++就不可以。
这么说,应该再学学编译原理吧?初学啊,摸索中,望指点一二啊,不甚感激
晕,刚引用错了
[/Quote]
这个其实和编译原理关系倒不大,就是编译器实际上会隐式的做一些工作,只不过我们不清楚罢了
我们还是应该规范的写代码,这样程序的健壮性、可读性会比较好
qingshuihepan
2010-05-28
打赏
举报
回复
[Quote=引用 1 楼 freezezdj 的回复:]
C编译器根据你调用函数的参数类型和返回值,
给你默认的添加了一个函数声明,当然不一定准确,存在安全隐患。
所以还是自己声明一个好。
C++就不可以。
[/Quote]
这么说,应该再学学编译原理吧?初学啊,摸索中,望指点一二啊,不甚感激
晕,刚引用错了
qingshuihepan
2010-05-28
打赏
举报
回复
[Quote=引用楼主 qingshuihepan 的回复:]
我水平很菜,提问的估计也很搞笑,呵呵,高手见谅。
我在代码里面添加了一个.c文件A,里面有一个函数f,然后我在另外一个.c文件B中调用此函数f,但是,B文件中并没有包含对函数f的声明,也就是说没有包含文件A的.h,对函数f也没用做extern的声明。
问题是B文件对A文件中的函数f调用居然没有问题?
不懂啊,跟高手学习
[/Quote]
这么说,应该再学学编译原理吧?初学啊,摸索中,望指点一二啊,不甚感激
老马何以识途
2010-05-28
打赏
举报
回复
编译器支持
Mg
2010-05-28
打赏
举报
回复
也许你包含了其他的文件~你写个测试程序,简单的测下就知道咯·
冻结
2010-05-28
打赏
举报
回复
C编译器根据你调用函数的参数类型和返回值,
给你默认的添加了一个函数声明,当然不一定准确,存在安全隐患。
所以还是自己声明一个好。
C++就不可以。
Qt高仿TIM登录页面
使用QT 高仿TIM登录页面,跨平台,完整源码包, 可自行开发软件内容,使用这个登录页,并将登录部分对接用户数据库或者通过发送http登录请求进行登录校验. 有
问题
可
提问
,
菜鸟
的第
一个
页面
W3C联盟系统-PHP
W3C联盟系统是
一个
收集展现web技术教程等系统,完美的展现给用户最好的简单学习一的一面,布局等优化借鉴了
菜鸟
教程的精华,在线调试预览 用户体验放到第一位,非常符合当代站长的阅读学习等,主要使用功能等在详细...
C语言
菜鸟
进阶-- 多线程与线程安全视频教学
尹成老师带你步入 C 语言的殿堂,讲课生动风趣、深入浅出,全套视频内容充实,整个教程以 C 语言为核心,完整精彩的演练了数据结构、算法、设计模式、数据库、大数据高并发检索、文件重定向、多线程同步、进程通讯、...
《电脑爱好者》2011年笫15期
绝对挑战:各达人们
提问
、回答有关电脑技术或软件
问题
的
一个
平台。 防病杀毒:对于防病毒的窍门或病毒发作的原理、知识。 加油站:对电脑技术的
一个
加油站。 伪技巧曝光台:对于网上流传的“伪技巧”的辨析与...
《电脑爱好者》2011年14期
绝对挑战:各达人们
提问
、回答有关电脑技术或软件
问题
的
一个
平台。 防病杀毒:对于防病毒的窍门或病毒发作的原理、知识。 加油站:对电脑技术的
一个
加油站。 伪技巧曝光台:对于网上流传的“伪技巧”的辨析与...
C语言
69,369
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章