0Pricing
Zig Academy · Leçon

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

  1. Importer des en-têtes C avec @cImport
  2. Appeler des fonctions C et effectuer la liaison
  3. Pointeurs, chaînes et types C
  4. zig translate-c pour lire le C comme du Zig
← Retour à Zig Academy