Почему при сборке ядра cross-gcc странно себя ведёт?
я учусь писать систему, использую кросс-компилятор gcc. Как всегда, появилась одна большая проблема: если я в файле kernel.c создам маску символа(моя ос работает в защищённом режиме, изначально был сменён режим на графический(VGA)) в главной функции (main):
#include "../libc/vga.h"
#include "../libc/chars.h"
void main()
{
int8 NULL[64] = {
0,0,1,1,1,1,0,0,
0,1,1,1,1,1,1,0,
0,1,1,0,0,1,1,0,
0,1,1,0,0,1,1,0,
0,1,1,0,0,1,1,0,
0,1,1,0,0,1,1,0,
0,1,1,1,1,1,1,0,
0,0,1,1,1,1,0,0
};
redraw(0x00);
print_mask(NULL, 8, 8, 0x34);
}
то символ выводится на экран без проблем, однако, если я вынесу определение маски символа '0' в любое место:
#include "../libc/vga.h"
#include "../libc/chars.h"
int8 NULL[64] = {
0,0,1,1,1,1,0,0,
0,1,1,1,1,1,1,0,
0,1,1,0,0,1,1,0,
0,1,1,0,0,1,1,0,
0,1,1,0,0,1,1,0,
0,1,1,0,0,1,1,0,
0,1,1,1,1,1,1,0,
0,0,1,1,1,1,0,0
};
void main()
{
redraw(0x00);
print_mask(NULL, 8, 8, 0x34);
}
то ничего не выводится, в чём проблема? Такое происходит со всеми массивами.