C 语言中布尔值的候选类型是什么?为什么它不是一个标准类型?
2006-11-03 17:14
501 查看
C 语言中布尔值的候选类型是什么?为什么它不是一个标准类型?我应该用 #define 或 enum 定义 true 和 false 值吗? C 语言没有提供标准的布尔类型, 部分因为选一个这样的类型涉及最好由 程序员决定的空间/时间折衷。 (使用 int 可能更快, 而使用 char 可能更节省数据空间。然而, 如果需要和 int 反复转换, 那么小类型也可能生成 更大或更慢的代码。)
使用 #define 还是枚举常数定义 true/false 可以随便, 无关大雅。 使用以下任何一种形式
或直接使用 1 和 0 , 只要在同一程序或项目中一致即可。 如果你的调试器在查看变量的时候能够显示枚举常量的名字, 可能使用枚举更好。
有些人更喜欢这样的定义
或者定义这样的 ``辅助" 宏
但这样于事无益。
使用 #define 还是枚举常数定义 true/false 可以随便, 无关大雅。 使用以下任何一种形式
或直接使用 1 和 0 , 只要在同一程序或项目中一致即可。 如果你的调试器在查看变量的时候能够显示枚举常量的名字, 可能使用枚举更好。
有些人更喜欢这样的定义
或者定义这样的 ``辅助" 宏
但这样于事无益。
相关文章推荐
- C 语言中布尔值的候选类型是什么?为什么它不是一个标准类型?
- (转)类(class)和结构(struct)的区别是什么?它们对性能有影响吗?.NET BCL里有哪些是类(结构),为什么它们不是结构(类)?在自定义类型时,您如何选择是类还是结构?
- 类(class)和结构(struct)的区别是什么?它们对性能有影响吗?.NET BCL里有哪些是类(结构),为什么它们不是结构(类)?在自定义类型时,您如何选择是类还是结构?
- 学习什么语言的问题,其实,不是一个问题
- 学习什么语言的问题,其实,不是一个问题......
- JavaScript 这类弱类型的语言,在判断相等方面很麻烦,明明不是一个东西,却相等了。这里通过示例展示 null、 undefined、 0、 false、 "" 的相等情况。 var arr
- 学习什么语言的问题,其实,不是一个问题......
- 为什么opengl中,gl_Position是vec4类型的?不是应该是vec3吗,多出来的那个是什么呀
- 怎么查看一个网站是用什么语言编写的?
- .NET牛人应该知道些什么_答案(本答复不是标准答案,敬请兄弟们补充更正)
- Java第一课 Java的一些基本概念,Java的起源、为什么我们要学习Java语言,Java跨平台原理剖析;Java环境变量的配置,初学者常犯的问题,Java语言的基本数据类型和Java的语句。
- 类是一个数据类型,类存在内存中的什么地方??
- Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么?
- 为什么JavaScript是弱类型语言
- 为什么 Java ArrayList.toArray(T[]) 方法的参数类型是 T 而不是 E ?
- 练习2-1 编写一个程序一确定分别由signed及unsigned限定的char,short,int及long类型变量的取值范围。采用打印标准头文件中的相应值以及直接计算两种方式实现。通过直接计算来确定浮点类型的取值范围是一项难度很大的任务。
- C++ 学习笔记 1.0 : 基本语言(变量和基本类型,标准库类型,表达式,语句,函数,标准IO库)
- C++ Primer_基本语言_标准库类型_bitset类型
- 《Effective C#》读书笔记——条目3:推荐使用is或as而不是强制转换类型<C#语言习惯>
- 为什么time(time_t *)函数里还有一个loc参数而不是time(void)