LINUX.ORG.RU

История изменений

Исправление hateyoufeel, (текущая версия) :

Грубо говоря, для случаев, когда в функцию прилетает NULL, компилятор волен сгенерировать любое говно вместо кода. Например, выкинуть проверку.

В том коде проверка идет после использования указателя, там была бы проблема даже при просто потере указателя

Ты не понял. Это намеренный пример UB и демонстрация бага, который может возникнуть.

волатайл особо не рекомендуют использовать если что

Кто не рекомендует? Голоса в твоей голове?

по твоей логике можно все глобальные переменные укатать в волатайлы смело

Нет, это не моя логика. Я не знаю, откуда ты взял эту идею. В volatile нужно укатать те объекты, порядок доступа к которым имеет значение и может наблюдаться извне. Под «извне» подразумевается не только снаружи программы (например, как в случае с разделяемой памятью), но и из других тредов и контекстов, в т.ч. из обработчиков прерываний и сигналов.

Ты опять лужу решил вспенить..? Сколько клонадить будешь…?

Я буквально тебе стандарт языка, которым руководствуются авторы компиляторов, пересказываю. Ты со стандартом языка пытаешься спорить, что ли?

Друг, а что если нет сокетов, нет абстрактных машин и объектов нет, ничего нет кроме железа…?

Имеется ввиду абстрактная машина языка, а не виртуалка. Под объектами имеются ввиду объекты языка, а не объекты из ООП.

у тебя язык закончился на абстракции и стандарте, ты под капот ему не лазаешь, многие проблемы не знаешь даже, т.к. для тебя Си - это gcc, clang, g++ и что там в стандарте написали…

Это не для меня. Это для авторов компиляторов язык – то, что в стандарте написали. Если реализация языка не соответствует стандарту, то это реализация какого-то другого языка, а не Си.

Исправление hateyoufeel, :

Грубо говоря, для случаев, когда в функцию прилетает NULL, компилятор волен сгенерировать любое говно вместо кода. Например, выкинуть проверку.

В том коде проверка идет после использования указателя, там была бы проблема даже при просто потере указателя

Ты не понял. Это намеренный пример UB и демонстрация бага, который может возникнуть.

волатайл особо не рекомендуют использовать если что

Кто не рекомендует? Голоса в твоей голове?

по твоей логике можно все глобальные переменные укатать в волатайлы смело

Нет, это не моя логика. Я не знаю, откуда ты взял эту идею. В volatile нужно укатать те объекты, порядок доступа к которым имеет значение и может наблюдаться извне. Под «извне» подразумевается не только снаружи программы (например, как в случае с разделяемой памятью), но и из других тредов и контекстов, в т.ч. из обработчиков прерываний и сигналов.

Ты опять лужу решил вспенить..? Сколько клонадить будешь…?

Я буквально тебе стандарт языка, которым руководствуются авторы компиляторов, пересказываю. Ты со стандартом языка пытаешься спорить, что ли?

Друг, а что если нет сокетов, нет абстрактных машин и объектов нет, ничего нет кроме железа…?

Имеется ввиду абстрактная машина языка, а не виртуалка. Под объектами имеются ввиду объекты языка, а не объекты из ООП.

Исходная версия hateyoufeel, :

Грубо говоря, для случаев, когда в функцию прилетает NULL, компилятор волен сгенерировать любое говно вместо кода. Например, выкинуть проверку.

В том коде проверка идет после использования указателя, там была бы проблема даже при просто потере указателя

Ты не понял. Это намеренный пример UB и демонстрация бага, который может возникнуть.

волатайл особо не рекомендуют использовать если что

Кто не рекомендует? Голоса в твоей голове?

по твоей логике можно все глобальные переменные укатать в волатайлы смело

Нет, это не моя логика. Я не знаю, откуда ты взял эту идею. В volatile нужно укатать те объекты, порядок доступа к которым имеет значение и может наблюдаться извне. Под «извне» подразумевается не только снаружи программы (например, как в случае с разделяемой памятью), но и из других тредов и контекстов, в т.ч. из обработчиков прерываний и сигналов.

Ты опять лужу решил вспенить..? Сколько клонадить будешь…?

Я буквально тебе стандарт языка, которым руководствуются авторы компиляторов, пересказываю. Ты со стандартом языка пытаешься спорить, что ли?