2009-08-29 800 views
7

Estoy tratando de aprender algo de C, y me he encontrado con lo que probablemente sea un problema simple. Estoy tratando de recopilar algo de código que contiene la siguiente declaración:"int32 no declarado" error de gcc

int32 count; 

Sin embargo, esto da lugar a un error en tiempo de compilación:

 
test.c:21: error: ‘int32’ undeclared (first use in this function) 

¿Hay una opción en particular en tiempo de compilación que necesito establecido para gcc, o una directiva #include que resolverá esto?

p.s. Me estoy ejecutando en Ubuntu Intrepid.

Respuesta

22

El tipo int32 no es estándar C - el equivalente estándar es #include <stdint.h> y usa int32_t.

Sin embargo, como un sistema POSIX, en Ubuntu llano int es (al menos) 32 bits por lo que podría simplemente usar eso.

+4

Dos cosas de la nota: 1) '' es estándar, pero es C99 - no es un problema para gcc, pero puede ser en otro lugar (por ejemplo, MSVC); y 2) POSIX no requiere que 'int' sea de 32 bits, y hay Unixes para los que no es verdadero. –

+1

Existen cuatro entornos de programación permitidos por POSIX para ser el predeterminado (enumerados aquí: http://opengroup.org/onlinepubs/009695399/utilities/c99.html#tagtcjh_11), todos los cuales requieren que 'int' sea al menos 32 bits. – caf

+0

Para incluir el encabezado C 'stdint.h' en C++ usted' #include ' –

-1

El tamaño de 'int' depende del compilador que use. Para la misma arquitectura de destino, diferentes compiladores pueden tener diferentes tamaños para 'int'. Depende de cómo están utilizando las funciones de destino. Por ejemplo, Turbo C que se ejecuta en Windows tiene un tamaño 'int' de 2 bytes (es un ejecutable de DOS). Mientras que Visual C da el tamaño de 'int' como 32 (ejecutable win32).

En general, el tamaño de 'int' está determinado por el tamaño de la palabra según la arquitectura de destino. El tamaño de la palabra se refleja en 1. Tamaño de procesamiento de las operaciones aritméticas. 2. Tamaño de los registros de propósito general. 3. Tamaño de la dirección utilizada para designar una ubicación.

Sin embargo, en su caso está utilizando incorrectamente una palabra clave 'int32' para un tipo de datos. Compruebe la máquina de destino y corrija la palabra clave utilizada en consecuencia.

+0

Es uno de los' typedef'' más nuevos especificados en C99, y está disponible en el encabezado 'stdint.h'. – TechZilla

+0

'int32' no es una palabra clave en el estándar C. –

Cuestiones relacionadas