GCC mi avverte che il seguente pezzo di codice contiene una conversione implicita che può modificare il valore di:Perché GCC mette in guardia contro questa conversione implicita?
#include <stdlib.h>
float square = rand();
Tuttavia, il seguente non cede alcun avvertimento:
float square = 100;
l'avvertimento dato da GCC è la seguente:
tests/ChemTests.cpp:17:23: error: conversion to ‘float’ from ‘int’ may alter its value
non capisco il motivo per cui il primo sarebbe dare un avvertimento, dal momento che è rand()
p dichiarato correttamente e restituisce un valore int
, proprio come il valore letterale intero di 100
.
Perché la prima riga fornisce un avviso al compilatore ma non il secondo, anche se entrambi hanno una conversione implicita da int
a float
?
Trovo che non ricevo l'avviso a meno che non utilizzi l'opzione '-Wconversion'. –