То, что у вас будет работать.То, что вы хотите исследовать, это «связь» в C. В основном объекты, не входящие в функцию или помеченные как статические, являются внешними (представьте себе глобально).В этом случае вам необходимо уведомить компилятор о том, что на самом деле в другом месте определена переменная с именем hello.Вы делаете это, добавляя следующую строку в file2.c
extern char* hello;