2013-03-22 79 views
-3

我有一個函數void MOTOR(int left, int back , int right);做一個簡單的C頭文件

此功能運行另一個功能:void PWMe(int left, int back, int right);

MOTOR使用這個和一些全局變量。

我要讓包括MOTOR一個頭文件,但不PWMe(注意PWMe是一個功能mainproj.c)。

我的第一個問題是,我如何製作一個包含MOTOR的頭文件,使用PWMe和來自mainproj.c的全局變量?

其次,我想將MOTOR.c更改爲程序集和MOTOR.lib

+5

與_amateur_ C頭文件相反嗎? – 2013-03-22 14:30:59

+0

我不確定你要做什麼...你想用你的'MOTOR()'函數的'inline'版本創建一個頭文件,或者你想把原型放在一個頭文件中?在製作頭文件時遇到什麼問題?至於將'MOTOR.c'改爲程序集...你想輸出編譯器嗎?你想重新組裝你的函數嗎?如果是的話,目標拱是什麼? – Mike 2013-03-22 14:37:21

+0

我想我的答案只有.... – 2013-03-22 14:37:45

回答

4

標題的要點是公開聲明。如果您希望您的MOTOR(int,int,int)的實現可以通過除定義的文件之外的任何源文件來看到,請將其放在標題中。

現在,如果您在別處聲明瞭另一個功能PWMe(int,int,int),則同樣的情況適用。要使MOTOR函數能夠調用它,您需要將其暴露在標題中。我想它是在mainproj.c中定義的?

motor.h

#ifndef MOTOR_H__ 
#define MOTOR_H__ 

void MOTOR(int left, int back, int right); 

#endif 

mainproj.h

#ifndef MAINPROJ_H__ 
#define MAINPROJ_H__ 

extern const char const *one_hit_wonder; 

void PWMe(int left, int back, int right); 

#endif 

注意,在mainproj.h我已經聲明的變量和函數。希望你明白這個主意。這裏是實現:

mainproj.c

#include "mainproj.h" 

const char const *one_hit_wonder = "Yazz"; 

void PWMe(int left, int back, int right) 
{ 
    printf("The only way is up, baby\n"); 
} 

motor.c

#include "motor.h" 
#include "mainproj.h" 

void MOTOR(int left, int back, int right) 
{ 
    PWMe(left, back, right); 
    printf("For you and me now\n"); 
    printf("\n - %s\n", one_hit_wonder); 
} 

現在,調用MOTOR使用任何參數應該從80年代擊中產生一個琅琅上口的副歌單。

+2

我需要+1這個答案,然後再+1爲80年代REF。 :-) – Vicky 2013-03-22 14:50:07

+0

好的,我在我的mainproj.c文件中定義和使用PWMe,謝謝,但是我怎樣才能將motor.c變成motor.lib和彙編語言。 – 2013-03-22 14:51:32

+0

和一個新東西是我在MOTOR中使用了一些全局變量;在哪裏我需要聲明,以及如何在「mainproj.c」中使用它? – 2013-03-22 14:53:28