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

    +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
    copy(v) char *v; {	/* copy ctokn to v */
    	char *p;
    
    	p=ctokn;
    	while( *v++ = *p++ );
    	}
    
    compare(v) char *v; {	/* compare ctokn with v */
    	char *p;
    
    	for( p=ctokn; ; ++p ){
    		if( *p != *v++ ) return( 0 );
    		if( *p == 0 ) return(1);
    		}
    	}
    
    int *yalloc(n){ /* allocate n+1 words from vector mem */
    	int *omem;
    	omem = mem;
    	mem =+ n+1;
    	if(mem-mem0 >= memsiz) error("memory overflow");
    	return(omem);
    	}
    
    aryfil( v, n, c ) int *v,n,c; { /* set elements 0 through n-1 to c */
      int i;
      for( i=0; i<n; ++i ) v[i] = c;
      }
    
    union( a, b, c ) int *a, *b, *c; {
      /* set a to the union of b and c */
      /* a may equal b */
      /* return 1 if c is not a subset of b, 0 otherwise */
    
      _REGISTER int i, x, sub;
    
      sub = 0;
      for( i=0; i<tbitset; ++i ){
        x = b[i] | c[i];
        if( x != b[i] ) sub=1;
        a[i] = x;
        }
      return( sub );
      }
    
    prlook( pp ) int *pp;{
    	int j;
    	pp = pp->lset;
    	if( pp == 0 ) printf("\tNULL");
    	else {
    		printf(" { " );
    		for( j=1; j<=nterms; ++j ){
    			if( (pp[j>>4]>>(j&017) )&01 != 0 ) printf( "%s ", symnam(j) );
    			}
    		printf( "}" );
    		}
    	}

    https://github.com/eunuchs/unix-archive/blob/master/PDP-11/Trees/V6/usr/source/yacc/source/y1.c

    https://www.tuhs.org//Archive/Distributions/Research/Dennis_v6/v6src.tar.gz

    Для любителей обмазываться несвежим сишкокодом. Research Unix

    Запостил: j123123, 28 Июля 2018

    Комментарии (15) RSS

    • Переведи на "PHP". На "C" в наше время уже никто не программирует.
      Ответить
      • Перепиши ядро Linux на "PHP", тогда подумаю
        Ответить
        • Я написал "в наше время". Когда было написано ядрышко "Linux" и в каком времени мы находимся сейчас?
          Ответить
        • Загружаешь линукс, а там

          Undefined variable "$razmer" on /var/www/p/petja/site/linuks/index.php:8263
          Ответить
      • Кстати, вот почему б не переписать сам PHP на PHP, раз PHP это так круто? PyPy есть уже, давай PHPHP запиливай
        Ответить
    • Я как-то видел код первых юниксов на сях. Было очень смешно, и сразу чувствовалось что структурное программирование еще не пришло
      Ответить
      • Си моложе структурного программирования, но Ричи, похоже, достался лишь обрывок статьи Дейкстры.
        Ответить
    • if( foutput<0 ) system( "./yopt -r" );

      cp = "/usr/yacc/yopti";

      - russkiye hakery
      Ответить
    • >mem =+ n+1;
      Унарный плюс, в чем смысл?
      Ответить
      • Если не ошибаюсь "=+" в стародавние времена было вместо "+=", но потом исправили, чтобы было меньше неоднозначностей.
        Ответить
    • > union( a, b, c ) int *a, *b, *c; {
      Хуясе, union тогда тоже не было?
      Ответить
    • Бля:
      for( p=ctokn; ; ++p ){
      		if( *p != *v++ ) return( 0 );
      		if( *p == 0 ) return(1);
      		}
      Для кого придумали условие в цикле? Почему его не использовали?
      for(p = ctokn; *p; ++p, ++v)
          if(*p != *v) return 0;
      return 1;
      И что, тогда у ретурнов скопке быле обязательны?
      Ответить
      • Не были они никогда обязетльны, это просто дурная привычка осталась у чуваков, которые писали

        return (42 * i)
        Ответить
    • А я люблю обмазываться несвежим K&R C и дрочить.
      Ответить
    • >>if( (pp[j>>4]>>(j&017) )&01 != 0 )
      как что-то плохое. Вон, Вконтакте до сих пор так пишут
      Ответить

    Добавить комментарий