C文件里面没有MAIN函数,那里面的方法,我怎么去调用

jist12321 2006-09-26 04:50:03
请问各位高手,在C语言中,C文件里面没有MAIN函数,那里面的方法,我怎么去掉用
比如:
A.C里面有一个方法getFun();
在B.C里我想调用A.C里的这个方法,可是不能改A.C为A.H,也不能把方法直接考到B.C里面去
希望各位高手调答,谢谢.
...全文
471 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
jist12321 2006-09-26
  • 打赏
  • 举报
回复
哦,看来还是得用你们说的方法了,再次谢谢hailongchang
Jokar 2006-09-26
  • 打赏
  • 举报
回复
XD~这样做对你的意义先说清楚~
ps:你要的方法偶是不知道了`hehe1
hailongchang 2006-09-26
  • 打赏
  • 举报
回复
那就是用dll来实现了,或者静态的lib也可以

对与dll来说,可以用显示链接,也就是用 LoadLibrary指定dll的存放目录

或者就干脆弄成一个lib,象调用库函数那样
jist12321 2006-09-26
  • 打赏
  • 举报
回复
hailongchang(novice)的方法,的确说得很多,非常谢谢你的指导,其实你的这些我也了解,可是有没有直接一次性(或者是一个操作)就可以把两个A.C,B.C连在一起呢,当然排除makefile,因为它本身已经在批处理了.
hailongchang 2006-09-26
  • 打赏
  • 举报
回复
1:在A.C所在目录下编译A.C cl /c A.c 生成一个A.obj的文件
2:把A.obj拷贝到B.C所在目录下,并按照楼上几位说的用extern声明函数,然后编译B.C
cl /c B.c 生成B.obj

3:在B.C目录下链接: link /OUT: ***.exe A.obj B.obj
Jokar 2006-09-26
  • 打赏
  • 举报
回复
各位大哥,我要的不是程序怎么写,你们说的都是本目录的,还有一个是说工程的,这种我能理解,现在我想说的是我没建什么工程,A.C跟B.C也不在同一目录下.我要我不是程序,而是非本目录且为当一不在同一目录的文件时,怎么去调用,无论怎么样,还是要再次谢谢上面的各位大哥
///////////////////////////////////////
这个有一些方法~
1.写个静态库或动态连接库~
2.配置一下目录; 至少这样使用 makefile 可以编译两个模块并且连接起来~
3....楼下补充~
jist12321 2006-09-26
  • 打赏
  • 举报
回复
各位大哥,我要的不是程序怎么写,你们说的都是本目录的,还有一个是说工程的,这种我能理解,现在我想说的是我没建什么工程,A.C跟B.C也不在同一目录下.我要我不是程序,而是非本目录且为当一不在同一目录的文件时,怎么去调用,无论怎么样,还是要再次谢谢上面的各位大哥
m_nNightmire 2006-09-26
  • 打赏
  • 举报
回复
//A.c:
#include<stdio.h>

int Fun(int i);

void main()
{
printf("%d", Fun(3));
}



//B.c:

int Fun(int i)
{
return i+1;
}
m_nNightmire 2006-09-26
  • 打赏
  • 举报
回复
只要声明就好了
如果工程中包含了A.c和B.c,编译器会自己找到连接点
hailongchang 2006-09-26
  • 打赏
  • 举报
回复
这样用

extern void getFun();

int main()
{
getFun();
}

//不过要注意一起编译的时候A.c 和B.c要在同一目录下
jist12321 2006-09-26
  • 打赏
  • 举报
回复
能用例子说吗?谢谢了先.
lj860603 2006-09-26
  • 打赏
  • 举报
回复
把函数声明为extern,外部函数。在其他文件里就可以调用了。
jist12321 2006-09-26
  • 打赏
  • 举报
回复
那怎么知道在A.C文件里呢,是要求A.C放在库里呢,还是放在include里面呢?本地目录就不用说了
m_nNightmire 2006-09-26
  • 打赏
  • 举报
回复
在b.c中声明
void/*或int,float...*/getFun();
lw1a2 2006-09-26
  • 打赏
  • 举报
回复
参考这个:
http://blog.csdn.net/lw1a2/archive/2006/09/04/1175749.aspx
Jokar 2006-09-26
  • 打赏
  • 举报
回复
在B.c中,引用声明getFun();即:
extern void getFun();就ok了~

69,382

社区成员

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

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