Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将枚举转换为布尔类型_C++ - Fatal编程技术网

C++ 将枚举转换为布尔类型

C++ 将枚举转换为布尔类型,c++,C++,在我的应用程序中,我希望将和表示为1,或表示为0,而不是选择#define方法,我使用enum来表示它们,如下面的示例程序所示 #include <stdio.h> enum gateConnection_t {AND,OR} gateConnection; int main() { bool and_t = AND; bool or_t = OR; printf("%d\n",and_t); printf("%d\n",or_t); return 0; } #包括 枚举

在我的应用程序中,我希望将和表示为1,或表示为0,而不是选择
#define
方法,我使用enum来表示它们,如下面的示例程序所示

#include <stdio.h>

enum gateConnection_t
{AND,OR}
gateConnection;

int main()
{

bool and_t = AND;
bool or_t = OR;

printf("%d\n",and_t);
printf("%d\n",or_t);

return 0;
}
#包括
枚举网关连接
{和,或}
网关连接;
int main()
{
bool和_t=和;
bool或_t=或;
printf(“%d\n”和\u t);
printf(“%d\n”或“t”);
返回0;
}

如上所述,我直接将枚举值分配给布尔变量。程序按预期工作,我唯一的问题是,内部强制转换是否安全,还是使用显式强制转换(如
static\u cast
)更好?

对于初学者,您的{and,or}是错误的

按标准枚举从0开始(尽管您可以覆盖该值)

使用

相反

顺便说一句,演员是安全的


从概念上讲,这是一件令人讨厌的事情。你为什么想要这个;特别是C++?真与假有什么不对吗?

首先,你的{and,OR}是错误的

enum gateConnection_t
{AND=1,OR=0}
gateConnection;
按标准枚举从0开始(尽管您可以覆盖该值)

使用

相反

顺便说一句,演员是安全的

从概念上讲,这是一件令人讨厌的事情。你为什么想要这个;特别是C++?真假有什么不对

enum gateConnection_t
{AND=1,OR=0}
gateConnection;

枚举网关连接\u t
{
OR=0,
及//
或

枚举网关连接\u t
{
OR=0,

和/决定你是用C还是C++。这是什么意思?@ MWSHCY C++,抱歉标记你是否使用C或C++。这是什么意思?@ MWSHCY C++,对不起标记Cyes,它是一个EnUM,用……= 0……我必须这样做来表示两个信号之间的关系,使用1和0的决定是AB。Itary,没有特别的理由是的,它是一个与=0的枚举…我必须这样做来表示两个信号之间的关系,使用1和0的决定是偶然的,没有特别的理由
enum gateConnection_t
{
OR=0,
AND  //<== this equal to the previous plus one automatically 
}gateConnection;