вопрос по обявлению переменных

Тема в разделе "LANGS.C", создана пользователем axe_roma, 15 фев 2008.

  1. axe_roma

    axe_roma New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2004
    Сообщения:
    93
    Адрес:
    Russia
    Объясните почему в книге написано по С что переменные можно объявлять вот так
    Код (Text):
    1.  for(int i = 1; i<10; ++i);
    но компилятор ругается на это, (пишу под GDB)
     
  2. t00x

    t00x New Member

    Публикаций:
    0
    Регистрация:
    15 фев 2007
    Сообщения:
    1.921
    ругается на объявление переменной в заголовке цикла, видимо компилятор по умолчанию поддерживает стандарт C99.
    GDB в качестве компилятора? )
     
  3. axe_roma

    axe_roma New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2004
    Сообщения:
    93
    Адрес:
    Russia
    да. И че сделать нужно?
     
  4. t00x

    t00x New Member

    Публикаций:
    0
    Регистрация:
    15 фев 2007
    Сообщения:
    1.921
    чтобы откомпилировать? объявить int i; до цикла.
     
  5. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    в книге по Си такого быть не может, потому что в языке Си подобные конструкции не поддерживаются.
     
  6. t00x

    t00x New Member

    Публикаций:
    0
    Регистрация:
    15 фев 2007
    Сообщения:
    1.921
    какие конструкции?
     
  7. axe_roma

    axe_roma New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2004
    Сообщения:
    93
    Адрес:
    Russia
    Написанно в книге такое я вечером напишу автора и название книги. Написанно черным по белому что переменные можно обявлять в цикле for и пример написан.
     
  8. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    t00x
    объявление переменных не в начале блока.
     
  9. iZzz32

    iZzz32 Sergey Sfeli

    Публикаций:
    0
    Регистрация:
    3 сен 2006
    Сообщения:
    355
    axe_roma, возможность объявлять переменные в for прописана в стандарте C99. В ранних стандартах это было запрещено.
     
  10. axe_roma

    axe_roma New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2004
    Сообщения:
    93
    Адрес:
    Russia
    Спасибо за разяснение
     
  11. GrDog

    GrDog New Member

    Публикаций:
    0
    Регистрация:
    28 июн 2007
    Сообщения:
    26
    Такое в книги по Cи может быть написано в двух случая либо автор примера не улавливает различия между компилятором Си и Си++ либо как правильно замечено пример написан по стандарту С99. В первом случаи книгу можно дальше не читать :)
     
  12. axe_roma

    axe_roma New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2004
    Сообщения:
    93
    Адрес:
    Russia
    Да как обещал навзвание книги: Программирование на языке С. Стефан Кочан. Да в книге как раз расматриватеся стандарт С99. Тогда вопрос как проверить поддержку компилятором этого стандарта? Или прочитать где можно?
     
  13. r90

    r90 New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2005
    Сообщения:
    898
    Ты всё ещё придерживаешься убеждения, что твоим компилятором является gdb? Может всё-таки gcc?
    Если всё-таки gcc, то добавь к опциям компиляции -std=c99. А узнать это можно в документации к gcc. Так же там можно узнать про -std=gnu99 и к чему это приводит ;)
     
  14. axe_roma

    axe_roma New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2004
    Сообщения:
    93
    Адрес:
    Russia
    Не компилятор gcc я ошибся вчера. :) пробывал копилить с указанием стандарта компилятору но он вообще не компилит и сообщений не выводит не каких (ошибки и т.д)?
     
  15. iZzz32

    iZzz32 Sergey Sfeli

    Публикаций:
    0
    Регистрация:
    3 сен 2006
    Сообщения:
    355
    axe_roma, gcc --version ?
     
  16. axe_roma

    axe_roma New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2004
    Сообщения:
    93
    Адрес:
    Russia
    gcc (GCC) 3.4.2 (mingw-special)
    Copyright (C) 2004 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions. There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
     
  17. iZzz32

    iZzz32 Sergey Sfeli

    Публикаций:
    0
    Регистрация:
    3 сен 2006
    Сообщения:
    355
    axe_roma, а ты уверен, что не компилит? :derisive: GCC в a.exe компилит, если явно не укажешь ключиком -o нужное имя файла.
     
  18. axe_roma

    axe_roma New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2004
    Сообщения:
    93
    Адрес:
    Russia
    блин спасибо:) а подскажи можно ли в самом коде компилятору передать команду -std=c99? И как это сделать?
     
  19. iZzz32

    iZzz32 Sergey Sfeli

    Публикаций:
    0
    Регистрация:
    3 сен 2006
    Сообщения:
    355
    axe_roma, нет, в самом коде нельзя.
    Напиши батник, скачай себе IDE, или makefile-ы пиши :)
     
  20. axe_roma

    axe_roma New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2004
    Сообщения:
    93
    Адрес:
    Russia
    Спасибо за помощь!