Как я могу объявить статический указатель const на глобальную volatile?
У меня есть это до сих пор, но я не уверен, что это правильно:
// 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
a.h
что-то вродеbool isFlag(void) { return flag_it_1;}
, в любом случае, согласноconst
, вы не собираетесь его изменять.... - person Alex Lop.   schedule 17.01.2019const
есть, чтобы указатель не модифицировался. Однако изменчивый флаг будет изменен в b.c. На самом деле, я делаю:*flag_it_ptr = false;
- person alx   schedule 17.01.2019