プログラムの c ファイル全体でグローバル変数と 3 つの構造体を共有するのに大きな問題があります。
表示される 2 つの通常のエラーは次のとおりです。
variable_name の未定義参照
variable_name の前に '='、','、'%3b'、'asm'、または '<strong>attribute' が必要です。
私がやろうとしていることは次のとおりです。
variables.h と variables.c でグローバル変数を定義します。
関数を file1.h、file2.h などと定義します。
お気に入り :
file1.h :
#ifndef FILE1_H
#define FILE1_H
void function_file1(void);
#endif
file1.c :
#include "file1.h"
void function_file1(void) {
//do sth
}
グローバル変数と構造体を variables.h で extern として定義し、変数.c で extern キーワードを使用せずに再度定義します。
しかし、それを何度も繰り返した後、上記の 2 つのエラーが発生し続けます。不足しているものはありますか?
ここに私がやったことについての詳細があります:
変数.h:
#ifndef VARIABLES_H
#define VARIABLES_H
extern int x;
extern int y;
extern int foo = 3; // i have set value to 3 variables with extern like the foo one
/*Tooltips */
struct test_struct {
/* variables
*/
} test;
extern struct test_struct test;
#endif
functions.h:
#ifndef FUNCTIONS_H
#define FUNCTIONS_H
#include "variables.h"
void do_sth(void) {
//do sth
}
#endif
main.c
/* including libraries before including variables.h and functions.h */
#include "variables.h"
#include "functions.h"
........
これはプログラムの基本構造です。グローバル変数を含む単一の variables.h ファイルがあります。プログラムの関数をいくつか含む約 7 つの functions.h のようなファイルがあります。この構造では、コンパイラは何も表示しません。エラー。
問題は、プログラムにあるすべての .h ファイルに対して .c ファイルを作成するにはどうすればよいかということです。variables.h と variables.c と functions.h と functions.c のように?