Thread View: es.comp.os.linux.programacion
4 messages
4 total messages
Started by javi
Wed, 17 May 2006 01:38
Problema con los tipos en c
Author: javi
Date: Wed, 17 May 2006 01:38
Date: Wed, 17 May 2006 01:38
22 lines
1705 bytes
1705 bytes
Hola He descargado el programa apetag desde aqu� http://muth.org/Robert/Apetag/ y al ejecutarlo encontr� que no funcionaba. Despu�s de mirar el c�digo fuente encontr� lo siguente: En la l�nea input.seekg ( -sizeof(APE_HEADER_FOOTER), ios::end ); el valor de sizeof(APE_HEADER_FOOTER) es 32; pero con el signo menos se converte en 4294967264. Lo he solucionado de la siguiente forma: input.seekg ( (int) -sizeof(APE_HEADER_FOOTER), ios::end ); pero no s� si es un bug del programa o de mi sistema (Debian testing). Os agradecer�a cualquier aclaraci�n y si consider�is necesario avisar al autor. Un saludo
Re: Problema con los tipos en c
Author: Pascal Bourguignon
Date: Wed, 17 May 2006 02:30
Date: Wed, 17 May 2006 02:30
37 lines
2605 bytes
2605 bytes
javi <xx@xx.net> writes: > Hola > > He descargado el programa apetag desde aqu� http://muth.org/Robert/Apetag/ y > al ejecutarlo encontr� que no funcionaba. Despu�s de mirar el c�digo fuente > encontr� lo siguente: > > En la l�nea > > input.seekg ( -sizeof(APE_HEADER_FOOTER), ios::end ); > > el valor de sizeof(APE_HEADER_FOOTER) es 32; pero con el signo menos se > converte en 4294967264. > > Lo he solucionado de la siguiente forma: > > input.seekg ( (int) -sizeof(APE_HEADER_FOOTER), ios::end ); > > pero no s� si es un bug del programa o de mi sistema (Debian testing). Os > agradecer�a cualquier aclaraci�n y si consider�is necesario avisar al > autor. Bueno... El tema es que sizeof puede retornar un size_t, y un size_t puede ser unsigned int (o cualquier unsigned tipo). Asi que -(unsigned int)32 puede dar 4294967264. Tambien, si lo pasas a un parametro signed int, puede volverse a -32... Es lo que has hecho. Yo, escribir�a: -((signed int)sizeof(...)), si input.seekg espera un signed int. -- __Pascal Bourguignon__ http://www.informatimago.com/ NOTE: The most fundamental particles in this product are held together by a "gluing" force about which little is currently known and whose adhesive power can therefore not be permanently guaranteed.
Re: Problema con los tipos en c
Author: Pedro Maicas
Date: Wed, 17 May 2006 18:51
Date: Wed, 17 May 2006 18:51
21 lines
1678 bytes
1678 bytes
On Wed, 17 May 2006 03:38:27 +0200, javi <xx@xx.net> wrote: >input.seekg ( -sizeof(APE_HEADER_FOOTER), ios::end ); > >el valor de sizeof(APE_HEADER_FOOTER) es 32; pero con el signo menos se >converte en 4294967264. Seguro que eso era un problema ? De la forma que yo lo veo, no hay diferencia entre un numero y otro, -32 es lo mismo que 429....., es decir que su representacion binaria es la misma, y es la funcion seekg la quye decide si es 429.... o -32, obviamente elije -32 pues lo toma como int (sin necesidad de que tu le pongas explicitamente el int). Saludos :-) -Pedro- http://www.maicas.net/ e-mail en www.maicas.net
Re: Problema con los tipos en c
Author: Claudio
Date: Wed, 17 May 2006 21:43
Date: Wed, 17 May 2006 21:43
14 lines
1550 bytes
1550 bytes
On 2006-05-17, javi <xx@xx.net> wrote: > He descargado el programa apetag desde aqu� http://muth.org/Robert/Apetag/ y > al ejecutarlo encontr� que no funcionaba. [...] > pero no s� si es un bug del programa o de mi sistema (Debian testing). Os > agradecer�a cualquier aclaraci�n y si consider�is necesario avisar al > autor. Hombre, si no compila yo creo que es cuesti�n de cortes�a avisarle. En el mejor de los casos le servir� de ayuda y en el peor ignorar� el mensaje (que tampoco es nada grave). Un saludo. --claudio--
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads