关于以下这几句话的解读,看看大家的意见

冰冷的小爪 2015-06-24 10:33:52
//从一个写C++的文章哪里看来的,为什么别人这么说呢?

BOOL flag;

if(flag) { // do something } // 正确的用法
if(flag==TRUE) { // do something } // 危险的用法
if(flag==1) { // do something } // 危险的用法
if(!flag) { // do something } // 正确的用法
if(flag==FALSE) { // do something } // 不合理的用法
if(flag==0) { // do something } // 不合理的用法
...全文
77 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
我叫小菜菜 2015-06-24
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
1、不存在“不合理的用法” 2、不是“危险的用法”而是“危险的写法”,假如漏掉一个 = 就变成赋值了。控制流程就发生了变化
同意斑竹的漏等号赋值说法~~ 另外,既然定义bool flag,就不要跟0-1比较。。。相反,C++一般可以把0-1作为条件,0为false,非0为true。。比如 int count; if(count){//dosomething;} if(count==0){//dosomething;}
於黾 2015-06-24
  • 打赏
  • 举报
回复
C#是强类型的编程语言 所以很多在C++里混乱的语法,C#里编译器已经提前给你校验好了 非要用C++的标准语法来规定C#的写法,是C++程序员的强迫症作怪
於黾 2015-06-24
  • 打赏
  • 举报
回复
if(flag) { // do something } // 正确的用法 应该是说简单的用法,不需要写一大堆==,本身就是bool量,直接用就好 if(flag==TRUE) { // do something } // 危险的用法 如果你写成=,那么就变成赋值语句了,==false同理 if(flag==1) { // do something } // 危险的用法 一点也不危险,根本语法都通不过,编译器报错 与false判断同上,没有什么不合理的,存在即合理
JTZP007 2015-06-24
  • 打赏
  • 举报
回复
xuzuning 2015-06-24
  • 打赏
  • 举报
回复
1、不存在“不合理的用法” 2、不是“危险的用法”而是“危险的写法”,假如漏掉一个 = 就变成赋值了。控制流程就发生了变化

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧