Нужно вручную заполнить массив байтов величинами разного размера, как сделать правильно? - 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;
- };
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д