C语言中bool关键字报错问题


#include
#include

struct date{
    int month;
    int day;
    int year;
};

bool isLeap(struct date d);
int numberOfDays(struct date d);

int main(int argc,char const *argv[])
{
    struct date today,tomorrow;
    printf("Enter today's date (mm dd yy):");
    scanf("%d %d %d",&today.month,&today.day,&today.year);
    
    if(today.day != numberOfDays(today)){
        tomorrow.day = today.day+1;
        tomorrow.month = today.month;
        tomorrow.year = today.year;
    }else if(today.month == 12){
        tomorrow.day = 1;
        tomorrow.month = 1;
        tomorrow.year = today.year+1;
    }else{
        tomorrow.day = 1;
        tomorrow.month = today.month+1;
        tomorrow.year = today.year;
    }
    printf("Tomorrow's date is %s-%s-%s.\n");
    
    return 0;
}

int numberOfDays(struct date d)
{
    int days;
    
    const int daysPerMonth[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
    
    if(d.month == 2 && isLeap(d))
        days = 29;
    else
        days = daysPerMonth[d.month-1];
        
        return days;
}

bool isLeap(struct date d)
{
    bool leap = false;
    
    if((d.year %4 == 0 && d.year %1000 != 0) || d.year%400 == 0)
        leap = ture;     //[Error] 'ture' undeclared (first use in this function)
}

最后那里为什么会出现错误,明明都加了#include头文件的??

leap = ture; 单词错了吧 true?