我希望有人可以解释原因
#include <stdbool.h>
printf("size of bool %d\n", sizeof(bool));
printf("size of int %d\n", sizeof(int));
Run Code Online (Sandbox Code Playgroud)
输出到
size of bool 1
size of int 4
Run Code Online (Sandbox Code Playgroud)
我已经看了http://pubs.opengroup.org/onlinepubs/009695399/basedefs/stdbool.h.html这似乎表明,布尔本质上是_Bool宏,当设置为true或false,其实只是一个整数常量的宏.如果是整数,为什么它的大小不一样?
我问,因为我们花了太长时间来调试我们没有分配足够内存的程序.
我遇到了这些问题:
#define bool bool
#define false false
#define true true
Run Code Online (Sandbox Code Playgroud)
我不认为我需要说的不仅仅是"wtf?",而是要明确:为自己定义一些东西有什么意义?
这些行来自clang stdbool.h