Jump to content

Recommended Posts

Posted

esta linha aqui


const char * const quads[16] ={"0000","0001","0010","0011","0100","0101","0110","0111","1000","1001","1010","1011","1100","1101","1110","1111"};

os dois const estão me a confundir. alguem me pode explicar a função de cada um aqui?

Posted

killezio,

Significa que tens 16 apontadores constantes para chars também eles constantes (lê a declaração da direita para a esquerda).

Por outras palavras, não só não podes alterar o endereço presente em quads (para substituir uma string por outra, por exemplo), como também não podes alterar directamente uma das strings apontadas por quads.

Sei que provavelmente não me expliquei muito bem, mas se precisares de mais esclarecimentos, diz.

Posted

já entendi. só nao percebo qual a utilidade de usar "const". se não vamos querer alterar algo basta nao alterá-lo não é? ou ao usar const ajuda na velocidade ou memória utilizada pelo programa?

Posted

Essencialmente o const está lá para te ajudar a ti, programador. Com essa «dica», o compilador pode avisar-te que estás a fazer coisas que não deves (como utilizar quads para alterar o seu conteúdo), evitando assim erros em tempo de execução.

Certamente concordas que, em código de grande escala, não basta pensarmos que não vamos alterar algo que não é para alterar. Podemos alterar por acidente, e o const ajuda a prevenir isso.

Em termos de optimização não há ganhos. Talvez possa haver quando se utiliza restrict em conjunto com const, mas sinceramente não sei (e foge ao âmbito da tua questão).

Posted (edited)

Penso que não faz muita diferença em ter feito a segunda pergunta aqui ou ter criado outro tópico com a segunda pergunta. talvez se tivesse feito isso tinhas-me dito que estava a repetir conteúdo de outro tópico haha

EDIT: e obrigado pelo esclarecimento.

Edited by killezio
Posted

Penso que não faz muita diferença em ter feito a segunda pergunta aqui ou ter criado outro tópico com a segunda pergunta. talvez se tivesse feito isso tinhas-me dito que estava a repetir conteúdo de outro tópico haha

Quando disse que fugia ao âmbito da tua questão não foi com intenção de criares outro tópico; fizeste muito bem em colocar a questão neste tópico, pois vem em seguimento da tua primeira pergunta.

O que fica fora do âmbito do tópico é a explicação do que é restrict e de que forma a sua interacção com const podem gerar optimização potencial, apenas isso 😉

  • Vote 1

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...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.