warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]|

warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]|

por Pedro Rodrigues -
Número de respostas: 3

To tendo esse warning em um programa que estou fazendo, e não to conseguindo resolver. Lembro que alguém postou isso no fórum pro EP1 ou 2(não lembro) e o Coelho disse para compilar(ou deixar de compilar) com uma certa flag, mas to com a pulga atrás da orelha com isso e queria resolver de alguma forma. Dei uma pesquisada, vi uns tópicos no Stack Overflow, mas não entendi direito como resolve. Alguém sabe algum jeito de eliminar esse warning, ou como o Coelho diz, "deixar o compilador feliz"?

Lembro que tive o mesmo problema no EP, mas resolvi de um jeito coxa, declarei uma variável 'z' e igualei em todos os scanf's. Não tenho orgulho disso, mas funcionou, hehehe.

Valeu desde já!

Em resposta à Pedro Rodrigues

Re: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]|

por José Coelho de Pina -

Oi Pedro,

A opção, de certa forma, está na própria mensagem

warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]|

A opção para o gcc não apresentar esses avisos é -Wno-unused-result.
Ela aparece nos Makefile dos Eps.

Em resposta à José Coelho de Pina

Re: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]|

por Pedro Rodrigues -

Mas Coelho, existe alguma forma "bonita" de eliminar isso? Li no Stack Overflow uns métodos, mas como os próprios autores disseram, são métodos "obscuros":

if(scanf("%d",&t));

ou
int t;int unused __attribute__((unused));
    unused = scanf("%d",&t);
    printf("%d",t);
 
Em resposta à Pedro Rodrigues

Re: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]|

por Caio Braz -

Fiquem tranquilos, nas versões mais atuais do GCC (atualmente ele está na versão 4.8.2) ele já não dá mais este warning, então não precisam fazer nada obscuro pra evitá-lo! =D

Vocês podem conferir a versão do GCC que tem no PC de vocês rodando: gcc --version no terminal.