头文件里没有写函数声明,该函数可以在其它文件被调用么?

fify 2006-04-04 11:37:17
例如
example.h 里没有函数test()的声明
但是在example.c里有函数test()的实现
在main.c里有:
#include "example.h"
还调用了test()

这样可行么?我原以为是不可行的,可是今天在一源程序里,就是这么用的,比较纳闷。
谁可以给我一个明确的答复,谢谢。
...全文
945 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复 2
C 可以, 未声明的函数被当成 int func(); , 一般会有个警告 , C++ 不行...

fify 2006-04-04
  • 打赏
  • 举报
回复
也没有用extern来声明该函数
屋顶上的老猫 2006-04-04
  • 打赏
  • 举报
回复
使用了extern来声明了此函数!
fify 2006-04-04
  • 打赏
  • 举报
回复
不好意思,这是一个很大的工程,不方便贴出来
ouyh12345 2006-04-04
  • 打赏
  • 举报
回复
应该不行。
把那个源程序贴出来。
blh 2006-04-04
  • 打赏
  • 举报
回复
yes, but it is not commended
jixingzhong 2006-04-04
  • 打赏
  • 举报
回复
发错了 ~
不好意思 ....
打开的帖子多了 ...
------------
如果 楼主使用的是 C++ 环境,
这个默认就不存在了 ...
jixingzhong 2006-04-04
  • 打赏
  • 举报
回复
typedef struct _TP_DELIVER_HEAER
{
int TP_RP:1;
int TP_UDHI:1;
int TP_SRI:1;
int :2;
int IP_MMS:1;
int TP_MTI:2;

int TP_OA:8;

} TP_DELIVER_HEAER;

sizeof(TP_DELIVER_HEAER) 是两个字节 ...

32位环境下 因为 int 是4字节的,
所以最后会对齐到 4 ,
结果得到 4 字节 ....
jixingzhong 2006-04-04
  • 打赏
  • 举报
回复
C 下默认extern的 ...

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧