define für Umbennenung verwenden?



  • Hi, eine Funktion wurder leicht verändert, dadurch sind die Initialwerte ein wenig anders.

    vorher:

    class Klasse{
    //buffer
    int * data1;
    int * data2;
    int * data3;
    int * data4;
    
    void function(){
    
         fun(data1, data2);
         fun2(data2, data3);
         fun3(data4, data1);
         ....
    }
    }
    

    jetzt:

    class Klasse{
    //buffer
    int ** data1p;
    int ** data2p;
    int ** data3p;
    int ** data4p;
    
    void function(){
         int off = off_fun()
    
         int * data1 = data1p[off];
         int * data2 = data2p[off];
         int * data3 = data3p[off];
         int * data4 = data4p[off];
    
         fun(data1, data2);
         fun2(data2, data3);
         fun3(data4, data1);
         ....
    }
    }
    

    Da wird doch dann immer eine neue Variable erstellt. Sollte man daher lieber:

    class Klasse{
    //buffer
    int ** data1p;
    int ** data2p;
    int ** data3p;
    int ** data4p;
    
    void function(){
         int off = off_fun()
    
         #define data1 = data1p[off];
         #define data2 = data2p[off];
         #define data3 = data3p[off];
         #define data4 = data4p[off];
    
         fun(data1, data2);
         fun2(data2, data3);
         fun3(data4, data1);
         ....
    }
    }
    

    Oder etwas anders tun? Alles unbennen fördert nicht der Übersicht und macht es schwerer, wenn man es wieder ändern will.



  • Hi,

    die Variablen kann der Optimierer entfernen. Kannst ja auch eventuel den Optimierer dabei helfen:

    int * const data1 = data1p[off];
    

    Die define Idee ist jedenfalls Mist.

    VG



  • Hi, danke für die Antwort.
    Ich hatte ausversehen das falsche compiliert. War verwundert das define da überhaupt geht.


Anmelden zum Antworten