【问题标题】:C++ compiler error c4430 "c++ doesnt support default int" [closed]C ++编译器错误c4430“c ++不支持默认int”[关闭]
【发布时间】:2013-03-03 13:57:24
【问题描述】:

您好,我正在尝试定义一个名为 USHORT 的别名。

// 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:\users\naqvi-home\documents\justit\c++\w1\cp1\list0304.cpp 8 1 ConsoleApplication3

谢谢

【问题讨论】:

  • 错误在哪一行????
  • 它说错误在第 8 行,或者在第 8 行附近。使用 Visual Studios 2013 Express
  • 注意:大多数编译器都指出错误消息的来源,编译器在您的示例中指向哪里?

标签: c++ int alias typedef


【解决方案1】:

与您的typedef 无关。问题是你没有给出main的返回类型:

int main()
{
  // ...
}

函数必须有返回类型。 main 函数必须返回 int

【讨论】:

  • 刚刚在main末尾加了一个return 0,还是一样的问题。
  • @RehanNaqvi 你需要说返回类型是int。请参阅我给出的示例。
  • 好的,谢谢队友现在工作。抱歉,我是 C++ 新手,顺便说一句,我只是好奇,使用与在 IDE 中编码不同的文本编辑器在 C++ 中编码时的语法是什么。例如,我在文本编辑器中使用“#include ”是否相同,或者我必须将其更改为“#include ”。当你想“cout”时也是如此,在 ide 中我似乎必须做“std::cout”,而在文本编辑器中我可以只做“cout”而没有 pre“std::”
  • @RehanNaqvi C++ 的语法在任何地方都是相同的。 IDE 只是一个美化的文本编辑器。没有标题iostream.h,你应该做#include &lt;iostream&gt;。所有 C++ 库头文件.h 结尾。但是,C 库头文件。当您 #include &lt;iostream&gt; 时,cout 对象位于 std 命名空间中 - 您必须使用 std::cout 对其进行限定(除非您执行类似 using namespace std; 之类的操作 - 但那非常顽皮) .
  • 非常感谢 sftrabbit!
【解决方案2】:

您可以通过谷歌搜索错误代码轻松查找错误解释。例如。谷歌搜索“C4430”会引导你here。正如其他人所说,原因是您尚未声明 main 函数的返回类型。

【讨论】:

    【解决方案3】:

    我不相信你需要 typedef 中额外的int,我从内存中认为 unsigned short(默认情况下)是一个 int。

    【讨论】:

    • 把typedef定义中的int去掉了,还是报同样的错误
    • 我删除了 int 并在我的 Mac 上编译它工作正常。我还向 main 添加了一个返回类型。
    猜你喜欢
    • 1970-01-01
    • 2015-06-13
    • 1970-01-01
    • 1970-01-01
    • 2022-12-04
    • 2015-01-28
    • 2013-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多