2015-06-10 2 views
0

У меня здесь много const. Поэтому мне нужно знать, какие из них действительно нужны.const указатель на const указатель на данные const

Мне нужно использовать указатель на указатель, где указатель const и данные, на которые указывает указатель, являются константами. Имеет ли смысл следующее?

const int a=5; 
const int* const pi=&a; 
const int* const * const ppi=π // three const here? correct? 

Ну компилируется без предупреждения, и имеет смысл для меня, так как ИЦПА Const * ИЦП Const и ** ИЦП Const

мне нужно использовать PPI и хочу как можно больше сопзИте насколько это возможно, поскольку я программирую для микроконтроллера и хочу, чтобы данные шлифовались. Я знаю, что есть способы заставить данные перейти на flash, но я бы предпочел, чтобы компоновщик сделал это автоматически.

+1

Да, это имеет смысл. Это вопрос? –

+0

Важно отметить, что маркировка вещей как 'const' не обязательно помещает их во флэш-память вашего микроконтроллера. – shuttle87

+0

Какой MCU это? По крайней мере, некоторые MCU (по крайней мере, AVR8) имеют очень специальный синтаксис, чтобы сказать «он должен перейти в Flash». –

ответ

0

Да, это нормально, так как вы хотите как можно больше const-ness. Однако это повлияет на будущее использование этих данных. Я не уверен, однако, если это заставит компоновщик поместить ваши данные во флэш-память, так что прочитайте этот вопрос: ARM C++ - how to put const members in flash memory?.

Смежные вопросы