相关疑难解决方法(0)

为什么C需要"struct"关键字而不是C++?

我一直对这里发生的事情感到有些困惑:

#include <stdio.h>

int main() {  
    timeval tv;
    tv.tv_sec = 1;

    for (;;) {
        select(0, 0, 0, 0, &tv);
        printf("%s\n", "Hello World!");
    }
}
Run Code Online (Sandbox Code Playgroud)

很抱歉,如果没有编译,只需将其作为一个简单的例子写下来.

像这样的代码不会在gcc下编译,除非我在使用struct timeval之前添加关键字struct.另一方面,g ++处理得很好.

这是C和C++如何处理结构之间的区别,还是只是编译器的差异?(我非常注重C++,在像这样的C行中使用struct总是让我感到困惑).

c c++ compiler-construction

40
推荐指数
5
解决办法
1万
查看次数

为什么在C ++中的类指针声明中使用'struct'关键字

在C ++中声明类指针变量时,何时以及为什么我们应该使用'struct'关键字?

我已经在嵌入式环境中看到了这一点,所以我怀疑这是C的一种保留。我已经看到了很多有关在声明struct对象时何时使用'struct'关键字的解释,因为它与C中的名称空间相关(在这里),但是我找不到任何人在谈论为什么在声明类指针变量时可能会使用它。

例如,在CFoo.h中:

class CFoo
{
public:
    int doStuff();
};

inline Foo::doStuff()
{
    return 7;
}
Run Code Online (Sandbox Code Playgroud)

后来在另一个类中:

void CBar::interesting()
{
    struct CFoo *pCFoo;

    // Go on to do something interesting with pCFoo...
}
Run Code Online (Sandbox Code Playgroud)

c++ variables scope class elaboration

2
推荐指数
2
解决办法
118
查看次数

标签 统计

c++ ×2

c ×1

class ×1

compiler-construction ×1

elaboration ×1

scope ×1

variables ×1