FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Enumerado raro raro
Hola, no soy muy dado a usar los tipos enumerados, pero recientemente me encontré con lo siguiente: un enumerado (hasta aquí bien), y una "función" a la cual se le pasa como entrada FLAC__StreamEncoderInitStatus. Mi pregunta es que no sé como funciona, y qué devuelve exactamente la función (¿un puntero a carácter, por qué?)
Cita:
Cita:
Cita:
FLAC__StreamEncoderInitStatus init_status; //declara la vble ... .. carga algún valor para init_status, y... Cita:
|
#2
|
||||
|
||||
Aquí hay un truco importante, esa declaración, en realidad es esta:
Código:
typedef enum { FLAC__STREAM_ENCODER_OK = 0, FLAC__STREAM_ENCODER_UNINITIALIZED = 1, FLAC__STREAM_ENCODER_OGG_ERROR = 2, FLAC__STREAM_ENCODER_VERIFY_DECODER_ERROR = 3, FLAC__STREAM_ENCODER_VERIFY_MISMATCH_IN_AUDIO_DATA = 4, FLAC__STREAM_ENCODER_CLIENT_ERROR = 5, FLAC__STREAM_ENCODER_IO_ERROR = 6, FLAC__STREAM_ENCODER_FRAMING_ERROR = 7, FLAC__STREAM_ENCODER_MEMORY_ALLOCATION_ERROR = 8 } FLAC__StreamEncoderState; Esto es un array de string: FLAC_API const char * const FLAC__StreamEncoderStateString[] y contiene lo mismo que el tipo enumerado, pero en tiras de caracteres para mostrar en el printf. Declara el init_status como enumerado, teniendo en cuenta que en realidad cada elemento se convierte en un entero, y dicho valor será el índice del array. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#3
|
||||
|
||||
hay más
Gracias Lepe por tu ayuda, pero hay un detalle que no sé si viste, y es que la función está cargándose con el valor init_status, que es del tipo FLAC__StreamEncoderState:
Cita:
Otra pregunta, ¿cómo podría poner la cabecera de esta función en Delphi? Cita:
|
#4
|
||||
|
||||
Sorry, me equivoqué, es cierto, recibe el tipo enumerado adecuado. Con tanto nombre parecido ya me hice un lío, pero está bien puesto. Finalmente creo que para delphi voy a pasar de referenciar a la API y me declaro yo mismo tanto las cabeceras como los contenidos y referencias de los enumerados, que casi tardo menos
Saludos y gracias¡¡ |
#5
|
||||
|
||||
Una aclaración esto no es una función sino la declaración de un array
de punteros de tipo char* (que normalmente se una para definir cadenas, es decir, un array de cadenas) Código:
const char * const FLAC__StreamEncoderStateString[] |
#6
|
||||
|
||||
cierto
Es verdad Escafandra, es un array, me di cuenta después de dejar el post, pero gracias por la aclaración.
Finalmente he definido mi propio enumerado como se suele hacer en Delphi, no ha habido problema. Gracias y un saludo¡ |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
xp - interbase - raro | Patricio | Conexión con bases de datos | 10 | 06-07-2007 18:44:25 |
muy raro | Patricio | Varios | 12 | 09-04-2007 22:22:38 |
Algo raro..... | mjjj | Varios | 2 | 04-04-2007 23:50:27 |
|