Abs62
Gold Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору ktuBeF Цитата: Глупость вам сказали. В gcc указатель на void более чем легитимен, соотв-но в линухе все работает. У мелкософта же всегда свои тараканы, им ведь надо быть святее папы римского. | Что ж, смотрим Стандарт. Пункт 6.5.6-2: Цитата: For addition, either both operands shall have arithmetic type, or one operand shall be a pointer to an object type and the other shall have integer type. (Incrementing is equivalent to adding 1.) | Проверяем, является ли void object type. Стандарт, пункт 6.2.5-1: Цитата: The meaning of a value stored in an object or returned by a function is determined by the type of the expression used to access it. (An identifier declared to be an object is the simplest such expression; the type is specified in the declaration of the identifier.) Types are partitioned into object types (types that fully describe objects), function types (types that describe functions), and incomplete types (types that describe objects but lack information needed to determine their sizes). | И пункт 6.2.5-19: Цитата: The void type comprises an empty set of values; it is an incomplete type that cannot be completed. | Резюме: void относится не к object types, а к incomplete types, стало быть, Стандартом использование указателя на него в операциях сложения не разрешено. Теперь смотрим документацию по gcc. Находим пункт 6.23 "Arithmetic on void- and Function-Pointers". Цитата: In GNU C, addition and subtraction operations are supported on pointers to void and on pointers to functions. This is done by treating the size of a void or of a function as 1. | А теперь читаем название раздела 6, в котором находится этот пункт. "Extensions to the C Language Family". То есть арифметические операции с указателями на void - это в чистом виде compiler-specific feature. Надеюсь, теперь вам ясно, кто именно сказал глупость? PS. Вы бы лучше не покидали флейм, там ваш уровень знаний не так в глаза бросается.
---------- 0 программистов ругал сердитый шеф Потом уволил одного, и стало их FF |
| Всего записей: 6088 | Зарегистр. 22-10-2005 | Отправлено: 20:19 04-10-2017 | Исправлено: Abs62, 20:21 04-10-2017 |
|