我在 Unix 环境中有一个简单的 cpp 文件,如下所示:
#include <stdio.h>
#ifndef HELLO
#define HELLO "hello"
#endif
int main()
{
printf("HELLO = %s \n", HELLO);
return 0;
}
如果这是编译并运行的,它会打印出HELLO = HELLO
.
但是,当我执行 export HELLO="HELLO"
,然后使用 编译程序g++ -Wall -g -DHELLO
时,我收到一条警告:
警告:格式“%s”需要“char*”类型的参数,但参数 2 的类型为“int”[-Wformat=] printf("你好 = %s \n", 你好);
当我运行程序时,我得到一个分段错误。
我将如何-DHELLO
在代码中打印?