gpt4 book ai didi

c++ - 使用 CImage 时避免转换

转载 作者:太空宇宙 更新时间:2023-11-04 15:49:58 26 4
gpt4 key购买 nike

最近我看到一些人告诉其他人,如果他们需要转换,他们做错了什么。我在 C++ 中有这段代码

byte* pixel = (byte*)image->GetBits();

这里我转换为 byte*,因为 GetBits() 返回 void*。那我怎么办

  • pixel 保持一个字节*而不进行转换
  • 使用void*(我以前没用过这种类型)

为了澄清,我接着使用与此类似的 pixel

*(pixel) += 20;
*(pixel + 1) += 20;
*(pixel + 2) += 20;

最佳答案

在你的情况下,转换是合理的,但在 C++ 中,更好的转换方法是使用 C++ 风格的转换之一,所以在这里你可以使用 static_cast 作为:

byte* pixels = static_cast<byte*>(image->GetBits());

要了解各种 C++ 风格的转换以及在何处使用,请阅读以下主题:

关于c++ - 使用 CImage 时避免转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10164996/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com