c++ bool类型的函数问题

返回bool类型的函数感觉没什么用啊,完全可以用返回“0”和“1”的整型函数来代替?仅仅是为了直观一些表示该函数是用来判断对错的函数吗?还是有其他的考虑?
如果说的更大一点,true和false不就是非零数和0吗?不能都用数字代替吗?

c++
0

5个回答

作为老农,我个人还是比较习惯C中0为false,非0为true(把int当bool)的惯例的。
然而,C中还有另一个惯例,函数返回0表示成功,返回非0表示错误。这样一来,如果两种风格的函数放到一起,就不容易很快的判断出来了。如果是用int表示bool的函数能直接用bool来表示返回值,那么一眼就能分辨出来了。

另外,bool是个独一的类型,是会参与到函数重载解析中去的,这是将bool独立出来更有意义的原因。
https://msdn.microsoft.com/en-us/library/tf4dy80a.aspx

1

0 1当然可以用来表示bool类型的true和false,但是按照你说的这样float类型岂不是能把int型也代替了?问题不能这样考虑,每种类型都是有意义的,占的字节数也是不一样的。好比说脸盆可以用来洗脸,脚盆用来洗脚,但是你非要把两个合起来既洗脸又洗脚,肯定也没啥问题。

7

bool可以节省空间。在做算法题的时候,有时候,用bool就可以过了。但int就不一定。字长不一样

2

程序更加简洁易懂吧,一般在写代码的时候,C语言都会自己去typedef

1

当然可以用非零数和0去代替啦,true和false一般用起来我觉得逻辑比较好,代码容易理解

1
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
c语言中的bool类型
以前一直在写c++,所以想当然的认为c语言中也有bool类型,然而并没有,只是在C99标准引入的新的关键字_Bool 和c++中的bool类似,如果在c中也想直接使用bool,可以添加stdbool.h头文件参考:http://blog.chinaunix.net/uid-8440532-id-34776.html
跟我一起学C++之从C到C++(bool类型)
bool类型 C++新增类型,表示逻辑真与假 1.逻辑型也称布尔型,其取值为true(逻辑真)和false(逻辑假),存储字节数在不同编译系统中可能有所不同,VC++中为1个字节。 2.声明方式:boolresult;result=true; 3.可以当作整数用(true一般为1,false为0) 4.把其它类型的值转换为布尔值时,非零值转换为true,零值转换为false   代
bool 函数用法
  BOOL是布尔型变量,也就是逻辑型变量的定义符,类似于float、double等,只不过float定义浮点型,double定义双精度浮点型。在objective-c中提供了相似的类型BOOL,它具有YES值和NO值。布尔型变量的值只有 真(true)和假(false),可用于逻辑表达式,也就是“或”“与”“非”之类的逻辑运算和大于小于之类的关系运算,逻辑表达式运算结果为真或为假。(百科) ...
浅谈C语言中的布尔(bool)类型
浅谈C语言中的布尔(bool)类型
bool型函数
bool介绍 C++中 bool函数如果值非零就为True,为零就是False。 比如写数据结构的时候,有时候需要判断一下链表是不是为空,这时候需要用到bool函数,再者,你看到bool就知道这个函数返回值只是用于判断真假。 bool函数返回的只有true和false。而int会返回各种数字,但是你关心的不是数字的多少,而是这个数字为不为0.所以这种情况用bool会更加简洁,规范,你看到bo...
C语言中实现bool(布尔型变量)
C语言中,本身没有bool(布尔型变量)。但是我们可以用其他方式来模拟。一、如果简单的使用char、int、long变量来表示0/1,则太浪费空间了。二、这里介绍一种巧妙的方式实现bool,高空间利用率。#define true 1 #define false 0 //--------------------------------------------联合体(共用体) 定义 typedef ...
C++中以bool作返回值的函数的常见错误
// test.cpp : 定义控制台应用程序的入口点。 //#include "stdafx.h"bool t_return_false() { return false; }int t_omit_road() { if (t_return_false()) { return true; } // 遗漏的分支:编译器不报错,只给出告警!
常用函数库——BOOL函数
//判断一个数是否为质数 Returns true if n is a prime number. bool IsPrime(int n) { // Trivial case 1: small numbers if (n <= 1) return false; // Trivial case 2: even numbers if (n % 2 =...
C语言 宏定义的方式实现“bool”数据类型的功能
C语言中默认不支持“bool”数据类型。 若想要使用,需要引用“stdbool.h”头文件。 这个头文件需要从网上下载或者自己手动建立(自行百度)。这里介绍一种使用宏定义的方式来实现“bool”数据类型的功能作用,示例代码如下: #include <stdio.h>#define bool int #define true 1 #define false 0int main() { bool
使用bool变量的冒泡排序法
冒泡排序中的交换次数又称为反序数或逆序数,可用于体现数列的错乱程度 冒泡排序仅对数组中相邻元素进行比较和排序,让数组元素像水中的气泡一样逐渐上浮,进而达到排序的目的,复杂度数量级为O(N²)。 下面的代码实例实现数组的升序排列。 #include<iostream> #include<algorithm> using namespace std; int bubbl...
关于linux 下用gcc 无法编译 bool 类型的问题解决
Linux下的编译器gcc不支持bool类型的变量,因为c语言中本来是没有bool类型,只是有些编译器中自行添加了bool类型。 在linux下  c语言程序中一般通过int类型来代替bool类型。 总结 以下方法可以使用: 1:使用g++编译   g++ 2:进行宏定义      #define bool int 3:声明枚举类型  enum  bool{false = 0,tru
【搬运】C语言返回函数为布尔型,在if判断时出错。
【搬运】因为原来的博客要关,所以从原来的博客搬运过来。 背景是这样的,程序为c语言的程序,包含n多C文件,最终编译成一个动态连接库,对外提供两个void函数。 问题是这样的,程序刚开始执行时有一段(在a文件中) if(b()) { XXX; } else { xxxxx; } b()函数在另一个文件中定义。返回值为bool型,(bool类型在另一个头文件d中定义)...
C#中bool类型的分析好好学习
该文档主要是针对C#的理解,bool类型在C#中有着极其重要的地位,所以学号bool类型有助C#的理解。
VS2017 使用BOOL 和 TRUE 时要注意
因为 BOOL 和 TRUE是MFC的定义,需要加头文件#include <windows.h>,否则会报各种花式错误。
关于布尔类型输入问题(bool cin C++)
C++环境中,bool类型按 ”非零为true,是零为false“ 规则执行。  在VS2015编译环境下,声明一个bool变量,如果没有定义,编译器会报错,声明bool类型时不会有默认值。  把bool类型变量作为输入变量时(用cin来赋值bool),当声明一个bool类型变量x后,默认该变量x为true,且当输入值为非零时,该变量x一直为true。而当声明一个bool类型变量y后,如果给它赋值...
C++:布尔类型bool,函数重载、参数缺省值、哑元参数、内联函数、引用
"$: nautilus ." 打开文件夹 "$: nautilus jy/c++" 打开指定路径的文件夹 一、布尔类型 bool (C++98 新增的基础数据类型) bool 类型的变量有两个可能的值:1 / 0 bool 类型的常量有两个可能的值:true / false bool 类型的变量占用的字节数,因系统不同而不同,大多数系统为 1 字节。 1. bool 类型的赋值:
c++ bool类型函数
bool型函数指的是返回值为bool类型的函数,其调用方式和int 型函数没有太大的区别。 bool型变量的值只有 真 (true) 和假 (false)。bool可用于定义函数类型为布尔型,函数里可以有 return true; return false 之类的语句。 示例: #include using namespace std; bool cmp(int a,int b){     
c# 调用c++ dll文件中的bool类型解决办法
[return: MarshalAs(UnmanagedType.I1)] [DllImport("ximcamera.dll", CallingConvention = CallingConvention.Cdecl)] [return: MarshalAs(UnmanagedType.I1)] public static extern bool Open(string cam); //o
bool数组初始化
输入memset(boolArray,0,sizeof(Array)); 头文件是#include<memory.h>; 如果初始化为全部false,c++有一个零初始化器(zero-initializer) bool boolArray[ARRAY_SIZE] = { 0 }; 这个零初始化器是通用的,其他类型的数组也可以通过这个初始化; char myarray[ARRAY_SIZE] =
C语言中有bool变量吗?
1.C/C++中定义的数据类型:        C语言中定义了6种基本数据类型:short,int,long,float,double,char                                   4种构造类型:数组,结构体(struct),共用类型(union),枚举类型(enum)                                              ...
C++基础----C++ 布尔类型(bool)及BOOL和bool的区别
声明:本文章是根据网上资料,加上自己整理和理解而成,仅为记录自己学习的点点滴滴。可能有错误,欢迎大家指正。boolANSI/ISOC++标准添加了一种名叫bool的新类型(对C++来说是新的)。它的名称来源于英国数学家George Boole,是他开发了逻辑律的数学表示法。在计算中,布尔变量的值可以是true或false。过去,C++和C一样,也没有布尔类型。C++将非零值解释为true,将零解释...
返回bool的函数无return时返回true还是false
[code=&quot;c++&quot;] #include bool f() { } int main() { if(f()) printf(&quot;default return true!\n&quot;); else printf(&quot;default return false!\n&quot;); }[/code] 代码如上: 结果是什么? 在vs2008下,会是 default return...
在STM32F103编程中关于使用bool类型的问题
1、在STM32F103编程中关于使用bool类型的问题如果程序中使用到bool类型,但编译时提示类型未定义,这个时候可在头文件中加入下面一句:typedef enum {    FALSE = 0,    TRUE = 1} bool;即可解决。stm32f10x.h文件中还包含了常用的布尔形变量定义,如:1、typedef enum {RESET = 0, SET = !RESET} Flag...
C++起航篇——bool类型,输入输出,命名空间
以下内容源于慕课网http://www.imooc.com/course/list?c=cplusplus的学习整理,如有侵权,请告知删除。 1、c++的新特征 (1)新数据类型 bool (true和false) (2)新的初始化方法 int a=100;=> int a(100); (3)随用随定义。 2、c++输入输出方式 (1)cin>>x>>y; (
C 判断 —— if...else 语句(bool变量、float变量、指针变量与“零值”进行比较)(else 到底与哪个 if 配对呢? if 语句后面的分号?)
1、bool 变量与“零值”进行比较 bool 变量与“零值”进行比较的 if 语句怎么写? bool bTestFlag = FALSE;//想想为什么一般初始化为 FALSE 比较好? A), if(bTestFlag == 0); if(bTestFlag == 1); B), if(bTestFlag == TRUE); if(bTestFlag == FLASE); C), if(b...
bool型函数定义及应用
 bool型函数定义及应用 已编译通过#include  &amp;lt;stdio.h&amp;gt;   int *p,a[10]; //sizeof p; unsigned int c=-20; int d=10; typedef enum {     true=1, false=0 }bool;   //布尔类型,使用前必须自定义 enum weekday       //枚举类型  {sun=...
布尔(bool)全排列
1、算法思路 真值组合是全排列问题,能用递归的思想解决,关键是怎么写出递归的程序     由全排列思想可知,n个bool变量可以转化为后i个bool固定的值和前n-i个bool变量的全排列,例如:第n个为真,前面n-1个bool变量的全排列。由此递推,如果能解决n-1个bool变量的全排列问题,那么就能解决n个bool变量的全排列问题。 2、源代码 #include
PostgreSQL学习篇9.1 布尔类型
boolean的状态要么是true要么是false,如果是unknown,用NULL表示。 boolean在SQL中可以用不带引号的TRUE和FALSE表示,也可以用更多的表示真假的带引号的字符表示,如'true','false','yes','no','1','0'等 测试: test=# create table t (id int, nan boolean, note text); CREA
bool型变量的赋值和运算
今天在调试一个程序的时候出现bug,搜索两个小时,终于找出,其实bug很幼稚,主要是基础不扎实,根源在于如题所述:bool型变量的赋值和运算 废话不多说,直接上代码 模型是:bool flags = false;                  flags |= 0x2;                  printf("flags:0x%0x", flags); 以前总以为bool通
C++中的bool类型
考研中可以直接使用bool类型,因为C++中支持bool类型。 有关bool类型,c++支持的关键字有,bool,false,true这三个。 bool aaa= false; bool bbb =true;这样的话aaa就被赋值为0,而bbb被赋值为0.这里涉及一些隐式转换。 任何非0值,都是true,任何0值都是false.
BOOL,指针,int作为判断条件,在代码中的实现
一、BOOL与0值得比较 规则:不可将BOOL型变量直接与TRUE,FALSE,1,0比较。 根据BOOL型变量的定义,零值为假(记为FALSE),非零值都为真。 假设BOOL型变量名为flag,它与零值比较的标准If语句为:if(flag)//表示flag为真,if(!flag)//表示flag为假 其他的都属于不良风格: if(flag == TRUE) if(flag == FA
C基础:布尔类型(BOOL) 关系运算符 switch
C基础:布尔类型(BOOL) 关系运算符 switch
bool变量的使用(整理)
bool变量的使用(赋值,头文件) if(leap==1) if(leap==ture) if(leap) 三种表述方式的效果都是一样的
bool类型定义在哪里(Linux系统)
bool类型定义在哪里(Linux系统)
【Linux】bool的使用
一些你认为理所当然的东西,在LinuxC中不是说用就用,例如bool布尔型由于其C语言标准古老,就像如下一段,利用函数返回值判断是否正数,很平常的代码: #include bool is_positive(int num){ if(num>0){ return true; } else{ return false; } } int main(){ int num=1; if(
【C++】布尔类型和引用详细分析
一、C++中的布尔类型 (1)特点 ①C++在C语言的基本类型基本系统之上增加了bool ②C++中的bool可取的值只有true和false ③理论上bool只占一个字节 (2)注意 ①bool类型只有true(非0)和false(0)两个值 ②C++编译器会将非0值转化为true,0值转换为false (3)实例分析 #include &amp;lt;stdio.h&amp;gt; #in...
转义字符 bool 和字符串
转义字符 print(r"\asdsad\asdasd\nasd")#在前面加上一个 r表示不会转义字符 bool值 True 真 False 假 and  相当于c && or  相当于c|| not 相当于 c ! 取反   None 空值  并非0   和nullptr 差不多 字符串操作 # 这是一个对字符串使用的 归纳 print(or
bool类型
bool类型的变量如果在变量声明的时候不定义他是true还是false那么他默认是false
keil中使用bool类型
使用时包含头文件    #include &amp;lt;stdbool.h&amp;gt; 注释掉头文件会提示报错。 正常使用
java记——bool型初接触
问题及代码: 问题描述: 输入一个数,判断这个数是不是可以整除10,如果可以整除,输出true,否则输出false 程序代码: import java.util.Scanner; public class question { public static void main(String[] args) { System.out.print("please input co