与えられた:
unix (COMPAQ Tru 64)DEC ALPHA から w32 XP sp3 OS へのライブラリの移植。言語: オプション付きの c89 コンパイラで構築された UNIX プラットフォーム上の C コード: c89 -c -O -DLOWER_U -DSOLARIS sychld.c
MS Visual Studio 2010 C コンパイラを /c (コンパイルのみ) オプションでのみ使用する
問題:
エラー wait.h(79) の取得: C2061 構文エラー識別子 'wait' コード:
77:#ifndef _BSD /* POSIX definition of wait() */
78:#ifdef _NO_PROTO
79:extern pid_t wait();
80:#else
81:_BEGIN_CPLUSPLUS
82:extern pid_t wait(int *);
83:_END_CPLUSPLUS
84:#endif /* _NO_PROTO */
85:#endif /* _BSD */
変数は条件文で宣言されていることに注意してください。79 行目の var は、285 行目でも宣言されています。
284:#ifdef _NO_PROTO
285:extern pid_t wait();
286:extern pid_t wait3();
287:#else
288:
289:_BEGIN_CPLUSPLUS
290:extern pid_t wait(union wait *);
291:#include <sys/resource.h> /* contains rusage struct for wait3 */
292:extern pid_t wait3(union wait *, int, struct rusage *);
293:_END_CPLUSPLUS
294#endif /* !_NO_PROTO */
私は経験豊富な C プログラマーではありませんが、一時変数を作成する場合、宣言を 1 つだけ行うと思います。コードの整合性に影響を与えずにこれを行うにはどうすればよいですか?
これがエラーが発生する理由ですか???????