С точки зрения памяти - статическая переменная лучше, так как на нее ссылаются один раз.
#Define вставит строку во все вхождения, тем самым - умножив использование памяти ... (то есть, если GCC не оптимизирует те же вхождения константной строки, что на самом деле может. В этом случае - разницы нет)