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'选项。 –