x;
这就是我认为会发生的事情:x被隐式地传递给一个bool,第一个否定被执行,然后最后一个否定被执行,所以一个强制转换和两个否定。我的问题是,与使用双重否定相比,不仅仅是转换为bool (执行int y = (bool)x;而不是int y = !!x)更快,因为您正在从执行中保存两个否定句。我可能错了,因为我在Linux内核中经常看到双重否定,但我不知道我的直觉哪里出了问题,也许你可以帮我解决问题。
我想知道,在C中是否有任何库函数(如printf、scanf、read、malloc)返回bool类型?例如,验证比较字符串等操作的函数(例如:(bool isEqual(char *s, char *s))或哪个数字更大(bool AIsBiggerThanB(int a, int b))。我从一年前就开始用C语言编程了,我一直使用0和1,众所周知,bool是在C99中引入C语言的。那么,除了stdbool.h之外