0Pricing
Zig Academy · Lección

Llamar a funciones de C y enlazar

Vincúlese con libc y bibliotecas externas.

Llamar a funciones de C y enlazar es una lección gratuita de Zig Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Zig Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Zig Academy incluye 4 lecciones en total.

Importar no es enlazar

@cImport le proporciona las declaraciones, pero el código máquina real sigue estando en una biblioteca de C contra la que debe enlazar.

Enlazar con libc

La mayoría de las llamadas a C necesitan la biblioteca estándar de C. Indique al sistema de compilación que enlace libc para que funciones como printf se resuelvan durante el enlazado.

exe.linkLibC();

Enlazado desde la CLI

Para una ejecución rápida, pase la opción manualmente. -lc enlaza libc al compilar directamente un único archivo.

zig build-exe main.zig -lc

Llamar como código nativo

Una vez enlazada, una función de C se llama igual que una de Zig. Escriba c.printf(...) y Zig se encarga de la convención de llamada.

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

Coincidir con la firma

Debe pasar argumentos que coincidan con la firma de C. Los tipos incorrectos producen un error de compilación, ya que Zig conoce el prototipo traducido.

Enlazar una biblioteca con nombre

Para otras bibliotecas, indique su nombre. linkSystemLibrary indica al enlazador que incluya algo como la biblioteca matemática.

exe.linkSystemLibrary("m");

Los valores devueltos regresan

El valor devuelto por una función de C llega como un valor normal de Zig del tipo traducido, listo para almacenarlo o comprobarlo.

const n = c.abs(-5);

Los errores usan convenciones de C

C no tiene uniones de error, así que los fallos aparecen como códigos de retorno o como un errno establecido. Debe comprobarlos manualmente, al estilo de C.

Sin marshaling oculto

Zig no hace ninguna conversión silenciosa de sus datos. Lo que pasa es lo que recibe C, lo que mantiene la llamada rápida y predecible.

Conexión en el archivo de compilación

En build.zig, vincula el enlazado al artefacto. El mismo paso exe que compila su código también registra sus bibliotecas.

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

Dos pasos para lograrlo

Llamar a C siempre requiere importar y enlazar: incorpore las declaraciones y asegúrese de que los símbolos reales estén disponibles para el enlazador.

Comprobación rápida

Piense en qué hace que una función de C se resuelva realmente.

Resumen

Ha aprendido que llamar a C requiere tanto la importación como el enlazado, tras lo cual las funciones de C se invocan igual que las funciones nativas de Zig. 🎯

Preguntas frecuentes

¿La lección «Llamar a funciones de C y enlazar» es gratis?

Sí — el texto completo de «Llamar a funciones de C y enlazar» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Zig Academy, actualiza a CoddyKit PRO. El curso de Zig Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Llamar a funciones de C y enlazar»?

Vincúlese con libc y bibliotecas externas. Practicas Zig Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Zig Academy?

No se requiere experiencia previa. Zig Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «Llamar a funciones de C y enlazar»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Zig Academy?

Sí. Cada lección de Zig Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Importar cabeceras de C con @cImport
  2. Llamar a funciones de C y enlazar
  3. Punteros, cadenas y tipos de C
  4. zig translate-c para leer C como Zig
← Volver a Zig Academy