首页 新闻 会员 周边

C语言头文件问题

0
悬赏园豆:5 [已解决问题] 解决于 2012-07-08 13:28

程序如下:

#include <stdbool.h>
#include <stdio.h>

int main()
{
bool digit_seen[10]={false};
int digit;
long n;

printf("Enter a number");
scanf("%ld",&n);

while(n>0){
digit = n % 10;
if (digit_seen[digit])
{
break;
}
digit_seen[digit] = true;
n /= 10;
}

if (n>0)
{
printf("repeated digit\n");
}
else
{
printf("No repeated\n");
}

return 0;
}

 

头文件:

/*
* stdbool.h
*
* define macro for _Bool,c99
*
*/

#ifndef _STDBOOL_H
#define _STDBOOL_H

#define bool _Bool

#define true 1
#define false 0

#define __bool_true_false_are_defined 1

#endif

报错如下:

1. error : identifier "_Bool" is undefined C:\Users\Administrator\documents\visual studio 2010\Projects\C语言\C语言\test12.c 6

2. IntelliSense: 未定义标识符 "_Bool" c:\users\administrator\documents\visual studio 2010\projects\c语言\c语言\test12.c 7

我用的是Intel C++11编译器,VS 2010,网上流传IntelC++支持C99标准,为什么程序无法编译成功?恳请大侠们指出错误,最好可以提供一些关于C头文件与编译器之间的知识。谢谢。

takmingtsang的主页 takmingtsang | 菜鸟二级 | 园豆:202
提问于:2012-07-05 09:21
< >
分享
最佳答案
1

这个调试过了,代码没有问题,因该是你的编译器的问题吧,将C文件扣缀改为CPP试下,C语言虽然增加了布尔类型,但是有引起编译器可能没有处理好。

Enter a number100
repeated digit

收获园豆:5
寻风问雨 | 菜鸟二级 |园豆:207 | 2012-07-05 19:59

纳闷了呢,无论是Intel C++还是VC++编译器,都是无法成功执行该程序,上午还能够识别出stdbool.h头文件,晚上就无法找到了,编译报错,提示无法cannot open source file "stdbool.h"。恳请大侠解释下。谢谢。

takmingtsang | 园豆:202 (菜鸟二级) | 2012-07-06 00:23
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册