【发布时间】:2012-05-02 14:58:01
【问题描述】:
我有一个图像存储在指向 char 的指针中,我想在它上面使用 ipp 函数。 如何从这个指向 char 的指针在 ipp 中构建 Ipp8u* 图像? 这是一个繁重的计算(建筑)吗? 我可以做简单的铸造吗? 非常感谢
【问题讨论】:
我有一个图像存储在指向 char 的指针中,我想在它上面使用 ipp 函数。 如何从这个指向 char 的指针在 ipp 中构建 Ipp8u* 图像? 这是一个繁重的计算(建筑)吗? 我可以做简单的铸造吗? 非常感谢
【问题讨论】:
是的,你需要做的就是投射指针:
Ipp8u *ipp_data = static_cast<Ipp8u*>(your_data);
或者,如果您出于某种原因更喜欢 C 风格的强制转换:
Ipp8u *ipp_data = (Ipp8u *)your_data;
如Intel documentation 中所述,Ipp8u 等效于 C 的 unsigned char——至少在 CHAR_BIT == 8 的典型实现中是这样。这不是必需的,但我相信大多数(如果不是全部)compilers/platforms supported by Intel-IPP 都是这种情况。
【讨论】:
unsigned char 而不是uint8_t,后者更明确。
unsigned char 更常见/广为人知,但我不得不同意 uint8_t 确实更符合描述。