0Pricing
Zig Academy · Lezione

Chiamare funzioni C e collegare librerie

Si colleghi a libc e alle librerie esterne.

Chiamare funzioni C e collegare librerie è una lezione Zig Academy gratuita su CoddyKit. Questa è la lezione 2 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.

Importare non significa collegare

@cImport fornisce le dichiarazioni, ma il codice macchina effettivo si trova ancora in una libreria C a cui è necessario collegarsi.

Collegare libc

La maggior parte delle chiamate C richiede la libreria standard C. Indichi al sistema di compilazione di collegare libc, così funzioni come printf vengono risolte durante il linking.

exe.linkLibC();

Collegare dalla CLI

Per un'esecuzione rapida, passi personalmente il flag. -lc collega libc quando compila direttamente un singolo file.

zig build-exe main.zig -lc

Chiamare come codice nativo

Una volta effettuato il linking, una funzione C viene chiamata proprio come una funzione Zig. Scriva c.printf(...) e Zig gestirà la calling convention.

c.printf("%d\n", 42);

Corrispondere alla signature

Deve passare argomenti compatibili con la signature C. I tipi errati causano un errore di compilazione, perché Zig conosce il prototipo tradotto.

Collegare una libreria specifica

Per le altre librerie, ne indichi il nome. linkSystemLibrary comunica al linker di includere, ad esempio, la libreria matematica.

exe.linkSystemLibrary("m");

I valori restituiti vengono recuperati

Il valore restituito da una funzione C arriva come normale valore Zig del tipo tradotto, pronto per essere memorizzato o verificato.

const n = c.abs(-5);

Gli errori seguono le convenzioni di C

C non dispone di error union, quindi gli errori si manifestano come codici di ritorno o come un errno impostato. Deve verificarli manualmente, secondo le modalità di C.

Nessun marshalling nascosto

Zig non esegue alcuna conversione silenziosa dei dati. Ciò che passa è ciò che C riceve, mantenendo la chiamata efficiente e prevedibile.

Configurare il linking nel file di build

In build.zig collega il linking all'artifact. Lo stesso passaggio exe che compila il codice registra anche le relative librerie.

exe.linkLibC();
exe.linkSystemLibrary("z");

Due passaggi per riuscire

Chiamare C richiede sempre import più link: importi le dichiarazioni, quindi si assicuri che i simboli reali siano disponibili al linker.

Verifica rapida

Rifletta su ciò che consente di risolvere effettivamente una funzione C.

Riepilogo

Ha imparato che chiamare C richiede sia l'import sia il linking; dopo questi passaggi, le funzioni C vengono chiamate proprio come quelle native di Zig. 🎯

Domande Frequenti

La lezione «Chiamare funzioni C e collegare librerie» è gratuita?

Sì — il testo completo di «Chiamare funzioni C e collegare librerie» è 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 «Chiamare funzioni C e collegare librerie»?

Si colleghi a libc e alle librerie esterne. 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 2 di 4.

Quanto tempo richiede la lezione «Chiamare funzioni C e collegare librerie»?

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