Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O sizeof operador fornece a quantidade de armazenamento, em bytes, necessária para armazenar um objeto do tipo do operando. Este operador permite que você evite especificar tamanhos de dados dependentes da máquina em seus programas.
Sintaxe
sizeof unary-expression
sizeof ( type-name )
Observações
O operando é um identificador que é uma expressão unária ou uma expressão de tipo fundido (ou seja, um especificador de tipo entre parênteses). A expressão unária não pode representar um objeto de campo de bits, um tipo incompleto ou um designador de função. O resultado é uma constante integral não assinada. O cabeçalho padrão STDDEF. H define este tipo como size_t.
Quando você aplica o sizeof operador a um identificador de matriz, o resultado é o tamanho da matriz inteira em vez do tamanho do ponteiro representado pelo identificador da matriz.
Quando você aplica o sizeof operador a um nome de estrutura ou tipo de união, ou a um identificador de estrutura ou tipo de união, o resultado é o número de bytes na estrutura ou união, incluindo preenchimento interno e à direita. Esse tamanho pode incluir preenchimento interno e à direita usado para alinhar os membros da estrutura ou união nos limites de memória. Assim, o resultado pode não corresponder ao tamanho calculado somando as necessidades de armazenamento dos membros individuais.
Se uma matriz sem tamanho for o último elemento de uma estrutura, o sizeof operador retornará o tamanho da estrutura sem a matriz.
buffer = calloc(100, sizeof (int) );
Este exemplo usa o sizeof operador para passar o tamanho de um int, que varia entre máquinas, como um argumento para uma função de tempo de execução chamada calloc. O valor retornado pela função é armazenado em buffer.
static char *strings[] = {
"this is string one",
"this is string two",
"this is string three",
};
const int string_no = ( sizeof strings ) / ( sizeof strings[0] );
Neste exemplo, strings é uma matriz de ponteiros para char. O número de ponteiros é o número de elementos na matriz, mas não é especificado. É fácil determinar o número de ponteiros usando o sizeof operador para calcular o número de elementos na matriz. O const valor string_no inteiro é inicializado para este número. Por ser um const valor, string_no não pode ser modificado.
Ver também
Operadores C
Operadores integrados C++, precedência e associatividade