C++中定义一个函数为bool类型的作用「建议收藏」

2022-06-27 08:26:01 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

1.bool型函数

bool型函数(即返回值为bool类型的函数)的作用——获取函数返回值

代码语言:javascript复制
bool getvalue(bool b){ 
   
    if(b == true)
        return true;
    else
        return false;
}

int main(){ 
   
    //在main()中调用函数就可以得到5261函数的返回结果4102
    cout<<boolalpha<<getValue(true);
    return 0;
}

2.return true 和return false

bool类型的函数返回值只有两种可能:true(真)false(假)

bool可用于定义函数类型为布尔型,函数里可以有 return true; return false 之类的语句。

return true;和return false;是两种状态,函数返回一个bool类型表示对于给定的输入做出判断,代表一种状态,很多情况下需要判断某些状态来选择性的执行操作的。但是如果不需要这种状态,可以不用返回任何值,void即可。

bool类型常作为循环、选择语句的判断依据。比如if(a());这个if语句就需要判断a()的返回值为true还是false,若是true,才会执行if语句内的操作。while()语句也需要bool类型来判断。

示例如下:

代码语言:javascript复制
#include<iostream>
using namespace std;
int main(){ 
   
    cout<<"2>3="<<boolalpha<<(bool)(2>3)<<endl;
    return 0;
}

示例:

代码语言:javascript复制
#include<iostream>
using namespace std;
bool cmp(int a,int b){ 
   
    if(a > b){ 
   
        return true;
    }else{ 
   
        return false;
    }
}
int main()
{ 
   
    int a = 5;
    int b = 6;
    if(cmp(a,b)){ 
   
        cout << "a> b!" << endl;
    }else{ 
   
        cout << "a< b!"  << endl;
    }
    return 0;
}

3.bool与BOOL的区别

BOOL是微软定义的typedef int BOOL,用途是解决程序在C与C 中环境的差异。

BOOL与bool不同,它是一个三值逻辑,TRUE/FALSE/ERROR,定义于WinDef.h头文件中。返回值为1的整数为TRUE,0为FALSE,-1为ERROR。 实际上BOOL为int型,占4个字节,标准赋值:TRUE和FALSE。TRUE和FALSE在预处理阶段都会分别被1和0替换。由此可见BOOL和bool区别为:

示例1:

代码语言:javascript复制
   boolx=-19,y=0,z=10;

    cout<<"x值:"<<x<<endl;

    cout<<"y值:"<<y<<endl;

    cout<<"z值:"<<z<<endl;

输出结果为:

代码语言:javascript复制
 x值:1
 y值:0
 z值:1

其中x,z的值为true,被转换为1输出,y的值为false,被转换为0输出

示例2:

代码语言:javascript复制
BOOL x=-19, y=0, z=10,a=1;

得到的结果为:

代码语言:javascript复制
 x值:-19
 y值:0
 z值:10
 a值:1

由此可知: 1)bool的取值只有true和false两种,非零值被转为true,零被转为false 2)BOOL是int型,当值为0时,可认为是FALSE,当值为1的时候,可看做TRUE

注意: 1)如果是写标准的C ,那么就全用bool; 2)如果是写vc ,就尽量使用BOOL,避免转换产生的性能警告。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/133648.html原文链接:https://javaforall.cn

0 人点赞