私が持っているいくつかのC++コードを移植しています。C ++で完全に機能するので、何が間違っているのかわかりません。「a.c
」と「b.c
」があります。どちらにも「」が含まれ、「a.h
」には「」が含まれますb.h
。""の関数はb.c
、ヘッダーファイル(extern
キーワードを使用)で宣言されており、そのうちの1つは" a.c
"から呼び出されます。コンパイルして実行しますが、呼び出しが通過しないようです(printf()
診断のために数行入れても、何も起こりません)。
私は単純な何かを見落としていることを知っています、私はただ何に指を置くことができません。どんな助けでも大歓迎です。
編集:いくつかの簡略化されたコードを貼り付けます:編集2:呼び出しが通過し、修正するライブラリの問題がありました。現在、インデックス変数はインクリメントされていません。スコープの問題である可能性があります。
「ac」で
#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_ */
「bc」で
#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_ */