如何声明指向全局易失性的静态常量指针?
到目前为止,我有这个,但我不确定它是否正确:
// 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
将在没有指针的情况下完成工作。我认为你把简单的事情复杂化了。