1

我环顾四周并尝试了一些东西,目前没有任何效果。

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

我的代码差不多就是这个(我已经把所有的东西都注释掉了,所以它不是别的东西+除此之外没有其他文件);

主文件

struct savetype{
    bool file_exists;
}

主程序

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

东西.c

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

3 回答 3

2

C 结构声明必须以分号结尾。在你的结构声明的末尾加上一个分号,main.h你会没事的。

bool此外,除非您有其他代码定义它,否则应该有一个可用的类型。在 C 中,使用 anint而不是 bool。

true此外,标准 C 中没有这样的东西。0 是假的,其他都是真的,所以你也必须更正 stuff.c。

此外,stuff.c 不应该编译,因为它包含任何函数之外的代码(不仅仅是声明)(特别是save.file_exists = true;.

于 2011-08-21T14:59:44.643 回答
1

bool 类型在 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 回答
1

这就是问题:

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

你最后忘记了分号。

于 2011-08-21T14:58:26.860 回答