制作一个简单的C头文件

时间:2013-03-22 14:29:29

标签: c header-files

我有一个函数void MOTOR(int left, int back , int right);

此函数运行另一个函数:void PWMe(int left, int back, int right);

MOTOR使用此和一些全局变量。

我想制作一个包含MOTOR的头文件,但不是PWMe(请注意,PWMemainproj.c中的函数)。

我的第一个问题是,如何创建包含MOTOR的头文件,使用PWMe中的mainproj.c和全局变量?

其次,我想将MOTOR.c更改为汇编和MOTOR.lib

1 个答案:

答案 0 :(得分:5)

标题的重点是公开声明。如果您希望任何源文件看到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年代命中单曲的吸引人的合唱。