標題: keil中一個工程多個文件的問題 [打印本頁]

作者: 呵呵一笑很傾城    時間: 2017-8-18 15:40
標題: keil中一個工程多個文件的問題
keil中有時候比較大的程序下面會有很多文件    比如分開的各個模塊    查閱了一些資料只要用雙引號在主函數中括起來就可以   但是我編譯運行后是失敗的   請問具體的做法是什么呢

作者: wulin    時間: 2017-8-18 17:33
看圖示



作者: dzbj    時間: 2017-8-18 21:25
用""或者<>都可以 但你要有你引用的文件才行 沒有當然找不到 你把要模塊化的函數保存到單獨的文件里并以.C結尾 然后 至少要存放在工作目錄中 或者在工程選項里指定要包括的目錄 然后就可以引用了
作者: wfivenx    時間: 2017-8-18 21:56
在設置里面添加一下頭文件
作者: bayga456    時間: 2017-8-18 22:09
設置里面可以增加頭文件位置
作者: 不倒翁.WZT    時間: 2017-8-19 07:21
標題: RE: keil中一個工程多個文件的問題
失敗的原因很多,不只是用雙引號引起來那么簡單。在這些模塊的頭文件中必須寫有:“#include<reg52.h>具體要看使用什么單片機”以及其它一些該子模塊中需要的功能的頭文件,要定義該子模塊中需要的變量,以及該子模塊中子函數的函數名,在該子模塊中還需要寫入該子模塊的頭文件名。這些工作都做過了還有可能有“WARNING L16.......”的報警,在這些報警中告訴了沒有被調用的子函數,所以還要在主程序中調用這些子函數。這種寫法優(yōu)點頗多,缺點就是較麻煩。
作者: bayga456    時間: 2017-8-19 10:55
不倒翁.WZT 發(fā)表于 2017-8-19 07:21
失敗的原因很多,不只是用雙引號引起來那么簡單。在這些模塊的頭文件中必須寫有:“#include具體要看使用什 ...

沒有使用的函數報警可以設置去掉的
作者: univers    時間: 2019-3-13 15:16
一個功能模塊一般有一個頭文件,和一個C文件,C文件里包含你要調用的.h文件,如果你有開發(fā)版,可以嘗試自己去寫一個多文件,之后就知道怎樣組合在一起的了。熟了之后可以續(xù)繼寫更多的模塊組合在一起。
作者: 7358655    時間: 2019-3-13 20:49
一個.c,配一個.h文件,沒有.h怎么包含?

QQ截圖20190313204642.png (8.64 KB, 下載次數: 77)

正常模式

正常模式

作者: univers    時間: 2019-3-15 10:17
7358655 發(fā)表于 2019-3-13 20:49
一個.c,配一個.h文件,沒有.h怎么包含?

h文件寫聲接口,定義一些變量,聲明函數。C里就是寫你在h里聲明的函數。
作者: 2925141396    時間: 2019-3-15 20:41
可以上網上找一些實例模仿一下

作者: 零點xu    時間: 2019-3-16 10:45
有可能是你沒有把文件加進去吧,也有可能你的頭文件沒有定義好找不到。或者是路徑
作者: yoyomini    時間: 2019-3-17 10:49
如果是同一個變量在不同的文件中使用要把這些變量定義為外部變量,如 你在一個文件中定義了flag 另一個文件要用到flag變量 則在該文件 變量聲明為extern flag1
作者: 嘉立創(chuàng)AAA    時間: 2019-3-17 10:58
建議你去找一個別人的頭文件例子練練手你就知道怎么做了
作者: W123w    時間: 2019-3-17 13:20
還需要聲明對應的“.H”文件,在對應的".H"文件中還需要聲明".C"文件中有哪些子函數。
作者: IT_TI    時間: 2022-9-13 08:35
失敗的原因在下面可以看到
作者: IT_TI    時間: 2022-9-13 08:38
7358655 發(fā)表于 2019-3-13 20:49
一個.c,配一個.h文件,沒有.h怎么包含?

在.c同一個文件目錄創(chuàng)建一個.h文件,.h文件有格式要求,#ifndef **_H #defined **_H ... #endif
作者: Hephaestus    時間: 2022-9-13 11:28
把失敗的錯誤貼出來,我猜是沒有配置h文件路徑。
作者: xxxevery    時間: 2022-9-13 14:05
<>是表示直接到編譯軟件的系統(tǒng)文件指定的地方去尋找,而“”是表示先在所寫程序所在的文件夾下尋找,如果找不到再到編譯軟件的系統(tǒng)文件指定的地方去尋找。不過在所寫程序所在的文件夾下尋找只限于該文件夾的根目錄下,如果頭文件包含在所寫程序所在的文件夾下中的下一級文件夾中編譯器就找不到了,就必須在 target options/C51/include paths中選擇所有要用到的h頭文件所在的最終文件夾
作者: 123456ZXC1    時間: 2022-9-14 13:31
添加一下頭文件




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1