Tag: 布尔值

确保用户的输入与我的程序生成的字符匹配

这是为家庭作业 我正在编写一个简化的拼字游戏,我让我的程序随机生成字符然后用户会尝试从这些生成的字符创建一个单词,然后得到一个分数。 我遇到的问题是确保用户实际使用提供的字符。 我不知道如何处理这个问题。 我不需要任何代码,但提示将被赞赏,甚至链接开始点。 谢谢你的帮助! 编辑 – 大约我的一半程序[创建字母集的部分] void generate_letter_set(int letter_set[] , int size_let , int num_let) { int arr[N]; const char let[] = {‘K’,’J’,’X’,’Q’,’Z’,’B’,’C’,’M’,’P’,’F’,’H’,’V’,’W’,’Y’,’G’,’L’,’S’,’U’,’D’,’N’,’R’,’T’,’O’,’A’,’I’,’E’}; const int freq[] = { 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 4, 4, 4, 4, 6, 6, 6, 8, 9, […]

为什么使用而不是_Bool?

每当我需要一个布尔类型时,我被告知要么创建一个,要么更好,使用stdbool.h 。 由于stdbool.h使用typedef bool _Bool ,是否有理由使用头而不是使用类型_Bool ? 它只是用于其他宏( /* #define true 1 #define false 0 */ )?

在C练习中使用char作为bool?

使用是否有任何缺点 typedef char bool; enum boolean { false, true }; 在C中提供语义布尔类型?

为什么布尔数据类型没有在C中实现

我的一位朋友问了一个问题,为什么C编程语言中没有Boolean数据类型。 我做了一些搜索和阅读。 我在堆栈溢出中得到的问题和答案很少说, 所有数据类型都应该是可寻址的,并且无法解决一些问题。 主流CPU硬件级别的基本数据结构是一个字节。 对这些CPU中的位进行操作需要额外的处理。 我们可以用这种方式使用bool #define bool int #define TRUE 1 #define FALSE 0 或使用typedef 。 但我的问题是:即使经过这么多年,为什么它不是作为C中的数据类型实现的。 实现一个字节数据类型来存储布尔值而不是显式地使用int或short是没有意义的。

什么是!0在C?

我知道在C中,对于if语句和比较,FALSE = 0,其他任何等于true。 因此, int j = 40 int k = !j k == 0 // this is true 我的问题恰恰相反。 什么!0成为? 1? int l = 0 int m = !l m == ? // what is m?

C99 – 为什么假和真的定义为0和1而不是((bool)0)和((bool)1)?

偶然发现了一个失败的断言,因为它将false与函数的返回类型进行比较,因为函数本身返回了一个bool并且断言不仅检查了值,而且还检查了返回值的类型以匹配false,保证,返回一个bool。 现在的问题是,C99将bool定义为_Bool,_Bool甚至不一定与int相同(实际上,根据我的经验,在现今的大多数平台上它通常与unsigned char相同),不要谈论相同type(实际上这是不可能的,因为_Bool是C99中语言的内置类型),但是将false和true定义为0和1而没有任何类型转换和没有类型转换的预处理器定义将默认为int。 如果C99改为将false和true定义为((bool)0)和((bool)1),它们将始终是bool类型,无论如何定义_Bool。 那么有没有什么好的理由让它们总是被定义为int,即使bool不是那个平台上的int,或者这只是语言中的一个bug,应该用C1x修复?