Ir ao conteúdo
  • Cadastre-se

C++ Se o nome de uma variável for maior ele ocupa mais espaço?


Kr4sh

Posts recomendados

@Kr4sh oi cara!

Você está mesmo confuso. Melhor prova disso é o título do poster e seu corpo ser duas coisas diferentes.

 

Vejamos:

"Se o nome de uma variável for maior ele ocupa mais espaço?"

A resposta é sim, no disco (HD) em que o arquivo foi gravado. Cada caractere do arquivo que alberga o código fonte guarda para si uma quantidade de bytes, dependendo do tipo e da codificação do arquivo podendo ser de 1 até 4 bytes por letra, gráfico ou numeral. Faça um pequeno experimento criando um arquivo texto usando aplicação Bloco de Notas (Notepad) do windows; escreva teu nome e depois salve o arquivo, depois com botão direito do mouse clique nele, depois clique em propriedades localize o seguinte trecho na janela que abriu- Tamanho: x bytes (x bytes) -, onde aqui há x na janela há quantidade de bytes que o teu nome ocupa na memória do disco. A única diferença será nesse caso, e no que se diz respeito aos programas de variáveis de grandes ou pequenos nomes não haverá diferença entre os espaços ocupados.

 

"E tem alguma diferença em utilizar o comando endl e o /n???"

Sim, há diferenças, porém os resultados são os mesmos. Dadas as situações de uso correto, ambos os comandos gerarão o mesmo evento que é adicionar uma nova linha. A diferença é que endl é categórico a sintaxe C++ e suas particularidades e \n pertence a sintaxe do C, ou seja, a diferença é no campo da escrita e da execução, pois o resultado final é o mesmo.

 

"Aceito dicas pra aprender mais rápido também..."

Aprender mais rápido, aprender é por natureza um processo lento, das palavras do PhD Peixoto da Universidade Federal de Pernambuco: Melhor forma de aprender é pela força de vontade, exercício, leitura, repetição e tudo dito antes em dobro.

 

~~ / ~~

  • Curtir 1
  • Amei 1
Link para o comentário
Compartilhar em outros sites

A sua pergunta não foi especifica, ocupa mais espaço em que? Memória? Em disco? Ou nos arquivos do projeto?

 

Se você estiver falando em tamanho dos arquivos do projeto a resposta é sim, agora se esta falando no tamanho do arquivo em disco a resposta é sim(o AnsiC já explicou o porque disso). Agora, se o que você quer dizer ocupa mais espaço na memória a resposta é não(Explico isso nas linhas abaixo).

 

O nome da variável é algo irrelevante, não vai ser isso que vai fazer ocupar mas espaço na memoria, ate porque a CPU não interpreta nomes de variável, mas sim registrador e endereços de memória, por exemplo:

 

void MinhaFuncao(int minhaVariavelEnormeEblablalblablblalalbla)

 

Apos compilado e executado, isso ai vai se tornar um registrador(geralmente fica no registrador esp, mas pode ficar no ebp), o que eu quero dizer é que o registrador ebp + 8 vai ser onde esta contida o valor da sua variável, o processador não trabalha com nomes de variáveis, mas com endereços de memória. O que vai deixar maior vai ser o tipo de variável(char, bool, int, float, long, double, long long, ...) por exemplo: uma variável do tipo int(para números inteiros) ocupa na memória 4 bytes, enquanto uma variável do tipo double ocupana memoria 8 bytes.

 

Sobre a segunda pergunta:

Sim, tem algumas diferenças, enquanto o \n e apenas um carácter ansi que pula uma linha, o endl é um manipulador de stream, que forca o flush do buffer a pular uma linha.

 

o endl não existe na linguagem C, apenas na linguagem C++.

 

Dicas para aprender rápido? Apenas se esforce e meta a mão nos códigos, você só vai aprender lendo e praticando.

  • Amei 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...