16+
Суббота
25 ноября
Вход |Карта сайта | |Upload |codebook | PARTS

 О смысле всего сущего 0xFF

 Средства и методы разработки

 Мобильная и беспроводная связь

 Блошиный рынок Объявления

caxapa

Микроконтроллеры ARM 

AVR PIC MSP PLD,FPGA,DSP 

Кибернетика Технологии 

Схемы, платы, компоненты 

ARM-контроллеры

 
   Новая тема Правила Регистрация Поиск »» Архив
Вернуться в конференциюТопик полностью
fk0  (22.01.2013 17:30) , в ответ на Почему? "современные стандарты требуют, чтобы представление и требования по выравниванию для void-указателей были теми же, что для указателей на char, что означает взаимозаменяемость этих типов." автор: Codavr
Нет... sizeof(*(void*)) у конкретного компилятора может быть неизвестно какой, а sizeof(*(char*)) == 1 всегда. У GCC исключение "расширение C", что sizeof в таком случае тоже == 1. Но для других компиляторов не так и бывает, что арифметика над 
указателями на void даёт результат сильно отличный от указателей на char. Практически сталкивался с таким вариантом и это соответствует стандарту C99. Правда вменяемые компиляторы дают варнинг. Где сталкивался не помню. Но не GCC, а что-то распространённое. Выравнивание не причём. Дело в sizeof целевого типа. Где для char всё ясно, а для void неопределённость.
[ZX]
Главная | Карта сайта | О проекте | Проекты | Файлообменник | Регистрация | Вебмастер | RSS
Лето 7526 от сотворения мира. При использовании материалов сайта ссылка на caxapу обязательна.
MMI © MMXVII