0Pricing
Zig Academy · Lección

Punteros, cadenas y tipos de C

Conecte los sistemas de tipos de C y Zig.

Punteros, cadenas y tipos de C es una lección gratuita de Zig Academy en CoddyKit. Esta es la lección 3 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.

Los tipos de C se traducen

Cuando Zig importa C, cada tipo de C se asigna a uno de Zig. Un int se convierte en c_int, de modo que los tamaños coinciden exactamente con la ABI de C.

const x: c_int = 10;

Los enteros de la ABI de C

Zig proporciona nombres que coinciden con la ABI, como c_int, c_uint, c_long y c_char, para que sus valores coincidan con lo que espera C.

Los punteros de C usan [*c]

Un puntero sin formato de C se convierte en el tipo especial [*c]T. Puede ser nulo y se convierte de forma flexible, reflejando los punteros flexibles de C.

var p: [*c]u8 = null;

Por qué [*c] es especial

El tipo [*c] conecta los punteros de C, de longitud arbitraria y posiblemente nulos. Puede convertirse desde y hacia slices y punteros de Zig cuando es posible.

Las cadenas de C son bytes

Una cadena de C es simplemente un puntero a bytes que termina en cero. No almacena ninguna longitud, solo el terminador nulo.

Literales terminados en nulo

Escriba una cadena de estilo C con la forma sentinel. El tipo [*:0]const u8 marca los bytes que terminan en 0.

const s: [*:0]const u8 = "hello";

Pasar cadenas a C

Los literales de cadena de Zig ya terminan en nulo, así que puede pasarlos directamente a funciones de C que esperan un puntero a char.

c.puts("done");

Leer una cadena de C

Para convertir una cadena de C en un slice de Zig, use std.mem.span, que recorre la cadena hasta el byte nulo para encontrar su longitud.

const slice = std.mem.span(cstr);

Punteros void

El void* de C aparece como ?*anyopaque en Zig. Debe convertirlo de nuevo a un tipo de puntero concreto antes de usarlo.

Convertir con @ptrCast

Para conectar tipos de puntero a través de la frontera con C se usa @ptrCast, que reinterpreta un puntero sin cambiar la dirección.

const p: *Node = @ptrCast(@alignCast(raw));

Coincidir, no adivinar

La práctica segura consiste en hacer coincidir los tipos exactos de C: use c_int para int y span para las cadenas, para que nada sea incorrecto silenciosamente.

Comprobación rápida

Recuerde cómo convierte Zig una cadena de C en un slice utilizable.

Resumen

Ha aprendido que los tipos de C se asignan a nombres de la ABI como c_int, que los punteros de C usan [*c] y que std.mem.span convierte las cadenas de C en slices. 🎯

Preguntas frecuentes

¿La lección «Punteros, cadenas y tipos de C» es gratis?

Sí — el texto completo de «Punteros, cadenas y tipos de C» 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 «Punteros, cadenas y tipos de C»?

Conecte los sistemas de tipos de C y Zig. 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 3 de 4.

¿Cuánto tiempo toma la lección «Punteros, cadenas y tipos de C»?

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