Tag: 圆括号

为什么说(j ++); 禁止?

下面的代码是错误的(见ideone ): public class Test { public static void Main() { int j = 5; (j++); // if we remove the "(" and ")" then this compiles fine. } } 错误CS0201:只能使用赋值,调用,递增,递减,等待和新对象expression式作为语句 为什么当我们删除括号的时候编译代码? 为什么不用括号编译? 为什么C#是这样devise的?

复杂的Git分支名称打破了所有的Git命令

我试图用下面的命令从master创build一个分支, git branch SSLOC-201_Implement___str__()_of_ProductSearchQuery 当Git突然停止响应。 我怀疑这个非转义的()必须对它做些什么。 现在,每当我尝试运行任何Git命令,我都会得到相同的错误: git:176: command not found: _of_ProductSearchQuery (每次我input一个命令后git增加后的数字) 谁能解释发生了什么? 如何恢复正常? 我希望能够删除该分支,但Git不会为我工作。

高级Javascript:为什么这个函数用圆括号包装?

可能重复: JavaScript中的这个构造是什么? 我碰到这一点的Javascript代码,但不知道该怎么做。 为什么我运行这个代码时会得到“1”? (1)这个奇怪的小附录是什么,为什么这个函数是用括号括起来的? (function(x){ delete x; return x; })(1); 谢谢 :-)

C中的macros需要括号

我试图在下面的代码中使用macrosSQR的定义: #define SQR(x) (x*x) int main() { int a, b=3; a = SQR(b+5); // Ideally should be replaced with (3+5*5+3), though not sure. printf("%d\n",a); return 0; } 它打印23 。 如果我将macros定义更改为SQR(x) ((x)*(x))那么输出如预期的那样为64 。 我知道C中的一个macros的调用用macros的定义来替代调用,但我仍然不明白,它是如何计算的23 。