[英]return (a) vs. return a
我在C和C ++代碼中都看到了我一直在關注的內容。
有什么不同?
沒有任何區別。
官方語法是return something;
或return;
當然它是一個關鍵字,而不是一個功能。
因此,您不應將其視為return( a );
但作為return (a);
我認為區別是微妙但明確,括號不適用於返回,而是適用於。
((((a))))
與(a)
與a
相同。
你也可以寫點像......
int x = (((100)));
你也可以寫點像......
printf("%d\n", (z));
正如有人在評論中所說,現在,使用C ++ 11(2011版C ++語言)新的運算符decltype
。 這個運算符引入了一個新的例子,其中(a)
與a
不同,這是非常深奧的,有點偏離主題,但我添加這個例子只是為了完整性。
int x = 10;
decltype(x) y = x; // this means int y = x;
decltype((x)) z = x; // this means int& z = x;
y = 20;
z = 30;
std::cout << x << " " << y << " " << z << std::endl;
// this will print out "30 20 30"
正如我所說,學生們對此並不感興趣太過深奧,而且它只能用於支持至少部分C ++ 11標准的編譯器(如GCC 4.5+和Visual Studio 2010)。
這與使用typeid
關鍵字形成鮮明對比:
int a;
std::cout << typeid(a).name() << std::endl; // will print "int"
std::cout << typeid((a)).name() << std::endl; // will print "int" !!!!
寫入return x
表示程序員理解return
含義。 而return(x)
表示程序員錯誤地認為return
是一種功能。
return
不是一個功能。
這更像是一種風格。 我個人不會在return語句中使用括號,除非它顯示操作順序。
例子
return a;
return (a || b);
return (a && (b || c));
return (a ? b : c);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.