【发布时间】:2012-10-02 16:16:25
【问题描述】:
谁能解释一下为什么这个简单的三元运算在 C 语言中甚至无法编译?
void main(int argc, char *argv[]){
int a = atoi(argv[1]);
char foo[] = (a == 1) ? "bar1" : "bar2";
}
这似乎是特别是字符串的问题。
【问题讨论】:
-
等一下,用 C 语言?如果你在 C 中工作,为什么你的主要回报是无效的?它应该是一个 int。
-
允许但不推荐返回 void。有一个空主..
-
微软的编译器会很乐意接受它,其他人不会,但这不可能是微软第一次做他们曾经做过的事情。请参阅 stackoverflow.com/questions/4207134/… 以获得关于此的非常好的讨论。
标签: c ternary-operator string-literals