1

私は周りを見回していくつかのことを試しましたが、現時点では何も機能していません。

main.c:13: error: two or more data types in declaration specifiers
make[1]: *** [main.o] Error 1
make: *** [build] Error 2

私のコードはほとんどこれです(私はすべてをコメントアウトしたので、それは他のものではありません+これ以外に他のファイルはありません);

main.h

struct savetype{
    bool file_exists;
}

main.c

#include "main.h"
extern struct savetype save;
int main (void){
return 0;
}

stuff.c

#include "main.h"
struct savetype save;
save.file_exists=true;
4

3 に答える 3

2

C構造体宣言は、セミコロンで終了する必要があります。構造体宣言の最後にセミコロンを入れると、main.hOKになります。

boolまた、それを定義する他のコードがない限り、使用可能なタイプがあるはずです。Cではint、boolの代わりに使用します。

trueさらに、標準Cのようなものはありません。0は偽であり、他のすべてが真であるため、stuff.cも修正する必要があります。

また、stuff.cは、関数(具体的には。)の外部にコード(宣言だけではない)が含まれているため、コンパイルしないでくださいsave.file_exists = true;

于 2011-08-21T14:59:44.643 に答える
1

これが問題です:

struct savetype{
    bool file_exists;
};
^^^^ <-------------- Here!

最後にセミコロンを忘れました。

于 2011-08-21T14:58:26.860 に答える
1

ブール型はCには存在しません。マクロを使用して、便利な方法でTRUE/FALSE値を使用できます。

#define TRUE 1
#define FALSE 0

次に、次のような条件ステートメントで使用できます。

if (var == TRUE){

}

キーワードとして「bool」を使用する場合:

typedef int bool;

編集:

私はそれを知りませんでしたが、@ Bo Perssonは、C99からブール型が導入されたと指摘しました。それらを使用するには、次のプロトタイプを含めます。

#include <stdbool.h>
于 2011-08-21T15:02:05.867 に答える