Zig Academy · Lezione

Importare gli header C con @cImport

Utilizzi in Zig le dichiarazioni C.

Lezione 1 di 413 passaggi

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. 🎯

Gratis per iniziare

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

  1. Importare gli header C con @cImport
  2. Chiamare funzioni C e collegare librerie
  3. Puntatori, stringhe e tipi C
  4. zig translate-c per leggere C come Zig
← Torna a Zig Academy