| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 981 人关注过本帖
标题:关于C的基本语法的一个问题!
只看楼主 加入收藏
lycnsc
Rank: 1
等 级:新手上路
帖 子:243
专家分:0
注 册:2005-3-27
收藏
 问题点数:0 回复次数:8 
关于C的基本语法的一个问题!
在C里,应该尽量用复合表达式,比如:
a=a+m;------>a+=m;
a=a%n;------>a%=n;
这样做的原因是:
1、代码相对短小简练;
2、符合“逆波兰”的格式,编译生成目标代码质量更高;
以上二者都是C相对于其他语言的优势,所以能用复合表达式就尽量用复合表达式!
搜索更多相关主题的帖子: 语法 波兰 质量 目标 复合 
2005-04-30 09:10
独孤裘
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2005-4-7
收藏
得分:0 
什么是“逆波兰”的格式
  能不能解释一下

2005-04-30 12:25
lycnsc
Rank: 1
等 级:新手上路
帖 子:243
专家分:0
注 册:2005-3-27
收藏
得分:0 
以下是引用独孤裘在2005-4-30 12:25:39的发言: 什么是“逆波兰”的格式 能不能解释一下
不是我不说,而是三言两语太难说清。要是你感兴趣的话,看看《编译原理》就明白了!
2005-05-01 13:28
weizheng
Rank: 1
等 级:新手上路
威 望:2
帖 子:286
专家分:0
注 册:2005-4-21
收藏
得分:0 
不是那么绝对吧,任何事物都有两面性。当然这样能提高程序得易读性,但是在较大的程度中很易出错。

温和如玉,完美纯正。
2005-05-02 22:48
下海
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2005-5-3
收藏
得分:0 
为什么这么说?
2005-05-03 07:52
lycnsc
Rank: 1
等 级:新手上路
帖 子:243
专家分:0
注 册:2005-3-27
收藏
得分:0 
以下是引用weizheng在2005-5-2 22:48:42的发言: 不是那么绝对吧,任何事物都有两面性。当然这样能提高程序得易读性,但是在较大的程度中很易出错。
其实,我个人认为程序的易读性是指,程序的结构的清晰度.而a=a+m;------>a+=m;的改变不是清晰度的问题,而是习不习惯的问题.大家可能觉得a+=m这种形式很别扭,不像a=a+m那么一看就明白,不过,大家也可以回忆一下,当我们初学C时,是否也觉if(a==3)很别扭!
2005-05-03 08:52
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
a+=m和a=a+m最终生成的代码是不同的
a+=m的效率要比a=a+m高那么一点点点点点点(按照现在的计算机速度来说的确是这样的)

现在计算机的速度正在转变一些我们曾经认为是真理的观点。当我们曾经所努力捍卫的内存现在升级到了512M,这个时候选择是用long还是int已经没有多大意义了。(当然,这是在32位C/C++编译环境下)

淘宝杜琨
2005-05-03 09:11
乌鸦丘比特
Rank: 1
等 级:新手上路
威 望:2
帖 子:625
专家分:0
注 册:2004-7-19
收藏
得分:0 
逆波兰式和栈的关系的确很有意思,比如用这个做24点大概挺好的

我喜欢创造,一只扑腾着翅膀向天空飞翔的乌鸦
2005-05-03 09:30
lycnsc
Rank: 1
等 级:新手上路
帖 子:243
专家分:0
注 册:2005-3-27
收藏
得分:0 
以下是引用神vLinux飘飘在2005-5-3 9:11:41的发言: a+=m和a=a+m最终生成的代码是不同的 a+=m的效率要比a=a+m高那么一点点点点点点(按照现在的计算机速度来说的确是这样的) 现在计算机的速度正在转变一些我们曾经认为是真理的观点。当我们曾经所努力捍卫的内存现在升级到了512M,这个时候选择是用long还是int已经没有多大意义了。(当然,这是在32位C/C++编译环境下)
C之所以这么火就是靠他的灵活性,以及代码的高效率,C有两大用途:写操作系统和芯片编程!写应用程序的,现在一般不用C,而选C++\Java\Delphi什么的. 在PC上写操作系统,当然没问题,但在实际中C更多的是代替汇编进行芯片编程,在单片机\DSP\CGI脚本的C编程或者是FPGA的外围芯片编程,那么哪怕只提高那么一点点点点点点效率也会极大的降低成本! 而且现在在实际生产中,操作系统不在只运行在传统的计算机上,在一些普通设备电路上同样也运行一些操作系统.比如,现在有些大型路由器,自身就有一个操作系统,不过比DOS还简单,在里面只要有万把个复合运算符,那节约的系统开销也是相当可观的了! C的生命里在于它的运行效率是除机器语言和汇编以外最高的,而在接近硬件的层次开发中,它的通用范围最广,开发效率最高!
2005-05-03 10:15
快速回复:关于C的基本语法的一个问题!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015584 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved