2013-06-11 89 views
0

在我的應用程序要代表AND爲1,OR爲0,而不是選擇了#define方法,我使用枚舉來表示它們,如圖所示在下面的示例程序轉換枚舉到布爾類型

#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; 
} 

如上所示,我直接將枚舉值分配給布爾變量。該程序按預期工作,我唯一的問題是內部安裝是否安全,還是使用明確鑄造(如static_cast)更好?

+1

決定您是否正在使用C或C。 – mwerschy

+0

這是什麼意思? – idoby

+0

@mwerschy C++,抱歉標記C – CodeCrusader

回答

3

對於初學者,您的{AND,OR}是錯誤的方式。

標準枚舉從0開始(儘管你可以覆蓋它)。

使用

enum gateConnection_t 
{OR,AND} 

代替。

演員陣容很安全。

從概念上講,雖然這是一個討厭的事情。你爲什麼想要這個;特別是在C++中?真假有什麼問題? ++

+0

是的,它是作爲一個枚舉與AND = 0 ....我必須這樣做來表示兩個信號之間的關係,使用1和0的決定是abitrary,沒有特別的原因 – CodeCrusader

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

enum gateConnection_t 
{ 
OR=0, 
AND //<== this equal to the previous plus one automatically 
}gateConnection;