Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Reciclado de memoria - Fernando Rodríguez

Iniciado por ethernet, 11 de Diciembre de 2002, 08:11:10 PM

« anterior - próximo »

fiero

                                ethernet todos llevamos razón, lo de usar 32 bits en short solo vale en el paso de parámetros por pila y en la creación de variables en la pila. Los vectores o asignacion dinámica de vectores es otro cantar... :ojo:

un saludo                                
www.videopanoramas.com Videopanoramas 3D player

Pogacha

                                Pido permiso señores pero la custion son las directivas de enpaquetamiento y alineacion del compilador, pack byte, pack word, align .8, las cuales cambia en cada compilador.
Espero que este dato les sirva.                                

ethernet

Yo por mucho q cambie el factor de empaquetamiento el sizeof sigue siendo el mismo para datos basicos como char short int etc, NO PARA STRUCTS, REPITO, NO PARA STRUCTS (q nos conocemos xD).

En efecto se comprueba q aunque sea un short mete 4 bytes en la pila lo cual   me da la razon a mi q es mejor usar un int o unsigned int q un short para ese caso concreto puesto q puedes ampliar el rango de uso sin problemas.

A lo q me referia en mi primer post es q me parece una tonteria usar short int & puesto q no tiene ningun sentido pasar sizeof(tamaño_bus_direcciones_maquina/8) pudiendo pasar sizeof(short int). Otras cosa muy diferente es q el compilador meta siempre 4 bytes, q puede q ciertos compiladores no lo hagan.

Por lo menos hemos dado vida al cotw !! XDDD

Nota; todas las pruebas las he hecho en vc++6.0.

saludos

Vicente

                                Hola,

Citar"ethernet" escribio:
En C: -------------------
void vMyFuncionBebe( int Argumento1 ,unsigned short Argumento2 ,int * pArgumento3 );

Compilado seria:(en el momento de la llamada) ------------------------------
Push [DireccionDeRetorno]
push Argumento1
push Argumento2
push Argumento3

  me parece que los push de los argumentos van al revés... Primero el 3, luego el 2, luego el 1.

  Un saludo,

Vicente                                

ethernet

Va, eso depende mucho de muchas cosas, en vc++ por ejemplo hay una opcion para q pase los argumentos por registros si puede.
saludos

synchrnzr

                                Po zi, no todos los compiladores lo hacen. Puedes probar con cualquier C de Borland, por ejemplo (te lo he buscado especialmente pa ti, ethernet XDD) Yo lo que me pregunto es si verdaderamente se ahorra tiempo metiendo registros de 32 bits en vez de 16 en la pila. Según Intel, el número de ciclos de CPU consumidos en un PUSH es el mismo para registros de 32 y de 16 bits, lo único que podría influir pues serían cuestiones de caché o de pipelining pero ahí ya no entro... :-?

Sync                                






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.