C++ 如何将quint/qint转换为常规整数(QT)

C++ 如何将quint/qint转换为常规整数(QT),c++,qt,casting,type-conversion,int,C++,Qt,Casting,Type Conversion,Int,在我的程序(Udp发送器)中,我正在使用QT,必须将QT类型quint64转换为常规的int 方法QUdpSocket::writeDatagram返回类型quint64中发送的字节数。 在我的程序中,一次发送的字节永远不会超过1024个,因此在转换为常规整数时,数字的大小不会有问题,我需要进一步处理它 < P> >我可以用什么方法或函数来转换这个Quint 64整数到一个规则的C++“int”整数?< /P> 我发现的唯一的东西是“QDataStream类”文档(似乎不包含此类内容)和这个问题

在我的程序(Udp发送器)中,我正在使用QT,必须将QT类型
quint64
转换为常规的
int

方法
QUdpSocket::writeDatagram
返回类型
quint64
中发送的字节数。 在我的程序中,一次发送的字节永远不会超过1024个,因此在转换为常规整数时,数字的大小不会有问题,我需要进一步处理它

< P> >我可以用什么方法或函数来转换这个Quint 64整数到一个规则的C++“int”整数?< /P> 我发现的唯一的东西是“QDataStream类”文档(似乎不包含此类内容)和这个问题:,但它没有包含解决方案。

只是
long long int
\u int64
在Windows上)的别名。如果您知道该值符合该范围,则可以简单地编写:

quint64 x = 42;
int y = x;
但是,直截了当的表达方式更好:

quint64 x = 42;
int y = static_cast<int>(x);
quint64 x=42;
int y=静态(x);

实际有效!非常感谢。我想我已经试过了,但可能把其他事情搞砸了…还有一个问题:
static_cast()
什么更好?显然除了可读性?可读性和可读性,不要忘记可读性,最后但并非最不重要的是,如果您试图执行不允许的强制转换,编译器会告诉您(但与
(int)x
强制转换相比,这是一个相当大的优势,因为对于不兼容的类型
tx=y;
也会失败)。真的,可读性原因还不够吗?;)完全是这样,这就是为什么我的代码现在“返回静态强制转换(bytesSend)”,但如果有更多,我现在就喜欢^^