【c语言】为什么我用VC++编译bool类型的函数会报错?

我把bool改为int 把true改为1,把false改为0,就能运行了。这不是程序上的问题,因为我复制到别的编译器是可以运行的。这是什么原因,按理说VC++可以编译bool类型的函数啊。

vc中C不识别bool类型,主要是因为编译器的原因!以前遇到过一次,当时也感到很困惑,果断的使用int代替!
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-12-15
C++中bool,true,false是关键字,要求大写追问

哎。。。要大写?我试过,把它们 改大写后都不变色了。。。不改的话还会变色,就是那种关键字变色

本回答被提问者采纳
第2个回答  2014-12-15
C没有bool类型,C++有追问

但是我用的是VC++编译器,应该不会有问题啊。

追答

就是VC不可以识别!我以前使用过vc6.0,不识别的!编译器的原因,在Linux下没问题!

第3个回答  2014-12-15
肯定可以的,你自己用错了吧追问

但是我放到别的编译器上就能正确运行了。

追答

反正我能正常使用,可以看看你的代码

【c语言】为什么我用VC++编译bool类型的函数会报错?
vc中C不识别bool类型,主要是因为编译器的原因!以前遇到过一次,当时也感到很困惑,果断的使用int代替!

VC++2008编译typedef int bool是报错
c++里bool是内置类型,你不可能重新定义他 你拷贝的代码可能是c的,c89没有bool类型,一般会定义一个。你可以查看下代码中使用bool类型的地方,看是否按照0为真,非0为假操作的,如果是,可直接删除这行定义,一样可以编译不会出错,否则的话就把所有bool都替换下,用一个新类型名 对补充问题的回答...

vc++这个编程错在哪里了
vc 6.0 编译友元函数时是会报错的,说友元函数不能访问私有成员,但是友元函数是可以访问私有成员的,因此在vc 6.0里面是不能使用友元函数的 解决方法 有两种 1. 换编译器,换vs2005,vs2008都可以 2. 不用友元函数,将它改为类的成员函数 ...

[VC++]我用invalidate()调用ONPAINT为什么会出错?
void Invalidate( BOOL bErase = TRUE );该函数的作用是使整个窗口客户区无效。窗口的客户区无效意味着需要重绘,例如,如果一个被其它窗口遮住的窗口变成了前台窗口,那么原来被遮住的部分就是无效的,需要重绘。这时Windows会在应用程序的消息队列中放置WM_PAINT消息。MFC为窗口类提供了WM_PAINT的消息处理...

VC++封装成python可用的dll,编译时出错,请问是为什么?
我没有用过boost python,不过按照我写扩展的经验,这种一般是c++和c的调用惯例不一样。python应该是使用c的调用惯例的。你可以参考swig或者如果用cython也可以。或者你的boost的python库没有链接上?

c语言中有bool类型吗?
C语言中只有Boolean 数据类型 Boolean 变量存储为 16 位(2 个字节)的数值形式,但只能是 True 或是 False。Bool是C++里的类型

c语言中有bool类型吗?
C语言里面是没有bool(布尔)类型的,C++里面才有,C语言里面用数值0表示假,非0整数表示真。在C++里面可以使用bool类型。bool类型只有两个值:true =1 、false=0。bool可用于定义函数类型为布尔型,函数里可以有 return TRUE; return FALSE 之类的语句。布尔型运算结果常用于条件语句:if (逻辑表达式...

关于C语言中bool类型的问题。求解
我认为这是c编译器的特点吧,可以这么理解:首先定义的时候bool一个变量,如果直接赋值是非零,编译器就自动转转为1了(这里是预编译阶段)。所以一开始就是1而不是2。之后有a的2次打印。最后一句判断a是0就不打印的。然后说b,虽然定义了bool,但是扫描时候是按照int扫描的,内存中真的就是5了(并...

c语言自定义BOOL函数
C语言没有BOOL类型变量 boolean类型是C++所独有的 由于使用BOOL类型可以使代码更具有可读性,很多编程者都在C中自己定义了类似的应用,一般方法有两种:1、采用宏定义方式(windef.h中就是用的这种方式)typedef int BOOL ;define true 0 define false 1 2、采用枚举型变量方式(这种方式更象C++的...

c语言错误提示:error C2065: 'bool' : undeclared identifier
C语言里没有bool类型。你可以自己定义一个bool类型。define bool int 就可以了。

相似回答