次のコードではどのように多くの型変換があります。機能f()
でコードには何種類の型変換がありますか?
#include<stdio.h>
int f(int x)
{
return (float)x;
}
int main()
{
float x = f(5L);
return 0;
}
は、戻り値はint
からfloat
に昇格されます。 main()
では、f()
の引数がint
からlong
に昇格され、int
が再びfloat
に昇格されます。
3種類のコンバージョン(プロモーション)があるのは間違いありませんか? f
で
'x'は使用されないので、最適化されたコンパイルでは' float x = f(5L); 'がなくなり、ゼロ変換が行われます。それ以外は4+タイプの変更があります。 – chux
コンバージョンのどれも「プロモーション」ではありません。 –
'int'関数から値を返すために' int'を 'float'にキャストするのは何ですか? –