【发布时间】:2019-01-09 08:34:14
【问题描述】:
该函数应该比较两个整数并在屏幕上打印关系 尽管如此,三元运算符在语法上是正确的,并且已经在 Visual Studio IDE 上运行它在使用 gcc 编译时给我一个 Eclipse 错误:
error: lvalue required as left operand of assignment
(x == y) ? c = 61 : (x > y) ? c = 62 : c = 60;
^
代码:
#include <stdio.h>
void _1_6(const int x, const int y)
{
char c = '\0';
(x == y) ? c = 61 : (x > y) ? c = 62 : c = 60;
printf("%d%c%d", x, c, y);
}
int main(void)
{
_1_6(1, 3);
}
【问题讨论】:
-
欢迎来到stackoverflow。你能正确地格式化你的代码吗?另外请复制并粘贴错误,而不是使用屏幕截图。
-
Visual Studio 及其编译器很乐意让您做许多技术上不允许的事情。
-
我在格式化时发现,g++ 也允许这样做。共享编译器错误或 C 和 C++ 之间的细微差别,我不知道.. 它有效吗?我不知道。没查。可能需要更多的深入了解。
标签: c compiler-errors ternary-operator