将类对象指针打包成 char * 用于消息队列
是否可以通过 POSIX 消息队列正确且安全地传递类对象指针? 例如, Object *obj = new Object(); mq_send(mqdes, static_cast&obj, sizeof(obj), 1); …
C++ reinterpret_cast,制作唯一编号
最近,我正在使用代码为我的类创建唯一的 int 数字。 我使用了reinterpret_cast(my_unique_name),其中my_unique_name是一个具有唯一值的char []变量…
标准布局类型和reinterpret_cast
如果我已将结构体的成员复制到我的类中,是否可以从我的类转换为结构体? #include #include class Buffer { public: void * address; size_t size; B…
如何使用reinterpret_cast转换为c++中的派生类指针
这是我的测试示例: struct base { virtual ~base(){} int x; }; struct derived: public virtual base { base * clone() { return new derived; } de…
调用从不兼容类型转换而来的零数据结构的成员函数 - 未定义?
在不可修改的标头中声明了一个前向 C 结构。我想“虚拟地”为其添加方便的成员函数。显然,我的第一选择是扩展结构并将方法添加到派生类。无法做到,…
如何为具有内部放置 new 的类实现安全复制构造函数(使用 std::string)
这是我的代码: struct RS_Token { char id; char cleanup; unsigned char array[sizeof (std::string) > sizeof (double) ? sizeof (std::string) : …
使用 c++0x 标志编译 wxWidgets
尝试使用 gcc-4.6 从带有 c++0x 标志的源代码编译 wxWidgets-2.9.1 时。我遇到了错误 在 { } [-fpermissive] 内将“128”从“int”缩小到“char”的转…
如何在 C++ 中将无符号长整型 (DWORD) 重新解释为有符号长整型?
我想将 unsigned long (实际上是 DWORD)重新解释为 signed long。我尝试过: DWORD x; long y = reinterpret_cast(x); 但是,VC++2010智能感知告诉…
Reinterpret_cast 在 C++ 中的使用
只是一个简单的问题,有这个: fftw_complex *H_cast; H_cast = (fftw_complex*) fftw_malloc(sizeof(fftw_complex)*M*N); 之间有什么区别 H_cast= re…
在特定偏移量和类型处reinterpret_cast原始结构的安全方法?
return *reinterpret_cast((reinterpret_cast(this) + 2)); Struct 是 pragma 打包的 1 并包含一堆 uint、char、short 字段... 既然它是 UInt32,是否…
为什么将指针强制转换回原始类会产生奇怪的行为?
假设在我的代码中,我必须将 void* 存储为数据成员,并在需要时将其类型转换回原始 class 指针。为了测试它的可靠性,我编写了一个测试程序(linux ubu…
我可以通过reinterpret_cast将int的空指针转换为long类型吗
int *pt = 0; long i = reinterpret_cast(pt); i 保证为 0 吗?这是明确定义的还是实现定义的? 我检查了 c++ 标准,但它只指出 指向数据对象或函数的…
是reinterpret_cast大部分没用吗?
我之前阅读过有关使用reinterpret_cast的各种问题,并且我也阅读了C++标准中的相关措辞。本质上,归结为指针到指针 reinterpret_cast 操作的结果除了…
执行变量的原始副本的简单转换是否会破坏严格别名?
我一直在阅读严格别名最近相当多。 C/C++ 标准规定以下代码无效(未定义的行为是正确的),因为编译器可能将 a 的值缓存在某处,并且在以下情况下无法…
当将 void* 转换为任何内容时,我应该使用 static_cast 还是 reinterpret_cast
static_cast 和 reinterpret_cast 似乎都可以很好地将 void* 转换为另一种指针类型。是否有充分的理由偏爱其中之一?…