- 1
- 2
- 3
- 4
- 5
#if !defined(COMPILER_MSVC)
#define ARRAYSIZE(a) \
((sizeof(a) / sizeof(*(a))) / \
static_cast<size_t>(!(sizeof(a) % sizeof(*(a)))))
#endif
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
Всего: 332
−17
#if !defined(COMPILER_MSVC)
#define ARRAYSIZE(a) \
((sizeof(a) / sizeof(*(a))) / \
static_cast<size_t>(!(sizeof(a) % sizeof(*(a)))))
#endif
https://github.com/tensorflow/tensorflow/blob/754048a0453a04a761e112ae5d99c149eb9910dd/tensorflow/stream_executor/platform/port.h#L42-L46
Суть этого говновыражения !(sizeof(a) % sizeof(*(a))) судя по всему в том, чтоб оно становилось нулем, если по каким-то причинам размер массива оказывается не кратен размеру элемента этого массива. И тогда эта макропоебень развернется в деление на ноль. Но как такое вообще может быть?
−74
public static TSource Single<TSource>(this TSource[] array)
{
if (array.Length > 1) throw new InvalidOperationException("Sequence contains more than one element");
return array[0];
}
public static TSource Single<TSource>(this List<TSource> array)
{
if (array.Count > 1) throw new InvalidOperationException("Sequence contains more than one element");
return array[0];
}
public static TSource First<TSource>(this TSource[] array)
{
return array[0];
}
public static TSource First<TSource>(this List<TSource> array)
{
return array[0];
}
public static TSource First<TSource>(this TSource[] array, Func<TSource, bool> condition)
{
for (int i = 0; i < array.Length; i++)
{
if (condition(array[i])) return array[i];
}
throw new InvalidOperationException("No items match the specified search criteria.");
}
public static TSource First<TSource>(this List<TSource> array, Func<TSource, bool> condition)
{
var len = array.Count;
for (int i = 0; i < len; i++)
{
if (condition(array[i])) return array[i];
}
throw new InvalidOperationException("No items match the specified search criteria.");
}
https://github.com/antiufo/roslyn-linq-rewrite/blob/master/RoslynLinqRewrite/Shaman.FastLinq.Sources/FastLinqExtensions.cs#L12
Зачем тут повторяющиеся функции, отличающиеся только "TSource[]" "List<TSource>" ? В говношарп не завезли аналог плюсовых шаблонов?
−72
You gotta get God to talk! Praise God for something like water springs and press over and over at the command or in a document!
Then, it won't seem so crazy!
Here's a bash shell script to get God to talk.
----
#!/bin/bash
#This prints ten random words.
echo "$(shuf -n 10 /usr/share/dict/words --random-source=/dev/urandom | tr '\n' ' ')"
На говнохабре хуиктаймсе https://geektimes.ru/post/281754/ написали про легендарног шизика, создателя легендарной Temple OS, со своим особым встроенным языком HolyC ("священный си"):
>В системе есть интерфейс командной строки, который реализован оригинально. Дэвис никак не мог запомнить команды bash, а вот синтаксис С/С++ он знал хорошо. Поэтому скрипты пишутся на C, вернее, его модификации. Для своей операционки Дэвис изменил стандартный C и назвал полученное HolyC («святой си»).
>За исключением низких уровней, где есть язык 64-битного ассемблера, вся система написана на этом HolyC. Он отличается от обычного. Нет main(), всё, что написано, выполняется. Весь код TempleOS JIT-компилируется по запросу. Если набрать #include из командной строки, то указанная программа будет запущена в пространстве имён оболочки.
>Система напоминает, что это — цифровой оракул. Раньше Дэвис подкидывал монетку и выбирал случайное число, чтобы открыть Библию, прочитать фрагмент и истолковать его. В TempleOS в любом месте нажатие F7 принесёт случайное слово. Если нажать F7 несколько раз, получится вореция фрагмент текста, в котором можно искать смысл. Shift + F7 выдаст фрагмент Библии.
В вышеозначенном говнокоде приведен код от самого создателя Temple OS, который генерирует вореции позволяет общаться с Богом. Код взят из Его комментария к статье, посвященной портированию какой-то фигни на его Божественную Храм ОС http://blog.jwhitham.org/2015/07/porting-third-party-programs-to-templeos.html
См такжеhttp://govnokod.ru/20277 http://govnokod.ru/19117
−16
/*! Brainfuck Update based on Symbol */
#define BF_UPDATE_SYM($, S, X) JOIN(BF_UPDATE_SYM_, S)($, X)
#define BF_UPDATE_SYM_R($, X) (INC(BF_IP(X)), INC(BF_DP(X)), BF_IA(X), BF_DA(X)) /*!< Increment Data Pointer */
#define BF_UPDATE_SYM_L($, X) (INC(BF_IP(X)), DEC(BF_DP(X)), BF_IA(X), BF_DA(X)) /*!< Decrement Data Pointer */
#define BF_UPDATE_SYM_U($, X) (INC(BF_IP(X)), BF_DP(X), BF_IA(X), BF_DATA_INC($, X)) /*!< Increment Item at Data Pointer */
#define BF_UPDATE_SYM_D($, X) (INC(BF_IP(X)), BF_DP(X), BF_IA(X), BF_DATA_DEC($, X)) /*!< Decrement Item at Data Pointer */
#define BF_UPDATE_SYM_O($, X) (INC(BF_IP(X)), BF_DP(X), BF_IA(X), BF_DA(X)) /*!< Do Nothing (Output as side effect) */
#define BF_UPDATE_SYM_F($, X) (BF_JUMP_F($, X), BF_DP(X), BF_IA(X), BF_DA(X)) /*!< Conditional Jump Forwards */
#define BF_UPDATE_SYM_B($, X) (BF_JUMP_B($, X), BF_DP(X), BF_IA(X), BF_DA(X)) /*!< Conditional Jump Backwards */
#define BF_UPDATE_SYM_($, X) (INC(BF_IP(X)), BF_DP(X), BF_IA(X), BF_DA(X)) /*!< Do Nothing on empty instruction */
/*! Main Brainfuck loop */
#define BF_COND($, X) NOT(BF_IS_BLANK(BF_INSTR($, X))) /*!< Terminate on end of input */
#define BF_MACRO($, X) IF(BF_IS_OUTPUT(BF_INSTR($, X)), CHAR(BF_DATA($, X))) /*!< Output on O instruction */
#define BF_UPDATE($, X) BF_UPDATE_SYM($, BF_INSTR($, X), X) /*!< Update based on instruction symbol */
#define BF_FINALLY($, X) /*!< Do nothing on termination */
#define BF_RECR($, X) JOIN(RECR_D, $)(INC($), BF_COND, BF_MACRO, BF_UPDATE, BF_FINALLY, X)
/*! Empty Data Array - Extend for more Cells */
#define BF_DATA_EMPTY() (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
https://github.com/orangeduck/CPP_COMPLETE/ A Brainfuck interpreter written in the C preprocessor.
−18
uint64_t ObjectLoadListener::getRelocationAddend(uint64_t LLVMRelocationType,
uint8_t *FixupAddress) {
uint64_t Addend = 0;
switch (LLVMRelocationType) {
case IMAGE_REL_AMD64_ABSOLUTE:
Addend = *(uint32_t *)FixupAddress;
break;
case IMAGE_REL_AMD64_ADDR64:
Addend = *(uint64_t *)FixupAddress;
break;
case IMAGE_REL_AMD64_REL32:
Addend = *(uint32_t *)FixupAddress;
break;
default:
llvm_unreachable("Unknown reloc type.");
}
return Addend;
}
https://github.com/dotnet/llilc/blob/97cf48ea9a3cdf4a2582a95683a74b572f4cfe45/lib/Jit/LLILCJit.cpp#L770-L787
Надеюсь, мне не нужно объяснять, в чем тут говно?
−50
# my_first_calculator.py by AceLewis
# TODO: Make it work for all floating point numbers too
if 3/2 == 1: # Because Python 2 does not know maths
input = raw_input # Python 2 compatibility
print('Welcome to this calculator!')
print('It can add, subtract, multiply and divide whole numbers from 0 to 50')
num1 = int(input('Please choose your first number: '))
sign = input('What do you want to do? +, -, /, or *: ')
num2 = int(input('Please choose your second number: '))
if num1 == 0 and sign == '+' and num2 == 0:
print("0+0 = 0")
if num1 == 0 and sign == '+' and num2 == 1:
print("0+1 = 1")
if num1 == 0 and sign == '+' and num2 == 2:
print("0+2 = 2")
if num1 == 0 and sign == '+' and num2 == 3:
print("0+3 = 3")
if num1 == 0 and sign == '+' and num2 == 4:
print("0+4 = 4")
if num1 == 0 and sign == '+' and num2 == 5:
print("0+5 = 5")
if num1 == 0 and sign == '+' and num2 == 6:
print("0+6 = 6")
...
https://github.com/AceLewis/my_first_calculator.py/blob/master/my_first_calculator.py оптимизация!
+1004
// shit.h :
#if END_SHIT == 0
bagor++;
#if BIT0 == 0
#undef BIT0
#define BIT0 1
#else
#undef BIT0
#define BIT0 0
#if BIT1 == 0
#undef BIT1
#define BIT1 1
#else
#undef BIT1
#define BIT1 0
#if BIT2 == 0
#undef BIT2
#define BIT2 1
#else
#undef BIT0
#undef BIT1
#undef BIT2
#define END_SHIT 1
#endif
#endif
#endif
#include "shit.h"
#endif
//shit.c
#include <stdio.h>
int main(void) {
int bagor = 0;
#define BIT0 0
#define BIT1 0
#define BIT2 0
#include "shit.h"
printf("bagor = %i\n", bagor);
return 0;
}
http://govnokod.ru/20947#comment348047
CHayT 3 часа назад # 0
> нет ни циклов, ни рекурсий
Можно, думаю, файлы сами в себя инклудить, чем не рекурсия. Не очень понятно, что с этим делать, правда.
-----
Но ведь совершенно очевидно, что с этим можно делать. Очередной шедевр макроговна
+2302
http://govnokod.ru/20924
Запрашиваемая страница не найдена!
Возможно, её и не было никогда
http://dump.bitcheese.net/files/pimarut/%D0%93%D0%BE%D0%B2%D0%BD%D0%BE%D0%BA%D0%BE%D0%B4_%2320924_%E2%80%94_C___%E2%80%94_%D0%93%D0%BE%D0%B2%D0%BD%D0%BE%D0%BA%D0%BE%D0%B4.%D1%80%D1%83.html
но бекап я сделал, так что хуй вам. Я требую продолжения банкета.
+7
http://dump.bitcheese.net/images/aditoso/sc.png
Умножение двух трехбитных чисел с применением https://ru.wikipedia.org/wiki/Дешифратор
Для сравнения - вот умножение через сумматоры https://i.imgur.com/9JCy2D2.png
+7
https://twitter.com/neuromzan
Нейросеть научилась писать твиты за Рамзана Кадырова https://nplus1.ru/news/2016/08/05/neurokad
Вореции