1. C++ / Говнокод #15970

    +13

    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
    #include <iostream>
    
    using namespace std;
    
    class Foo
    {
    public:
    	void foo()
    	{
    		cout << "Destruct" << endl;
    	}
    };
    
    int main() 
    {
    	void (Foo::*func)() = &Foo::foo;
    	void *adress = (void*&)func;
    	void (*new_func)(Foo*) = (void (*)(Foo*))adress;
    	Foo obj;
    	new_func(&obj);
    }

    Юный падаван постигает силу void-указателей.

    west_coast_coders, 13 Мая 2014

    Комментарии (7)
  2. JavaScript / Говнокод #15969

    +157

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    function test(x) {
        function undefined(x) { throw "Missing in action"; }
        switch (x) {
        case 1: console.log("X reporting for duty!"); break;
        case undefined(x): break;
        }
    }

    Переделка длинного и скучного кода, но смысл остался.

    wvxvw, 13 Мая 2014

    Комментарии (6)
  3. PHP / Говнокод #15968

    +151

    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
    <?
    						$arPrimary = array();
    						if(!empty($item['IB_ELEMENT']['PROPERTIES']['MANUFACTURER']['VALUE'])){
    							$arPrimary['ПРОИЗВОДИТЕЛЬ'] = $item['IB_ELEMENT']['PROPERTIES']['MANUFACTURER']['VALUE'];
    						}
    						if(!empty($item['IB_ELEMENT']['PROPERTIES']['MATERIAL']['VALUE'])){
    							$arPrimary['ПРОИЗВОДИТЕЛЬ'] = $item['IB_ELEMENT']['PROPERTIES']['MATERIAL']['VALUE'];
    						}
    						
    						if(!empty($arPrimary)):
    							$c = count($arPrimary); $i = 1;
    						?>
    							<ul class="primary">
    								<?foreach($arPrimary as $k => $v):
    									$last = false;
    									if($i == $c){
    										$last = true;
    									}
    								?>
    									<li<?if($last):?> class="last"<?endif;?>>
    										<span class="label"><?=$k?>:</span>
    										<?=$v?>
    									</li>
    								<?
    								$i++;
    								endforeach;?>
    							</ul>
    						<?endif;?>

    Bitrix же!

    TBoolean, 13 Мая 2014

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

    +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
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    #include <stdio.h>
    #include <stdint.h>
    
    #define ARR_L 11
    #define INS_P (arr[0])
    #define MOD_L(a) ((a) % ARR_L)
    #define INS_P_M (MOD_L(INS_P))
    #define ARR_ACS(a) (arr[MOD_L(a)]) //access to arr
    
    
    void foo (uint8_t *arr)
    {
      ARR_ACS(3) = INS_P * ARR_ACS(INS_P);
      ARR_ACS( MOD_L( INS_P_M + 1 ) ) = ((INS_P * INS_P) * 2);
      if (INS_P != 0) {ARR_ACS(INS_P_M)++;};
      INS_P = INS_P_M + 1;
    
      // tut voobche lubaya fignya, kotoraya chtoby izmenyala
      // figny v massive v zavisimosti ot sostoyania massiva
    }
    
    int main(void) {
      uint8_t arr[ARR_L] = {0,2,6,3,2,62,7,113,0,26,13};
      for (size_t a = 0; a < 10000; a++)
      {
        foo(arr);
        printf 
        (
          "%.3u %.3u %.3u %.3u %.3u "
          "%.3u %.3u %.3u %.3u %.3u %.3u\n",
          INS_P,arr[1],arr[2],arr[3],arr[4],
          arr[5],arr[6],arr[7],arr[8],arr[9],arr[10]);
      }
      return 0;
    }

    Машина Тьюринга с лентой конечной длины - конечный автомат. Состояние обязательно зациклится, какие бы правила преобразования над конечным алфавитом мы не вводили и каким бы ни было начальное состояние ленты.

    В сишке есть возможности вменяемо сделать вывод чисел из массива подряд для N-ного количества аргументов?
    Цикл не предлагать

    j123123, 12 Мая 2014

    Комментарии (52)
  5. PHP / Говнокод #15966

    +157

    1. 1
    2. 2
    3. 3
    4. 4
    function crc32_file($file) {
       $version = sprintf("%u",crc32(file_get_contents(Yii::app()->getBaseUrl(true).$file)));
       return Yii::app()>request>baseUrl.$file.'?version='.$version;
    }

    Искали почему сайт тормозит

    slava1, 12 Мая 2014

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

    +131

    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
    key_t cXxxYyyyZzz::getKey( char *pValue )
    {
      key_t key=INVALID_SEMKEY;
    
      if ( !pValue ) return key;
    
      for(int i=0; (char)0 != pValue[i]; ++i )
      {
        if ( 1==i && 'x' == tolower(pValue[1]) && '0' == pValue[0] )
          continue;
        if ( !isxdigit(pValue[i]) )
          return key;
      }
      return strtoul(pValue,(char**)0,16);
    }

    немецкий велосипед.

    Dummy00001, 12 Мая 2014

    Комментарии (0)
  7. C++ / Говнокод #15964

    +13

    1. 1
    2. 2
    BOOST_PP_REPEAT(AMOUNT_OF_EMPLACE_CONSTRUCTOR_PARAMETER, GENERATE_EMPLACE_BACK, BOOST_PP_EMPTY()) 
    //Если видишь access violation, то это просто сработали ассерты. Вынеси их в отдельные функции для удобства отладки (см GENERATE_EMPLACE_BACK). Мне пока не понадобилось, а сейчас это делать лениво.

    laMer007, 12 Мая 2014

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

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    $useragent=$_SERVER['HTTP_USER_AGENT'];
     
    if(preg_match('/android|avantgo|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)/|plucker|pocket|psp|symbian|treo|up.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i',$useragent)||preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|/(k|l|u)|50|54|e-|e/|-[a-w])|libw|lynx|m1-w|m3ga|m50/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(-|2|g)|yas-|your|zeto|zte-/i',substr($useragent,0,4))) {
            header("Location: http://mywebsite.com/mobile"); }
    else{
            header("Location: http://mywebsite.com/des");
    }

    Враг не пройдет

    kostoprav, 12 Мая 2014

    Комментарии (21)
  9. JavaScript / Говнокод #15962

    +160

    1. 1
    elem.innerPHP

    Интересно, почему же не работает?..

    AjiTae, 12 Мая 2014

    Комментарии (17)
  10. PHP / Говнокод #15960

    +156

    1. 1
    http://json-gk.url.ph/jsongk.zip

    Отдает страницы говнокодика в json. Параметры те же, что и у говнокодика
    http://json-gk.url.ph/cpp старшая страница c++
    http://json-gk.url.ph/?page=1138 1138 страница для гостя.

    Vasiliy, 11 Мая 2014

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