【发布时间】:2018-03-14 02:15:09
【问题描述】:
我在 Unix 环境中有一个简单的 cpp 文件,如下所示:
#include <stdio.h>
#ifndef HELLO
#define HELLO "hello"
#endif
int main()
{
printf("HELLO = %s \n", HELLO);
return 0;
}
如果编译并运行它,它会打印出HELLO = HELLO。
但是,当我导出HELLO="HELLO",然后使用g++ -Wall -g -DHELLO 编译程序时,我收到一条警告:
当我运行程序时,我遇到了分段错误。
如何在代码中打印-DHELLO?
【问题讨论】:
-
-DHELLO等同于#define HELLO 1,因此您得到的代码不正确。你需要做'-DHELLO="hello"'(你可以通过直接调用预处理器cpp:echo 'HELLO' | cpp -DHELLO来检查这个)