(double) 和 double() 之间的区别
Difference between (double) and double()
我认为这个问题并不新鲜,但我在任何地方都找不到答案。
在 c++ 中,(double)myInt
和double(myInt)
之间有区别吗?
在 c++ 中 (double(myInt 和 double(myInt( 之间有区别吗?
唯一的区别是句法上的区别。意思是一样的。
后一种"功能"语法不能用于复合类型:int*(x)
不起作用。
(double)myInt
是从int
到double
的类型转换。在现代C++中,强烈建议使用static_cast<double>(myInt)
.
double(myInt)
调用double
的"构造函数",它也进行类型转换。
本质上,它们是相同的,并且将产生相同的 ASM 输出。
检查以下代码:
#include <iostream>
int main() {
int a = 5;
double b(a); // line 1
double c = (double)a; // line 2
return 0;
}
两行的结果是相同的 ASM:
cvtsi2sd xmm0, DWORD PTR [rbp-4]
movsd QWORD PTR [rbp-24], xmm0
在这里查看
相关文章:
- C++中std::resize(n)和std::shrink_to_fit之间的区别
- int(c) 和 c-'0' 之间的区别。C++
- 向量 <int> a {N, 0} 和 int arr a[N] = {0} 的时间复杂度有什么区别
- C++ - "!pointer"和"pointer == nullptr"的区别?
- C++ 使用 assign 函数的字符串与直接使用 '=' 更改值的字符串之间的区别
- std::atomic和std::condition_variable wait,notify_*方法之间的区别
- 在 .h 文件中的类中声明静态变量和在.cpp文件中声明"global"变量有什么区别
- 我是C++编程的新手,这些代码之间有什么区别,我应该使用哪一个
- 在 const 函数中通过引用和指针返回之间的区别
- 我想知道长双倍和双倍之间的区别
- 返回常量对象引用 (getter) 和仅返回字符串有什么区别?
- 返回递归调用和仅递归调用的区别
- C++在数学计算中将double转换为int
- 在c++中为double类型的数组创建一个unique_ptr
- Qt:remove() 和 rmdir() 有什么区别
- 这 4 个 lambda 表达式之间有什么区别?
- (double) 和 double() 之间的区别
- "double* grade"、"double *grade"和"double* fn()"有什么区别?
- 在 c++ 函数中传递参数时,"double a[]" 和 "double *a" 有什么区别?
- 在C++中,<double>static_cast(a)和双(a)之间有什么区别?