编程技术点滴三(C/C++)

本文探讨了C/C++编程中的某些技术细节,包括如何使用位操作符进行条件判断,以及在VC6编译器下switch...case语句的编译表现,其中编译器会按case值从小到大排列比较语句,而代码汇编顺序保持程序员的原始顺序。通过深入理解这些知识点,可以优化和调试代码。
摘要由CSDN通过智能技术生成
mov ecx,[ebp - 2ch]
mov edx,[ecx]
and  edx,80000000h
neg  edx
sbb  edx,edx
neg  edx
mov  [ebp-38h],edx

其对应的C代码为:

 var_38=(*var_2c)&0x80000000?1:0

switch...case语句,在VC6编译器下,比较语句将按照case值由小到大排列,而代码则按照程序员书写的从后到前的顺序汇编:如下面的语句:

 

switch (var_d8)
            {
            
case   0xff :
                {
                    var_cc
= 0 ;
                    
for  (;var_cc < 4 ;var_cc ++ )
                    {
                        var_28[var_cc]
= arg_1[var_cc];
                        (
& var_28[ 4 ])[var_cc] = arg_1[var_cc]     ^     ( & arg_1[ 4 ])[var_cc];
                    }
                    p9(var_c8,var_28,arg_2);
                    
break ;
                }

            
case
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值