Importer des en-têtes C avec @cImport
Utilisez les déclarations C depuis Zig.
Importer des en-têtes C avec @cImport est une leçon Zig Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Zig Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Zig Academy comprend 4 leçons au total.
Zig communique avec C
Zig peut utiliser directement des bibliothèques C, sans couche de liaison distincte. Le pont commence avec le builtin @cImport.
Fonctionnement de @cImport
@cImport exécute le compilateur C de Zig sur un petit fichier C que vous décrivez, puis expose chaque déclaration trouvée comme un espace de noms Zig normal.
Inclure un en-tête
À l'intérieur de l'appel, vous listez les en-têtes avec @cInclude. Chacun désigne un en-tête C, comme le ferait une ligne #include en C.
const c = @cImport({
@cInclude("stdio.h");
});Un espace de noms C
Le résultat est un const Zig ordinaire. Vous accédez aux noms C par son intermédiaire avec la syntaxe pointée, exactement comme avec n'importe quel autre espace de noms de structure Zig.
c.printf("hi\n");Appeler au niveau supérieur
Placez @cImport au niveau du fichier afin que tout le module puisse l'utiliser. Il est évalué une fois lors de la compilation, et non lors de l'exécution.
Plusieurs en-têtes
Un seul @cImport peut inclure plusieurs en-têtes. Ajoutez d'autres lignes @cInclude : elles partageront toutes un espace de noms combiné unique.
const c = @cImport({
@cInclude("stdio.h");
@cInclude("stdlib.h");
});Définir d'abord les macros
Utilisez @cDefine avant une inclusion pour définir une macro C, comme si vous transmettiez l'option -D à un compilateur C.
const c = @cImport({
@cDefine("_GNU_SOURCE", "");
@cInclude("stdio.h");
});Annuler une définition si nécessaire
L'élément @cUndef correspondant supprime une macro avant l'analyse des en-têtes, au cas où une valeur par défaut vous gênerait.
Tout se passe à la compilation
Tout ce qui se trouve dans @cImport se produit lors de la compilation. Zig analyse le C, le traduit et vous fournit des déclarations Zig prêtes à l'emploi.
Les constantes sont importées
Les macros C qui se développent en valeurs simples deviennent des constantes Zig utilisables ; des éléments comme EXIT_SUCCESS sont donc directement accessibles dans l'espace de noms.
return c.EXIT_SUCCESS;Un pont, du vrai C
Avec un seul @cImport, vous obtenez les fonctions, les types et les constantes d'une bibliothèque C entière, tous appelables depuis du code Zig idiomatique.
Vérification rapide
Rappelez-vous quel builtin importe les déclarations C dans Zig.
Récapitulatif
Vous avez vu que @cImport associé à @cInclude transforme les en-têtes C en espace de noms Zig lors de la compilation, ce qui vous donne directement accès aux fonctions et constantes C. 🎯
Questions Fréquemment Posées
La leçon « Importer des en-têtes C avec @cImport » est-elle gratuite ?
Oui — le texte complet de « Importer des en-têtes C avec @cImport » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Zig Academy, passe à CoddyKit PRO. Le cours Zig Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Importer des en-têtes C avec @cImport » ?
Utilisez les déclarations C depuis Zig. Tu pratiques Zig Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Zig Academy ?
Aucune expérience préalable n'est requise. Zig Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Importer des en-têtes C avec @cImport » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Zig Academy ?
Oui. Chaque leçon Zig Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Importer des en-têtes C avec @cImport
- Appeler des fonctions C et effectuer la liaison
- Pointeurs, chaînes et types C
- zig translate-c pour lire le C comme du Zig