1

我正在用 ANSI C (Visual Studio 2010) 编写应用程序,我的库如下所示:

#include <stdio.h>
#include <stdlib.h>

#ifndef _MYLIB_
#define _MYLIB_

typedef enum {false, true} bool;

// some structures and function prototypes...

#endif

我在每个 .c 文件中都包含这个库(我有 4 个 .c 文件 - 1 个带有 main() 的 main.c,其余的带有函数)。

我收到一个错误:

Generating Code...
1>  first.cpp
1>c:\users\A1\documents\visual studio 2010\projects\pr1\pr1\mylib.h(7): error C2059: syntax error : 'constant'
1>c:\users\A1\documents\visual studio 2010\projects\pr1\pr1\mylib.h(7): error C2143: syntax error : missing ';' before '}'
1>c:\users\A1\documents\visual studio 2010\projects\pr1\pr1\mylib.h(7): error C2059: syntax error : '}'
1>  second.cpp
1>c:\users\A1\documents\visual studio 2010\projects\pr1\pr1\mylib.h(7): error C2059: syntax error : 'constant'
1>c:\users\A1\documents\visual studio 2010\projects\pr1\pr1\mylib.h(7): error C2143: syntax error : missing ';' before '}'
1>c:\users\A1\documents\visual studio 2010\projects\pr1\pr1\mylib.h(7): error C2059: syntax error : '}'

更重要的是 - 当我将所有函数和结构粘贴到 main.c 时 - 它工作正常......我不知道如何修复它......

4

1 回答 1

3

我坚信您正在干扰 C++ 内置的falseand true,因此您正试图在您的enum.

尝试将falseand替换为and and truewith 。FALSETRUEboolBOOL

#include <stdio.h>
#include <stdlib.h>

#ifndef _MYLIB_
#define _MYLIB_

typedef enum {FALSE, TRUE} BOOL;

// some structures and function prototypes...

#endif
于 2013-05-30T09:36:07.147 回答