c++的自增强制转换
C++ Cast increment cast
someobject* scratchpad[10000][33];
我想在一个语句中做到这一点:
unsigned int index = (int) scratchpad[j][0];
scratchpad[j][0] = (someobject*) (index + 1);
我以为是:
unsigned int index = (unsigned int) ++((char*)scratchpad)[j][0];
但是我不太懂语法。我实际上是在第一个(0)子数组索引中存储一个整数
不要在第一个子数组索引中存储整数。把它放在别的地方。认真对待。
但如果你是一个绝对的疯子,唯一的目标是让别人讨厌你,那么在unsigned int
不大于指针的假设下,这是可行的。
unsigned index = ++reinterpret_cast<unsigned&>(scratchpad[j][0]);
http://coliru.stacked-crooked.com/a/99043130e74913f9 我觉得你没有告诉我们你的问题是什么。所以我只能猜测这是你真正需要的:
++scratchpad[j][0];
假设scratchpad
只是一个指针数组,您只想增加其中一个。如果是这种情况,您根本不需要强制类型转换,因此工作完成,所有丑陋的代码都消失了。否则,你需要用文字来说明。
我写这篇文章是作为回答而不是评论,所以(希望)大量的赞会让你相信我是对的。
unsigned int index = (unsigned int) ++((char*)scratchpad)[j][0];
即使它工作(它不应该....)这不是你应该拥有的它是神秘的,很难阅读。
2行很好,虽然我不确定你是否……什么是some-object和unsigned int…我会在评论里问的
相关文章:
- 防止主数据类型C++的隐式转换
- 模板参数替换失败,并且未完成隐式转换
- 努力将整数转换为链表。不知道我在这里做错了什么
- HEX值到wchar_t字符(UTF-8)的转换
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将 Qvector<uint8_t> 转换为 QString
- 如何在cuSparse中使用cusparseXcoo2csr从coo转换为csc
- 如何将字符 * 转换为增强::shared_ptr
- 增强HANA编译时列表转换
- 弦到不带Sstream或增强词汇铸件的串转换
- 将 UTC 时差转换为字符串增强
- 增强Serialiaze档案转换为char
- 将字符串转换为增强::d和周围
- 将C *文件转换为C++ iostream与增强
- 增强绑定和分配以将矢量转换为字符串
- 增强精神占位符类型转换
- 将范围之间的字符串向量转换为带分隔符的字符串(允许增强)
- Qt正则表达式增强正则表达式转换从字符串内部取数
- 对不同派生类的增强反序列化进行正确的类型转换
- 增强MPL转换序列"真实"类型