对于C语言部类间转换,麻烦高人解释下
对于C语言类型间转换,麻烦高人解释下今天看以前的同事写了一个这样的代码//quint32其实就是unsigned int,
对于C语言类型间转换,麻烦高人解释下
今天看以前的同事写了一个这样的代码
//quint32其实就是unsigned int,其定义在Qt的global.h
typedef quint32 CommonImageId;
qint32 strIndexGet(CommonImageId resId) {
return quint32(resId);
}
对于resId,其需要不需要转换?
如果不转换,貌似也没错,都是quint32类型。
但是如果转换,quint32(resId)这样是什么意思?我只知道强制类型转换是(quint32)resId。
希望有人能解释下 C typedef 类型转换 C++
[解决办法]用类型转换也是一样的啊.
其实不转也无所谓, 只是这样代码清晰, 更好阅读.
而且以后如果把 CommonImageId 换成其它类型了的话, 对代码影响也最小.
[解决办法]今天看以前的同事写了一个这样的代码
//quint32其实就是unsigned int,其定义在Qt的global.h
typedef quint32 CommonImageId;
qint32 strIndexGet(CommonImageId resId) {
return quint32(resId);
}
对于resId,其需要不需要转换?
如果不转换,貌似也没错,都是quint32类型。
但是如果转换,quint32(resId)这样是什么意思?我只知道强制类型转换是(quint32)resId。
希望有人能解释下
在这里你不应该将quint32(resId)看作类型转换,虽然它实际上在做类型转换的操作,但语义不同,作者就是想通过resld构造一个quint32而已。
此外,也不要对两者暂时的相同类型实现感到诧异,因为在其它实现中两者可以不同,作者在这里做了一层抽象,以支持更好的移植性。