如何用 vs2010 无缝编译 纯c程序!

飞天狐213 2013-11-11 06:00:50
我用的编译器是:vs2010,现在有个 c 语言写的源代码,但是没办法在vs2010中编译通过,求教!
我尝试过的方法:
--
(1)添加项目,添加头文件:xxx.h------然后把相应的头文件代码复制进去
(2)添加源文件:xxx.c------然后把相应的源文件代码复制进去
结果:编译错误:
(3)在头文件的中添加:extern "C"{ ```},把整个头文件包含在里面,
结果:编译错误
(4)继续在.c文件中添加 extern "C"{ ```},把整个 c 文件包含在里面,
结果:编译错误

经过观察:只要是一下原因:头文件中用了在C++中的关键字:false,true,bool
如:
typedef enum
{
false,
true
}bool;

究竟怎么样才能让上面的代码通过编译呢?????
谢谢指教!
...全文
270 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
guoqiang5277 2013-12-12
  • 打赏
  • 举报
回复
C++ 中编译C,要加上 extern "C"
Binzo 2013-12-11
  • 打赏
  • 举报
回复
typedef enum { false, true }my_bool;
logiciel 2013-12-11
  • 打赏
  • 举报
回复
#undef  bool
#undef  true
#undef  false
#undef  __bool_true_false_are_defined

#define  bool        _Bool
#define  true        1
#define  false       0
#define  __bool_true_false_are_defined  1

#if  __STDC_VERSION__ < 199901
typedef int  _Bool;      /* not built into pre-C99 compilers */
#endif
飞天狐213 2013-12-10
  • 打赏
  • 举报
回复
引用 8 楼 ganpengjin1 的回复:
typedef enum { false, true }bool; 你这是要做什么
c语言没有bool类型,现在利用enum增加一个自定义的bool!
漫步者、 2013-11-12
  • 打赏
  • 举报
回复
typedef enum { false, true }bool; 你这是要做什么
飞天狐213 2013-11-11
  • 打赏
  • 举报
回复
引用 4 楼 derekrose 的回复:
[quote=引用 2 楼 feitianhu213 的回复:] [quote=引用 1 楼 derekrose 的回复:] 无缝编译... 新词吗
哈哈,临时想到的词汇~[/quote] #ifdef c code #define true 1 #define false 0 #define bool int #endif 试试[/quote] 补充:该方法不行!
飞天狐213 2013-11-11
  • 打赏
  • 举报
回复
引用 4 楼 derekrose 的回复:
[quote=引用 2 楼 feitianhu213 的回复:] [quote=引用 1 楼 derekrose 的回复:] 无缝编译... 新词吗
哈哈,临时想到的词汇~[/quote] #ifdef c code #define true 1 #define false 0 #define bool int #endif 试试[/quote] 可以了!!还有一种方法: #ifdef __cplusplus extern "C"{ #endif //头文件代码 //---------- #ifdef __cplusplus } // 从c++里面的C头文件里得到的答案! #endif
飞天狐213 2013-11-11
  • 打赏
  • 举报
回复
引用 3 楼 super_admi 的回复:
“有个 c 语言写的源代码”,“头文件中用了在C++中的关键字” 这两句话不自相矛盾吗?
不矛盾,可能是我说的不够清晰吧! 我的意思是:c语言中的代码里面有个标识符,而该标识符正好是c++语言的关键字。比如在C程序中定义了标识符:bool。这在C语言里是合法的,因为C没有 bool 关键字,但是在C++里面有关键字:bool ,因此该标识符在C++里面就是非法的!!
derekrose 2013-11-11
  • 打赏
  • 举报
回复
引用 2 楼 feitianhu213 的回复:
[quote=引用 1 楼 derekrose 的回复:] 无缝编译... 新词吗
哈哈,临时想到的词汇~[/quote] #ifdef c code #define true 1 #define false 0 #define bool int #endif 试试
super_admi 2013-11-11
  • 打赏
  • 举报
回复
“有个 c 语言写的源代码”,“头文件中用了在C++中的关键字” 这两句话不自相矛盾吗?
飞天狐213 2013-11-11
  • 打赏
  • 举报
回复
引用 1 楼 derekrose 的回复:
无缝编译... 新词吗
哈哈,临时想到的词汇~
derekrose 2013-11-11
  • 打赏
  • 举报
回复
无缝编译... 新词吗

64,678

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧