前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基础知识 | 每日一练(84)

基础知识 | 每日一练(84)

作者头像
小林C语言
发布2019-08-19 11:07:17
3330
发布2019-08-19 11:07:17
举报

基础知识练习

士人有百折不回之真心,才有万变不穷之妙用。立业建功,事事要从实地着脚,若少慕声闻,便成伪果;讲道修德,念念要从虚处立基,若稍计功效,便落尘情。 ——菜根谭

学生:我认为我的编译器有问题: 我注意到 sizeof(’a’) 是 2 而不是 1 (即, 不是 sizeof(char))。

小林:可能有些令人吃惊, C语言中的字符常数是int型, 因此sizeof(’a’)是sizeof(int), 这是另一个与 C++ 不同的地方。

学生:C 语言中布尔值的候选类型是什么?为什么它不是一个标准类型? 我应该用 #define 或 enum 定义 true 和 false 值吗?

小林:C 语言没有提供标准的布尔类型, 部分因为选一个这样的类型涉及最好由程 序员决定的空间/时间折衷。 使用 #define 还是枚举常数定义 true/false 可以随便, 无关大雅。

使用以下任何一种形式

#define TRUE 1 #define YES 1

#define FALSE 0 #define NO 0

enum bool {false, true}; enum bool {no, yes};

或直接使用 1 和 0 , 只要在同一程序或项目中一致即可。

如果你的调试器在 查看变量的时候能够显示枚举常量的名字, 可能使用枚举更好。 有些人更喜欢这样的定义 #define TRUE (1==1) #define FALSE (!TRUE) 或者定义这样的 “辅助” 宏 #define Istrue(e) ((e) != 0) 但这样于事无益。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 C语言入门到精通 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档