Zig Academy · Lekcja

Importowanie nagłówków C za pomocą @cImport

Korzystaj z deklaracji C w Zig.

Lekcja 1 z 413 kroki

Importowanie nagłówków C za pomocą @cImport to bezpłatna lekcja Zig Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Zig Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Zig Academy zawiera 4 lekcji w sumie.

Zig komunikuje się z C

Zig może bezpośrednio korzystać z bibliotek C, bez oddzielnej warstwy powiązań. Most zaczyna się od wbudowanego @cImport.

Działanie @cImport

@cImport uruchamia kompilator C języka Zig dla niewielkiego pliku C opisanego przez użytkownika, a następnie udostępnia każdą znalezioną deklarację jako zwykłą przestrzeń nazw Zig.

Dołączanie nagłówka

Wewnątrz wywołania wymieniasz nagłówki za pomocą @cInclude. Każdy z nich wskazuje nagłówek C, podobnie jak wiersz #include w języku C.

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

Przestrzeń nazw C

Wynik jest zwykłą wartością const w Zig. Nazwy C uzyskujesz za jej pośrednictwem za pomocą składni kropkowej, dokładnie tak jak w przypadku każdej innej przestrzeni nazw struktury Zig.

c.printf("hi\n");

Wywołanie na poziomie pliku

Umieść @cImport na poziomie pliku, aby cały moduł mógł z niego korzystać. Jest ono obliczane raz w czasie kompilacji, a nie w czasie działania programu.

Wiele nagłówków

Jedno @cImport może dołączyć kilka nagłówków. Dodaj więcej wierszy @cInclude, a wszystkie będą współdzielić jedną połączoną przestrzeń nazw.

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

Najpierw zdefiniuj makra

Użyj @cDefine przed dołączeniem, aby ustawić makro C, tak jak podczas przekazywania flagi -D do kompilatora C.

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

Usuń definicję w razie potrzeby

Odpowiadające mu @cUndef usuwa makro przed przetworzeniem nagłówków, gdy jego domyślna definicja mogłaby przeszkadzać.

To odbywa się w czasie kompilacji

Wszystko wewnątrz @cImport odbywa się w czasie kompilacji. Zig analizuje kod C, tłumaczy go i przekazuje gotowe do użycia deklaracje Zig.

Stałe są importowane

Makra C rozwijające się do zwykłych wartości stają się użytecznymi stałymi Zig, więc takie elementy jak EXIT_SUCCESS są od razu dostępne w przestrzeni nazw.

return c.EXIT_SUCCESS;

Jeden most, prawdziwe C

Za pomocą jednego @cImport zyskujesz wszystkie funkcje, typy i stałe całej biblioteki C, które można wywoływać z idiomatycznego kodu Zig.

Szybkie sprawdzenie

Przypomnij sobie, który builtin importuje deklaracje C do Zig.

Podsumowanie

Dowiedziałeś się, że @cImport wraz z @cInclude zamienia nagłówki C w przestrzeń nazw Zig w czasie kompilacji, zapewniając bezpośredni dostęp do funkcji i stałych C. 🎯

Bezpłatny start

Ucz się Zig dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
30
Lekcje
120

Często zadawane pytania

Czy lekcja „Importowanie nagłówków C za pomocą @cImport” jest bezpłatna?

Tak — pełny tekst „Importowanie nagłówków C za pomocą @cImport” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Zig Academy, przejdź na CoddyKit PRO. Kurs Zig Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Importowanie nagłówków C za pomocą @cImport”?

Korzystaj z deklaracji C w Zig. Ćwiczysz Zig Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Zig Academy?

Nie wymagamy żadnego doświadczenia. Zig Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Importowanie nagłówków C za pomocą @cImport”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Zig Academy?

Tak. Każda lekcja Zig Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Importowanie nagłówków C za pomocą @cImport
  2. Wywoływanie funkcji C i linkowanie
  3. Wskaźniki, napisy i typy C
  4. zig translate-c do odczytywania C jako Zig
← Powrót do Zig Academy