PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
C_and_CPP
Re: [问题] 类别跟循环加不加分号的问题
楼主:
SeamusBerloz
(轩摩斯)
2019-01-14 20:08:49
大括号 {},也就是指区块。
区块本身不需要分号结尾。
要不要加分号结尾?不需要猜,只要记得,
叙述、宣告才要加分号结尾。
以下 {} 故意写成一行,用于说明区块的效果。
多个叙述、宣告可以用 {} 包起来,视为一整体 (或单一行) 看待:
i = i + 1;
k += i * 10;
j = foo(k);
若改成:
{i = i + 1; k += i * 10; j = foo(k);}
区块没有分号结尾。
while / do-while 叙述则是:
do 单行叙述; while(条件);
作者:
cole945
(跶跶..)
2019-01-14 21:12:00
呃..被讲完了..只好推囧
作者:
x246libra
(楓)
2019-01-14 22:54:00
完美解说
作者:
me8z7gnk
(SONG-SONG)
2019-01-15 00:59:00
谢谢解说我多年的疑惑解说太完整了 完全解答
作者:
CoNsTaR
((const *))
2019-01-15 13:06:00
在不加分号的地方加,对编译器来讲那个分号就是空叙述单纯这样而已吧,没有那么复杂啊 orz所以你要在 block 后面加 100 个分号编译器也不会管你因为通通都是空叙述,都是业障
作者:
LPH66
(-6.2598534e+18f)
2019-01-15 13:23:00
补充一个:lambda 先写起来放的时候也是因宣告变量故要分号auto lambda=[](){return 42;}; //这里指左边第二个分号对于这个我个人习惯是会先把 {}; 打好再写里面在只有 {} 没有内容时很容易知道这里是不是该加分号的地方
作者:
me8z7gnk
(SONG-SONG)
2019-01-15 21:36:00
谢谢C大跟L大 我原本一直卡在类别为什么结尾要加分号现在看完这篇 豁然开朗阿!
作者:
cole945
(跶跶..)
2019-01-16 08:24:00
本文有举例结尾分号有差.if(){};;;else{}不行多加分号会影响parsing,并非全无意, do{}while();在macro很好用.可以看
https://kernelnewbies.org/FAQ/DoWhile0
里的例子
楼主:
SeamusBerloz
(轩摩斯)
2019-01-16 09:40:00
抛砖引玉:
http://c-faq.com/cpp/multistmt.html
作者:
me8z7gnk
(SONG-SONG)
2019-01-16 20:29:00
谢谢col大跟Se大提醒因为之前被教说能使用inline就使用 inline所以只把呼叫 macro 最后不能加分号背起来并没有了解原意 现在才了解do while(0) 之前看过以为只做一次没什么特别原来是用在 macro 上 这么好用
作者:
TitanEric
(泰坦)
2019-01-18 00:31:00
大推
作者:
hohamita
(HOHA)
2019-01-18 13:37:00
推 感谢解说!
继续阅读
[问题] 类别跟循环加不加分号的问题
me8z7gnk
[问题] Multimedia Timer 超时的问题
licheer
[问题] 中央考题
ABoxOfChoco
[问题] 字串移除重复的字母 string使用问题
yoyo890121
[心得] relocation
descent
[问题] MFC程式非视窗类想要使用计时器!?
james999
[问题] 一题C++的题目
lionlin
[问题]linked list反转串行 使用call by address
me8z7gnk
[分享] Unity开发元老抨击:C++ 20新功能造成编
name2name2
[问题] 关于 set 的效率问题
nevikw39
Links
booklink
Contact Us: admin [ a t ] ucptt.com