Я понимаю, что такое const correctness, и мой вопрос не в том, что такое const correctness. Поэтому я не ожидаю объяснений или ссылок на С++ - FAQ для этого.
Мои вопросы:
- Каковы семантические различия между
const
в C иconst
в С++? и - В чем причина разницы?
Цитаты из соответствующих стандартов, которые делают различия четкими, было бы неплохо иметь.
Я регулярно переключаюсь между C и С++, и я хотел бы знать важные моменты, о которых следует помнить при этом.
Кажется, я не помню причину этих (особая благодарность, если вы можете дать аргументацию), но, с моей точки зрения, я помню:
- константные переменные в С++ имеют внутреннюю привязку по умолчанию, а в C - внешняя связь по умолчанию;
- const объекты могут использоваться как значения времени компиляции в С++, но не могут использоваться как значения времени компиляции в C;
- Указатели на строковые литералы должны быть
char const*
в С++, но в C это может бытьchar*
.
Что мне не хватает?