
2.怎么看程序占了多大的内存:程序编译成功后,在编译器界面下方的build窗口中,会给出程序占用的存储大小,比如:Program Size: data=13.0 xdata=0 code=298 ,说明ROM被占用了298字节.也可以查看你工程文件夹下的.map文件,在该文件的最后给出了ROM和RAM的详细使用情况,比如:
=====================================================================
Total RO Size (Code + RO Data) 6320 ( 6.17kB)
Total RW Size (RW Data + ZI Data) 1328 ( 1.30kB)
Total ROM Size (Code + RO Data + RW Data) 6388 ( 6.24kB)
=====================================================================
补充:⊙﹏⊙,你用的那个版本的keil c51,我的keil 3,keil 4在菜单Edit都有configuration...选项.你现在用的至少也得是keil 3吧!
循环读入字符,遇到\n累计行数,最终输出累计值即可。
以EOF作为终止条件的代码如下:
#include <stdio.h>int main()
{
int cnt = 1//最少会输出一行,每遇到一个换行,表示多输入了一行。
int c
while((c = getchar())!=EOF)
{
if(c == '\n') cnt++//统计行数。
}
printf("%d\n",cnt)
return 0
}
其实是要看情况的程序有三种主要的格式:顺序格式,选择格式和循环格式。
对于顺序格式而言,电脑的运行是一句一句的执行的,所以程序代码行数越多,被编译,链接之后生成的exe文件越长,因而执行的时间一般会长些。
对于循环格式,就要看循环体的执行次数了,执行次数越多,当然执行的时间就会越长。
而选择格式,则是不定的,因为选择格式的程序在执行时会选择其中的一个分支执行,因而执行的时间会取决于该分支的复杂度。
但我上面强调的是一般情况,不排除有特殊情形。比如,你可以将一个语句写得超级复杂,这样就没有讨论的意义了。
编程的原则是使代码占用的时间和空间符合一定要求。当然能够精简而且高效,这是最好的情况了。希望这个解释可以帮助到你。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)