|  |      1wwqgtxx      2014-08-01 17:40:45 +08:00 via Android  1 有可能是git merge导致的错误,有些时候git merge时会导致一些莫名其妙的错误 | 
|  |      2ChiangDi      2014-08-01 17:45:08 +08:00 这也行,真是惊呆了,他们不测试就提交的? | 
|  |      3akfish      2014-08-01 17:46:04 +08:00 看下blame不就知道了 | 
|  |      4dorentus      2014-08-01 17:48:16 +08:00  1 编译错误一般来说不是人工检查的重点,大都是用自动化的系统来检查的吧,一般是异步的。 然后 Linux 项目并不使用 Github 的 Pull Request 功能: https://github.com/torvalds/linux/pull/17#issuecomment-5654674 | 
|  |      5akfish      2014-08-01 17:55:11 +08:00 | 
|  |      6akfish      2014-08-01 17:59:09 +08:00  3 其实我想吐槽的是这不是bug。。。。 list_for_each并不是函数调用,而是一个宏 https://github.com/torvalds/linux/blob/164c09978cebebd8b5fc198e9243777dbaecdfa0/drivers/staging/usbip/userspace/libsrc/list.h#L110 | 
|  |      7dorentus      2014-08-01 17:59:09 +08:00  1 仔细看了下,这 Pull Request 不对…… list_for_each 大概是个宏,用法类似 for 或者 foreach: 例如 https://github.com/torvalds/linux/blob/164c09978cebebd8b5fc198e9243777dbaecdfa0/drivers/usb/mon/mon_main.c: list_for_each (p, &mon_buses) { struct mon_bus *m1; m1 = list_entry(p, struct mon_bus, bus_link); m1->u_bus->monitored = 1; } Pull Request 里面的下一行明显有个锁进,所以只是类似单行 for 省略了大括号而已;加了分号之后,即使不会报错,语义也变了。 | 
|  |      8fo2w      2014-08-01 18:05:22 +08:00  1 从代码和conversation看这不是个bug, 而且是编的过的啊 这展开仅仅是个for循环而且下一行就是循环体snd_usbmidi_disconnect(midi); 还专门缩进了用来提醒! 就这么贸然加个分号, 让循环体怎么想..... | 
|  |      9limon      2014-08-01 19:00:17 +08:00 在c里xxx_for_each这种命名明显就是宏嘛。。。 | 
|      10snowonion OP 谢谢各位~  跟 C 语言不熟, 没想到宏这回事=.= 如果不是 #define list_for_each(pos, head) 而是 #define list_for_each(pos, head): 会不会有助于避免误解 ( ゚∀。) |