Linux 2.6下经常见到这两个macro,例如: -------------------------------------------------- if (likely(sndcmd)) { chip->cmdfunc(mtd, NAND_CMD_READ0, 0x00, page); sndcmd = 0; } --------------------------------------------------查了一下,基本确定这两个宏对程序运行结果没有 影响,只是用于提高程序效率。具体点说,就是如果你觉得程序运行时候一般sndcmd|=0的可能性比较大,那么就加上likely的macro;