oid draw_rectangle(uint8_t *data, int linesize, int x, int y, int width, int height, int color) { for (int i = y; i < y + height; i++) { for (int j = x; j < x + width; j++) { int offset = i * linesize + j * 4; data[offset + 0] = color & 0xFF; // blue data[offset + 1] = (color >> 8) & 0xFF; // green data[offset + 2] = (color >> 16) & 0xFF; // red } } } 把上面c语言代码,改写成c++代码
时间: 2024-02-14 12:27:23 浏览: 81
Java基本数据类型与封装类型详解(int和Integer区别)
5星 · 资源好评率100%
将上面的C语言代码改写为C++代码可以使用以下方法:
```cpp
#include <cstdint>
void draw_rectangle(uint8_t *data, int linesize, int x, int y, int width, int height, int color)
{
for (int i = y; i < y + height; i++) {
for (int j = x; j < x + width; j++) {
int offset = i * linesize + j * 4;
data[offset + 0] = color & 0xFF; // blue
data[offset + 1] = (color >> 8) & 0xFF; // green
data[offset + 2] = (color >> 16) & 0xFF; // red
}
}
}
int main()
{
// 示例用法
const int width = 10;
const int height = 5;
const int color = 0xFF00FF; // 紫色
uint8_t data[height][width * 4];
draw_rectangle(reinterpret_cast<uint8_t*>(data), width * 4, 0, 0, width, height, color);
return 0;
}
```
在C++中,您可以直接使用C语言的代码,只需包含相应的C标准库头文件即可。示例中的`draw_rectangle`函数保持不变,只是将其放入C++文件中。在`main`函数中,我们使用了一个示例用法来调用`draw_rectangle`函数。
请注意,C++和C之间有一些细微的语法差异,例如在C++中,您可以使用`reinterpret_cast`来进行类型转换,而不是使用C语言中的强制类型转换`(uint8_t*)`。
希望这个示例能帮助您将上述C语言代码改写为C++代码!
阅读全文