将参数称为“开关”或“标志”时,是否存在任何差异?

时间:2018-06-01 21:36:54

标签: arguments terminology

假设我正在编写一个可以具有两种不同行为之一的例程。我可以传递一个布尔/逻辑参数,告诉我的例程选择哪两个行为。

通常,将该参数称为“开关”或“标志”或其他内容是否更准确?是否有共识,如果是,这些条款之间是否有任何隐含的差异?

我听说这些术语可以互换使用,但最近有人说当“切换”选择两种行为中的一种时,“标志”会选择多种行为中的一种。

1 个答案:

答案 0 :(得分:1)

在他们拥有编译器之前的计算机的旧时代,他们使用手动开关将值输入到计算机中,每个开关代表一个位。现在,由于典型的处理器不具有单个位的数据类型,所以它们通常使用整个字节来表示,例如,在C unsigned char中很常见。处理布尔值时,不必考虑它们在值中的位置。使用bool值的一系列操作也会产生单个bool值。

据我所知,术语标志来自计算机中的标志寄存器,其中每个标志代表一位。但是,对于标志,它们根据处理器寄存器大小分组为大小。

flag的另一个常见用法是使用枚举类型。处理枚举标志值时,必须考虑它们在值中的位置。此外,使用枚举标志值的一系列操作会产生枚举标志值,而不是单个bool值。

  

假设我正在编写一个可以有两种不同之一的例程   行为。一般来说,调用该参数是否更准确   "开关"或者"标志"或其他什么?

我不会把它称为开关,因为那是旧术语,我绝对不会把它称为旗帜。我称之为bool