Ну это совсем не такое, это заворачивание четырёх символов в uint32 чтобы их можно было сравнить одной инструкцией. Причём с константой, потому что скорее всего выражение считается на этапе компиляции.
Это на крайний случай для систем с другим порядком байтов (константы наизнанку в компайл-тайме в чистом С не вывернуть), или для систем со строгим алайнментом (там если незалайненый адрес поконвертить к uint32_t у которого требования к алайнменту, то будет как минимум просадка производительности (некоторые хитрожопые процессоры несмотря на жёсткие требования к алайнменту по мануалу, умудряются запрашивать обе ячейки на которые разъехалась переменная, и склеивать их, но конвейер всё это время стоит), как максимум AV - например на АРМах на которые грозится перейти эппл (либо они изобретают компилятор с автоматической проверкой алайнмента, либо каждая софтина которая не имеет обработки крайнего случая как в nginx превращается в бомбу замедленного действия, грозящую в любой момент поехать по пизде... что впрочем для маков характерно).
Я до сих пор сижу и думаю как можно было догадаться реализовать fixed так, чтобы он был привязан к relative/absolute своего контейнера. Это же просто нечто.
Но тотальный игнор событий клика со стороны мобильного сафари я им никогда не прощу. Суки.
У меня как-то беларусы сломали сервер, передав в качестве идентификатора строку из 12 символов, и все символы были null. Такого подвоха никто не ожидал...
Для верности проверь ещё валидный ли адрес у a, если оно на стеке, то не покорраптило ли стек, а заодно совпадает ли размерность и порядок байтов в системе откуда пришло а с твоей, ну и конечно же проверить ещё раз сразу после первой проверки на предмет возможного рейс кондишена, а предварительно протрассировать какому бинарнику принадлежит а, на предмет того что какая-то добрая душа могла его взять и выгрузить перед проверкой...
Внезапно, предположу когда это возможно "имеет смысл": в том же C# есть Nullable, который вот не очень кастится к bool. Если на пальцах, то в этом случае переменная а может содержать три значения: true, false, null.
Выбираем первый язык программирования
Да
т
У вас есть друзья?
i
Да
Т
Хотите много зарабатывать?
jL
Да
ш
Вы тупой?
т.
Т
Вы насмотрелись уроков ХАУДИ ХО?
/Г
Да
7
Python
Вам
г~ нравится 1
1 Windows?
Нет
Fortran
А они вам нужны?
Они тоже РНР
тупые?
Да
т
if (str.length == 4) {
if (str[0] == "t" && str[1] == "r" && str[2] == "u" && str[3] == "e") {
}
}
https://trac.nginx.org/nginx/browser/nginx/src/http/ngx_http_parse.c#L38
https://trac.nginx.org/nginx/browser/nginx/src/http/ngx_http_parse.c#L167
Это на крайний случай для систем с другим порядком байтов (константы наизнанку в компайл-тайме в чистом С не вывернуть), или для систем со строгим алайнментом (там если незалайненый адрес поконвертить к uint32_t у которого требования к алайнменту, то будет как минимум просадка производительности (некоторые хитрожопые процессоры несмотря на жёсткие требования к алайнменту по мануалу, умудряются запрашивать обе ячейки на которые разъехалась переменная, и склеивать их, но конвейер всё это время стоит), как максимум AV - например на АРМах на которые грозится перейти эппл (либо они изобретают компилятор с автоматической проверкой алайнмента, либо каждая софтина которая не имеет обработки крайнего случая как в nginx превращается в бомбу замедленного действия, грозящую в любой момент поехать по пизде... что впрочем для маков характерно).
А Эппл я погляжу впереди планеты всей. Снова. Сафари с собственными стандартами им было мало.
Но тотальный игнор событий клика со стороны мобильного сафари я им никогда не прощу. Суки.
У меня как-то беларусы сломали сервер, передав в качестве идентификатора строку из 12 символов, и все символы были null. Такого подвоха никто не ожидал...
А они профессионалы, я погляжу!
if (a == true && a != false)
С++ делает из человека знатного параноика.
{
return true;
}
else
{
return false;
}
else
{
throw new Exception("Invalid boolean value");
}
else {return false;}