我發現在C中運行的代碼(儘管帶有警告)現在給C++一個錯誤。我想知道爲什麼會產生錯誤,以及如何解決。C vs C++:如何修復? Typedef枚舉
我將別人的代碼,C++,這給我的錯誤(拉出,並在其自己的文件進行測試)...
#include <stdio.h>
typedef enum SPI_SSADDR_TYPE
{
SSADDR0 = 0,
SSADDR1 = 1,
SSADDR2,
SSADDR3,
SSADDR4,
SSADDR5,
SSADDR6,
SSADDR7,
SSADDR8
} SPI_SSADDR;
void SPI_set_slave_addr(SPI_SSADDR slaveSelectAddr);
int main()
{
SPI_set_slave_addr(SSADDR8);
return 0;
}
void SPI_set_slave_addr(SPI_SSADDR slaveSelectAddr)
{
slaveSelectAddr = slaveSelectAddr & (SPI_SSADDR)(0x07); // This line
printf("Test: %d\r\n", slaveSelectAddr);
return;
}
它產生的錯誤是:
TypeDef.cpp: In function ‘void SPI_set_slave_addr(SPI_SSADDR)’:
TypeDef.cpp:26: error: invalid conversion from ‘int’ to ‘SPI_SSADDR’
這就是答案。謝謝......我應該知道。一旦Stackoverflow允許我將它標記出來。 – Demortes