内核中!!双叹号的作用

/* * Q: * 在分析linux下的一个驱动的源代码时,有两个连续的!,如下: * ret = fusionee_new (fusion_devs[minor], * !!(file->f_flags & O_APPEND), &fusionee); * 其中的!!(file->f_flags & O_APPEND) * * A: * 当然是有用的,这样能够保证传入的值只有两种情况,(0)或(!0),也就是true或者false * * example: * b0 = 3, b1 = 7 * (b0 & b1) = 3 * !(b0 & b1) = 0 * !!(b0 & b1) = 1
*/

#include <stdio.h>

int main(void){
int b0 = 3 , b1 = 7;

printf("b0 = d, b1 = %d\n", b0, b1); printf("(b0 x%x b1) = d\n", (b0 x%x  b1));
        printf("!(b0 & b1) = d\n", !(b0 x%x  b1));
        printf("!!(b0 & b1) = d\n", !!(b0 x%x  b1));
return 0;
}

你可能感兴趣的:(编程,linux,unix)