int i=10;
但是当我这样做时(把它分成两个陈述)
int i;
i=10;
错误消失
..我正在使用Xcode(ver-4.1)(Macosx-Lion).. xcode有问题....
答案 0 :(得分:5)
没有任何错误,编译器只是警告您声明了一个变量,而您没有使用它 这只是一个警告,而不是错误 虽然没有任何问题,但您必须避免声明您不需要的变量,因为它们只占用内存并且在首次不需要时会增加开销。
答案 1 :(得分:1)
编译器不是错误,但它没有机会打印出有意义的错误。
显然,如果您声明变量但从不“使用”它,它会发出警告 - 并为其分配一个值可以使用它。这两个代码片段是等效的;第一个恰好让编译器更容易检测到问题。
可以为永远不会读取其值的变量发出警告。如果它在更高的优化级别上这样做,我也不会感到惊讶。 (优化所需的分析对于发现此类问题也很有用。)
编译器根本不可能检测到所有此类问题;这样做相当于解决停机问题。 (我认为。)这就是为什么语言标准通常不需要这样的警告,不同的编译器花费不同程度的努力来检测这些问题。
(实际上,编译器可能会检测到所有未使用的变量问题,但会以一些误报为代价,即在没有真正问题的情况下发出警告。)