Нужно вручную заполнить массив байтов величинами разного размера, как сделать правильно? - C (СИ)
Формулировка задачи:
мне нужно вручную заполнить массив байтов величинами разного размера. недолго думая, я реализовал это как-то так:
работает, но на вид - самый настоящий быдлокод. есть более эстетичный способ добиться того же самого?
*(char *)(bitmap) = 'B'; *(char *)(bitmap + 1) = 'M'; *(int *) (bitmap + 2) = size + BFILEHEADERSIZE + BINFOHEADERSIZE; *(int *) (bitmap + 6) = 0; *(int *) (bitmap + 10) = BFILEHEADERSIZE + BINFOHEADERSIZE; *(int *) (bitmap + 14) = BINFOHEADERSIZE; *(int *) (bitmap + 18) = width; *(int *) (bitmap + 22) = height; *(short *)(bitmap + 26) = 1; *(short *)(bitmap + 28) = 24; *(int *) (bitmap + 30) = 0; *(int *) (bitmap + 34) = size; *(int *) (bitmap + 38) = 0; *(int *) (bitmap + 42) = 0; *(int *) (bitmap + 46) = 0; *(int *) (bitmap + 50) = 0;
Решение задачи: «Нужно вручную заполнить массив байтов величинами разного размера, как сделать правильно?»
textual
Листинг программы
#define 0x01 fmt_bmp #define 0x02 fmt_jpg #define 0x03 fmt_png // etc struct MySuperFormat { int w; int h; int bpp; int fmt; char* data; };
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д