Re: [問題] while(1)的新手疑問
這種寫法可能有兩種用途:
1. 強調這個 macro 是 statement ,後面一定要加分號,否則會有 warning
#define statement1() do {xxx} while(0)
2. 用於例外處理,可以避免 goto
do {
buf = malloc(n);
if (buf == NULL)
break;
...
} while (0);
※ 引述《sceneryview (加油~~~)》之銘言:
: 藉由這一篇來請問一個相關的問題
: 在linux kernel的程式中,有時後會見到以下的寫法
: do
: {
: code...
: }while(0);
: 從字面上來看,就是只作一次
: 感覺就沒必要加do {}while(0)了
: 有人知道這種寫法的特殊用意嗎??
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.59.19.214
→
06/27 13:28, , 1F
06/27 13:28, 1F
→
06/27 13:28, , 2F
06/27 13:28, 2F
→
06/27 13:58, , 3F
06/27 13:58, 3F
→
06/27 13:58, , 4F
06/27 13:58, 4F
→
06/27 14:00, , 5F
06/27 14:00, 5F
→
06/27 14:00, , 6F
06/27 14:00, 6F
→
06/27 14:02, , 7F
06/27 14:02, 7F
→
06/27 14:17, , 8F
06/27 14:17, 8F
→
06/27 14:18, , 9F
06/27 14:18, 9F
→
06/27 14:20, , 10F
06/27 14:20, 10F
推
06/27 17:49, , 11F
06/27 17:49, 11F
推
06/27 23:07, , 12F
06/27 23:07, 12F
→
06/27 23:08, , 13F
06/27 23:08, 13F
→
06/27 23:08, , 14F
06/27 23:08, 14F
→
06/27 23:09, , 15F
06/27 23:09, 15F
→
06/27 23:09, , 16F
06/27 23:09, 16F
→
06/27 23:49, , 17F
06/27 23:49, 17F
→
06/27 23:49, , 18F
06/27 23:49, 18F
→
06/27 23:51, , 19F
06/27 23:51, 19F
→
06/27 23:52, , 20F
06/27 23:52, 20F
→
06/27 23:52, , 21F
06/27 23:52, 21F
推
06/28 00:26, , 22F
06/28 00:26, 22F
→
06/28 00:26, , 23F
06/28 00:26, 23F
→
06/28 00:27, , 24F
06/28 00:27, 24F
→
06/28 01:27, , 25F
06/28 01:27, 25F
→
06/28 01:27, , 26F
06/28 01:27, 26F
→
06/28 01:28, , 27F
06/28 01:28, 27F
→
06/28 01:29, , 28F
06/28 01:29, 28F
→
06/28 01:29, , 29F
06/28 01:29, 29F
→
06/28 01:31, , 30F
06/28 01:31, 30F
→
06/28 01:32, , 31F
06/28 01:32, 31F
推
06/28 01:36, , 32F
06/28 01:36, 32F
→
06/28 01:37, , 33F
06/28 01:37, 33F
→
06/28 01:38, , 34F
06/28 01:38, 34F
→
06/28 01:40, , 35F
06/28 01:40, 35F
→
06/28 01:41, , 36F
06/28 01:41, 36F
討論串 (同標題文章)