C онлайн - IDE, редактор, компилятор, интерпретатор

RSS

Пишите, компилируйте и запускайте программы на C онлайн с настоящим компилятором Clang, работающим в вашем браузере. Поддерживаются stdin, предупреждения и стандартная библиотека C.

C17 (Clang 21, WebAssembly) · Работает в браузере, поэтому ваш код никогда не попадает на наши серверы.
main.cC
Результат

            
Ввод (stdin), читается через scanf / std::cin / getline
Ctrl/⌘ + Enter для запуска

Возможности онлайн-компилятора C (IDE, редактор и интерпретатор)

Пишите, запускайте и тестируйте код на C онлайн бесплатно. Эта страница — онлайн-IDE, редактор кода, компилятор и интерпретатор C в одном: введите код, нажмите «Запустить» и сразу увидите результат. Все работает в браузере — ничего не нужно устанавливать и не нужно создавать аккаунт.

  • Мгновенный запуск кода: C17 (Clang 21, WebAssembly), вывод менее чем за секунду после первой загрузки.
  • Редактор кода: подсветка синтаксиса, номера строк, подсветка парных скобок и автозакрытие скобок.
  • Ввод программы (stdin): введите данные, которые читает программа, до ее запуска.
  • Понятные ошибки: сообщения об ошибках и предупреждения появляются в панели вывода так же, как на вашем компьютере.
  • Полноэкранный режим: Ctrl/⌘ + Shift + F, настраиваемый размер шрифта, расположение рядом или друг под другом и изменяемые размеры панелей.
  • Автосохранение: ваш код хранится в браузере; скачайте его как main.c или скопируйте одним щелчком.
  • Безопасные эксперименты: ограничение времени и кнопка «Остановить» прерывают бесконечные циклы.
  • Конфиденциальность: среда выполнения C работает на вашем устройстве, поэтому код никогда не загружается на сервер.
  • Темная тема и сочетания клавиш: Ctrl/⌘ + Enter запускает код.
  • Бесплатно: без регистрации и ограничений использования.

Изучайте другие языки программирования

Как пользоваться онлайн-компилятором C

  1. Напишите или вставьте в редактор программу на C с функцией main. Кнопка Сбросить пример возвращает стартовую программу.
  2. Если программа читает ввод через scanf, getchar или fgets, перед запуском введите данные в поле Ввод (stdin) под панелью вывода.
  3. Нажмите кнопку Запустить или сочетание Ctrl + Enter (⌘ + Enter на Mac). Код сначала компилируется, затем выполняется, и оба этапа выводят сообщения на панель Результат.
  4. В списке Ограничение времени выберите 5, 15 или 60 секунд. Бесконечный цикл прерывается, когда лимит исчерпан, а кнопка Остановить сразу завершает запуск.

При первом запуске загружается компилятор — около 30 МБ. Браузер кэширует его, и после этого типичная программа компилируется за доли секунды. Кнопки Копировать и main.c сохраняют исходный файл, A− и A+ меняют размер текста, кнопка раскладки располагает редактор и вывод рядом или друг под другом, а Полноэкранный режим (Ctrl/⌘ + Shift + F, выход — Esc) даёт больше места.

И компиляция, и выполнение происходят прямо в вашем браузере. Ваш код никогда не отправляется на сервер. Редактор хранит вашу последнюю программу в локальном хранилище браузера — и больше нигде.

Как это работает и что поддерживается

Это настоящий компилятор, а не интерпретатор, который имитирует C. Страница запускает Clang/LLVM 21, который сам скомпилирован в WebAssembly проектом YoWASP. Clang превращает main.c в программу WebAssembly (WASI), которую затем выполняет ваш браузер. Флаги компилятора:

clang main.c -std=c17 -O2 -Wall -lm -o main.wasm
  • C17 с включённой оптимизацией (-O2) и основными предупреждениями (-Wall).
  • Стандартная библиотека C из wasi-libc: stdio.h, stdlib.h, string.h, ctype.h, stdint.h, time.h и другие. Математическая библиотека подключена, поэтому sqrt, pow и sin из math.h работают, и добавлять -lm самостоятельно не нужно.
  • Точная диагностика: ошибки и предупреждения показываются так, как их выводит Clang, с позициями main.c:line:column.
  • Коды завершения: если main возвращает значение, отличное от 0, вывод заканчивается строкой Процесс завершился с кодом N.

Ограничения песочницы браузера:

  • Нет потоков. pthread.h недоступен.
  • Нет сокетов и доступа к сети, нет fork и exec.
  • Нет настоящей файловой системы. Открыть файлы на компьютере нельзя, поэтому используйте stdin или данные в исходном коде.
  • Нет графических библиотек и библиотек интерфейса, таких как SDL, OpenGL или conio.h/graphics.h. Вывод — обычный текст.

Типичные ошибки в C, которые помогает найти компилятор

Проверяйте, что возвращает scanf. Функция возвращает количество прочитанных значений, а не само значение. Если поле stdin пустое или там текст вместо ожидаемого числа, переменная сохраняет прежнее значение, которое может оказаться мусорным. Стартовая программа показывает безопасный шаблон:

int n;
if (scanf("%d", &n) != 1) {
    fprintf(stderr, "expected a number\n");
    return 1;               /* reported as exit code 1 */
}

Согласуйте спецификаторы формата printf с типами. Используйте %d для int, %ld для long, %lld для long long, %zu для size_t, %f для double и %c для символа. С -Wall Clang предупреждает о несоответствии, например при выводе double через %d, поэтому читайте предупреждения, даже если программа работает.

Следите за переполнением целых чисел. Максимальное значение 32-битного int — 2 147 483 647, а переполнение знаковых чисел в C — неопределённое поведение. С -O2 оптимизатор может считать, что его никогда не бывает, поэтому переполняющийся цикл может вести себя странно, а не просто циклически переходить через границу диапазона. Для факториалов, больших сумм и произведений используйте long long (или int64_t из stdint.h).

long long f = 1;
for (int i = 2; i <= 20; i++) f *= i;
printf("20! = %lld\n", f);   /* 2432902008176640000 */
Совет: сообщение о неявном объявлении функции (implicit declaration) обычно означает пропущенный #include, например stdlib.h для malloc или string.h для strlen.

Часто задаваемые вопросы

Какой компилятор и стандарт C здесь используются?

Clang 21 (LLVM) в режиме C17 с флагами -O2 -Wall. Большая часть кода, написанного для GCC, компилируется без изменений, если он придерживается стандартного C и не использует платформенно-зависимые заголовки.

Мой код куда-нибудь загружается?

Нет. Сам компилятор работает в вашем браузере, поэтому исходный код, скомпилированная программа и её вывод остаются на вашем устройстве.

Как передать программе входные данные?

Введите их в поле stdin до нажатия кнопки «Запустить». Значения можно разделять пробелами или переводами строк — так же, как при вводе в терминале. Когда входные данные заканчиваются, scanf возвращает EOF.

Почему программа останавливается с сообщением об ограничении времени?

Она работала дольше выбранного лимита, что обычно указывает на бесконечный цикл. Проверьте условие цикла или выберите 60 с для действительно долгих вычислений.

Можно ли здесь компилировать C++?

Воспользуйтесь онлайн-компилятором C++, который запускает тот же Clang в режиме C++20. Для других языков посмотрите все онлайн-компиляторы.

Обновлено

Скопировано в буфер обмена