C语言中实现bool(布尔型变量)

2023-05-16

C语言中,本身没有bool(布尔型变量)。但是我们可以用其他方式来模拟。

一、如果简单的使用char、int、long变量来表示0/1,则太浪费空间了。

二、这里介绍一种巧妙的方式实现bool,高空间利用率。

#define true	1
#define false	0

//--------------------------------------------联合体(共用体) 定义
typedef union
  {
	//使用位域
  	struct
  	{
	  unsigned b0                 : 1;
	  unsigned b1                 : 1;
	  unsigned b2                 : 1;
	  unsigned b3                 : 1;
	  unsigned b4                 : 1;
	  unsigned b5                 : 1;
	  unsigned b6                 : 1;
	  unsigned b7                 : 1;
  	}bit_type;
  	unsigned char byte;
   }FLAG;

FLAG FLAG0;		//结构变量声明

//--------------------------------------------结构类型变量位域宏定义
#define flag_0	FLAG0.bit_type.b0 
#define flag_1	FLAG0.bit_type.b1
#define flag_2	FLAG0.bit_type.b2
#define flag_3	FLAG0.bit_type.b3
#define flag_4	FLAG0.bit_type.b4
#define flag_5	FLAG0.bit_type.b5
#define flag_6	FLAG0.bit_type.b6
#define flag_7	FLAG0.bit_type.b7
这里使用union(联合体)来实现高空间利用率
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言中实现bool(布尔型变量) 的相关文章

  • 字符串大小比较问题

    首先 字符串比较函数 xff1a strcmp xff08 字符串1 字符串2 xff09 xff1b 其使用规则为 xff1a 若字符串1和字符串2相等 xff0c 返回0 若字符串1大于字符串2 xff0c 返回一个正整数 43 1 若
  • OBS 录制没有声音怎么办?

    1 检查obs设置 音频 是否是默认选项 2 检查win10 是否允许使用麦克风 1 xff09 右下角出现麦克风标识 2 xff09 设置 隐私 麦克风 xff0c 查看允许放开你的麦克风是否打开 如果上述还是为解决问题 xff0c 那么
  • android.os.deadObjectException异常

    deadObjectException异常 xff0c 说明应用的service已经停止 xff0c 要么是从操作系统中丧生 xff0c 要么从应用程序中终止
  • 2038问题

    2038年一月19号 xff0c 星期二 xff0c 凌晨3点14分7秒钟的时候 xff0c 如果Linux程序员会做恶梦的话 xff0c 那么梦的内容一定是关于这个日期的 xff0c 在这一秒钟滑过后 xff0c 凡是安装着linux的计
  • ChkBugReport工具for Android

    关于这个工具 xff0c 找到的资料都比较旧了 xff0c 貌似是索尼移动的开发人员开发的 xff0c 2014年左右的文章比较多 xff0c 应该是那个时候索尼移动还是比较鼎盛的时期吧 现在已经很少看到关于这个工具的文章了 xff0c G
  • kernel panic

    Linux kernel panic是很难定位和排查的重大故障 一旦系统发生了kernel panic xff0c 相关的日志信息非常少 xff0c 而一种常见的排查方法 重现法 又很难实现 xff0c 因此遇到kernel panic的问
  • PS域业务与CS域业务的区别

    1 CS和PS是针对核心网部分而言的 xff0c 两者的不同在于交换方式 CS是电路交换 xff0c 通信之前 xff0c 资源预留 xff0c 不同用户独占各自分配的资源 xff0c 没有统计复用 PS是包交换 xff0c 不同的用户可以
  • sh_脚本语法

    介绍 xff1a 1 开头 程序必须以下面的行开始 xff08 必须方在文件的第一行 xff09 xff1a bin sh 符号 用来告诉系统它后面的参数是用来执行该文件的程序 在这个例子中我们使用 bin sh来执行程序 当编写脚本完成时
  • 【深度学习系列(三)】:基于CNN+seq2seq公式识别系统实现 (1)

    这段时间一直在做公式识别相关的项目 xff0c 尝试了传统的方法 xff0c 效果不怎么好 想到能不能使用深度学习的方法进行相关方法 然后在github找到了相关代码 xff0c 这里做下分析 具体github地址 xff1a GitHub
  • 困惑多年,为什么printf可以重定向?

    很多人在用printf函数进行串口打印的时候 xff0c 都会被告知需要重定向fputc函数 xff08 别的平台可能不是这个函数 xff09 xff0c 让字符串数据输出到指定串口 xff0c 按照网上的教程也能很快解决 但是却没人告诉你
  • 多线程并发编程

    文章目录 多线程并发编程一 多线程带来的问题相关概念 二 互斥1 互斥与互斥量2 申请互斥量I 静态方法申请互斥量 xff1a II 动态方法申请互斥量 xff1a 3 利用互斥量加锁与解锁4 销毁互斥量5 互斥量综合应用 模拟抢票6 互斥
  • 【嵌入式】---- 串口UART波形分析

    串口参数的配置 波特率 xff08 bit s xff09 xff1a 大多数使用115200 但有些芯片特殊 xff0c 具体要看数据手册中波特率的容错率 比如中微的CMS32L051就不支持115200bps 停止位 xff1a 一般选
  • 手把手教你用JAVA实现“语音合成”功能(文字转声音)标贝科技

    手把手教你用JAVA实现 语音合成 功能 xff08 文字转声音 xff09 标贝科技 前言 什么是语音合成 xff1f 将文本转换成自然流畅的语音 xff0c 本篇文章将介绍 实时在线合成 xff08 文本长度不得超过1024字节 xff
  • cv::imread(cv::String const&, int)’未定义的引用

    在 Makefile文件的195 行 LIBRARIES 43 61 opencv core opencv highgui opencv imgproc 后面添加 xff1a opencv imgcodecs opencv videoio修
  • 【C/C++】C++ 网络多线程编程

    关键词 xff1a C C 43 43 网络编程 多线程 套接字 UDP 前言 学习C 43 43 网络编程多线程编程的目的 xff1a 巩固C 43 43 xff1b 由于C 43 43 大多用于服务器 xff0c 因此网络和多线程是进入
  • 在ubuntu20.04上配置VINS_Fusion(亲测有效,一应俱全)

    最近在做科研训练的时候配置了HKUST Aerial Robotics实验室的VINS Fusion代码项目 xff0c 经历了一些编译报错的问题 xff0c 在网上查找的时候博客内容良莠不齐 xff0c 且实质针对性意见不多 xff0c
  • 无人机项目跟踪记录二十五--无线接收模块的输入输出

    无线接收模块的功能是接收无线遥控器的命令 xff08 应该对应的是无人机上面的无线接收芯片 xff09 xff0c 无人机根据接收的指令进行不同的处理 用同样方法 xff0c 无线接收模块包含的函数是 xff1a Nrf Irq void
  • UDP校验和及代码

    UDP校验和采用反码求和 xff1a 两数相加 xff0c 把超出16位加入到第0位 校验和算法 unsigned short UDPCheck unsigned short data int len int carryBit 61 0 i
  • ROS Moveit:rviz和gazebo仿真出现rviz规划后gazebo没有反应

    在用rviz规划后 xff0c 警告 WARN 1649654675 728414350 42 937000000 Failed to validate trajectory couldn 39 t receive full current
  • Libcurl实现HTTP/HTTPS客户端(支持get、post、保持session)

    前面的文章 Libcurl编译指南 Android和Windows系统 已经就libcurl在Windows和Android系统编做了详细的说明 本文档用C C 43 43 实现简单的HTTP HTTPS客户端 xff0c 支持get和po

随机推荐

  • 基于uart的RS232和RS485总线

    我们之前讲uart的时候就已经提过一个问题 xff0c 就是它并不是直接连接到SOC里面的 xff0c 而是经过了一个芯片的转换 这个芯片的转换就是和我们要说的rs232 485总线有关的 RS232和RS485总线其实本质就是uart 只
  • c语言

    一 c基础 1 1 一个函数遇到return语句就终止了 1 2 system系统调用 xff1a 用命令打开计算器 记事本等 xff0c windows和linux下命令不同 xff0c 需要头文件 xff08 stdlib h xff0
  • [PTA]7-115 祝贺你成年了! (5 分)

    到了18岁 xff0c 你就成年了 xff01 请输入你的年龄 xff0c 如果大于等于18岁 xff0c 则输出 34 Congratulations 34 输入格式 输入一个不超过200的整数A 输出格式 按照要求输出 输入样例 18
  • 教你如何用ffmpeg处理音频格式转换(标贝科技)

    文章目录 前言ffmpeg介绍 xff1f 一 下载与安装1 下载安装包2 设置环境变量3 验证是否安装成功 二 命令讲解1 参数解释2 音频格式转换命令 三 标贝开放平台介绍 前言 ffmpeg介绍 xff1f FFmpeg是一套可以用来
  • cmake(十六)Cmake条件判断指令

    一 基础语法 基本框架 优先级 条件的类型 二 实践 项目初始化 CMakeLIsts txt 文件 字符串比较默认值 测试 补充 43 43 43 43 43 43 43 43 43 43 43 43 43 39 CMake 基本语法 3
  • 南通移动打造“5G+无人机”为乡村振兴插上“智慧翅膀”

    近年来 xff0c 南通通州移动按下5G 加速键 xff0c 探索智慧服务 xff0c 以信息化手段助力提升乡村治理现代化水平 xff0c 为打造数字乡村贡献数智力量 如今 xff0c 在南通通州区的二甲镇 xff0c 南通通州移动在二甲镇
  • 免费的在线影视网站汇总(包括图片,小说等)

    免费最新在线影视站 xff0c 仅用于测试用途 日常请使用 正版视频 软件 xff0c 支持正版人人有责 影视大全展开目录 萝莉岛 app少女美腿令你无限遐想大米星球蓝光福利免费在线站hdmoli免费高清 1080 影视站剧迷 tv免费无广
  • TI 杯2019年全国大学生电子设计竞赛题

    TI 杯2019年全国大学生电子设计竞赛赛题 2019 08 07 07 30 目录 TI 杯2019年全国大学生电子设计竞赛赛题 TI 杯2019年全国大学生电子设计竞赛题A 电动小车动态无线充电系统 TI 杯2019年全国大学生电子设计
  • C语言—字符指针作函数参数 按如下函数原型编程实现字符串连接函数strcat()的功能。void MyStrcat(char *dstStr, char *srcStr);

    按如下函数原型编程实现字符串连接函数strcat 的功能 void MyStrcat char dstStr char srcStr 输入提示信息 xff1a 34 Input a string 34 34 Input another st
  • frp错误,frp报错,[ssh] start error: proxy name [ssh] is already in use

    在linux开发板上 xff0c arm开发板上 xff0c 运行frp xff0c 报错 ssh start error proxy name ssh is already in use 原因是有其他的设备运行过 ssh 命名的子项 xf
  • ubuntu中共享文件夹看不到

    参考原文链接 xff1a https blog csdn net asia66 article details 80597531 utm medium 61 distribute pc relevant t0 none task blog
  • KEIL设置程序起始地址无效解决方法,STM32 IAP程序起始地址

    关键词 xff1a KEIL设置程序起始地址无效解决方法 STM32 IAP设置程序起始地址 KEIL设置程序起始地址 MDK设置程序起始地址 KEIL设置ROM地址无效 碰到的问题 xff1a 为了实现STM32升级固件 xff0c 需要
  • 电源滤波保护电路

    电源滤波保护电路 参考https wenku baidu com view 76c07ff0ba0d4a7302763a33 html X电容 xff0c 滤差模干扰 Y电容 xff0c 滤共模干扰 安规电容
  • Ubuntu安装yaml

    在Ubuntu下 xff0c 使用pip安装yaml pip install pyyaml 测试 xff1a gt gt gt import yaml gt gt gt 没报错 xff0c 说明安装成本 注 xff1a 我是在root下安装
  • 教你windows下配置java环境变量&idea配置maven库(标贝科技)

    配置java环境变量 43 idea配置maven库 xff08 标贝科技 xff09 前言 配置环境变量是小伙伴们入坑的第一步 xff0c 本文将一步一步详细介绍 xff0c 保证大家都能够看懂 xff01 xff01 xff01 顺便介
  • 廉价16bit音频DAC芯片TM8211(PT8211、TDA1311)

    推荐低成本高性能两路16位DAC 数模转换 芯片TM8211 xff08 PT8211 TDA1311 xff09 一 概述 xff1a TM8211是两路16位数模转换集成 电路 xff0c 可广泛应用于数字音频 多媒体系统 芯片采用CM
  • 基于累加的PDM算法的原理

    基于累加的 PDM 算法 的 原理 基于累加的 PDM 算法 2 PDM编码原理如下 xff1a 单片机能输出Sin t 吗 xff1f 能 xff0c DA 没有DA怎么办 xff1f PWM 没有PWM怎么办 xff1f 事情就是这么来
  • PCM音频压缩A-Law算法,uLaw

    参考相关 xff1a 关于pcm音频头与a law音频头的互换代码 http blog csdn net fjhyy article details 6593049 https baike baidu com item A E5 BE 8B
  • Spyder cell分块运行 run cell

    Spyder是一个使用方便的Python开发环境 xff0c 安装Anaconda时自带 python代码分块 xff1a 使用Spyder xff0c 可以在python文件 xff08 py xff09 里使用 In 进行分块 如下图
  • C语言中实现bool(布尔型变量)

    C语言中 xff0c 本身没有bool xff08 布尔型变量 xff09 但是我们可以用其他方式来模拟 一 如果简单的使用char int long变量来表示0 1 xff0c 则太浪费空间了 二 这里介绍一种巧妙的方式实现bool xf