что значит x ray в манге

Что значит x ray в манге

Рентгенография (англ. projection radiography, plain film radiography, X-ray imaging, roentgenography, X-ray study, X-ray filming ) — исследование внутренней структуры объектов, которые проецируются при помощи рентгеновских лучей на специальную плёнку или бумагу. Наиболее часто термин используется в медицинском контексте, описывающий неинвазивное исследование, основанное на изучении костных структур и мягких тканей, при помощи суммационного проекционного изображения.

Содержание

История

что значит x ray в манге. Смотреть фото что значит x ray в манге. Смотреть картинку что значит x ray в манге. Картинка про что значит x ray в манге. Фото что значит x ray в манге

Применение

В медицине

Рентгенография применяется для диагностики:

В реставрации

Метод получения изображения

Получение изображения основано на ослаблении рентгеновского излучения при его прохождении через различные ткани с последующей регистрацией его на рентгеночувствительную плёнку. Таким образом на плёнке получается усреднённое, суммационное изображение всех тканей (тень).

В современных цифровых аппаратах регистрация выходного излучения может производиться на специальную кассету с плёнкой или на электронную матрицу. При этом печать плёнок производится только при необходимости, а диагностическое изображение выводится на монитор и, в некоторых системах, сохраняется в базе данных, вместе с остальными данными о пациенте.

Рекомендуется проведение снимков не менее чем в двух проекциях.

Многие современные рентгеновские плёнки имеют очень низкую собственную рентгеновскую чувствительность, и рассчитаны на применение с усиливающими флуоресцентными экранами, светящимися голубым или зелёным видимым светом при облучении рентгеновским излучением. Такие экраны вместе с плёнкой помещаются в кассету, которая после снимка переносится из рентгеновского аппарата в проявочную машину, которая из неё извлекает плёнку, проявляет, фиксирует и сушит.

Разрешающая способность

Разрешающая способность достигает 0.4 мм [1]

Одним из самых высоких разрешений плёнки считается «26 пар линий на мм» (=0.02 мм) [2]

Источник

Lada Xray: вся правда из уст владельца

что значит x ray в манге. Смотреть фото что значит x ray в манге. Смотреть картинку что значит x ray в манге. Картинка про что значит x ray в манге. Фото что значит x ray в манге

Содержание

Выпущенный в 2015 году Lada Xray позиционируется АвтоВАЗом как компактный кроссовер. Фактически – спортивно-утилитарный хетчбэк (SUV) с высокой посадкой водителя.

Мы договорились о встрече с Евгением, одним из продавцов Lada Xray для получения комментариев по эксплуатации. Но перед тем, как пойти на осмотр, проверили автомобиль по госномеру через сервис «Автокод». Двухгодовалые машины часто бывают в залоге, о чем владельцы обычно умалчивают

что значит x ray в манге. Смотреть фото что значит x ray в манге. Смотреть картинку что значит x ray в манге. Картинка про что значит x ray в манге. Фото что значит x ray в манге

Автомобиль оказался с одним владельцем без ДТП, залогов и других проблем. А это значит, что такую машину можно покупать, предварительно проверив ее техническое состояние.

что значит x ray в манге. Смотреть фото что значит x ray в манге. Смотреть картинку что значит x ray в манге. Картинка про что значит x ray в манге. Фото что значит x ray в манге

Почему же продавец решил отказаться от почти новой машины? Разберемся ниже.

КУЗОВ

АвтоВАЗ совместно с Renault разработали и построили машину на уже известной платформе B0. Поэтому среди одноклассников Xray числятся такие старшие модели как Renault Duster и Sandero.

Кузов оцинкован хорошо. Даже после сколов от гравия очагов ржавчины не возникает. ЛКП достаточно прочное. За 2 года ежедневной эксплуатации на передней части авто сколы незначительны.

ДВИГАТЕЛЬ

На выбор предлагаются следующие комбинации ДВС и коробок:

что значит x ray в манге. Смотреть фото что значит x ray в манге. Смотреть картинку что значит x ray в манге. Картинка про что значит x ray в манге. Фото что значит x ray в манге

1.6 МКПП — самый экономичный и простой вариант, доступный в разных комплектациях, включая предпоследнюю — Prestige.

Единственный огрех — короткие передачи. Уже на 110 км/ч обороты будут чуть больше 3000, что негативно скажется на расходе топлива при дальних переездах. До 100 км/ч разгоняется за 11,7 секунд. Средний смешанный расход составляет 9,2 литра бензина на 100 км. Кстати, производитель допускает использование как 92, так и 95 марки бензина для всех двигателей.

1.8 МКПП может похвастаться резвым разгоном и некоторой уверенностью при обгонах на трассе, достигая 100 километров в час за 10,4 секунды. За это приходится платить из расчета 10-11 литров бензина на 100 км. Это наиболее распространенное сочетание ДВС и коробки.

что значит x ray в манге. Смотреть фото что значит x ray в манге. Смотреть картинку что значит x ray в манге. Картинка про что значит x ray в манге. Фото что значит x ray в манге

1.8 AMT «Робот» — редкая комплектация из-за особого отношения покупателей к роботизированной коробке. При среднем расходе топлива в 9 литров автомобиль имеет слабые показатели разгона до «100» — 12,3 сек. по паспорту. При эксплуатации автомобиля «робот» долго думает между переключениями передач, иногда до 2 секунд. Ситуацию спасает ручной режим переключения, но смысл в самой AMT в этом случае теряется.

ХОДОВАЯ ЧАСТЬ

Спереди независимая подвеска с амортизационными стойками МакФерсон, унифицированная с Renault Duster. Судя по «Дастеру» — надёжная и недорогая. Сзади — обычная «балка» с пружинами и амортизаторами. По ходовым качествам — средней жёсткости: сглаживает мелкие неровности дороги и не пробивает стойки на больших ямах.

Дорожный просвет составляет 19,5 см. Этого достаточно для комфортной парковки к бордюру, а по зимней колее — не цеплять наст днищем.

Однако надеяться лишь на клиренс не приходится — из-за отсутствия полного привода и хоть каких-то внедорожных качеств съезжать с асфальта можно только, если убедились в твёрдости грунта.

САЛОН

Салон выполнен в современном стиле. Его можно укомплектовать мультимедиа системой, навигацией, кожей и алькантарой сиденья, а также кожаной оплёткой руля и переключателя КПП. Выбора комплектаций много: Optima, Comfort, Luxe, Prestige, Exclusive.

что значит x ray в манге. Смотреть фото что значит x ray в манге. Смотреть картинку что значит x ray в манге. Картинка про что значит x ray в манге. Фото что значит x ray в манге

Пластик простой и твёрдый на всех поверхностях — начинает скрипеть и появляются «сверчки» после 5000 км.

Имеется претензия на мультируль: есть возможность регулировать громкость, оперировать звонками по hands-free, но нет возможности переключать треки и радиостанции — каждый раз приходится тянуться к магнитоле.

Шумоизоляция достаточная. Спокойно разговаривать в поездках можно. Дискомфорта нет, но шум дороги присутствует.

Задние пассажиры высокого роста будут жаловаться на нехватку места в коленях. По ширине места хватает только двум взрослым людям средней комплекции. «Диван» раскладываются 40/60, позволяя перевозить больше груза, чем в 360-литровом багажнике.

По обзорности — к широким передним стойкам и неудобно расположенному зеркалу надо привыкнуть.

ЭЛЕКТРОНИКА

В комплектациях есть электростеклопакет, иммобилайзер, штатная сигнализация, электропривод и обогрев зеркал, обогрев ветрового стекла, датчик дождя и света. При желании можно установить климат-контроль, парктроники, камеру заднего вида и круиз-контроль.

что значит x ray в манге. Смотреть фото что значит x ray в манге. Смотреть картинку что значит x ray в манге. Картинка про что значит x ray в манге. Фото что значит x ray в манге

Активную безопасность обеспечивают:

что значит x ray в манге. Смотреть фото что значит x ray в манге. Смотреть картинку что значит x ray в манге. Картинка про что значит x ray в манге. Фото что значит x ray в манге

Судя по отзывам — эти системы действительно работают. Информации об их поломках не найдено. Учитывая, что Lada Xray выпускается всего три года — судить о неисправностях электронной составляющей пока рано.

СЛАБЫЕ МЕСТА

О слабых местах рассказывает сам владелец Lada Xray:

РЫНОЧНАЯ СТОИМОСТЬ

За два года автомобиль теряет около 30% от цены за новое авто.

С выпуском Lada Xray АвтоВАЗ показал своё стремление развиваться и улучшать свою продукцию. Модель только проходит «обкатку» покупателями, но уже начинает собирать портфель необходимых доработок как по технической части, так и по эргономике.

Lada Xray — далеко шагнул вперёд, уйдя от стереотипов АвтоВАЗа. Но чтобы составить конкуренцию иностранному автомобилестроению предстоит внести еще много существенных доработок.

ВИДЕООБЗОР LADA XRAY

Автор: Максим Голенецких

А что думаете вы о покупке подержанной Lada XRAY? Ответы оставляйте в комментариях внизу текста.

Источник

Boolean, X-ray, плагины: фокусируем поиск в IT-рекрутременте

Это статья для рекрутеров и HR, которая основана на рассылке из 4 писем с инструментами и лайфхаками: булеан-запросы, X-Ray-запросы, плагины, расширения и автоматизация. На примерах покажем, как повысить эффективность поиска IT-специалистов и экономить время, например, как из 18 млн запросов выделить 9 000 целевых.

Boolean search или «Булевый поиск» помогает получать более точную поисковую выдачу как в поисковых машинах к примеру Google, так и в социальных сетях, работая с помощью логических операторов. Благодаря им можно обработать огромный поток информации и получить релевантные результаты.

Список популярных логических операторов булевого поиска:

В социальных сетях вроде Linkedin или Facebook есть возможность использовать «Расширенный поиск», но он не всегда работает так как нужно. Разберем инструмент на примере Google. Например, мы ищем senior developer, который умеет работать с PHP, Perl, Python. Так будет выглядеть boolean-запрос:

(PHP OR Java OR Python) AND senior developer резюме

Мы объясняем поисковику, что хотим найти страницы, на которых будет хотя бы одно из трех слов (PHP, Perl, Python) и словосочетание senior developer резюме.

Получаем более 23,2 млн результатов — слишком большая выборка. Сократим географию до России. Для этого добавим в конце запроса: site:ru.

(PHP OR Java OR Python) AND senior developer резюме site:ru

Теперь у нас 510 тыс. результатов.

Если необходим специалист из конкретного города, допишите его к основной фразе:

(PHP OR Java OR Python) AND senior developer резюме Москва site:ru

438 000 страниц в выдаче. С этим можно начинать работать.

При выдаче робот сканирует всю страницу. Ключевые слова могут найтись в блоках «Лучшие вакансии» или «Закрытые вакансии». Исключим их оператором «intitle». Поисковая машина найдет совпадения только в заголовке страниц:

intitle: (PHP OR Java OR Python) AND senior developer Москва резюме site:ru

Выдача сократилась до 247 000 страниц — мы уже у цели.

Разделим поиск по конкретным сайтам:

intitle:(PHP OR Java OR Python) AND senior developer Москва резюме (site:hh.ru)

Осталось 18 800 запросов.

Последним этапом уберем специалистов начинающего и среднего уровня. Добавим в запрос оператор минус «–», и укажем слова, которые не хотим видеть в заголовках:

Осталось 9370 запросов.

Готово — мы создали один запрос, который будет собирать подходящие нам вакансии.

Запросы работают не только для джоб-бордов, но и для соцсетей, например, Инстаграмма.

Примечание. Начинающим рекрутерам стоит обратить внимание, что если использовать много OR в запросе для изучение синонимов, например, JS OR Frontend OR Front-end, то это может резать выдачу. Например, так.

X-Ray запросы основаны на тех же boolean-операторах, но требуют глубокого погружения и анализа сайта. Такие запросы точнее булевых, потому что здесь используется оператор «site». Прежде чем отправлять запрос, точно введем адрес необходимой информации, например:

site:instagram.com JavaScript developer moscow

Х-ray запросы это мощный инструмент, который хорошо работает даже для начинающих рекрутеров.

Для автоматизации работы попробуйте расширения и плагины.

Расширения для браузера упрощают работу: помогают найти больше кандидатов и закрыть даже самые специфичные вакансии, открыть контакты. К сожалению, у расширений «короткий жизненный цикл». Например, Linkedin воспринимает в штыки все сервисы, которые пытаются собрать информацию и нещадно блокирует. Но попробовать все равно стоит.

Hunter for Chrome или Email Finder – открывают email на страницах в соц сетях. Работают не всегда корректно.

RocketReach. Хороший инструмент: находит как личные, так и корпоративные адреса (с разным уровнем точности). Кроме того, оно имеет встроенную поисковую систему — даже не нужно заходить в Linkedin.

Improver. Сравнительно новый инструмент, но сфокусированный на личных почтах. Если не учитывать проблему Hiretual, несомненный победитель — нашел контакты 88% аккаунтов из Москвы.

SalesQL — аналог Improver, только открывает 100 контактов.

Scrapely или Data Scraper (Easy Web Scraping) – самый простой и удобный скрапинг LinkedIn, Facebook, Instagram, Quora и Product Hunt. Можно сохранять данные в Google-таблицу.

Quickli – помогает найти коллег конкретного специалиста.

Если Boolean search помогает быстрее находить кандидатов уровня senior, то плагины помогают в автоматизации своей работы, например, для открытия контактов.

Для автоматизации еще помогает Headz.io – платформа автоматизированного поиска кандидатов по характеристикам, которые указываются в вакансии: по стеку, уровню, зарплатной вилке, формату занятости. По этим данным и подбирает. В базе платформы 25 000 IT-специалистов, есть функция статистики и исключения кандидата из выборки. Благодаря тому что система вовлекает кандидата в процесс рекрутинга, она сокращает время на сорсинг в 2 раза, до 40 часов в месяц за счет экономии на поиск, отбор, собеседования кандидатов.

Если интересна тема подбора, подписывайтесь на рассылку по булевым запросам. Если нужно погружение глубже — присмотритесь к курсу сорсинг по 14 источникам, где мы изучаем как создавать ботов и глубокий поиск на разных площадках.

Источник

Ищем аномалии в X-Ray Engine

X-Ray Engine — игровой движок, который используется в играх серии S.T.A.L.K.E.R. 16 сентября 2014 года его исходный код был выложен в открытый доступ, и с тех пор его развитием занимаются фанаты. Большой размер проекта, огромное количество багов в играх — всё это располагает к отличной демонстрации возможностей статического анализатора кода PVS-Studio.

что значит x ray в манге. Смотреть фото что значит x ray в манге. Смотреть картинку что значит x ray в манге. Картинка про что значит x ray в манге. Фото что значит x ray в манге

Вступление

X-Ray был создан украинской компанией GSC GameWorld для игры S.T.A.L.K.E.R.: Тень Чернобыля. Движок включает рендер с поддержкой DirectX 8.1/9.0c/10/10.1/11, физический и звуковой движки, мультиплеер и систему искусственного интеллекта A-Life. Впоследствии компания создавала движок версии 2.0 для своей новой игры, но разработка была прекращена и исходные коды утекли в сеть.

Проект вместе со всеми его зависимостями легко собирается в Visual Studio 2015. Для проверки использовался исходный код движка версии 1.6 из репозитория на GitHub и статический анализатор кода PVS-Studio 6.04, загрузить который можно по ссылке.

Copy-paste

Для начала рассмотрим ошибки, связанные с копированием кода. Сценарий их возникновения в разных случаях обычно похож: скопировали код, поменяли часть переменных, а несколько — забыли. Такие ошибки могут быстро распространяться по кодовой базе, и без статического анализатора их очень легко пропустить.

что значит x ray в манге. Смотреть фото что значит x ray в манге. Смотреть картинку что значит x ray в манге. Картинка про что значит x ray в манге. Фото что значит x ray в манге

Предупреждение PVS-Studio: V533 It is likely that a wrong variable is being incremented inside the ‘for’ operator. Consider reviewing ‘i’. mxqmetric.cpp 76

Анализатор обнаружил, что во вложенном цикле for инкрементируется переменная i, а проверяется переменная j, что приводит к бесконечному циклу. Скорее всего, при копировании её просто забыли поменять.

Предупреждение PVS-Studio: V517 The use of ‘if (A) <. >else if (A) <. >‘ pattern was detected. There is a probability of logical error presence. Check lines: 1502, 1505. gstats.c 1502

Как и в предыдущем примере, здесь используются два одинаковых условия (strncmp(buff,»\\getpidr\\»,9) == 0). Сложно сказать наверняка, является ли это ошибкой или просто недостижимым кодом, но на это точно стоит обратить внимание. Возможно, что здесь должны быть блоки с getpidr/setpidr по аналогии с getpdr/setpdr.

Предупреждение PVS-Studio: V524 It is odd that the body of ‘width’ function is fully equivalent to the body of ‘height’ function. tpixel.h 1090

Методы height() и width() имеют одинаковое тело. Учитывая, что вычисляются размеры граней куба, возможно, ошибки здесь нет. Но лучше переписать метод width() следующим образом:

Неправильное использование C++

C++ — замечательный язык, который предоставляет программисту много возможностей… отстрелить себе ногу особо жестоким образом. Неопределённое поведение, утечки памяти и, конечно же, опечатки — об ошибках такого рода пойдёт речь в текущем разделе.

что значит x ray в манге. Смотреть фото что значит x ray в манге. Смотреть картинку что значит x ray в манге. Картинка про что значит x ray в манге. Фото что значит x ray в манге

Предупреждение PVS-Studio: V591 Non-void function should return a value. _matrix33.h 435

В конце метода пропущен return *this. По стандарту подобный код приведёт к неопределённому поведению. Так как возвращаемое значение является ссылкой, это, скорее всего, приведёт к падению программы при попытке обратиться к возвращаемому значению.

Предупреждение PVS-Studio: V575 The null pointer is passed into ‘fclose’ function. Inspect the first argument. ogg_enc.cpp 47

Довольно интересный пример. Анализатор обнаружил, что аргумент в вызове fclose равен nullptr, что делает вызов функции бессмысленным. Можно предположить, что должны были закрыть поток in.

Ещё один пример странного кода:

Предупреждение PVS-Studio: V603 The object was created but it is not being used. If you wish to call constructor, ‘this->VertexCache::VertexCache(. )’ should be used. vertexcache.cpp 6

Вместо вызова одного конструктора из другого для инициализации экземпляра будет создан и тут же уничтожен новый объект типа VertexCache. В результате члены создаваемого объекта останутся непроинициализированными.

Предупреждение PVS-Studio: V530 The return value of function ’empty’ is required to be utilized. actor_network.cpp 657

Анализатор предупреждает, что возвращаемое функцией значение не используется. Похоже, что программист перепутал методы empty() и clear(): empty() не очищает массив, а проверяет, является ли он пустым.

Такие ошибки нередко встречаются в различных проектах. Проблема в том, что имя empty() не очевидно: некоторые воспринимают его как действие — удаление. Для того, чтобы подобной неоднозначности не возникало лучше добавлять глаголы has, is к началу метода: действительно, isEmpty() с clear() сложно перепутать.

V530 The return value of function ‘unique’ is required to be utilized. uidragdroplistex.cpp 780

Предупреждение PVS-Studio: V575 The ‘memset’ function processes ‘0’ elements. Inspect the third argument. xrdebug.cpp 104

При вызове memset аргументы перепутали местами и в итоге буфер не обнуляется, как изначально задумывалось. Подобная ошибка может жить в проекте очень долго, так как её очень трудно обнаружить. В таких местах на выручку программисту приходит статический анализатор.

Корректное использование memset:

Следующая ошибка связана с неправильно составленным логическим выражением.

Предупреждение PVS-Studio: V547 Expression is always true. Probably the ‘&&’ operator should be used here. configs_dumper.cpp 262

Подробнее об ошибках в логических выражениях можно прочитать в статье «Логические выражения в C/C++. Как ошибаются профессионалы».

Предупреждение PVS-Studio: V674 The ‘0.5f’ literal of the ‘float’ type is compared to a value of the ‘int’ type. boneprotections.cpp 54

Анализатор обнаружил сравнение целочисленного значения с вещественной константой. Возможно, что здесь по аналогии должна была использоваться функция atof, а не atoi, в другом случае стоит переписать это сравнение, чтобы оно не выглядело подозрительно. Однако сказать наверняка, является ли этот пример ошибочным или нет, может только разработчик, писавший его.

Предупреждение PVS-Studio: V595 The ‘object’ pointer was utilized before it was verified against nullptr. Check lines: 42, 47. level_bullet_manager_firetrace.cpp 42

Проверка указателя object на равенство nullptr идёт после того, как разыменовали object->ID(). В случае, когда object равен nullptr, это приведёт к падению программы.

Предупреждение PVS-Studio: V718 The ‘CoInitializeEx’ function should not be called from ‘DllMain’ function. xrcore.cpp 205

В теле DllMain нельзя использовать часть WinAPI функций, включая CoInitializeEx. Убедиться в этом можно, прочитав документацию на MSDN. Нельзя дать какой-то однозначный совет, как стоит переписать эту функцию, но стоит понимать, что такая ситуация опасна, так как она может привести к взаимной блокировке потоков или аварийному завершению.

Ошибки в приоритетах

Предупреждение PVS-Studio: V532 Consider inspecting the statement of ‘*pointer++’ pattern. Probably meant: ‘(*pointer)++’. lwio.c 316

Ошибка связана с использованием инкремента. Для наглядности перепишем данное выражение, расставив скобки:

То есть произойдёт сдвиг не содержимого по адресу bp, а самого указателя, что в данном контексте бессмысленно. Ниже по коду есть фрагменты вида *bp += N, из-за чего я и сделал вывод, что это ошибка.

Избежать подобной ошибки помогла бы расстановка скобок, что сделало бы порядок вычислений более понятным. Также неплохой методикой является использование const для аргументов, которые не должны меняться.

Предупреждение PVS-Studio: V563 It is possible that this ‘else’ branch must apply to the previous ‘if’ statement. hit_memory_manager.cpp 368

В этом фрагменте ветвь else относится ко второму if из-за своей право-ассоциативности, что не совпадает с форматированием кода. К счастью, данный случай не отражается на работе программы, тем не менее, он может усложнить процесс отладки и тестирования.

Рекомендация проста — в более-менее сложных ветвлениях расставляйте фигурные скобки.

Предупреждение PVS-Studio: V502 Perhaps the ‘?:’ operator works in a different way than it was expected. The ‘?:’ operator has a lower priority than the ‘*’ operator. hudsound.cpp 108

У тернарного условного оператора приоритет ниже, чем у умножения, поэтому порядок операций будет следующим:

Очевидно, что правильный код должен выглядеть так:

Выражения, содержащие тернарный оператор, несколько if-else ветвей или операции И/ИЛИ, — это те случаи, когда лучше поставить лишние скобки.

Лишние сравнения

Предупреждение PVS-Studio: V571 Recurring check. The ‘if (m_pPhysicsShell)’ condition was already verified in line 32. destroyablephysicsobject.cpp 33

В данном примере дважды проверяется m_pPhysicsShell. Скорее всего, вторая проверка лишняя.

Предупреждение PVS-Studio: V571 Recurring check. The ‘m_wVersion > 89’ condition was already verified in line 987. xrserver_objects_alife_items.cpp 989

Очень странный код. То ли здесь забыли выражение после if (m_wVersion > 89), то ли целую серию else-if. Данный метод требует более подробного рассмотрения разработчиком проекта.

Ошибки в типах данных

что значит x ray в манге. Смотреть фото что значит x ray в манге. Смотреть картинку что значит x ray в манге. Картинка про что значит x ray в манге. Фото что значит x ray в манге

Предупреждение PVS-Studio: V636 The ‘1 / 100’ expression was implicitly cast from ‘int’ type to ‘float’ type. Consider utilizing an explicit type cast to avoid the loss of a fractional part. An example: double A = (double)(X) / Y;. gl_rendertarget.cpp 245

Значение выражения 1/100 равно 0, так как выполняется операция целочисленного деления. Чтобы получить значение 0.01f, нужно использовать вещественный литерал, переписав выражение: 1/100.0f. Хотя возможно, что данное поведение было предусмотрено автором, и ошибки здесь нет.

Предупреждение PVS-Studio: V579 The strconcat function receives the pointer and its size as arguments. It is possibly a mistake. Inspect the first argument. space_restriction.cpp 201

Функция strconcat, в качестве первого параметра принимает длину буфера. Буфер S объявлен, как LPSTR, то есть как указатель на строку. sizeof(S) будет равен размеру указателя в байтах, то есть sizeof(char *), а не количеству символов в строке. Для вычисления длины следует использовать strlen(S).

Предупреждение PVS-Studio: V712 Be advised that compiler may delete this cycle or make it infinity. Use volatile variable(s) or synchronization primitives to avoid this. xrcdb.cpp 100

Компилятор может убрать проверку S_INIT == status в качестве оптимизации, так как переменная status не модифицируется в цикле. Для того, чтобы избежать подобного поведения, нужно использовать volatile переменные или типы синхронизации данных между потоками.

Предупреждение PVS-Studio: V547 Expression ‘squad->get_index(this) == u32(- 1)’ is always false. The value range of unsigned char type: [0, 255]. ai_rat.cpp 480

Для того, чтобы понять, почему это выражение всегда ложно, вычислим значения отдельных операндов. u32(-1) равен 0xFFFFFFFF или 4294967295. Тип, возвращаемый методом squad->get_index(. ), — u8, следовательно его максимальное значение — 0xFF или 255, что строго меньше, чем u32(-1). Соответственно, значением такого сравнения всегда будет false. Данный код легко исправить, поменяв тип данных на u8:

Та же диагностика срабатывает и для избыточных сравнений беззнаковых переменных:

Предупреждение PVS-Studio: V547 Expression ‘m_tActionCondition.m_tLifeTime >= 0’ is always true. Unsigned type value is always >= 0. script_entity_action_inline.h 115

Переменная m_tLifeTime является беззнаковой, соответственно она всегда больше или равна нулю. Является ли это лишней проверкой или же здесь скрыта ошибка в логике, судить разработчику.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *