В моем стандартном C99 документе (на самом деле бесплатный проект комитета с сентября 2007 г.), Приложение I Общие предупреждения 2 говорится, чтоПредупреждение C99 о назначении указателя void указателю на непустоту?
(when) an implicit narrowing conversion is encountered, such as the assignment of a long int or a double to an int, or a pointer to void to a pointer to any type other than a character type (6.3)
является одним из немногих из наиболее распространенных ситуаций, когда реализация может сгенерировать предупреждение.
Хорошо, тогда не должно быть вероятного, что компилятор c сплет предупреждение на код, например int *p = malloc(sizeof(*p))
? Хотя в коде C кажется более распространенным, чтобы не делать malloc
s.
«Может генерировать» может означать, что если компилятор знает, что информация не потеряна, она не будет предупреждать? Например, если вы присвоите результат «malloc» неподходящему указателю на сегментированную архитектуру, вы получите предупреждение. –