Jump to content

Primer tema: Duda con precompilador en C++


Recommended Posts

Hola usuarios de Chilecomparte, aunque soy usuario de hace mucho tiempo en la pagina, no había tenido tanta participación en este foro, pero, por un cambio de giro de la vida, espero ser mas activo en el tema de programación. :tipeando:

 

Prefacio: estudie programación de computadores el año 2003 en talca, pero esta ciudad es una mierda para los informáticos, y con un hijo en camino busque y sin encontrar trabajo como programador, busque cualquier cosa y quede como cajero en una tienda.

 

Ahora que ha pasado mucha agua bajo el puente, quiero retomar la programación (mi gran pasión desde que la conocí) y estoy leyendo un manual "C++, como programar, 6° edición, Deitel" y me acuerdo de muchas de las cosas que salen ahí, pero tengo una duda en un ejercicio de precompilador que es el siguiente:

 

Se supone que el ejemplo mprime en pantalla el tamaño en bytes de la estructura antes definida, pero ¿no son las dos estructuras iguales?, ¿porque según el resultado no son de tamaño igual?, he aquí el ejemplo:

 

#include <iostream>
using namespace std;

#pragma pack(1)

struct A {
int x;
char a;
int y;
char b;
};

#pragma pack()

struct B {
int x;
int y;
char a;
char b;
};

int main() {
cout << "Tamaño de int: "
<< sizeof(int) << endl;
cout << "Tamaño de char: "
<< sizeof(char) << endl;
cout << "Tamaño de estructura A: "
<< sizeof(A) << endl;
cout << "Tamaño de estructura B: "
<< sizeof(B) << endl;

return 0;
}

 

Y aqui el resultado de la ejecucion, segun "C++, como programar, 6° edición, Deitel":

 

Tamaño de int: 4
Tamaño de char: 1
Tamaño de estructura A: 10
Tamaño de estructura B: 12

 

Agradezco de antemano su ayuda para comprender esta situación, si este no es el foro exacto, le pido disculpas a los administradores y les pido que me indiquen donde colocarlo como corresponde.

 

Gracias, y espero ser mas activo en esta pagina que sigo desde hace mucho tiempo, me han salvado muchas veces, también gracias por sus comentarios...

 

Se despide un Informático que nunca dejo de serlo...

 

PDTA: Talca es una MIERDA!!! :fuuu:

Link to comment
Share on other sites

Hola amigo, el orden de los atributos de la estructura podrían afectar el tamaño de esta. Tiene que ver con como el compilador, en base a diversas variables (por ejemplo la arquitectura del pc), hace reserva de la memoria:

http://www.cprogramming.com/tutorial/size_of_class_object.html

La verdad es que no recordaba esto y como la pregunta es interesante, busqué la respuesta en internet.

 

 

Saludos!

Link to comment
Share on other sites

A mi me parece extraño que recomienden usar el IDE de VB para C++ en el libro pero usen compiladores de software abierto como Dev C++, gracias, investigare mas al respecto y publicare lo que encuentre,gracias por la observación....

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...