相关疑难解决方法(0)

重复的typedef - 在C中无效但在C++中有效吗?

我想要一个标准的参考,为什么下面的代码在C中触发了一个合规性警告(用gcc -pedantic"typedef redefinition" 测试过),但是在C++(g++ -pedantic)中很好:

typedef struct Foo Foo;
typedef struct Foo Foo;

int main() { return 0; }
Run Code Online (Sandbox Code Playgroud)

为什么我不能typedef在C中重复定义?

(这对C项目的头结构有实际意义.)

c c++ typedef language-lawyer

44
推荐指数
4
解决办法
9696
查看次数

为什么我不能/不能在类中重新定义类型名?

据说a type name使用后不能在类内部定义。例如:

typedef double Money;
class Account {
public:
    Money balance() { return bal; } // uses Money from the outer
private:
    typedef double Money; // error: cannot redefine Money
    Money bal;
    // ...
};
Run Code Online (Sandbox Code Playgroud)

该程序在GCC上不起作用,但在MSVC 14上却可以正常工作!*我从“ C ++入门手册第5版”中获得了此示例。

c++

5
推荐指数
0
解决办法
36
查看次数

标签 统计

c++ ×2

c ×1

language-lawyer ×1

typedef ×1