- 1
#define long long long
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−12
#define long long long
Elvenfighter 28.04.2017 13:48 # +2
Dummy00001 28.04.2017 15:07 # 0
*них 32 бит сломает (ну до они уже почти вымерли). *них 64 бита преимущественно не сломает - потому что там хак совместимости с 32 бит стоит: long == long long == 64bit.
и еще гцц будет кидать ворнинги на "%ld" vs "%lld" в принтфах. в зависимости где и как определен size_t - может тоже будут ворнинги.
Elvenfighter 28.04.2017 17:21 # 0
long long и long -- разные типы. Хотя внутри могут быть одинаковыми.
https://wandbox.org/permlink/dTUrQICJ8B3bzbq8
> *них 32 бит сломает (ну до они уже почти вымерли).
А что там? Вроди тоже long -> 64bit
Dummy00001 28.04.2017 17:28 # 0
> А что там? Вроди тоже long -> 64bit
забываешь старое неписаное правило `sizeof(long) == sizeof(void*)` на которое кучи людей полагаются.
Elvenfighter 28.04.2017 18:12 # +2
Dummy00001 28.04.2017 18:18 # 0
PS
https://en.wikipedia.org/wiki/64-bit_computing#64-bit_data_models
bormand 28.04.2017 19:44 # 0
Впизду. На венде оно не выполняется. Да и сейчас уже есть uintptr_t, выбитый на скрижалях стандарта.
> sizeof(long) >= sizeof(void*)
Ты имел в виду sizeof(long) <= sizeof(void*)? :)
Dummy00001 28.04.2017 20:19 # 0
bormand 28.04.2017 20:20 # 0
*на некоторых платформах
Dummy00001 28.04.2017 20:27 # 0
barop 28.04.2017 20:59 # 0
Elvenfighter 28.04.2017 20:49 # +2
bormand 28.04.2017 20:56 # 0
barop 28.04.2017 23:17 # 0
barop 28.04.2017 23:16 # +1
guestinh0 28.04.2017 14:04 # 0
TeaBag 28.04.2017 15:02 # −7
CrashTesterAnusov 28.04.2017 21:42 # −6
guest 28.04.2017 16:25 # −3