Por que const é desnecessário em declarações de função em arquivos de cabeçalho para parâmetros passados por valor?
Eu estava lendo recentemente sobre o uso deconst
palavra-chave como argumentos de função em C e a maneira de usar mencionada emQuando e com que finalidades aconst
palavra-chave ser usada em C para variáveis e foi aceito como resposta correta. Neste post, um ponto menciona que
Nunca useconst
em um protótipo de função para um parâmetro passado por valor. Não tem significado e, portanto, é apenas "ruído".
Eu usei dessa maneira e funciona para mim, mas não sei por que isso ébarulho para parâmetros passados por valor e ainda não há ruído para os parâmetros passados por referência (mais apropriadamente os valores do ponteiro em C, pois não há conceito depass by value
epass by reference
em C). Então, por esta explicação, quando passo um ponteiro como argumento de função e uso umconst
palavra chave; Eu tenho que fazer isso para a declaração no arquivo de cabeçalho e a definição no arquivo C, mas não preciso usar oconst
palavra-chave para um argumento que não seja ponteiro na declaração (arquivo de cabeçalho) e use-a apenas ao definir a função no arquivo C.
Alguma explicação?