![]() |
chinayanhui 發表于 2020-2-28 10:48 好人一生平安,解決我小白的問題 |
chinayanhui 發表于 2020-2-28 10:48 感謝,網上找了半天做不出來,直到看到了您的這條 ![]() |
要想把多個C程序文件同時編譯: 1.主函數要有對其他C程序文件里所有函數的聲明,可以用.h文件來聲明并在主函數里include "*.h", *代表h文件文件名; 2.在keil工程里還要添加所有的.c程序文件 。 |
chinayanhui 發表于 2020-2-28 10:48 謝謝你 ![]() |
程序中要寫成“openbuzz.h”、“closebuzz.h”,程序中書寫錯誤,少了“.h” |
hantu 發表于 2020-2-28 08:55 最近剛在網上看到這個,想用這個程序試一下,但是網上那個教程我沒不太有頭緒,請問openbuzz.h里除了本來寫的那些,再把這個openbuzz程序全部直接加進來嗎? ![]() |
最好使用頭文件進行調用。 |
【main.c】
【a.h】
【a.c】
|
主模塊: #include <reg52.h> extern unsigned char Fuction2(unsigned char a,unsigned char b); //調用其他模塊中的函數 unsigned char Fuction1(unsigned char a) { a++; return (a); } void main(void) { unsigned char tmp; while(1) { tmp = Fuction2(1, 2); } } 次模塊: extern unsigned char Fuction1(unsigned char a); //調用其他模塊中的函數 unsigned char Fuction2(unsigned char a,unsigned char b) { a=Fuction1(a); // Fuction1由主模塊定義,實現形參自+1并返回 return(a+b); } |
多模塊(C-C/C-ASM等)編程,在同一項目中加入各模塊,需要在調用模塊中對被調用模塊中的所有函數或變量進行申明(外部)一會兒找一個例程 |
你都已經把那些函數的聲明和定義都寫在了主文件里,就做單文件的項目好了,還搞什么*.h文件呀 ... 多文件的話兩種方式,一個是把子c文件直接改為*.h,在主程序是只包含這個*.h文件就能把的代碼給包含進來了,二是子文件要分別寫成*.h頭文件和*.c源文件,主函數中要包含這個*.h,項目中要添加這個*.c就可以了。 |
在文件頭上寫明需調用的文件。 |