Учю C =)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by nix, 1 Jul 2006.

  1. qBiN

    qBiN Вот такой вот я :(

    Joined:
    20 Jan 2005
    Messages:
    834
    Likes Received:
    73
    Reputations:
    33
    По мойму return; можно не указывать тип main нельзя.
    Стандарт поддерживает мало компиляторов,почитайте Криса Касперски он говорил который ближе к стандарту...
     
  2. nc.STRIEM

    nc.STRIEM Members of Antichat

    Joined:
    5 Apr 2006
    Messages:
    1,036
    Likes Received:
    347
    Reputations:
    292
    Ниче не понял из того что ты сказал)))
    Вобще в C можно не указывать твз а вот идеология С++ этого требует! и под майкрософтом 6 это будет ошибкой!
     
  3. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    нельзя. Выдержка из стандартов на предыдущей странице.
     
  4. Deem3n®

    Deem3n® RTFMSDN

    Joined:
    19 Sep 2005
    Messages:
    378
    Likes Received:
    153
    Reputations:
    164
    Самое интересное то что я не упоминал о стандартах, а о хорошем стиле программирования.
    Я всегда писал и буду писать main() без int до тех пор пока компилятор не будет выдавать предупреждение или ошибку потому что в многих компиляторах
     
  5. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    разве нарушения синтаксиса языка может являться хорошим стилем?

    ответь на этот вопрос.
     
  6. Deem3n®

    Deem3n® RTFMSDN

    Joined:
    19 Sep 2005
    Messages:
    378
    Likes Received:
    153
    Reputations:
    164
    Отвечу вопросом на вопрос.
    Разве эти компиляторы можно считать С компиляторами?
     
  7. sn0w

    sn0w Статус пользователя:

    Joined:
    26 Jul 2005
    Messages:
    1,023
    Likes Received:
    1,311
    Reputations:
    327
    хороший стиль, это когда код спокойно читается, а не выглядит продуктом обфускатора.
     
  8. Rabid Rabbit

    Rabid Rabbit Elder - Старейшина

    Joined:
    31 Aug 2003
    Messages:
    161
    Likes Received:
    15
    Reputations:
    -9
    Короче попытаюсь рассудить пока до мордобоя не дошло=)
    "считается хорошим стилем программирования" - где и кем считается? возможно в других местах и другими людьми считается "хорошим стилем программирование" как раз обратное?
    Это не ошибка также с точки зрения борланд Си, ватком Си да и куче других, так что ни микрософт ни висуал студия тут никаким боком.
    а вот тут вы все неправы. тип возвращаемого значения зависит от интерпретации: это может быть char, short, int и даже long (знаковые или без - как хотите) если нужно. применительно же к консольным приложениям и функции main() в частности - это всего-навсего char. А в общем смысле - все что на выходе функции находится в регистре eax/ax/al (иногда компиляторы используют пару dx:ax/edx:eax если нужно вернуть б`ольшее значение) - и есть возвращаемое значение функции.

    Ну все, хватит об этом, ато все вцепились в мэин и даже никто не заметил что:
    PHP:
    printf("\n Number of ounces "ounces);
    а также что
    PHP:
    int o_to_c (int ounces1)
    {
    int cup1;
    if (
    ounces1)
    {
    if (!(
    ounces1 8))
    cup1 ounces1 8;
    else
    cup1 ounces1 1;
    }
    else
    cup1 0;
    return (
    cup1);
    можно записать попроще:
    PHP:
    int o_to_c (int ounces1){
        
    int cup1=ounces1>>3;
        if (
    ounces1&7cup1++;
        return 
    cup1;

     
  9. da_ff

    da_ff Elder - Старейшина

    Joined:
    11 Jul 2006
    Messages:
    118
    Likes Received:
    22
    Reputations:
    26
    Емли уж такая херня со стилем пошла еще от себя могу добавить:
    cup1 = !(ounces1 % 8) ? ouncess1>>3 : ounces1 >>3 + 1;

    А что касается main то если компилятор сьел отсутствие типа то это не ошибка всеравно в eax запишется integer и программа никак не упадет из-за этого.
     
  10. Rabid Rabbit

    Rabid Rabbit Elder - Старейшина

    Joined:
    31 Aug 2003
    Messages:
    161
    Likes Received:
    15
    Reputations:
    -9
    da_ff, дружочек, % - это деление а & - побитовый AND с маской. как ты думаешь что работает быстрее? И еще скобочки забыл, да: (ounces1 >>3) + 1; ?
     
  11. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    Пох что работает быстрей, т.к. понятность намного важнее, чем скорость работы.
     
  12. da_ff

    da_ff Elder - Старейшина

    Joined:
    11 Jul 2006
    Messages:
    118
    Likes Received:
    22
    Reputations:
    26
    Для временно незрячих: написано СТИЛЬ, а не СКОРОСТЬ, а так согласен, однако глупая тема для спора.
     
    1 person likes this.
  13. Rabid Rabbit

    Rabid Rabbit Elder - Старейшина

    Joined:
    31 Aug 2003
    Messages:
    161
    Likes Received:
    15
    Reputations:
    -9
    Ну блин, какой такой стиль? В этом сезоне весна-лето принято програмить вот так-то и так-то. А тот кто програмит не так - немодный пацан? =) Програмить нужно практично. т.е. какой вообще смысл использовать % по модулю степени двойки, если можно записать оптимальнее? А тот для кого это недостаточно наглядно может идти доучиваться дальше. Если я один чегото там пишу то я пишу прежде все так как мне удобней чтобы легко разбираться самому в своем же коде. А если мы пишем в группе, или исходный текст планируется сделать общедоступным, - тогда можно воспользоваться венгерской нотацией, структурным, процедурным, логическим или объектно-ориентировочным подходом.

    ЗЫ. Вы же сами себе противоречите: почему тогда >>3 а не /8 ? =)
     
    #33 Rabid Rabbit, 13 Jul 2006
    Last edited: 13 Jul 2006
  14. da_ff

    da_ff Elder - Старейшина

    Joined:
    11 Jul 2006
    Messages:
    118
    Likes Received:
    22
    Reputations:
    26
    Ну епте яж уже согласился, так продуктивнее, под стилем я имел ввиду конструкцию замещающую if(){}else{}.
    И еще порабы закончить тему, за ненадобностью.