LinuxDev 板


LINE

举例来说,Main.c 需要使用到Test.c当中的Function A、Function B, 那除了把Test.c 做成 Test.a之外, 还要在Test.h当中把有用到的Function都写出来 (EX:Void A(); Int B(); ) 我想请问的是有方法可以直接把所有在Test.c的Function都拿来用(里面大部分有用到), 而不需要再一条一条的写在Test.h里面吗? Test.c里面的Function还有其他的程式会使用到 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.221.67.235 ※ 编辑: shiengchyi 来自: 61.221.67.235 (03/22 11:08) ※ 编辑: shiengchyi 来自: 61.221.67.235 (03/22 11:10)
1F:→ james732:可以的话就不需要stdio.h这种东西了...XD 03/22 11:14
2F:→ james732:其实可以用dlopen, dlsym之类的函式,但是更复杂了 03/22 11:16
3F:推 coldnew:#include "Test.c" but it's not a good way.... 03/22 11:18
4F:→ james732:你最近的问题,我想推荐这本书 http://ppt.cc/5oSE 03/22 11:18
5F:→ shiengchyi:感谢解答 XD 我还是先乖乖用.h好了 03/22 11:32
6F:推 askacis:懒人大法就是用extern,让gcc 在linking再去找你的function 03/22 13:03
7F:推 lausai:函式不需要extern吧 不是预设就external linkage? 03/22 18:48
8F:推 askacis:因为原po 在main.c 呼叫test.c里的function,所以写extern 03/22 20:53
9F:推 askacis:不然你会在compile的时候看到一堆warning... 03/22 21:06
10F:推 askacis:也是因为有些Team比较龟毛,有warning就不让你编译下去了XD 03/22 21:13
11F:推 lausai:我的意思是宣告函式时它就已经是extern了 根本不需要再写 03/22 21:39
12F:推 lausai:extern 编译器本来就会去各个object file搜寻函式定义 03/22 21:42
13F:→ lausai:上面笔误 应该是连结器(linker)去搜函式定义 03/22 21:43
14F:推 askacis:所以我说啦,你在main.c要用test.c的函式的时最好用extern 03/22 22:56
15F:→ askacis:带进来该函式才不会有一堆warning,特别是一堆API介面的时 03/22 22:57
16F:→ askacis:你不include该API的h档,又不在main.c用extern,会就看到一 03/22 22:57
17F:→ askacis:堆warning跑出来,龟毛的build rule喷warning就不让你编了 03/22 22:59
18F:→ i386:option没下 -Wall应该看不到这个warning吧??? 03/23 13:19
19F:→ i386:另外,出现warning後就不能编下去,应该是下了 -Werror 这个 03/23 13:21
20F:→ i386:option.. 03/23 13:21
21F:→ shiengchyi:再问个问题,如果要用多个.c档,可以并成一个.h吗?! 03/23 14:46
22F:→ shiengchyi:EX 用到TestA.c TestB.c -> TestA.o TestB.o ->Test.a 03/23 14:47
23F:→ shiengchyi:这样再加上Test.h,Main.c就可以使用TestA.c TestB.c 03/23 14:48
24F:→ shiengchyi:里面的Function,可以这样使用吗? 03/23 14:48
25F:→ james732:可以 03/23 20:57
26F:→ shiengchyi:感谢 ^___^ 03/24 10:23







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Tech_Job站内搜寻

TOP