- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
#include <stdio.h>
int main() {
bool a = 0;
printf("%d\n", sizeof(a)); // 1
(*(char*)&a) = 'a';
printf("%c\n", a); // говно, wtf?
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−11
#include <stdio.h>
int main() {
bool a = 0;
printf("%d\n", sizeof(a)); // 1
(*(char*)&a) = 'a';
printf("%c\n", a); // говно, wtf?
}
3_dar 11.10.2015 22:07 # −1
Где мое говно?
inkanus-gray 11.10.2015 22:12 # 0
3_dar 11.10.2015 22:15 # +2
3_dar 11.10.2015 22:15 # −2
inkanus-gray 11.10.2015 22:17 # +2
Dummy00001 12.10.2015 11:16 # +1
с точки зрения спамеров, на говнокоде спамить бесполезно и опастно. в лучшем случае народ просто проигнорирует спам. в худшем - нарвутся на скучающего скрипткидди.
inkanus-gray 12.10.2015 11:27 # +2
Кстати, ещё одна из причин, по которой владельцы сайтов запрещают ссылки: если количество исходящих ссылок в разы перевалит количество входящих, Яндекс может обнулить ТИЦ и понизить сайт в результатах поиска.
*****
А на любом сайте для программистов публиковать ссылки и правда опасно. Кто-то может не полениться и найти все дырки на рекламируемом сайте.
BJlADuMuPCKuu_nemxy 26.09.2020 10:52 # 0
inkanus-gray 11.10.2015 22:16 # +3
absolut 12.10.2015 11:47 # 0
p.s. вообще, конечно, бул тут может элементарно тайпдефиться.
inkanus-gray 12.10.2015 12:09 # 0
inkanus-gray 12.10.2015 12:16 # 0
absolut 12.10.2015 13:51 # +1
http://ideone.com/CG6ey8
inkanus-gray 12.10.2015 13:54 # 0
absolut 12.10.2015 13:59 # +1
Правда можно ещё в stdio.h поднасрать :)
inkanus-gray 12.10.2015 14:04 # +2
inkanus-gray 12.10.2015 14:16 # +3
Конпелируем:
ВПЗД ПРГМРВАНЕ
imihajlov 12.10.2015 17:18 # 0
absolut 12.10.2015 17:32 # +1
inkanus-gray 11.10.2015 22:26 # +3
С ключами -O1, -O2 etc. компилятор сразу пишет в bool единицу, поскольку даже не предполагает, что в этот тип может поместиться что-нибудь кроме 0 и 1.
Таким образом, в bool мы можем гарантировать значение только младшего бита.
inkanus-gray 11.10.2015 23:21 # +6
Elvenfighter 12.10.2015 00:50 # +1
в
inkanus-gray 12.10.2015 01:15 # +1
bormand 11.10.2015 23:27 # +2
Ничего мы не можем гарантировать, это UB, вроде как. По крайней мере я в стандарте не нашёл внутреннего представления була, на которое можно опираться.
> младшего бита
Скорее тупо 0 и не 0.
inkanus-gray 11.10.2015 23:53 # 0
1. Ноль и не ноль. Тогда 2 == true.
2. Учитывается только младший бит. Тогда 2 == false.
Получается, что писать любое значение, кроме true и false, это выстрел в ногу.
inkanus-gray 12.10.2015 00:11 # +4
Antervis 12.10.2015 11:50 # +1
inkanus-gray 12.10.2015 12:12 # 0
Antervis 12.10.2015 12:40 # 0
неочевидно
> неоднозначность может быть вызвана лишь порядком байтов в многобайтовом числе
очевидно
guest8 23.10.2019 23:34 # −999
guestinxo 24.10.2019 00:19 # 0
guest8 24.10.2019 01:18 # −999
Elvenfighter 12.10.2015 00:35 # 0
absolut 12.10.2015 13:57 # 0
guest8 23.10.2019 23:34 # −999
Lokich 12.10.2015 01:57 # 0
http://govnokod.ru/18828#comment300167
guest8 23.10.2019 23:34 # −999
BJlADuMuPCKuu_nemxy 26.09.2020 10:55 # 0