Цитата(Dubov @ Apr 18 2014, 16:01)

Хочется писать красивый и правильный код.
Сейчас активно использую глобальные переменные и типа, если надо чтобы один модуль записывал данные, а другой их читал, то объявляю буфер как
extern buf[256];
Если надо красиво и правильно, но все объявления extern-объектов следует делать в отдельном хидере.
Например, в
global.h
куда вписать все extern-определения.
А чтобы и сами глобальные объекты не расползлись по разным модулям, то их желательно тоже поместить в отдельную корзину.
Например, собрать их всех в модуле
global.c
или завести себе правило объявлять глобальные переменные только в модуле main.c
(тогда и global.h можно обозвать main.h).
А в самих сишных модулях слово extern никогда (!) не должно встречаться, а допустимо лишь включать
#include "global.h"
или
#include "main.h"
Тогда уж вы точно избежите любых ошибок, связанных с недоопределением глобальных переменных.