В C, можно ли определить псевдоним/ярлык для разыменованного указателя?C-язык: неявный указатель разыменования
I.e. при условии определения как:
void * ptr_to_my_variable = 0x2ff00000;
Можно ли определить my_variable
символ, который соответствует *ptr_to_my_variable
, таким образом, что:
*ptr_to_my_variable = 321;
my_variable = 123;
if (my_variable == *ptr_to_my_variable) printf "aliasing/shortcut works";
Единственное решение, которое я могу думать:
#define my_variable *my_variable
int my_variable = (int *) 0x2ff00000;
my_variable = 123;
Но это явно требует неприятностей ...
Могу ли я спросить, зачем вам это нужно (просто любопытно)? –
Это будет [ссылка в C++] (https://en.wikipedia.org/wiki/Reference_ (C% 2B% 2B)), но эта функция на самом деле не существует в c. –
@arc_lupus Я занимаюсь разработкой некоторых частей более крупной программы, использующей существующие глобальные переменные. Таким образом, фиксируется множество локальных переменных, используемых моей функцией. Это делает мой код уродливым и трудным для понимания: вместо того, чтобы писать 'my_var = 1', он усеяно звездами разыменования' * my_var = 1'. Это затрудняет отличие от реальных переменных указателя. – ARF