小编Seb*_*hil的帖子

与类型同名的变量放在函数、结构或类中时不会出现编译错误

鉴于代码:

#include <iostream>

typedef int Integer;
Integer Integer = 1234;

int main() {
    std::cout <<  "Integer: " << Integer;
}
Run Code Online (Sandbox Code Playgroud)

使用gcc 11.2 编译器编译代码会导致编译错误:

error: 'Integer Integer' redeclared as different kind of entity
    4 | Integer Integer = 1234;
      |         ^~~~~~~

note: previous declaration 'typedef int Integer'
    3 | typedef int Integer;
      |             ^~~~~~~

In function 'int main()':
error: expected primary-expression before ';' token
    7 |         std::cout <<  "Integer: " << Integer;
      |                                             ^
Run Code Online (Sandbox Code Playgroud)

但是,将代码更改为:

error: 'Integer Integer' redeclared as …
Run Code Online (Sandbox Code Playgroud)

c++ gcc typedef visual-c++

1
推荐指数
1
解决办法
112
查看次数

标签 统计

c++ ×1

gcc ×1

typedef ×1

visual-c++ ×1