Linux C使用bool类型 出现错误expected '=', ',', ';', 'asm' or '__attribute__'

#include <stdbool.h>

今天在linux下编了一个C程序,用到了bool类型,在编译的程序的时候出现以下错误:
//error: expected '=', ',', ';', 'asm' or '__attribute__'

查找了半天,发现要包含stdbool.h头文件,原因如下:

在C99中,可以直接使用_Bool表示布尔类型(而我使用的是bool),但不可以直接使用false和true,要自己定义,例如:

#define true 1

#define false 0

在定义了true和false之后才可以直接使用。

头文件stdbool.h中,对布尔类型进行了扩展,增加了关键字bool,而且定义了false和true的宏,所以包含了stdbool.h头文件便可以直接使用bool了。

加入头文件  #include <stdbool.h>

 

 

 

 

 

这段代码中的 `find_all()` 函数没有被定义,需要在代码中定义或者调用正确的函数名。此外,在调用 `find_all()` 函数时,需要传入一个参数,即 `name_list`。因此,你需要修改代码,使其正确定义 `find_all()` 函数并传入正确的参数。 另外,如果用户输入的排序方式不正确,代码应该提示用户重新输入,并重新调用 `sort()` 函数,而不是直接退出。 下面是修改后的代码: ``` import os def find_all(name_list): # 定义或调用正确的函数 def sort(name_list): find_all(name_list) if os.path.exists('students.txt'): with open('students.txt', 'r', encoding='utf-8') as rfile: students = rfile.readlines() student_new = [] for item in students: d = eval(item) student_new.append(d) else: return asc_or_desc = input('请选择排序方式(0,升序 1,降序)\n') if asc_or_desc == '0': asc_or_desc_bool = False elif asc_or_desc == '1': asc_or_desc_bool = True else: print('您的输入有误,请重新输入') sort(name_list) mode = input('请选择排序方式(1,按年龄排序 2,按英语成绩排序 3,按Python成绩排序 4,按Java成绩排序 5,按Mysql成绩排序)\n') if mode == '1': student_new.sort(key=lambda student_new: int(student_new[0]['age']), reverse=asc_or_desc_bool) elif mode == '2': student_new.sort(key=lambda student_new: int(student_new[0]['English']), reverse=asc_or_desc_bool) elif mode == '3': student_new.sort(key=lambda student_new: int(student_new[0]['Python']), reverse=asc_or_desc_bool) elif mode == '4': student_new.sort(key=lambda student_new: int(student_new[0]['Java']), reverse=asc_or_desc_bool) elif mode == '5': student_new.sort(key=lambda student_new: int(student_new[0]['Mysql']), reverse=asc_or_desc_bool) else: print('您输入的信息有误,请重新输入') sort(name_list) find_all(student_new) ``` 注意,这里只是修改了 `sort()` 函数中的部分代码,而其他部分的代码可能还需要进行调整或修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值