Ответ 1
С точки зрения памяти - статическая переменная лучше, так как она ссылается один раз. #define вставляет строку во все вхождения, тем самым - умножая использование памяти... (то есть, если GCC не оптимизирует те же самые постоянные строки, которые на самом деле могут быть в этом случае - нет разницы)