【问题标题】:type specifier error类型说明符错误
【发布时间】:2012-08-07 09:58:30
【问题描述】:
#include <iostream>

using namespace std;
int b=10;
//b=100;
int main(int argc, char *argv[]) 
{
   cout<<b<<endl;
   return 0;
}   

如果删除b = 100处的评论会出错。为什么会这样。否则输出为10。 错误:C++ 需要所有声明的类型说明符。

【问题讨论】:

  • 不能在函数外执行赋值,但可以初始化。

标签: c++


【解决方案1】:

全局范围只能包含声明和定义,不能包含任意语句。

C++ 认为您正在尝试声明和定义另一个名为 b 的变量。

【讨论】:

    【解决方案2】:

    您不能在全局范围内分配变量,除非在初始化时。

    【讨论】:

      【解决方案3】:

      表达式语句(如b=100;)必须在函数内部。

      在函数之外,可以声明和初始化变量,但不能直接执行任意代码。

      您会收到该特定错误,因为编译器将代码解释为没有类型说明符的声明(即 int b=100; 缺少 int),而不是作为不期望这样的表达式语句。在 C 中允许这样的声明(尽管在这种情况下,它会失败,因为已经有一个名为 b 的变量),但在 C++ 中则不允许。

      【讨论】:

        【解决方案4】:

        你必须这样做

        b = 100; 
        

        在主里面。您不能在函数外部更改已声明的变量。

        【讨论】:

          【解决方案5】:

          任何语句都应该出现在函数内部。全局变量可以在函数体外部定义和初始化。但赋值应该在某个函数体内。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多