Importowanie nagłówków C za pomocą @cImport
Korzystaj z deklaracji C w Zig.
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. 🎯
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
- Importowanie nagłówków C za pomocą @cImport
- Wywoływanie funkcji C i linkowanie
- Wskaźniki, napisy i typy C
- zig translate-c do odczytywania C jako Zig