1

msh.c ファイルで次のように初期化されたグローバル変数を作成しようとしています。

volatile sig_atomic_t sig_int = 0;

これだけでもよさそうです。ただし、proto.h ファイル (このプロジェクトのすべての c ファイルに含まれています) に移動し、次のように入力すると:

extern volatile sig_atomic_t sig_int;

一連のエラーがスローされます。

gcc -c -Wall msh.c arg_parse.c builtin.c expand.c
In file included from arg_parse.c:5:
proto.h:3: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘sig_int’
In file included from builtin.c:13:
proto.h:3: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘sig_int’
In file included from expand.c:11:
proto.h:3: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘sig_int’
make: *** [msh.o] Error 1

この変数をグローバルにするにはどうすればよいですか? ありがとう。

4

1 に答える 1

1

タイプが定義されるように、proto.hファイルにインクルードする必要があります。それだけです。<signal.h>sig_atomic_t

于 2012-11-20T02:44:50.523 に答える