ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Operador sizeof


Enviado por   •  23 de Mayo de 2013  •  577 Palabras (3 Páginas)  •  332 Visitas

Página 1 de 3

Operador sizeof

El operador sizeof informa del tamaño de almacenamiento utilizado por cualquier objeto, sea un tipo básico o derivado.

Sintaxis

El operador unitario sizeof tiene dos formas posibles de sintaxis:

sizeof expresión-unitaria

sizeof (nombre-de-tipo)

Observe que a pesar del aspecto de la segunda forma de sintaxis, se trata de un operador, no de una función. sizeof representa una forma cómoda de obtener información sobre el tamaño de los tipos básicos.

Resultado

Cualquiera que sea la forma de sintaxis empleada, el resultado es una constante entera de tipo size_t, con el espacio de memoria (bytes) usada por el operando. Con algunas excepciones, este tamaño es determinado por el tipo de operando, y para cada tipo, depende de la implementación. Es decir, no está predeterminado por el Estándar sino por el compilador utilizado

Ejemplo

#include <iostream.h>

int main(void) { // ===============

long double ld;

class C { public: float x; float y; } c;

cout<< "Tamaño de ld: " <<sizeofld<<endl;

cout<< "Tamaño de C: " <<sizeof c <<endl;

cout<< "Long double = " <<sizeof(long double) << " Bytes" <<endl;

return 0;

}

Salida:

Tamaño de ld: 10

Tamaño de C: 8

Long double = 10 Bytes

Comentario

Cuando se utiliza con instancias de tipos [3] se usa la primera forma de la sintaxis; tanto si se trata de tipos básicos (caso de ld en el ejemplo), como si son tipos definidos por el usuario (caso de C). Cuando se utiliza con especificadores de tipo básicos, se utiliza la segunda, con paréntesis (caso de longdouble).

En el ejemplo que sigue se muestra claramente los criterios de uso de una y otra forma de sintaxis:

#include <iostream.h>

int main(void) { // ===============

int i;

char ch;

class Cl { long double ld; int i; } c;

structEs { long double ld; int i; } e;

enum En { UNO } u;

cout<< "Tipo-int == " <<sizeof(int) <<endl;

cout<< "Tipo-char == " <<sizeof(char) <<endl;

cout<< "Tipo-ClaseCl == " <<sizeof(Cl) <<endl;

cout<< "Tipo-Estr. Es == " <<sizeof(Es) <<endl;

cout<< "Tipo-Enum En == " <<sizeof(En) <<endl;

cout<< "Objeto-int i == " <<sizeof i <<endl;

cout<< "Objeto-char ch == " <<sizeof c <<endl;

cout<< "Objeto-Clase c == " <<sizeof c <<endl;

cout<< "Objeto-Estr e == " <<sizeof e <<endl;

...

Descargar como (para miembros actualizados) txt (4 Kb)
Leer 2 páginas más »
Disponible sólo en Clubensayos.com