C - 指向全局易失性的静态常量指针



如何声明指向全局易失性的静态常量指针?

到目前为止,我有这个,但我不确定它是否正确:

// a.c
volatile bool flag_it_1;
volatile bool flag_it_2;
// a.h
extern volatile bool flag_it_1;
extern volatile bool flag_it_2;
// b.c
#include "a.h"
static volatile bool *const flag_it_ptr = &flag_it_1;

编辑:我是这样使用它的:

if (*flag_it_ptr) {
        // work
        *flag_it_ptr = false;
}

对于那些想知道我为什么使用该指针的人:我可能会将我正在使用的变量从编译更改为编译,并且不想更改整个文件的名称,因此我将其更改一次。 或多或少像宏或常量全局变量。

这是对的吗?

编辑:它在 gcc 上编译

该构造仅声明指向 not const 对象的 const 指针。因此,您可以更改引用的对象,但不能更改指针本身。

 #define flag_it_ptr flag_it_1 

将在没有指针的情况下完成工作。我认为你把简单的事情复杂化了。

最新更新