Java与C++差异之return

在返回值不是void的情况下,即必须有返回值的情况下,C++可以没有默认返回值,而Java必须有默认的返回值。

举一个简单的例子,max函数,在c++中,可以写作如下。

int max (int a,int b){
<span style="white-space:pre">	</span>if(a>b)
<span style="white-space:pre">		</span>return a;
<span style="white-space:pre">	</span>else if(a<b)
<span style="white-space:pre">		</span>return b;
}

当输入max(2,2)的情况下,编译并不报错,运行返回2。单步调试未执行任何一步,而是返回2,不能理解。

在java中,上述程序编译不能通过,java需要确定的return以防止程序员情况考虑不周而运行出错。

上述程序需改为以下,固定的return。

int max (int a,int b){
<span style="white-space:pre">	</span>if(a>b)
<span style="white-space:pre">		</span>return a;
<span style="white-space:pre"&
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
中科院高性能胡伟武老师答案完整版 1. 解:A为10MIPS,B为20MIPS,C为40MIPS。 三台机器实际性能相同。 2. 解:加速比y与向量化比例x之间的关系是:y=1/((1-x)+x/8)=1/(1-7x/8)……(A) (1) (2) 在式(A)中令y=2,可解得x=4/7≈57.14%。 此时向量模式运行时间占总时间比例是((4/7)/8)/(3/7+((4/7)/8))=1/7=14.29% (3) 硬件方法,整体加速比为1/(1-0.7*(1-1/16))=2.91 软件方法,设相同加速比下向量化比例为x,即1/(1-7x/8)=2.91, x=0.75 所以推荐软件方法。 3. 解: (1) MIPSEMUL=(I+F×Y)/(W×106) ;MIPSFPU=(I+F)/(B×106) (2) 120=(I+8×106×50)/(4×106) => I=80×106 (3) 80=(80×106+8×106)/(B×106) => B=1.1 (4) MFLOPS=F/((B-((W*I)/(I+F*Y))) ×106)≈18.46 (5) 决策正确,因为执行时间缩短了,这才是关键标准。 4. 解: (1) y=12.29386-0.18295x+0.0015x2 (2) y=342.47443-6.36386x+0.02727x2 5. 解: 1.1V下静态功耗1.1*1.1/(1.05/0.5)=0.576W 1.1V下1GHZ时动态功耗为1.1*2.5-0.576=2.174W 1.1V下0.5GHZ功耗功耗为2.174*0.5/1=1.087W 1.1V下0.5GHZ总功耗为1.087+0.576=1.663W 6. 解: a) 先证明N=2k时,正数 。对k进行数学归纳法即可。当2k-1<N<2k时,令 ,则 。若 , ,矛盾。因此当当2k-1<N<2k时, 。 b) 证:假设参考机的程序分值为Z={ , },其中n为SPEC CPU2000中的程序个数; 而A机器的程序分值为X={ } B机器的程序分值为Y={ } 则有: A机器的性能为: ,B机器的性能为: 从而,A与B机器的性能比为: 可见,其结果与参考样机无关。故得证。 7. 解: AMD 4核Barcelona,2.8G,3发射每个核1个128位浮点向量功能部件和1个128位浮点加法向量部件,峰值性能4*4*2.8=44.8GFlops。 2路L1I 64KB;2路L1D 64KB 3 latency;16路L2 512KB;32路2MB共享L3,内存带宽21.34GB/s Intel 4核Nehalem(i7),2.5G-3G,4发射每个核1个128位浮点向量功能部件和1个128位浮点加法向量部件,峰值性能4*4*3=48GFlops。4路L1I 32KB;4路L1D 32KB 4 latency;8路256KB L2 12 latency;16路8MB L3 30-40 latency;内存带宽31.92GB/s

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值