制作一个简单的C头文件
我有一个功能制作一个简单的C头文件,c,header-files,C,Header Files,我有一个功能void MOTOR(int left,int back,int right) 此函数运行另一个函数:void PWMe(int left,int back,int right) MOTOR使用此变量和一些全局变量 我想制作一个包含MOTOR,但不包含PWMe(注意PWMe是mainproj.c中的一个函数)的头文件 我的第一个问题是,如何创建包含MOTOR、usesPWMe和来自mainproj.c的全局变量的头文件 其次,我想将MOTOR.c更改为assembly和MOTOR.l
void MOTOR(int left,int back,int right)代码>
此函数运行另一个函数:void PWMe(int left,int back,int right)代码>
MOTOR
使用此变量和一些全局变量
我想制作一个包含MOTOR
,但不包含PWMe
(注意PWMe
是mainproj.c
中的一个函数)的头文件
我的第一个问题是,如何创建包含MOTOR、usesPWMe
和来自mainproj.c
的全局变量的头文件
其次,我想将MOTOR.c
更改为assembly和MOTOR.lib
标题的全部目的是公开声明。如果希望MOTOR(int,int,int)
的实现被定义它的源文件以外的任何源文件看到,可以将它放在头文件中
现在,如果您在别处声明了另一个函数PWMe(int,int,int)
,那么同样的事情也适用。要使马达
函数能够调用它,您需要在标题中公开它。我猜它是在mainproj.c
中定义的
电机.h
#ifndef MOTOR_H__
#define MOTOR_H__
void MOTOR( int left, int back, int right );
#endif
#ifndef MAINPROJ_H__
#define MAINPROJ_H__
extern const char const *one_hit_wonder;
void PWMe( int left, int back, int right );
#endif
mainproj.h
#ifndef MOTOR_H__
#define MOTOR_H__
void MOTOR( int left, int back, int right );
#endif
#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" );
}
#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 );
}
电机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" );
}
#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年代流行单曲的吸引人的合唱。而不是业余的C头文件?我不知道你要做什么。。。您希望使用内联版本的MOTOR()
函数创建头文件,还是希望将原型放置在头文件中?制作headerfile时遇到了哪些问题?至于将MOTOR.c
更改为assembly。。。是否要删除编译器的输出?是否要在程序集中重写函数?如果是这样的话,目标拱是什么?我只想要我的答案……不,我在制作头文件时遇到了一些问题,我为头文件制作了这样的文件:#如果包含电机#定义电机#包含电机#使用了pragma+无效电机(int left,int back,int right)#使用的pragma-#pragma library motor.lib extern int older、left_old、right_old、back_old、pr_old、pl_old、pb_old、mright、mleft、mback、min#endif//MOTOR\u H\u included如果你在教编程,我建议你先掌握基础知识。如果你不能清楚地解释你想做什么,那么你就不应该在教学。我需要+1这个作为答案,然后+1它作为80年代参考:-)好的,我在我的mainproj.c文件中定义并使用PWMe,谢谢,但是我如何使motor.c转换为motor.lib和汇编语言。还有一件新事情是我在motor中使用了一些全局变量;我需要在哪里声明以及如何在“mainproj.c”中使用它?@mohammadjavadrahman我看到我如何在mainproj.h
中从mainproj.c
声明全局,然后在motor.c
中使用它了吗?反过来做。至于“assembly”注释,您是指“compile”吗?你真的应该把它作为一个单独的问题来问,并确保你提到了你正在使用的编译器。不,看,你错了。如果共享lib文件,则共享已编译的目标代码,而不是源代码。如果你的学生能够分解它并理解算法,那么它要么非常简单,要么应该是他们教你的!;-)您可以将多个C源代码编译成一个库,并提供一个头。它甚至不必使用相同的头-您只需要提供您希望它们使用的声明。