1;
int * B1 = &A;
int * B2 = B1;
Третья строка выдаёт ошибку: error: initializer element is not constant
Не совсем понимаю почему вторая строка работает, а третья выдаёт ошибку.
Может возможно как-то добиться подобного поведения визуально?
История: программирую микроконтроллеры AVR. Хочу по максимуму избавиться от #defineов, но не могу понять, как решить возникшую проблему. Хочу сделать константу указатель на структуру, в которой находятся указатели не некоторые регистры. Далее в коде хочу присваивать переменным ссылку на эту структуру (по аналогии с третьей строчкой в коде выше). Конечно можно сделать #define или везде писать &, но хочется понять, почему компилятор не даёт мне сделать так, как я хочу. В чём принципиальная разница?
Особенности компилятора? Напишите хоть в каком стандарте пишите. Думаю если разделить объявление и присвоение должно заработать, но надо проверить.
Обсуждают сегодня