2013-03-03 66 views
3

嗨即時嘗試定義名爲USHORT的別名。C++編譯器錯誤c4430「C++不支持默認int」

// ***************** 
// Demonstrates typedef keyword 
#include <iostream> 

typedef unsigned short int USHORT; // typedef defined 

main() 
{ 
USHORT Width = 5; 
USHORT Length; 
Length = 10; 
USHORT Area = Width * Length; 
std::cout << "Width:" << Width << "\n"; 
std::cout << "Length: " << Length << std::endl; 
std::cout << "Area: " << Area; 
} 

我不斷收到一個編譯錯誤說:

錯誤1個錯誤C4430:缺少類型說明符 - 假定爲int。注意:C++不支持默認int C:\用戶\納克維家庭\文件\ justit \ C++ \ W1 \ CP1 \ list0304.cpp 8 1 ConsoleApplication3

感謝

+0

注意:大多數編譯器指出錯誤消息來自哪裏,編譯器指向你的例子? – 2013-03-03 14:07:49

+0

哪一行是錯誤? – Anonymouse 2013-03-03 14:00:41

+0

它說錯誤是在第8行,或者在第8行左右。使用visual studio 2013 express – 2013-03-03 14:02:07

回答

8

它與您的typedef無關。問題是,你沒有給返回類型爲main

int main() 
{ 
    // ... 
} 

的函數必須有一個返回類型。 main函數必須返回int

+0

剛剛添加了一個返回0到主結尾,仍然有同樣的問題。 – 2013-03-03 14:03:22

+1

@RehanNaqvi你需要說的是返回類型是「int」。看我給的例子。 – 2013-03-03 14:04:14

+0

好,感謝隊友現在的作品。對不起,我新來的C++哈哈btw我只是很好奇,是用c + +編碼不同於編碼內的文本編輯器的語法。例如,我在文本編輯器中使用「#include 」會是相同的,還是我必須將其更改爲「#include 」。同樣的情況下,當你想要「cout」,在IDE中,似乎我必須做「std :: cout」,而在文本編輯器中,我可以只用「cout」而不用預先的「std ::」 – 2013-03-03 14:09:48

2

我不相信你需要在typedef中額外的int,我認爲從內存無符號短(默認情況下)是一個int。

+0

在typedef定義中刪除了int,仍然得到相同的錯誤 – 2013-03-03 14:04:34

+0

我刪除了int並將其編譯在我的MaC上正常工作。我也爲main添加了返回類型。 – TheLazyChap 2013-03-03 14:08:25

2

通過使用搜索錯誤代碼,您可以輕鬆查找錯誤的解釋。例如。搜索'C4430'會導致你here。正如其他人所說的,原因是您沒有申報main函數的返回類型。

相關問題