gpt4 book ai didi

c++ - 如何打印预定义的 cflags

转载 作者:行者123 更新时间:2023-11-30 05:08:53 24 4
gpt4 key购买 nike

我在 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 编译程序时,我收到一条警告:

    warning: format ‘%s’ expects argument of type ‘char*’, but argument 2 has type     ‘int’ [-Wformat=]         printf("HELLO = %s \n", HELLO);

当我运行程序时,出现段错误。

如何在代码中打印-DHELLO

最佳答案

-DHELLO 等同于 #define HELLO 1,它解释了编译错误,提示 int,而不是 字符*

尝试像这样编译:

g++ -Wall -g -DHELLO="hello"

关于c++ - 如何打印预定义的 cflags,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46535157/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com