ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
22 июля
858293 Топик полностью
fk0, легенда (27.07.2018 01:27, просмотров: 55) ответил mut на "Грамматика есть опытное знание о большей части того, что говорится у поэтов и писателей", учитесь Ibah.
Они там про линукс писали -- так это ТИПОВАЯ, ШИРОКО ПРИМЕНЯЕМАЯ ПРАКТИКА. Более того, является указатель одним объектом или нет банально неизвестно, когда в публичную функцию передаются пара указателей и она их сравнивает. Что-то здесь не договаривается, а статья написана в рекламных целях (PVS-studio). Как минимум, нет гарантии, что "if two pointers point to different elements of the same array, the one pointing at the element with the larger index compares greater". Может там есть какой-то неизвестный массив, снаружи функции, и оба указателя к нему относятся. Если про указатели абсолютно всё известно, то увы, стандарт может быть прав. Но как быть с широко применимой практикой относительно extern указателей? Почитал, нашёл два бага: https://gcc.gnu.or …/show_bug.cgi?id=77964 -- про который говорилось, что он в линуксе; https://gcc.gnu.or …/show_bug.cgi?id=77813 -- похожий. Метод лечения через ассемблер описаны здесь: https://gcc.gnu.or …/gcc/Extended-Asm.html Если вкратце, то по сути добиваются указанием компилятору "эта переменная используется в ассемблере, поэтому не оптимизируй её", круче чем volatile: https://yangzhang. …cc-optimize-away-code/
[ZX]