🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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
#1105
Author: javi
Date: Wed, 17 May 2006 01:38
22 lines
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
#1106
Author: Pascal Bourguignon
Date: Wed, 17 May 2006 02:30
37 lines
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
#1107
Author: Pedro Maicas
Date: Wed, 17 May 2006 18:51
21 lines
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
#1108
Author: Claudio
Date: Wed, 17 May 2006 21:43
14 lines
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