小编sam*_*903的帖子

增量算子的原子性

我在接受采访时告诉我,在C语言中,使用++运算符(比如说i ++)是一个原子操作,而不是"i + = 1".我认为这些操作在线程安全性或原子性方面完全相同.我错过了什么或者这些实际上是不同的吗?

c atomic atomicity language-lawyer

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

如何声明在不同命名空间中定义的结构体?

我在使用在不同命名空间中声明的结构时遇到问题。在 File1.h 中,我声明该结构并将其放入命名空间“Foo”中。

//File1.h
namespace Foo{
    struct DeviceAddress;
}

struct DeviceAddress {
    uint8_t systemID;
    uint8_t deviceID;
    uint8_t componentID;
};
Run Code Online (Sandbox Code Playgroud)

在 File2.c 中,我尝试创建该结构的实例:

//File2.c
#include "File1.h"
struct Foo::DeviceAddress bar;
Run Code Online (Sandbox Code Playgroud)

但我在 File2.c 中尝试声明结构的行中收到错误。错误消息是:错误 C2079: 'bar' 使用未定义的结构 'Foo::DeviceAddress'

我使用 MS C++ 编译器和 Visual Studio 作为开发环境。

我是否在尝试声明“bar”时犯了某种语法错误,或者我不理解有关命名空间或结构的某些内容?

c++ struct namespaces

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

标签 统计

atomic ×1

atomicity ×1

c ×1

c++ ×1

language-lawyer ×1

namespaces ×1

struct ×1