程序如下:
#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头文件与编译器之间的知识。谢谢。
这个调试过了,代码没有问题,因该是你的编译器的问题吧,将C文件扣缀改为CPP试下,C语言虽然增加了布尔类型,但是有引起编译器可能没有处理好。
Enter a number100
repeated digit
纳闷了呢,无论是Intel C++还是VC++编译器,都是无法成功执行该程序,上午还能够识别出stdbool.h头文件,晚上就无法找到了,编译报错,提示无法cannot open source file "stdbool.h"。恳请大侠解释下。谢谢。