• Что считать корректным вводом целого числа?

    GavriKos
    @GavriKos
    А почему это вы у нас спрашиваете, а не у того кто поставил задание?
    Ответ написан
    Комментировать
  • Можно ли запустить программу на языке C в операционной системе FreeDOS или MSDOS?

    Нужно компилировать под DOS, а ты скомпилировал под Windows.
    Каждая программа на Windows содержит в себе маленькую программу для DOS, которая выводит такое сообщение.

    Скорее всего - тебе понадобится компилятор и среда разработки примерно из тех же годов, что и DOS
    Ответ написан
    3 комментария
  • Можно ли запустить программу на языке C в операционной системе FreeDOS или MSDOS?

    CityCat4
    @CityCat4 Куратор тега C
    //COPY01 EXEC PGM=IEBGENER
    Да не вопрос. Но нужна среда разработки для DOS. Borland C, Watcom C. Я предпочитал борланд, в нем есть прикольный отладчик.

    Написав программу, удивишься копеечности ее размеров :)
    Ответ написан
    Комментировать
  • Почему программа требует константу?

    @res2001
    Developer, ex-admin
    Наверное стоит обратится к учебнику по Си почему именно так.
    Изначально автоматические массивы в Си имели фиксированный размер, т.е. размер надо задавать константой.
    Отличие константы от обычной переменной - компилятор в процессе компиляции знает значение константы, а значение переменной нет. В процессе компиляции компилятор может сгенерировать команды для выделения памяти под массив.

    Начиная с С99 (это такой стандарт Си от 1999 года) появились VLA (Variable Length Array). Синтаксис такой же как и у обычных массивов, но они могут иметь изменяемый размер, т.е. размер можно задавать обычной переменной.
    Использование VLA влечет дополнительные расходы времени выполнения, поэтому многие принципиально не используют эту возможность (например ядро Linux). И это вполне оправданно еще и потому, что память под VLA массивы выделяется на стеке, пространство стека ограничено, а вы с дуру можете там выделить слишком большой массив, что вызовет переполнение стека.

    Большинство компиляторов поддерживают VLA, но судя по ошибке, вы используете микрософтовский компилятор. Микрософт никогда не славилась поддержкой стандартов Си. VLA в ее компилятор не завезли до сих пор.
    Ответ написан
    Комментировать
  • Как в структуре обьявить ссылку на структуру в С arduino?

    RiseOfDeath
    @RiseOfDeath
    Диванный эксперт.
    Так у вас в структуре две переменные с одинаковым именем, на что компилятор и ругается.
    bool submenu;  
    struct menu *submenu;
    Ответ написан
    1 комментарий
  • Зачем нужен signed в Си?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    по умолчанию int является signed

    А вот о char этого сказать нельзя, знаковость char зависит от реализации. Вдобавок, в стандарте есть следующая сноска (https://www.open-std.org/JTC1/SC22/WG14/www/docs/n... 6.2.5:15):
    Irrespective of the choice made, char is a separate type from the 
    other two and is not compatible with either.


    signed char -- это, пожалуй, единственное не вызывающее вопросов применение ключевого слова signed в C-коде написанном человеком. В остальных случаях роль signed -- чисто декоративная.
    Ответ написан
    Комментировать