Importare gli header C con @cImport
Utilizzi in Zig le dichiarazioni C.
Importare gli header C con @cImport è una lezione Zig Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Zig Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Zig Academy include 4 lezioni in totale.
Zig comunica con C
Zig può utilizzare direttamente le librerie C, senza un livello separato di binding. Il collegamento inizia con il builtin @cImport.
Cosa fa @cImport
@cImport esegue il compilatore C di Zig su un piccolo file C descritto da Lei, quindi espone ogni dichiarazione trovata come un normale namespace Zig.
Includere un header
All'interno della chiamata, elenchi gli header con @cInclude. Ognuno indica un header C, proprio come farebbe una riga #include in C.
const c = @cImport({
@cInclude("stdio.h");
});Un namespace di C
Il risultato è un normale const di Zig. Tramite questo accede ai nomi C con la sintassi a punto, esattamente come in qualsiasi altro namespace di struct Zig.
c.printf("hi\n");Chiamare al livello superiore
Inserisca @cImport a livello di file, in modo che l'intero modulo possa utilizzarlo. Viene valutato una volta durante la compilazione, non durante l'esecuzione.
Più header
Un solo @cImport può importare diversi header. Aggiunga altre righe @cInclude: condivideranno tutte un unico namespace combinato.
const c = @cImport({
@cInclude("stdio.h");
@cInclude("stdlib.h");
});Definire prima le macro
Utilizzi @cDefine prima di un include per impostare una macro C, proprio come passerebbe un flag -D a un compilatore C.
const c = @cImport({
@cDefine("_GNU_SOURCE", "");
@cInclude("stdio.h");
});Annullare la definizione se necessario
Il corrispondente @cUndef rimuove una macro prima che gli header vengano analizzati, nel caso in cui un valore predefinito ostacoli il lavoro.
Avviene durante la compilazione
Ogni operazione all'interno di @cImport avviene durante la compilazione. Zig analizza il codice C, lo traduce e fornisce dichiarazioni Zig pronte all'uso.
Le costanti vengono importate
Le macro C che si espandono in semplici valori diventano costanti Zig utilizzabili, quindi valori come EXIT_SUCCESS sono subito disponibili nel namespace.
return c.EXIT_SUCCESS;Un solo collegamento, vero C
Con un solo @cImport ottiene tutte le funzioni, i tipi e le costanti di un'intera libreria C, tutti richiamabili da codice Zig idiomatico.
Verifica rapida
Ricordi quale builtin importa le dichiarazioni C in Zig.
Riepilogo
Ha visto che @cImport insieme a @cInclude trasforma gli header C in un namespace Zig durante la compilazione, fornendo direttamente funzioni e costanti C. 🎯
Impara Zig con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 30
- Lezioni
- 120
Domande Frequenti
La lezione «Importare gli header C con @cImport» è gratuita?
Sì — il testo completo di «Importare gli header C con @cImport» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Zig Academy, passa a CoddyKit PRO. Il corso Zig Academy include 4 lezioni in totale.
Cosa imparerò in «Importare gli header C con @cImport»?
Utilizzi in Zig le dichiarazioni C. Eserciti Zig Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Zig Academy?
Non è richiesta alcuna esperienza precedente. Zig Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Importare gli header C con @cImport»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Zig Academy?
Sì. Ogni lezione Zig Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Importare gli header C con @cImport
- Chiamare funzioni C e collegare librerie
- Puntatori, stringhe e tipi C
- zig translate-c per leggere C come Zig