在函数调用中处理多个布尔变量的更好方法

Better way to handle mulitple boolean variables in function call

本文关键字:变量 更好 方法 布尔 函数调用 处理      更新时间:2023-10-16

逻辑是用一些输入值调用函数,函数返回多个布尔变量。

以后可以扩展布尔变量

function(inp1,inp3,bool1,bool2... booln)

我决定将布尔变量打包到结构

function(inp1,inp3,struct bool_flags)

请帮助我一个有效的设计

我不太确定你在这里想要完成什么,因为问题不清楚,但我有一个想法。你可以把所有的布尔值打包成uintulong。然后,变量的每一位都是一个布尔值。你可以像这样读取布尔值:

uint bools;
bool bool0 = bools & 1;
bool bool1 = (bools >> 1) & 1;
etc...

你可以这样写布尔值:

bools |= bool0;
bools |= bool1 << 1;
etc...

这是通过逻辑移动、并置和循环值来实现的。c++中的布尔值是1或0。所以要读,你移动"容器"变量,然后&的bool值。要写入,您移动bool值并使用"container"对其进行|

唯一的缺陷是int型被限制为32位,而long型是64位。如果需要的话,您可以创建一个int型或long型的结构体来进行更有效的打包。好运!