Chinaunix首页 | 论坛 | 博客
  • 博客访问: 248977
  • 博文数量: 66
  • 博客积分: 290
  • 博客等级: 入伍新兵
  • 技术积分: 342
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-27 15:44
文章分类

全部博文(66)

文章存档

2013年(19)

2012年(47)

分类:

2012-08-28 08:27:28

今天写了一段比较简单的C语言程序,但是在编译的时候却遇到了一个不怎么常见的错误,特此做一个简单的总结。
 
我采用gcc编译的过程中出现了如下的一些错误:
[gong@Gong-Computer hashmap]$ gcc -g testlist.c list.c -o testlist
In file included from testlist.c:3:0:
list.h:28:6: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘create_list’
list.h:29:6: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘insert_listnode’
list.h:30:6: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘delete_listnode’
In file included from list.c:4:0:
list.h:28:6: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘create_list’
list.h:29:6: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘insert_listnode’
list.h:30:6: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘delete_listnode’
list.c:6:13: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘create_listnode’
list.c:19:6: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘create_list’
list.c:33:6: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘insert_listnode’
list.c:76:6: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘delete_listnode’
这种错误在我前面写代码的时候很少看见,我也不知道是怎么了,然后我又采用g++的编译器进行了一次编译,竟然通过了。所以我觉得肯定是编译器存在问题。
 
这个让我有些不知所措,通过查找网页,发现了这个问题出现的原因。
 
出现这种错误是因为bool类型错误,因为我在程序中返回了false,true以及bool类型,但是在C语言中是不存在布尔类型的数据的,这就是出现错误的原因。
 
找到的原因通过宏定义即可解决上面出现的问题:
#define bool int
#define true 1
#define false 0
 
添加好这几个宏定义以后,编译器竟然没有问题了。
阅读(988) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~