gpt4 book ai didi

c++ - 每次我想在基本类型之间进行转换时,我真的应该使用 static_cast 吗?

转载 作者:可可西里 更新时间:2023-11-01 16:25:21 25 4
gpt4 key购买 nike

这是什么原因

long l = 1;
char c = static_cast<char>(l);

float f = 1.0f;
int i = static_cast<int>(f);

比这更好

long l = 1;
char c = (char)l;

float f = 1.0f;
int i = (int)f;

当将一种原始数据类型转换为另一种时?

我有很多在类似情况下使用第二种样式进行类型转换的遗留代码,所以这也是一个关于我是否应该对该代码进行全面修订的问题。

最佳答案

面向 future 。

假设将来我这样做:

float blah = 1.0f;
float* f = &blah;

现在,int i = static_cast<int>(f);停止编译,但 int i = (int)f;reinterpret_cast .

static_cast<int> 这正是我要你做的(int)尽你所能给我一个 int。对于后者,编译器将竭尽全力为您提供 int。值(value),而这很少(从来没有?)可取。

关于c++ - 每次我想在基本类型之间进行转换时,我真的应该使用 static_cast 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11654185/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com