на асме у меня как раз будет то, что нужно и в хидере и во внешних модулях:
=========
general.h
---------
#define BufLen 100
extern_C byte Buffer[BufLen] NOINIT;
=========
modul12345.c
---------
#include "general.h"
//Buffer[0]=0x55;
//Buffer[99]=0x77;
==================
general.S
---------
#include "general.h"
.section .bss
.global Buffer
Buffer: .skip BufLen+20,0
=========
(extern_C для ассемблера заменяется макросом на ";")
а вот как это сделать general на С (при том же хедере), не пойму