2015-08-18 72 views
2

我有一個函數接受3無符號整數參數func(unsigned int, unsigned int, unsigned int)。雖然調用它,我傳遞的枚舉被初始化爲「2」作爲第一個參數。得到這個警告Warning[Pe188]: enumerated type mixed with another type。如何糾正它?警告枚舉類型與另一種類型混合?

+5

發佈[最小完整可驗證示例](http://stackoverflow.com/help/mcve)會使這個問題更容易回答。 – user3386109

+1

請提供編碼... – Nidhoegger

+1

您確定您沒有使用C++編譯器嗎? – alk

回答

2

這個問題並沒有告訴你想要傳遞什麼,但是它看起來像函數需要一個參數的枚舉類型,因爲它提供了一個整數。請記住enum s是int s是不同的類型。

-1

枚舉和int類型是不同的; 在個案>轉換枚舉通過鑄造爲int:

public enum EmloyeeRole 
    { 
None = 0, 
Manager = 1, 
Admin = 2, 
Operator = 3 
    } 

    EmloyeeRole role = EmloyeeRole.Manager; 
     int roleInterger = (int)role; 

,然後就可以通過新的INT(roleInteger)到函數func(unsigned int類型,無符號整型,無符號整型)。

祝你好運:)

+1

@Hassan:我試過你的方法,仍然發出警告:( – Rafal

+3

公開?問題標有C. – this

0

如果您使用的是C編譯器,你不能改變的應該叫走枚舉類型的問題作爲參數的函數的定義:

  1. 確保你在這種情況下使用的所有枚舉值是>=0
  2. 將傳入的變量轉換爲unsigned int以使編譯器無聲。
  3. 添加一個解釋演員是關於什麼的提交。

這並不好。