killezio Posted July 17, 2016 at 12:23 PM Report #597687 Posted July 17, 2016 at 12:23 PM 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?
pwseo Posted July 17, 2016 at 03:11 PM Report #597688 Posted July 17, 2016 at 03:11 PM 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.
killezio Posted July 17, 2016 at 03:20 PM Author Report #597689 Posted July 17, 2016 at 03:20 PM 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?
pwseo Posted July 17, 2016 at 07:48 PM Report #597690 Posted July 17, 2016 at 07:48 PM 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).
killezio Posted July 18, 2016 at 04:06 AM Author Report #597692 Posted July 18, 2016 at 04:06 AM (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 July 18, 2016 at 04:06 AM by killezio
pwseo Posted July 18, 2016 at 12:23 PM Report #597695 Posted July 18, 2016 at 12:23 PM 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 😉 1 Report
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now