GCCは、次のコードは、値を変更することが暗黙の変換が含まれていることを私に警告:GCCがこの暗黙の変換に対して警告するのはなぜですか?
float square = 100;
GCCによって与えられる警告:
#include <stdlib.h>
float square = rand();
しかし、以下に警告を生じません次のされています
tests/ChemTests.cpp:17:23: error: conversion to ‘float’ from ‘int’ may alter its value
前者は警告を与えるだろう、なぜrand()
がpであるので、私は、理解していません明示的に宣言し、100
整数リテラルと同様にint
を返します。
は、なぜ最初の行は、両方がint
からfloat
への暗黙的な変換を持っているにもかかわらず、コンパイラの警告ではなく、秒を与えるのでしょうか?
私が '-Wconversion'オプションを使わない限り、警告が出ないことがわかりました。 –