分析 BOOL & bool

c/c++编程笔记:布尔类型(bool)分析 布尔类型(bool) 布尔类型(bool)是C++新增的一种基本数据类型。它的名称来源于英国数学家George Boole,是他开发了逻辑律的数学表示法。 名称应用环境类型长度取值 bool标准的C++布尔型1个字节false和true(0和1的区别) C++中的 bool 的取值只有 true 和 false 两种,非零值被转为 true,零被转为 false 实例: #includeusingnamespacestd;intmain(){boolx=-100,x1=30,x2=0;boola 阅读详情

一、BOOL 和 bool 来历

在C语言中,没有bool和BOOL这两个关键字的,如果要使用,除非你自己定义。但是在coder的日常使用中,有太多的应用场景需要判断是是非非,所有coder需要经常定义这个表征是非的“关键字”。能与时俱进的语言才是有活力的语言。在C++中引入了bool关键字,但是大家平常也会看到或者使用BOOL,这又是怎么回事呢?答曰:这是微软自己定义的。就拿MFC来说,在头文件WTYPES.H和WINDEF.H中的定义如下:

typedef long BOOL; //WTYPE.H
typedef int    BOOL; //WINDEF.H

       从上面的分析可以看出,bool是真正的布尔型,而BOOL不是真正意义上的布尔型,准确的说应该是整形。


二、BOOL 和 bool 的长度

        bool型的长度是1个字节,而BOOL型的长度是4个字节(不同的编译器,分配的字节数可能有出入。这里以MFC为例)。

	bool bIsOk = false;
	BOOL bIsRunning = FALSE;
	
	int nSize = sizeof(bIsOk);
	int nLen = sizeof(bIsRunning);

         可以在内存看到,变量nSize和nLen的长度分别是1 和 4.


三、取值不同

        bool的取值为true,或者false,是1或者0,而BOOL的取值为TRUE或者FALSE,,表示非零,或者零。


四、注意

     在使用的过程切勿将两者混用,比如bool型的赋值为TRUE或者FALSE,而BOOL型的赋值为true或者false,这些都是不行的。




数字后端零基础入门系列 | Innovus零基础LAB学习Day7 阅读详情

相关推荐

Visual Studio 命令提示符工具区别与使用场景

Visual Studio会提供一系列命令提示符工具,这些工具应用在哪些场景呢?本文进行了相关介绍。

cicada15的博客 3490

c语言bool数据类型大小,浅谈C语言编程中的布尔bool数据类型

我们知道在C++里有专门的bool类型,用来表示真或假。但是在C语言里没有这样的类型(至少我是一直这么认为的),表达式的值0为假,非0为真。所以条件判断语句( if(…)、while(…) )非常灵活,甚至一个指针类型都可以是条件表达式。为了使程序更清晰,我们常常会给出如下的宏定义:typedef int BOOL;#define TRUE 1#define FALSE 0这是最常见的写法,能被任...

weixin_35650041的博客 2140

遥感影像分割实战:LoveDA数据集从下载到训练全流程指南(附避坑技巧)

本文以LoveDA数据集为例,提供了一份详尽的遥感影像语义分割实战指南。内容涵盖从数据下载、理解与预处理,到环境配置、模型选择与训练,再到性能调优与部署的全流程,并重点分享了多个关键环节的避坑技巧,旨在帮助开发者和研究者高效上手并解决实际问题。

cherry的博客 928

c语言布尔型变量设置为false,C语言_Bool 类型(布尔类型)介绍

过去,我们一般使用 int 型变量表示真/假。C99 新增了 _Bool 类型(布尔类型)用于表示真/假。_Bool 类型的变量的值只能是 0 或者 1。无论赋予任何非零值给 _Bool 类型的变量,它的值都只会是 1。例如:_Bool i_am_true = 15; // i_am_true 的值是 1_Bool am_i_true = (var > 15); // 当...

weixin_28894087的博客 1534

从踩坑到填平:我在RHEL7上给Tesla A100装驱动的完整记录(含Fabric Manager配置)

本文详细记录了在RHEL7系统上为Tesla A100安装Nvidia驱动的完整过程,包括Fabric Manager配置的关键步骤。通过分析A100架构的特殊性,提供了从驱动安装到服务配置的详细指南,并分享了常见问题的排查方法和性能调优技巧,帮助用户高效部署高性能GPU计算环境。

weixin_29291863的博客 282

COMSOL仿真教程—激光烧蚀

本例使用二维模型,将来自激光的入射热通量模拟为金属表面上空间分布的热源,从而得到金属的烧蚀过程和瞬态温度分布。

qq_40977332的博客 2万+

小谈bool

首先声明以下为个人通过在网上找的资料学习总结,存在不足及有误之处欢迎提出疑问及补充 一、bool与BOOL 1.BOOL是微软定义的typedef int BOOL;由此可见它是int型,通常由实际环境决定它有几个字节,一般认为BOOL有四个字节。 BOOL是三值逻辑,有FALSE\TRUE\ERROR,定义在WinDef.h中,返回值为1对应true,0对应false,-1对应error。它的取值是0和非0; 2.bool是布尔型,只占一个字节,并且只有true和false两个值,取值是0和1;定

weixin_63465510的博客 8310

RK3568平台YOLO11模型部署实战:从环境搭建、模型转换到板端性能优化全解析

摘要: 本文详细介绍了在RK3568平台上从零部署YOLO11模型的完整流程。主要内容包括:1) 基于Conda搭建Python 3.8开发环境并安装RKNN-Toolkit2工具链;2) 使用LabelImg工具标注数据并构建YOLO格式数据集;3) 基于Ultralytics框架进行YOLO11模型训练及参数优化;4) 实现PyTorch→ONNX→RKNN的完整模型转换链。文章特别针对RK3568平台的NPU特性提供了关键参数配置建议,并分享了实际开发中的经验总结,最终可达到30FPS的稳定推理性能。

LXY_LOVE36的博客 279

bool & BOOL

BOOL其实就是int 一、 1、类型不同 BOOL为int型 bool为布尔型 2、长度不同 bool只有一个字节 BOOL长度视实际环境来定,一般可认为是4个字节 3、取值不同 bool取值false和true,是0和1的区别 BOOL取值FALSE和TRUE,是0和非0的区别 二: bool是标准C++数据类型,可取值true和false。单独占一个字节, 如果数个b

CATHY_AA的博客 809

大模型的实践应用31-基于通义千问大模型改进台风和海浪预测研究,利用机器学习与通义千问结合的思路实现对台风和海浪预测分析

通义千问大模型是阿里巴巴云推出的一款大规模语言模型,旨在通过强大的自然语言处理能力提供更广泛的服务。从最初的构想到如今的广泛应用,通义千问的发展见证了人工智能领域尤其是自然语言处理技术的巨大进步。自发布以来,通义千问不断迭代升级,不仅在规模上实现了飞跃式的增长,在性能方面也得到了显著提升。本次研究尝试将通义千问强大的自然语言处理能力与经典的时间序列预测算法相结合,旨在提高对未来天气状况预测的精度。具体来说,首先使用通义千问生成高质量的文字描述来增强特征表达力;

微学AI的博客 934

【测开求职】面试题:计算机网络 详细版整理

本篇文章是笔者为准备研究生复试和校招而写,因此主要针对问答,注重理解,而不在于细节计算。读者可以先查看上面的链接走一遍计算机网络的整体框架结构。其中,重点难点以及易混淆的知识点,笔者会用其他文章进行了详述,在知识点处贴好了链接,有需要的可以查阅。

vector的博客 5936

int, long long, double 等数据类型的长度及范围整理

(1)整数类型:byte、short、int、long (2)小数类型:float、double (3)字符类型:char (4)布尔类型:boolean 先附上一个比较直观的表,长度表示字节: byte: 字节 bit: 位 1. 短整型short: 所占内存大小:2byte=16bit; 所能表示范围:-32768~32767;(即-2^15~2^15-1) 2. 整型int: 所占内存大小:4byte=32bit; 所能表示范围:-21...

BadSheepC 5万+

2024年11月架构设计师案例分析真题回顾,附参考答案、解析及所涉知识点(二)

软考高级系统架构设计师考试包含三个科目:信息系统综合知识、案例分析和系统架构设计论文。考试形式为机考。本文主要回顾2024年下半年(2024-11-10)系统架构设计师考试上午第二科案例分析的题目,同时附带参考解答、解析和所涉知识点。

一几文的编程学习笔记。 1659

sqlmap Bool型&延时型 检测策略分析

目录 sqlmap Bool型&延时型 检测策略分析 0x00 预备-queryPage() 0x01 bool型检测策略 判断依据 quick_ratio() 案例 0x02 延时型 判断依据 ...

weixin_34262482的博客 229

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

c++和c的注意点和不同点:

c++和c的注意点和不同点: 1.所有变量的声明C++在使用处声明,而C需要在函数开始声明。例如:for(int i=0;i 2.对用宏定义C++可以多行,而C很多编译器不支持多行,即不支持/符号。 3.C++支持更为丰富的类型转化方式,而C只能做强制类型转化。 4.C++对const的使用十分广泛且有效,而C对const使用受到限制,如无法用在中间变量声明。 5、C、C++数组初始

云守护的专栏 749

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

int转bool原理

突然好奇两个无关紧要的问题,一个是,在汇编层面,int是怎么转成bool类型的;一个是if中直接对int类型变量进行判断,中间是怎么处理的? 源码: int main() { int a = 10; bool b = false; b = a; } 反汇编: Dump of assembler code for function main: 0x00000000004005b0 <+0>: push %rbp 0x00000000004005b

qq_15017123的博客 4955

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

C99新增的_Bool类型(bool关键字)

C99新增的bool关键字 传统(指C90)C标准中是没有布尔类型的,对于C来说,非0即是真,而0即是假。 在C中,一直使用int类型表示真假值(布尔值),所以,任何条件表达式的结果要么是1(真),要么是0(假),在C99标准中,引入了新的类型_Bool,即布尔类型,布尔类型的变量只能存储1或0的整型值,把任何假值(整型和浮点的零值)赋值给_Bool,该变量会被设为0,否则被设为1,为此,C99还提供了stdbool.h头文件,该文件让bool成为_Bool的别名,同时宏定义了true和false,分别是1

宁静致远的博客 4158

BOOL与bool,不是一家人

在VisualStudio,经常有很多BOOL和bool穿梭在代码中,而这大小写的细微差异,却导致他们的实质不一样了。我们先来分析下面这个例子: 程序如下:......CFileFind finder;bool bWorking =finder.FindFile("c:\\文件.txt");......编译提示:warning C4800: 'int' : forcing value to bo

FUN 1290

C++:布尔类型(bool)详细分析

C++概述 20世纪80年代,AT&T Bell(贝尔)实验室的Bjarne Stroustrup博士及其同事在C语言的基础上成功开发出C++语言。C++语言是一种混合型语言,它保留了C语言所有的优点,同时又增添了面向对象的编程机制,我们可以将C++语言视为C语言的改进和扩展。 基于C语言开发的C++语言兼容C语言,因此用C语言编写的程序基本上可以不做改动地用于C++。相对于C语言,C++...

AngelDg的博客 3万+

MFC中BOOL类型,在某些操作系统中,-1不能被识别,一般是哪些原因?

MFC框架中BOOL类型(Windows定义为int别名)在跨平台开发时可能出现兼容性问题,特别是使用-1作为非零真值的情况。由于Linux/Unix系统对bool类型实现更严格,-1可能被截断或误判。解决方案包括:1)标准化返回值为0/1;2)优先使用C++标准bool类型;3)通过宏隔离平台差异;4)MFC消息处理函数严格返回文档指定值。最佳实践是避免依赖-1的真值特性,确保跨平台代码的健壮性。

学无止尽,谨言慎行! 1320

浅显理解std::vector< bool >

std::vector<bool> 的全称是 std::vector<bool, std::allocator<bool>>,最初传入的分配器是std::allocator<bool>,是为bool类型变量分配内存的。但由STL对bool类型做了特化,内部并不是存储bool类型,而是_Bit_type类型,因此 std::allocator 现在需要为_Bit_type类型分配内存,这就需要通过 rebind 函数来获得 std::allocator<_Bit_type>。

马小超 2079

对OC中BOOL值在debug和release模式下不同的问题分析和总结

背景: - (NSData *)getData { BOOL isReaded; while (!isReaded) { NSLog(@&quot;balalala&quot;); } } 在Debug模式下运行程序一切正常,将Edit Scheme中build configuration改为Release模式运行程序,打印不会输出。此处是BOOL变量isReaded...

JarlenJohn 674

stream&对象到bool的转换小结(C++11的safe-bool)

在我们日常使用C++的各种场景中,通过while(cin>>num),while(getline(cin,str))这种来判断输入是很常见的。那么这种istream对象到bool的转换具体是怎么实现的呢。 1.旧版实现 这里会不会是直接在istream类中直接定义bool的类型转换呢——形如operator bool (){ }; 很遗憾,并没有这么简单。因为我们知道,bool型

a530877647的博客 1176

C语言中的bool类型 stdbool.h

C语言的C99标准中已经可以使用bool类型了,但有些小伙伴可能受制于编译器等原因还无法使用,我就从最新版的VS2019 中,找到了stdbool.h这个头文件的定义,其实就是一堆宏的定义,代码如下: // // stdbool.h // // Copyright (c) Microsoft Corporation. All rights reserved. // // The...

专注于C/C++/Linux领域创作 6027

Rect Native bridging 源码分析--Bool.h

该文件是React Native桥接系统中的Bool.h头文件,实现了C++ bool类型与JavaScript布尔值之间的双向转换。核心功能包括: 提供Bridging&lt;bool&gt;模板特化,包含fromJs和toJs两个静态方法 fromJs将JS布尔值转换为C++ bool(通过jsi::Value的asBool方法) toJs将C++ bool直接透传为JS布尔值 转换过程轻量高效,无需运行时依赖,保持true/false的一一映射 该实现遵循React桥接体系规范,为C++与JS层之间的

dengfuma的专栏 941

C++中的operator bool()

本文探讨了C++中operator bool()函数的特性与应用。std::function对象可直接用于if条件判断,这源于其内部实现了operator bool()成员函数。该函数允许类对象在布尔上下文中进行隐式转换,通过重载此函数可自定义类对象的布尔值判断逻辑。文章也对比了C++的operator bool()与C语言的隐式布尔转换机制。

2302_80551020的博客 938
上一篇: va_list介绍
下一篇: 函数指针 和 指针函数
SingleCode
博客等级 码龄15年 11粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值