1. Си / Говнокод #22667

    0

    1. 1
    https://github.com/osdeverr/catnikita255/blob/master/cmd_interpreter.cpp

    barop, 25 Марта 2017

    Комментарии (8)
  2. Си / Говнокод #20958

    +1954

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    // 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
    > нет ни циклов, ни рекурсий

    Можно, думаю, файлы сами в себя инклудить, чем не рекурсия. Не очень понятно, что с этим делать, правда.

    -----

    Но ведь совершенно очевидно, что с этим можно делать. Очередной шедевр макроговна

    j123123, 25 Августа 2016

    Комментарии (44)
  3. Си / Говнокод #20900

    +1999

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    unsigned int get_spoofed() {
        char spa[21];
        int a, b, c, d;
    
        srand(time(0));
    
        random_ct = rand();
        random_num = ((random_ct % 254) + 1);
        a = random_num;
    
        random_ct = rand();
        random_num = ((random_ct % 254) + 1);
        b = random_num;
    
        random_ct = rand();
        random_num = ((random_ct % 254) + 1);
        c = random_num;
    
        random_ct = rand();
        random_num = ((random_ct % 254) + 1);
        d = random_num;
    
        snprintf(spa, sizeof(spa), "%d.%d.%d.%d", a, b, c, d);
    
        return ((unsigned int)host2ip(spa));
    }

    Ддосбот для роутеров https://github.com/eurialo/lightaidra/blob/master/source/utils.c

    nyaknyan, 20 Августа 2016

    Комментарии (43)
  4. Си / Говнокод #20860

    +262

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    #define e if
    #define h while
    #define s return
    #define v NULL
    #define r else
    #define u case
    #define C switch
    #define D for
    #define L0 typedef
    #define L int
    L0 char S;L0 S*Z;L0 Z*U;L0 double N;
    L0 struct Q{L Z;union{N b;S c;}M;struct Q*w;struct Q*q;}Q;
    Q*K(L w){Q*n=(Q*)malloc(sizeof(Q));e(v==n)exit(1);n->Z=w;s n;}
    void A(Z g,U t){h(' '==*g)g++;*t=g;}
    Q*V(Z g,U t){Q*n=K(2);n->M.b=strtod(g,t);s n;}
    Q*I(Z g,U t){e('+'!=*g)s v;Q*n=K(1);n->M.c='+';++*t;s n;}
    Q*W(Z g,U t){e('x'!=*g)s v;Q*n=K(20);g++;e(*g<'0'||*g>'9'){n->M.b=1;*t=g;}r{n->M.b=strtod(g,t);e(*t==g)n->M.b=1;}s n;}
    Q*J(Z g,U t){Q*n,*p=v;h(*g){A(g,&g);Q*l=V(g,&g);A(g,&g);Q*m=W(g,&g);Q*o;e(v==m)o=l;r{o=K(1);o->M.c='*';o->w=l;o->q=m;}e(v==p)n=o;r{p->w=n;p->q=o;n=p;}A(g,&g);p=I(g,&g);e(v==p){*t=g;s n;}}}
    Q**E(Z g){L n=1,i;Z t=g;h(*t){e(';'==*t)n++;t++;}Q**R=(Q**)malloc((n+1)*sizeof(Q*));e(v==R)s v;D(i=0;i<n;++i){R[i]=J(g,&g);e(*g!=';'&&*g!=0)s v;e(v==R[i])s v;g++;}R[n]=v;s R;}
    N P(Q*I,N a){C(I->Z){u 1:C(I->M.c){u '+':s P(I->w,a)+P(I->q,a);u '*':s P(I->w,a)*P(I->q,a);u '/':s P(I->w,a)/P(I->q,a);u '-':s P(I->w,a)-P(I->q,a);}u 2:s I->M.b;u 20:s pow(a,I->M.b);}}
    N O(Q*I){N x=0,y=1,z=2,Z=P(I,x),X=P(I, y),H=P(I,z),j=1e-10;L i;D(i=0;i<100&&fabs(z-y)>j&&fabs(x-y)>j&&fabs(X)>j;i++){e(Z*X<0){z=y;H=X;}r e(H*X<0){x=y;Z=X;}r{N d=z-x;x=x-d;z=z+d;Z=P(I,x);X=P(I,y);}y=(z+x)/2;X=P(I,y);}s y;}
    Z B(Q**A){L n=0,i,j,d=0;D(;A[n]!=v;n++);Z M=(Z)malloc(n*10+1);e(v==M)s v;D(i=0;A[i]!=v;i++)D(j=0;j<10;j++){
      M[i*10+j-d]=(S)fmod(12.51*O(A[i])+j*17,256);
    e(!M[i*10+j-d])d++;}M[n*10-d]=0;s M;}
    L T(Z g,Z M){Z k=M;h(*g){*g++^=*k++;e(!*k)k=M;}s(0);}
    L main(void){
        Q**n=E("2.0x5+6.2x2+7;0.3x6.1+6x5+1");
        L i;
        Z k=B(n);
        S w[]={-91,-35,97,113,89,37,113,32,28,-10,124,67,93,32,123,70,63,-19,-71,-123,-114,45,109,64,96,57,13,7,-91,0};
        T(w,k);
        printf("%s\n",w);
    }

    Nastenka1998, 19 Августа 2016

    Комментарии (27)
  5. Си / Говнокод #20703

    +261

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    /* load config */
            for (i = 0; ; i++) {
                    conf[0] = '\0';
                    switch (i) {
                    case 0:
                            /* ~ */
                            snprintf(conf, sizeof conf, "%s/.%s",
                                pwd->pw_dir, SWM_CONF_FILE);
                            break;
                    case 1:
                            /* global */
                            snprintf(conf, sizeof conf, "/etc/%s",
                                SWM_CONF_FILE);
                            break;
                    case 2:
                            /* ~ compat */
                            snprintf(conf, sizeof conf, "%s/.%s",
                                pwd->pw_dir, SWM_CONF_FILE_OLD);
                            break;
                    case 3:
                            /* global compat */
                            snprintf(conf, sizeof conf, "/etc/%s",
                                SWM_CONF_FILE_OLD);
                            break;
                    default:
                            goto noconfig;
                    }
    
                    if (strlen(conf) && stat(conf, &sb) != -1)
                            if (S_ISREG(sb.st_mode)) {
                                    cfile = conf;
                                    break;
                            }
            }

    Вот так spectrwm грузит конфиги.

    codemonkey, 15 Августа 2016

    Комментарии (4)
  6. Си / Говнокод #20702

    +272

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    #include <math.h>
    #include <stdio.h>
    
    double  DoubleToTheInt(double base, int power) {
        return pow(base, power);
    }
    
    int main() {
        // приводим к указателю на функуцию с обратным порядком аргументов
        double (*IntPowerOfDouble)(int, double) =
            (double (*)(int, double))&DoubleToTheInt;
    
        printf("(0.99)^100: %lf \n", DoubleToTheInt(0.99, 100));
        printf("(0.99)^100: %lf \n", IntPowerOfDouble(100, 0.99));
    }

    "Изящный способ отстрелить себе ногу по самую голову."
    Утащено с Хабры.

    Vindicar, 15 Августа 2016

    Комментарии (71)
  7. Си / Говнокод #19293

    +5

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    static char example(struct pt *pt)
    {
      switch(pt->lc) { case 0:
      while(1)
      {
        pt->lc = 11; case 11: if(!(counter == 1000)) return 0;
        printf("Threshold reached\n");
        counter = 0;
      }
      } pt->lc = 0; return 2;
    }

    Прототреды

    govnokod3r, 12 Января 2016

    Комментарии (39)
  8. Си / Говнокод #19280

    −1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    // Add a UPnP port
    bool Win32UPnPAddPort(UINT outside_port, UINT inside_port, bool udp, char *local_ip, wchar_t *description, bool remove_before_add)
    {
    	bool ret = false;
    	HRESULT hr;
    	IUPnPNAT *nat = NULL;
    	wchar_t ip_str[MAX_SIZE];
    	BSTR bstr_ip, bstr_description, bstr_protocol;
    	wchar_t *protocol_str = (udp ? L"UDP" : L"TCP");
    	// Validate arguments
    	if (outside_port == 0 || outside_port >= 65536 || inside_port == 0 || inside_port >= 65536 ||
    		IsEmptyStr(local_ip) || UniIsEmptyStr(description))
    	{
    		return false;
    	}
    
    	StrToUni(ip_str, sizeof(ip_str), local_ip);
    	bstr_ip = SysAllocString(ip_str);
    	bstr_description = SysAllocString(description);
    	bstr_protocol = SysAllocString(protocol_str);
    
    	hr = CoCreateInstance(CLSID_UPnPNAT, NULL, CLSCTX_INPROC_SERVER, IID_IUPnPNAT, (void **)&nat);
    
    	if (SUCCEEDED(hr))
    	{
    		if (nat != NULL)
    		{
    			IStaticPortMappingCollection *collection = NULL;
    			hr = nat->get_StaticPortMappingCollection(&collection);
    
    			if (SUCCEEDED(hr))
    			{
    				if (collection != NULL)
    				{
    					IStaticPortMapping *mapping = NULL;
    
    					if (remove_before_add)
    					{
    						hr = collection->Remove((long)outside_port, bstr_protocol);
    					}
    
    					hr = collection->Add((long)outside_port, bstr_protocol, (long)inside_port,
    						bstr_ip, VARIANT_TRUE, bstr_description, &mapping);
    
    					if (SUCCEEDED(hr))
    					{
    						ret = true;
    
    						if (mapping != NULL)
    						{
    							mapping->Release();
    						}
    					}
    
    					collection->Release();
    				}
    				else
    				{
    					WHERE;
    				}
    			}
    			else
    			{
    				WHERE;
    			}
    
    			nat->Release();
    		}
    		else
    		{
    			WHERE;
    		}
    	}
    	else
    	{
    		WHERE;
    	}
    
    	SysFreeString(bstr_ip);
    	SysFreeString(bstr_description);
    	SysFreeString(bstr_protocol);
    
    	return ret;
    }

    Отсюда https://github.com/SoftEtherVPN/SoftEtherVPN/blob/master/src/Cedar/Win32Com.cpp#L157
    Там еще много такого. https://github.com/SoftEtherVPN/SoftEtherVPN/blob/master/src/Cedar/Win32Com.cpp#L963 вот например тоже забавная хрень. Нашел эту штуку по ссылке с говнохабра http://habrahabr.ru/post/208782/

    j123123, 04 Января 2016

    Комментарии (9)
  9. Си / Говнокод #19271

    +3

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    //------------------
    #define _rayaNumberToString(number, TNumber) \
    rayaInt32 digitsCount = 0, strSize; \
    TNumber digitsCountNum = RAYA_ABS(number); \
    while(digitsCountNum > 0){ digitsCount++; digitsCountNum/=10; }; \
    \
    strSize = digitsCount + (number<=0); \
    rayaString str = {malloc(sizeof(rayaCharCode)*strSize+1), strSize}; \
    str.chars[str.size]='\0'; \
    if(number < 0) str.chars[0]='-'; \
    if(number == 0) str.chars[0]='0'; \
    \
    rayaInt32 start = str.size-digitsCount; \
    rayaInt64 numberX = RAYA_ABS(number); \
    for(int i=str.size-1; i >= start; i--) { \
    str.chars[i] = '0' + RAYA_ABS(numberX-((numberX/10)*10)); \
    numberX /= 10; \
    }; \
    return str; \
    
    rayaString _rayaRemoveExcessZeroes(rayaString str) {
    
    int newStart = 0;
    int indexStart = (str.chars[0]=='-' || str.chars[0]=='+');
    for(int i = indexStart; i < str.size; i++) {
    if(str.chars[i] != '0'){ newStart = i; break; }
    }
    
    rayaInt32 newSize = str.size - newStart;
    rayaString newStr ;
    newStr.chars = malloc( sizeof(rayaCharCode)*(newSize+1) );
    newStr.size = newSize;
    newStr.chars[newSize] = '\0';
    
    int newIndex = 0;
    for(int i = newStart; i < str.size; i++) {
    newStr.chars[i-newStart] = str.chars[i];
    newIndex++;
    }
    return newStr;
    };
    
    rayaString _rayaIntToString(rayaInt64 num) {
    _rayaNumberToString(num,rayaInt64);
    };

    d_fomenok, 29 Декабря 2015

    Комментарии (3)
  10. Си / Говнокод #19263

    +7

    1. 1
    github.com/BPS-projects/os

    Операционная система наркозависимого 11-летнего.

    d_fomenok, 28 Декабря 2015

    Комментарии (211)