Что такое формат файла C?
.c - это файл исходного кода для языка программирования C. C - это процедурный язык общего назначения, который считается языком среднего уровня и широко используется для разработки программного обеспечения, операционных систем и встроенных систем. Созданный Деннисом Ритчи в Bell Labs в 1972 году, он был стандартизирован ANSI и ISO через несколько редакций - текущим стандартом является C23.
Файлы с расширением .c доступны в текстовых редакторах, и пользователь может читать или изменять код в этих файлах с помощью простого текстового редактора или полноценной IDE. Файл .c содержит фактический код, написанный разработчиком, а также другую информацию, такую как директивы препроцессора (например, #include и #define) и комментарии. Перед запуском файл .c должен быть скомпилирован компилятором C, таким как gcc или clang, в объектный файл, а затем скомпонован в исполняемый файл.
Файлы .c специфичны для языка C, и их не следует путать с исходными файлами C++, которые используют расширения .cpp или .cc. Объявления, общие для нескольких файлов .c, помещаются в заголовочные файлы с расширением .h.
Безопасность и защита
РИСК: LOWФайл .c является обычным текстом и не может запуститься сам по себе, поэтому открывать его в редакторе безопасно. Риск возникает только тогда, когда вы КОМПИЛИРУЕТЕ и ЗАПУСКАЕТЕ неизвестный код C: исходный код из ненадежного источника после сборки может делать все, что доступно программе (удалять файлы, обращаться к сети, устанавливать вредоносное ПО), а низкоуровневая природа C позволяет легко скрыть вредоносный или ошибочный код. Читайте код перед компиляцией, собирайте недоверенный код в песочнице или виртуальной машине и никогда не запускайте скомпилированный бинарный файл, которому вы не доверяете. Само расширение файла не несет угрозы - опасность заключается в действиях кода после компиляции.
Детали формата
в двух словах- Исходный файл C++ (устаревшее) - Исторически .c (и заглавная .C в Unix) также использовались для исходного кода C++, что отражено в названии «C/C++» в этой базе данных; современный C++ использует .cpp/.cc/.cxx.
- Буква диска DOS/Windows или общие данные - В редких случаях «c» может появляться как артефакт, не являющийся исходным кодом (например, случайное имя из одной буквы); значение «исходный код» доминирует в подавляющем большинстве случаев.
Программы, открывающие файлы C
Технические подробности
глубокая спецификация| MIME-тип | text/x-csrc |
| Кодировка символов | Обычный ASCII или UTF-8; отсутствие бинарной сигнатуры (magic bytes) - идентифицируется по содержимому, а не по байтам |
| Стандарт языка | Стандартизирован как ANSI C89, затем C99, C11, C17; текущий стандарт - C23 (ISO/IEC 9899:2024) |
| Парадигма программирования | Процедурная и императивная; нативно не поддерживает классы или объекты |
| Управление памятью | Ручное - разработчик выделяет и освобождает память в куче с помощью malloc() и free() |
| Этап препроцессинга | Исходный код обрабатывается препроцессором перед компиляцией, разрешая директивы #include, #define и условную компиляцию |
| Результат компиляции | Компилируется в объектный файл (.o / .obj), затем компонуется в исполняемый файл или статическую/динамическую библиотеку |
| Связь с заголовочными файлами | Логика реализации находится в файлах .c; объявления, общие для единиц трансляции, выносятся в парные заголовочные файлы .h |
| Основные области применения | Ядра ОС, встроенное ПО (firmware), компиляторы, базы данных и системное ПО, критичное к производительности |
| Синтаксис комментариев | Блочные комментарии /* ... */ поддерживаются с C89; однострочные комментарии // добавлены в C99 |
| Портативность | Код, соответствующий стандартам ISO, обладает высокой переносимостью между архитектурами; платформенные различия управляются защитными условиями препроцессора |
| Различие регистра | В файловых системах, чувствительных к регистру (Linux, macOS), заглавная .C традиционно обозначает исходный файл C++, в отличие от строчной .c |
| Экосистема компиляторов | Компилируется GCC, Clang/LLVM, MSVC, Intel oneAPI C++, TinyCC и другими |
| Выпущен | C language created 1972 (Bell Labs); standardized ANSI C 1989, ISO C 1990, latest C23 |
| Открыть стандартное | Да · без роялти |
| Спецификация | www.iso.org |
Конвертации C
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах C.