2012-08-28 16 views
5

Me imagino que esta es una pregunta que se ha formulado mil veces, pero no puedo encontrar una respuesta directa.¿Cuál es el OSX, C equivalente para uint32 y uint64?

Estoy intentando portar una función C muy corta (inicialmente escrita para Windows) a OSX, usando XCode.

He creado un proyecto de aplicación XCode, Terminal y he copiado y pegado el código en el proyecto. XCode me está dando un montón de errores diciéndome que el tipo uint32 y uint64 son tipos desconocidos.

¿Cuáles son los tipos de valores equivalentes en OSX?

Respuesta

14

Puede usar uint32_t y uint64_t importando stdint.h.

0

Tratar la cuestión éstos ;-) UInt32 lala; UInt64 lolo;

Misread. Si crea un proyecto de solo terminal, no vinculará Cocoa/Foundation y Carbon. Dentro de este último UInt16/32/64 son typedef'ed.

+1

Creo que esos son tipos de Carbono. – zneak

2

uint32_t y uint64_t - ambos definidos en stdint.h según la definición C99.

Los demás son la solución patentada de Microsoft.

3

Lo que desea son los tipos enteros estándar POSIX y C. Estos son los que se usan en Mac OSX, Linux, Solaris, etc. Son uint8_t durante todo el período uint64_t. También hay int8_t hasta uint8_t.

+0

Al igual que una aclaración, por "todo el camino", esto _realmente_ significa todo el camino: hay tipos enteros disponibles cuyo tamaño no es una potencia de dos ('int24_t',' int40_t', 'int48_t',' int56_t' y sus contrapartes sin firmar). – zneak

+2

@zneak, estos no necesitan ser definidos. Pero si tales tipos (con ese ancho) existen en la plataforma, se definirán. –

Cuestiones relacionadas