2013-05-30 93 views
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文件 - main.c和main(),其余的函数)。

我得到一个错误:

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 - 它工作正常... 我不知道如何解决它...

回答

3

我坚信你正在干涉C++内置的falsetrue,所以你试图在你的enum中重新定义它们。

尝试用FALSETRUEboolBOOL更换falsetrue

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

#ifndef _MYLIB_ 
#define _MYLIB_ 

typedef enum {FALSE, TRUE} BOOL; 

// some structures and function prototypes... 

#endif 
+0

是的,你是对的:)非常感谢你:)我会在6分钟内接受。 – tomdavies

+1

不客气。如果你不知道这件事,这可能会令人痛心。 –