Ich lese gerade einen solchen C-Code:
double function( int lena,double xa,double ya, double za, double *acoefs, ...,
int lenb,double xb,double yb, double zb, double *bcoefs, ...,
same for c,
same for d )
Diese Funktion wird im Code mehr als 100.000 Mal aufgerufen, sie ist also leistungsentscheidend.
Ich versuche, diesen Code zu erweitern, aber ich möchte wissen, ob es effizient ist oder nicht (und wie viel dies die Geschwindigkeit beeinflusst), um alle Parameter in einer Struktur wie diese zu kapseln
struct PGTO { int len; double x,y,z ; double *acoefs }
und greifen dann auf die Parameter in der Funktion zu.
11 Stimmen
Einfacher Weg, das herauszufinden: Profil und Test
1 Stimmen
Der kompilierte Code sollte für die x86- und ARM-Standardaufrufkonvention gleich sein.
0 Stimmen
Ist die
...
die varargs angeben, oder haben Sie einige Parameter weggelassen?0 Stimmen
Abgesehen von der Effizienz macht die Kapselung der Parameter in einer Struktur den Code einfacher zu pflegen und verringert das Risiko, die Argumente versehentlich in der falschen Reihenfolge zu übergeben.