我正在用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中时 - 它正常工作...... 我不知道如何解决它......
答案 0 :(得分:3)
我坚信您在干扰C ++内置的false
和true
,因此您尝试在enum
中重新定义它们。
尝试将false
和true
替换为FALSE
,将TRUE
和bool
替换为BOOL
。
#include <stdio.h>
#include <stdlib.h>
#ifndef _MYLIB_
#define _MYLIB_
typedef enum {FALSE, TRUE} BOOL;
// some structures and function prototypes...
#endif