gpt4 book ai didi

c - 是否可以在三元运算符中包含语句(在生成的代码中)?

转载 作者:行者123 更新时间:2023-12-01 14:00:07 26 4
gpt4 key购买 nike

免责声明:我不是在写这样的代码,我知道它丑陋且不可读。

我正在生成 C,我需要所有内容都在一个表达式中。

这个有效:

#define true 1
int a = (true) ? ( (true) ? (puts("a"), puts("b"), 1) : (2) ) : (3);
printf("%d\n", a);
a
b
1

但我还需要有语句,而不仅仅是表达式。这无法编译:

int a  = (true) ? ( (true) ? (puts("a"), puts("b"), (if (true) puts("c");),  1) : (2) ) : (3);
error: expected expression

用C实现是不可能的吗?

最佳答案

使用 gcc extension ,您可以将语句括在大括号中,例如

int a  = (true) ? ( (true) ? (puts("a"), puts("b"), ({if (true) puts("c");}),  1) : (2) ) : (3);

关于c - 是否可以在三元运算符中包含语句(在生成的代码中)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56161203/

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