为什么这里的_Bool提示错误,应该没打错吧
#include <stdio.h>int main()
{
printf("int = %d\n", sizeof(int));
printf("short int = %d\n", sizeof(short int));
printf("long int = %d\n", sizeof(long int));
printf("long long int = %d\n", sizeof(long long));
printf("char = %d\n", sizeof(char));
printf("_Bool = %d\n"; sizeof(_Bool));
printf("float = %d\n", sizeof(float));
printf("double = %d\n", sizeof(double));
printf("long double = %d\n" sizeof(long double));
return 0;
} 你觉得我们知道提示了什么错误吗?
bool 输于 C++ 数据类型,把源代码文件的扩展名从 ".c" 改成 ".cpp" 再编译试试呢。 jackz007 发表于 2020-1-13 12:17
bool 输于 C++ 数据类型,把源代码文件的扩展名从 ".c" 改成 ".cpp" 再编译试试呢。
_Bool是C99新增加的关键字 本帖最后由 sunrise085 于 2020-1-13 14:08 编辑
不知道你运行程序的时候出现了什么错误提示,我看出来的程序错误有三处。
1、_Bool类型在C语言中不是直接用的,而且以前的版本中是没有的。需要用的时候要#include <stdbool.h>,若写上这个头文件还是有错误的话,那就是版本问题了。
2、_Bool打印这一行中sizeof前的逗号写成了分号。
3、long double 打印这一行中的sizeo前丢失了一个逗号。
楼下刚刚把你的程序中的waring也修改了。sizeof函数的返回值是long unsigned int,printf的时候不是%d,而是%lu。
注意!!以后提问问题,请把问题写全,你这样只贴出代码,不贴出错误提示,我们怎么知道你遇到了什么问题呢。 sunrise085 发表于 2020-1-13 13:36
不知道你运行程序的时候出现了什么错误提示,我看出来的程序错误有三处。
1、_Bool类型在C语言中不是直接 ...
2和3是真的没有看出来
_Bool是C99新增加的关键字
#include <stdio.h>
int main(void)
{
printf("_Bool: %lu\n", sizeof(_Bool));
return 0;
}
$ gcc -o main main.c
$ ./main
_Bool: 1
$ 人造人 发表于 2020-1-13 13:59
2和3是真的没有看出来
你这个把他的程序中的waring也修改掉了呢。我都懒得去修改了。sizeof的返回值是long unsigned int,printf的时候是%lu。 sunrise085 发表于 2020-1-13 13:36
不知道你运行程序的时候出现了什么错误提示,我看出来的程序错误有三处。
1、_Bool类型在C语言中不是直接 ...
好的谢谢,我下次注意 弱弱的说一句 _Bool是C99新增的,老版本没有是正常的,而头文件,身为一个关键词要什么头文件,除非你要要到他的别名bool,因为bool是定义在stdbool.h里的,另外上面几个大佬说的无符号长整型在C中用%d输出问题也不大吧,楼主要是有兴趣可以看看C PRIMER PLUS的第147有布尔类型的详细解释
页:
[1]