我正在移植我拥有的一些 C++ 代码。它在 C++ 中完美运行,所以我不知道我做错了什么。我有“ a.c
”和“ b.c
”。它们都包括“ a.h
”,而后者又包括“ b.h
”。“”中的函数在b.c
其头文件中声明(使用extern
关键字),其中之一是从“ a.c
”调用的。它编译并运行,但调用似乎从未通过(我什至输入了几printf()
行进行诊断,但没有任何反应)。
我知道我忽略了一些简单的事情,我只是无法确定是什么。任何帮助表示赞赏。
编辑:粘贴一些简化代码: 编辑 2:调用通过,有一个库问题需要修复。现在索引变量没有增加,我认为这可能是一个范围问题。
在“交流”中
#include "a.h"
...
int sSimDisp(void){
buttons();
printf("x = %04d\n", index);
...
}
int main(){
...
while(1) {
sSimDisp();
...
}
return 0;
}
在“啊”
#ifndef a_H_
#define a_H_
...
#include "b.h"
#include "c.h"
int sSimDisp(void);
int main(void);
#endif /* a_H_ */
在“公元前”
#include "a.h"
...
int index = 0;
void buttons(){
printf("Entry to button subroutine.\n");
index++;
...
}
void touchscreen(){
...
}
在“bh”中
#ifndef b_H_
#define b_H_
...
extern int index;
//button handler
void buttons();
//touch screen handler
void touchscreen();
#endif /* b_H_ */