Следующий код компилируется без предупреждения GCC, но выдает предупреждение в Visual Studio 2005.указатель на сопзЬ преобразования в C
const void * x = 0;
char * const * p = x;
х указывает на константный объект неизвестного типа, и р указывает на постоянный указатель на char. Почему при присвоении p возникает предупреждение?
Опять же, это C, а не C++. Благодарю.
Не могли бы вы добавить предупреждающее сообщение? – Etan
Согласитесь с Etan: этот вопрос был бы намного яснее, если бы было указано предупреждение. Это: Предупреждение C4090: 'initializing': различные 'const' квалификаторы – user200783
Мой VS2005 (настроенный на C++) на самом деле возвращает ошибку в этом случае: 'initializing': не может преобразовать из 'const void *' в 'char * const * '. Преобразование из 'void *' в указатель на не-'void 'требует явного литья –