0Pricing
Zig Academy · Урок

Импорт заголовков C с помощью @cImport

Используйте объявления C в Zig.

«Импорт заголовков C с помощью @cImport» — бесплатный урок Zig Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Zig Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Zig Academy содержит 4 уроков всего.

Части этого урока еще не переведены и отображаются на английском.

Zig Talks to C

Zig can use C libraries directly, with no separate binding layer. The bridge starts with the built-in @cImport.

What @cImport Does

@cImport runs Zig's C compiler on a tiny C file you describe, then exposes every declaration it finds as a normal Zig namespace.

Include a Header

Inside the call you list headers with @cInclude. Each one names a C header just like a C #include line would.

const c = @cImport({
    @cInclude("stdio.h");
});

A Namespace of C

The result is a regular Zig const. You reach C names through it with dot syntax, exactly like any other Zig struct namespace.

c.printf("hi\n");

Call at the Top Level

Put the @cImport at file scope so the whole module can use it. It is evaluated once at compile time, not at run time.

Multiple Headers

One @cImport can pull in several headers. Add more @cInclude lines and they all share a single combined namespace.

const c = @cImport({
    @cInclude("stdio.h");
    @cInclude("stdlib.h");
});

Define Macros First

Use @cDefine before an include to set a C macro, just as you would pass a -D flag to a C compiler.

const c = @cImport({
    @cDefine("_GNU_SOURCE", "");
    @cInclude("stdio.h");
});

Undefine If Needed

The matching @cUndef removes a macro before the headers are parsed, in case a default would otherwise get in your way.

It Is Compile Time

Everything inside @cImport happens at compile time. Zig parses the C, translates it, and hands you ready-to-use Zig declarations.

Constants Come Across

C macros that expand to plain values become usable Zig constants, so things like EXIT_SUCCESS are right there in the namespace.

return c.EXIT_SUCCESS;

One Bridge, Real C

With a single @cImport you gain a whole C library's functions, types, and constants, all callable from idiomatic Zig code.

Quick Check

Recall which builtin pulls C declarations into Zig.

Recap

You saw that @cImport with @cInclude turns C headers into a Zig namespace at compile time, giving you C functions and constants directly. 🎯

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

Урок «Импорт заголовков C с помощью @cImport» бесплатный?

Да — полный текст урока «Импорт заголовков C с помощью @cImport» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Zig Academy, подпишись на CoddyKit PRO. Курс Zig Academy содержит 4 уроков всего.

Чему я научусь в уроке «Импорт заголовков C с помощью @cImport»?

Используйте объявления C в Zig. Ты практикуешь Zig Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Zig Academy?

Предыдущий опыт не требуется. Zig Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Импорт заголовков C с помощью @cImport»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Zig Academy?

Да. Каждый урок Zig Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Импорт заголовков C с помощью @cImport
  2. Вызов функций C и компоновка
  3. Указатели, строки и типы C
  4. zig translate-c: чтение C как Zig
← Назад к Zig Academy