В .asm файле объявил кусок памяти размером в 4КБ, который хранит 1024 элемента типа uint32_t.
global array
section .bss
array:
resb 4096
Пытаюсь из Си напечатать адрес массива
extern uint32_t* array;
printf("0x%X\n", array);
Но выводится 0x0.
Однако, если написать
extern uint32_t array[];
printf("0x%X\n", array);
То печатает уже верный адрес.
Почему так?
Вроде как array это адрес начала массива, объявление
extern uint32_t* array;
об этом и говорит.