c语言预处理指令stdbool什么时候才可以使用?为何我写的这里会出现没有这样的文件或目录?

 我来答
第一碗羊杂割
2016-04-19 · TA获得超过6146个赞
知道大有可为答主
回答量:1107
采纳率:80%
帮助的人:568万
展开全部

因为 stdbool.h 头文件是在 C99 标准中引入的,而题主使用的是 Visual C++ 6.0,这款 IDE 是微软在 1998 年发布的,所以内建的编译器不支持 C99 标准,也就不支持导入 stdbool.h 头文件了。由于 VC 6.0 早已过时,所以强烈建议题主更换更新的编译器及开发环境,在 Windows 中可以考虑 MinGW + Notepad++/Atom,Code::Blocks 或者 Visual Studio 2013。如果不想更换开发环境,可以采用以下两种方法来代替 stdbool.h:


使用 1/0 来代替 true/false


#include <stdio.h>

int main() {

    int year;
    int leap = 0;
    
    scanf("%d", &year);
    
    if (year % 4 == 0) {
        if (year % 100 == 0) {
            if (year % 400 == 0) {
                leap = 1;
            } 
        } else {
            leap = 1;
        }
    } 
    
    if (leap) 
        printf("%d is a leap year.\n", year);
    else 
        printf("%d is not a leap year.\n", year);
        
    return 0;
    
}

 

或者自己定义一个 bool 类型和 ture/false 变量(本质上和使用 0/1 是一样的)


#include <stdio.h>
#define true 1
#define false 0

typedef int bool;

int main() {

    int year;
    bool leap = false;
    
    scanf("%d", &year);
    
    if (year % 4 == 0) {
        if (year % 100 == 0) {
            if (year % 400 == 0) {
                leap = true;
            } 
        } else {
            leap = true;
        }
    } 
    
    if (leap) 
        printf("%d is a leap year.\n", year);
    else 
        printf("%d is not a leap year.\n", year);
        
    return 0;
    
}
更多追问追答
追问
visual studio2013怎么使用
2015的我也下载过,但不会用
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式