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

    +129

    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
    #include <intrin.h>
    #include <stdarg.h>
    #include <stdio.h>
    int func()
    {
    va_list vl;
    int i;
    int arg,Z=1;
    va_start(vl,*(int *)_AddressOfReturnAddress());
    for(i=0;i<5;i++)
        {
             arg=va_arg(vl,int);    
             Z=arg*Z;
        }
     return(Z);
    }
    
    int main(void)
    {
    printf("%d",func(1,2,3,4,5));
    getchar();
    return 0;
    }

    гуру-вычисление факториала пяти одного красавчика с форума wasm.ru... был выведен, как пример функции с переменным числом параметров без единого явного параметра... грязный хак с адресом возврата на стеке - моя идея)))

    ReL, 07 Февраля 2011

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

    +146

    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
    # include <stdio.h>
    # include <math.h>
    # include <conio.h>
    main() {
    int i,n;
    float y[12],a[12],b[12],c[12],d[12],e[12];
    clrscr();
    for (i=1;i<13;i++) {
    printf ("y[%d]= ",i);
    scanf ("%f",&y[i]); }
    //========================================//
    a[1]=y[2]-y[1];a[2]=y[3]-y[2];a[3]=y[4]-y[3];a[4]=y[5]-y[4];
    a[6]=y[7]-y[6];a[7]=y[8]-y[7];a[8]=y[9]-y[8];a[9]=y[10]-y[9];
    a[10]=y[11]-y[10];a[11]=y[12]-y[11];a[12]=0;
    b[1]=a[2]-a[1];b[2]=a[3]-a[2];b[3]=a[4]-a[3];b[4]=a[5]-a[4];
    b[6]=a[7]-a[6];b[7]=a[8]-a[7];b[8]=a[9]-a[8];b[9]=a[10]-a[9];
    b[10]=a[11]-a[10];b[11]=0;b[12]=0;
    c[1]=b[2]-b[1];c[2]=b[3]-b[2];c[3]=b[4]-b[3];c[4]=b[5]-b[4];
    c[6]=b[7]-b[6];c[7]=b[8]-b[7];c[8]=b[9]-b[8];c[9]=b[10]-b[9];
    c[10]=0;c[11]=0;c[12]=0;
    d[1]=c[2]-c[1];d[2]=c[3]-c[1];d[3]=c[4]-c[3];d[4]=c[5]-c[4];
    d[6]=c[7]-c[6];d[7]=c[8]-c[7];d[8]=c[9]-c[8];d[9]=0;d[10]=0;d[11]=0;d[12]=0;
    e[1]=d[2]-d[1];e[2]=d[3]-d[2];e[3]=d[4]-d[3];e[4]=d[5]-d[4];
    e[6]=d[7]-d[6];e[7]=d[8]-d[7];e[8]=0;e[9]=0;e[10]=0;e[11]=0;e[12]=0;
    printf ("Y\t\tY\t\tY2\t\tY3\t\tY4\n%f\t%f\t%f\t%f\t%f\n%f\t%f\t%f\t%f\t%f\n%f\t%f\t%f\t%f\t%f\n%f\t%f\t%f\t%f\t%f\n%f\t%f\t%f\t%f\t%f\n%f\t%f\t%f\t%f\t%f\n%f\t%f\t%f\t%f\t%f\n%f\t%f\t%f\t%f\t%f\n%f\t%f\t%f\t%f\t%f\n%f\t%f\t%f\t%f\t%f\n%f\t%f\t%f\t%f\t%f\n%f\t%f\t%f\t%f\t%f\n",y[1],a[1],b[1],c[1],d[1],y[2],a[2],b[2],c[2],d[2],y[3],a[3],b[3],c[3],d[3],y[4],a[4],b[4],c[4],d[4],y[5],a[5],b[5],c[5],d[5],y[6],a[6],b[6],c[6],d[6],y[7],a[7],b[7],c[7],d[7],y[8],a[8],b[8],c[8],d[8],y[9],a[9],b[9],c[9],d[9],y[10],a[10],b[10],c[10],d[10],y[11],a[11],b[11],c[11],d[11],y[12],a[12],b[12],c[12],d[12]);
    
    getche();
    }

    Работа с массивами.

    Proger, 06 Февраля 2011

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

    +146

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    // Borland C++ - (C) Copyright 1991, 1992 by Borland International
    
    /*	HELLO.C -- Hello, world */
    
    #include <stdio.h>
    
    int main()
    {
    	printf("Hello, world\n");
    	return 0;
    }

    Копирайт, однако !

    Proger, 06 Февраля 2011

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

    +140

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    DWORD H = 0;int i = 0;int S = 1;
    for (i = lstrlen(Stroka)-1; i!= -1; i--)
    {
    H = (H+Stroka[i]*S) % 65535;
    S*=4;
    }
    return H == 0? 65535: H;

    какой-то кустарный хэш.
    не пойму чем пахнет.

    bugmenot, 02 Февраля 2011

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

    +126

    1. 1
    #define sqr(o) ((o)*(o))

    zagzag, 31 Января 2011

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

    +137

    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
    if (c>=0xC0)
                    {c=LCD_Chars[c-0xC0];}
            else
            {
                    if (c==0xA8)
                            {c=0xA2;}
                    else
                            if (c==0xB8)
                                    {c=0xB5;}
                            else
                                    if (c==0xB0)
                                            {c=0xDF;}
            }

    qbasic, 31 Января 2011

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

    +126

    1. 1
    2. 2
    3. 3
    4. 4
    int main() {
        long long A = 44903392596LL;
        printf((char *)&A);
    }

    Выводим текст.

    danilissimus, 31 Января 2011

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

    +144

    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
    static struct hostent *hostd;
    
    int getLocalIP(unsigned long *ip) {
        if ((hostd = gethostbyname("")) == NULL) {
            *ip = -1;
            return -1;
        } else {
            *ip = *(u_long *) hostd->h_addr_list[0];
            return 0;
        }
    }
    
    unsigned long getLocalIPRedneckStyle() {
        unsigned long *ip;
    
        if (getLocalIP(ip)) {
            return -1;
        } else {
            return *ip;
        }
    }

    danilissimus, 29 Января 2011

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

    +137

    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
    #include <stdio.h>
    #include <math.h>
    
    int main()
    {
        double i = 9;
        i = fabs( i/2 );
        while ( --i > 0 );
        printf("\n %f \n", i);
        if ( i == 0 )
            printf ("1\n");
        else if ( i == -0.5 )
            printf ("2\n");
        else
            printf ("3\n");
    }

    "Как определить четность числа типа real (т.е., нецелочисленный тип), без приведения к целому типу и использования остатка целочисленного деления?" Поржав над вопросом, выдавил из себя такое

    rat4, 27 Января 2011

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

    +144

    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
    b1=100+(int)(255.0*rand()/(RAND_MAX+100.0));
    b2=100+(int)(255.0*rand()/(RAND_MAX+100.0));
    b3=100+(int)(255.0*rand()/(RAND_MAX+100.0));
    b4=100+(int)(255.0*rand()/(RAND_MAX+100.0)); if(b1>255)
    sprintf(b1s,"%d",b1);
    sprintf(b2s,"%d",b2);
    sprintf(b3s,"%d",b3);
    sprintf(b4s,"%d",b4);
    strcat(b1s,".");
    strcat(b2s,".");
    strcat(b3s,".");
    strcat(b1s,b2s);
    strcat(b1s,b3s);
    strcat(b1s,b4s);
    iph->ip_src.s_addr = inet_addr (b1s);

    Some firewalls, such as ZoneAlarm Pro, detect SYN Flood and block the source IP address (see Figure 1). So we need to assign our spoofed source IP address a random number as shown below:

    http://linux.sys-con.com/node/34589

    вот какой шедевр откопал

    danilissimus, 26 Января 2011

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