DragonbornV 发表于 2021-3-16 23:14:57

_Bool为什么会错呢?

这_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 int));
        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;
}

王逗比666 发表于 2021-3-17 00:21:19

你的后缀文件是.cpp,那么它编译的时候就是按照c++的规范来编译的,和c是不一样的,c++中的布尔类型为bool

jackz007 发表于 2021-3-17 01:45:18

本帖最后由 jackz007 于 2021-3-17 01:47 编辑

#include <stdio.h>

int main(void)
{
      _Bool flag                  ;
      printf("hello , world !\n") ;
}
      此代码起名 x.c
      编译、运行实况
D:\00.Excise\C>gcc -o x x.c

D:\00.Excise\C>x
hello , world !

D:\00.Excise\C>
      但是,如果命名为 x.cpp 就无法编译了
D:\00.Excise\C>gcc -o x x.cpp
x.cpp: In function 'int main()':
x.cpp:5:9: error: '_Bool' was not declared in this scope
    5 |         _Bool flag                  ;
      |         ^~~~~

D:\00.Excise\C>

      所以,尝试把文件扩展名改为 .c,在命令行下用 gcc 而不是 g++ 进行编译试试看呢。
      

页: [1]
查看完整版本: _Bool为什么会错呢?