GCC警告我說下面的代碼段包含可能改變的值的隱式轉換:爲什麼GCC警告這種隱式轉換?
#include <stdlib.h>
float square = rand();
然而,以下不產生任何警告:
float square = 100;
警告由GCC給出是如下:
tests/ChemTests.cpp:17:23: error: conversion to ‘float’ from ‘int’ may alter its value
我不明白,爲什麼前者將給予警告,因爲rand()
爲p大致聲明並返回一個int
,就像100
整數字面量。
爲什麼第一行給出編譯器警告但不是第二行,即使兩者都有從int
到float
的隱式轉換?
我發現我沒有得到警告,除非我使用'-Wconversion'選項。 –