MSVC 2005 Express Edition и локальные переменные

Тема в разделе "LANGS.C", создана пользователем n0hack, 12 июл 2008.

  1. n0hack

    n0hack New Member

    Публикаций:
    0
    Регистрация:
    3 июн 2008
    Сообщения:
    71
    Господа, а что, в новой вижуал студии запретили объявлять локальные переменные не в начале функции?
    Сыпятся страшные ошибки. Или такого нет в Pro версии? В общем сабж.
     
  2. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Вообщето сишные компилеры MS никогда этого не позволяли
     
  3. twgt

    twgt New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    1.494
    Если компилировать с ключом /TC (Compile as C code) то используется стандарт ANSI C, в котором нельзя так делать.
    По умолчанию стоит ключ /TP (Compile as C++ code), где допустимо объявление переменных после первой присваивающей инструкции.
    Вроде так.
     
  4. W4FhLF

    W4FhLF New Member

    Публикаций:
    0
    Регистрация:
    3 дек 2006
    Сообщения:
    1.050
    А где об этом в С99 написано?
     
  5. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    локальные можно объявлять нетолько в начале функции но и в начале каждого блока.
    Код (Text):
    1. int main()
    2. {
    3.   int a;
    4.  
    5.   a = 2;
    6.   {
    7.     int b;
    8.     b = a;
    9.   }
    10. }
     
  6. Forever

    Forever Виталий

    Публикаций:
    0
    Регистрация:
    12 апр 2008
    Сообщения:
    244
    Насколько я знаю ANSI C и С99 - вещи разные. Стандарт С99 - это расширение ANSI C.
     
  7. n0hack

    n0hack New Member

    Публикаций:
    0
    Регистрация:
    3 июн 2008
    Сообщения:
    71
    Всем спасибо, разобрался )
     
  8. twgt

    twgt New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    1.494
    Ну да. C99 и не имелся ввиду.
     
  9. W4FhLF

    W4FhLF New Member

    Публикаций:
    0
    Регистрация:
    3 дек 2006
    Сообщения:
    1.050
    С99 - единственный и последний официальный стандарт языка Си. Он был принят ISO как "ISO/IEC 9899:1999", а позже принят в ANSI как "ANSI C".
     
  10. n0hack

    n0hack New Member

    Публикаций:
    0
    Регистрация:
    3 июн 2008
    Сообщения:
    71
    (ошибочка вышла)