`
izuoyan
  • 浏览: 9222541 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

[编程技巧] C++中优化BOOL 变量的声明

阅读更多

通常我们会这样声明BOOL 变量:

class CMyClass {
...
BOOL m_bVar1;
BOOL m_bVar2;
BOOL m_bVar3;
BOOL m_bVar4;
BOOL m_bVar5;
BOOL m_bVar6;
BOOL m_bVar7;
BOOL m_bVar8;
...
};

考虑到BOOL 变量在Win32 下其实是一个int ,占4个字节,那么上面8个BOOL变量就会占去 32个字节

typedef int BOOL; // BOOL takes 4 bytes

其实,我们可以改变BOOL变量的声明来使之只占一个bit:

class CMyClass {
...
BOOL m_bVar1:1;
BOOL m_bVar2:1;
BOOL m_bVar3:1;
BOOL m_bVar4:1;
BOOL m_bVar5:1;
BOOL m_bVar6:1;
BOOL m_bVar7:1;
BOOL m_bVar8:1;
...
};

上面的代码中,每个BOOL 变量只占了1个比特(bit), 那么上面8个BOOL变量就会占去 1个字节
内存节省了32倍!!!

不过从另外一方面, CPU 在处理这些bit类型的BOOL变量的时候, 需要做位运算来把其中的值取出来, 所以会额外消耗CPU资源。 使用的时候需要综合考虑内存和速度之间关系。

分享到:
评论

相关推荐

    C++编程变量命名规范

    ### C++编程变量命名规范详解 #### 一、引言 在C++程序设计中,良好的变量命名习惯不仅能提升代码的可读性与维护性,还能帮助开发人员更快速地理解代码逻辑。本文将详细介绍C++变量命名的一般规则及推荐做法,并...

    c++修改系统环境变量

    在C++编程中,修改系统环境变量是一项常见的任务,特别是在Windows操作系统中。环境变量存储了与用户或系统相关的路径、配置和其他信息,这些信息可供程序在运行时使用。本篇文章将详细探讨如何在C++中实现这个功能...

    c++第二章变量_c++变量课件_

    在C++编程语言中,变量是存储数据的基本单元,它为程序提供了记忆功能。第二章“C++变量”是学习编程的重要基础,尤其对于初学者来说。本课件旨在深入浅出地解释C++变量的概念、类型、声明、初始化以及使用方法。 1...

    少儿编程C++初级基础知识点.zip

    【少儿编程C++初级基础知识点】是针对初学者设计的一系列C++编程教学内容,旨在帮助孩子们建立起坚实的编程基础。这个压缩包包含了多个章节的源代码文件,涵盖了C++语言的基础概念和关键语法,让我们逐一解析这些...

    C++变量与标准库

    C++中的变量需要先声明后使用,声明时需指定变量的类型和名称。例如: ```cpp int age = 25; // 声明并初始化整型变量age ``` #### 三、其他重要概念 **2.4 const限定符** `const`关键字用于声明常量或指定变量...

    C++第5课变量与赋值

    在C++编程语言中,变量是存储数据的基本单元,它为程序提供了存放信息的地方。变量在C++中扮演着至关重要的角色,因为没有变量,我们就无法处理任何数据。本课将深入探讨C++中的变量与赋值操作。 一、变量的定义 ...

    1.2编程基础之变量定义、赋值及转换(10题)--题目 有链接.pdf

    首先,文件描述了编程基础中的变量定义、赋值及类型转换的相关练习题目,涉及的编程语言可能是C++。这里总结与这些概念相关的知识点: 1. 变量定义: 变量定义是指在程序中声明一个变量,为它分配存储空间,并指定...

    c++能不能给类的成员变量在声明的时候初始化? - life_limbo - 博客园1

    在C++编程语言中,确实可以为类的成员变量在声明时进行初始化,尤其是在C++11标准及其后续版本中,这一特性得到了正式支持。在早期的C++标准中,虽然也有类似的初始化方法,但其行为可能不尽相同,C++11及以后的标准...

    好用的C++布尔运算程序

    布尔运算在计算机科学中起着基础性的作用,尤其是在编程领域,如C++。布尔运算主要基于逻辑运算符,包括与(AND)、或(OR)、非(NOT)以及异或(XOR)。这些运算符用于处理布尔值,即真(true)和假(false),在...

    C++编程实例详解---C++入门(Jesse Lberty著)

    这将涉及到如何设计游戏规则、实现逻辑、优化性能等实际编程技巧。 8. **计算机科学基础**:除了C++语言本身,学习C++还需要一定的计算机科学基础,如算法、数据结构、计算机体系结构等。这些知识将帮助开发者写出...

    《C++编程思想》阅读笔记

    根据给定的文件信息,以下是对《C++编程思想》阅读笔记中提到的关键知识点的深入解析: ### 1. 声明与定义的区别 在C++中,**声明(Declaration)**与**定义(Definition)**有着本质的区别。声明主要用于向编译器介绍...

    软件编程规范c++Builder

    ### 软件编程规范c++Builder #### 概述 本文档主要针对使用C++Builder进行软件开发的团队,旨在提供一套统一的编码标准,确保所有开发成员编写的代码具有一致性和可读性。这有助于提升团队协作效率及代码质量。 #...

    计算机编程c++教程

    计算机编程C++教程是一门深入探索C++语言精髓的课程,这门语言不仅继承了C语言的强大功能,更引入了面向对象编程(OOP)的概念,使之成为现代软件开发中不可或缺的一部分。C++以其高度的灵活性和效率,被广泛应用于...

    蓝桥杯青少年创意编程C++组赛前集训教程包

    蓝桥杯青少年创意编程C++组赛前集训教程包 本资源是为参加蓝桥杯青少年创意编程比赛的C++组选手提供的集训教程包,旨在帮助选手快速掌握C++语言的基础知识和编程技能,以便更好地应对比赛。下面是该教程包的详细...

    C++编程思想第一卷练习答案

    在学习《C++编程思想》的过程中,结合书中的练习题目和提供的答案,可以加深对这些概念的理解,提升编程技能。通过实际编写和调试代码,可以更好地领会C++的精髓,并为进阶学习打下坚实的基础。

    如何理解c和c++的复杂类型声明.pdf

    在C和C++编程语言中,复杂类型声明是其语法特性的一个重要部分,尤其是在处理指针、数组、函数以及结构体等复合数据类型时。理解这些声明对于编写高效且无错误的代码至关重要。本文将深入探讨如何解析和理解C与C++中...

    C++编程实践200例

    通过这200个实践案例,初学者可以加深对C++语法和编程习惯的理解,掌握实际编程技巧,提高解决问题的能力。实践中遇到的问题和解决方案会比理论学习更具启发性,有助于培养解决实际问题的直觉。因此,对于刚学完C++...

    C++转换Delphi对照表

    C++ 到 Delphi 变量类型对照表是指在 C++ 编程语言中使用的变量类型与 Delphi 编程语言中对应的变量类型之间的对照表。该表对照了 C++ 中的基本变量类型与 Delphi 中的对应类型,以便于开发者在两个语言之间进行项目...

Global site tag (gtag.js) - Google Analytics