Ersetzen Sie den Makro-Wert #define X durch einen anderen, der im Kompilierungsbefehl @ angegeben is

Angenommen, ich habe diesen Code:

#include<stdio.h>

#ifndef STR
  #define STR "HELLO"
#endif

int main()
{
    printf(STR "WORLD \n");
    return 0;
}

Was im Grunde übersetzt bedeutet: Wenn STR nicht definiert wurde, definieren Sie es als "HALLO", sodass die Programmausgabe @ is

HALLO WEL

Nun, meine Frage ist: Wie kann ich diesen STR-Wert beim Kompilieren mit gcc ändern? Ich möchte beispielsweise "HELLO" in "HI" ändern, ohne etwas in der Quelldatei (program.c) zu ändern.

Was ist die gcc-Syntax dafür?

Ich habe es versuch

gcc -Wall program.c -DSTR = "HI" -o program

aber es wurde nicht die erwartete Ausgabe erzeugt.

Irgendwelche Vorschläge

Vielen Dank

Antworten auf die Frage(1)

Ihre Antwort auf die Frage