2013-03-22 42 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