C optimalizalas

Andras Tantos andras at tantosonline.com
Thu Oct 27 23:56:28 CEST 2005


Hali!

Ez roppant erdekes. Ezek szerint az alabbi kod:

      cfg.hangup_status=ACTIVE;
      if(!cfg.out_type){
        PORT3_OC1B=1;
      }
      else{
        settimer(TMR_MONOSTABLE,cfg.out_type);
      }

nagyobb kellene legyen, mint ez:

      void SetHupStatusAct() {
          cfg.hangup_status=ACTIVE;
      }

    ....

      SetHupStatusAct();
      if(!cfg.out_type){
        PORT3_OC1B=1;
      }
      else{
        settimer(TMR_MONOSTABLE,cfg.out_type);
      }

Biztos vagy ebben? Tudsz esetleg assambly listat kuldeni az (eredeti) 
kodreszletekrol? Mi a tipusa a cfg.hangup_status-nak? Lehet, hogy 32-bites? 
De meg ez se eleg magyarazat, ugy erzem... Meg azt tudom elkepzelni, hogy 
valami csalafinta (bit-mezok, union) trukkozes miatt a ket kodreszlet meg se 
egeszen ugyanazt csinalja.

Udv,
Tantos Andras

----- Original Message ----- 
From: "Fuzesi Arnold" <arno at externet.hu>
To: <elektro at tesla.hu>; <Retro at lists.tmp.hu>
Sent: Thursday, October 27, 2005 12:15 PM
Subject: C optimalizalas


Belefutottam egy jopofa dologba:


Az alabbi jocskan _rovidebb_ kodot eredmenyez:

      if(!cfg.out_type){
        PORT3_OC1B=1;
        cfg.hangup_status=ACTIVE;
      }
      else{
       if(cfg.out_retrigger){
        settimer(TMR_MONOSTABLE,cfg.out_type);
        cfg.hangup_status=ACTIVE;
       }else{
        settimer(TMR_MONOSTABLE,cfg.out_type);
        cfg.hangup_status=ACTIVE;
       }
      }

mint ez:

      cfg.hangup_status=ACTIVE;
      if(!cfg.out_type){
        PORT3_OC1B=1;
      }
      else{
        settimer(TMR_MONOSTABLE,cfg.out_type);
      }


Elvben funkcionalisan megegyeznek.


Csak egy jopofa pelda akart lenni, hogy  forditok mennyire maskepp 
gondolkodnak mint az ember, és bizonyos komplexitas felett mennyire nincs 
eselyünk.
Azert lett rovidebb mert tök mashol hasznaltam azonos kodreszletet(ket), 
amit a cross-call optimalizacio megtalalt, es csinalt egy par kis közös 
fuggvenyt

Nezegettem a kodot, tele van cross-call hivassal... Nagyon ugyesen 
megtalalja a kozos kodreszeket. Ott ahol nekem fel sem tűnne/ 
lustaságból/átláthatóság miatt nem kezdenék függvényhívást írni.


Arnold
-----------------------------------
 Szponzorunk: http://tonerbolt.hu/




More information about the Elektro mailing list