Jak zadeklarować stałe łańcuchowe w C?

Wiem, że w C jest dość idiomatyczne lub przynajmniej dobry styl do deklarowania stałych liczbowychenums zamiast#defineich.

/* bad style */
#define MAXLINE 1024

/* good/better style */
enum {
    MAX_LINE = 1024
};

Czy istnieje odpowiednia reguła dla definicji stałych łańcuchowych?

/* is this good style? */
#define HELLO "Hello World"

/* or is this better? */
const char *HELLO2 = "Howdy";

Co wolisz? Jeśli to możliwe, należy wykazać pewne wady obu metod.

questionAnswers(4)

yourAnswerToTheQuestion