Ottimizzare C++/Ottimizzazione del codice C++/Accesso alla memoria: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Riportate modifiche da en.wikibooks |
m Bot: sostituisce source con syntaxhighlight |
||
Riga 34:
Per esempio, invece della seguente struttura:
<
struct {
bool b;
unsigned short ui1, ui2, ui3; // range: [0, 1000]
};
</syntaxhighlight>
che occupa 8 byte, puoi definire la seguente struttura:
<
struct {
unsigned b: 1;
unsigned ui1: 10, ui2: 10, ui3: 10; // range: [0, 1000]
};
</syntaxhighlight>
che occupa solamente (1 + 10 + 10 + 10 = 31 bit, 31 <= 32) 4 byte.
Riga 54:
Per fare un altro esempio, invece del seguente array:
<
unsigned char a[5]; // range: [-20, +20]
</syntaxhighlight>
che occupa 5 byte, puoi definire la seguente struttura:
<
struct {
signed a1: 6, a2: 6, a3: 6, a4: 6, a5: 6; // range: [-20, +20]
};
</syntaxhighlight>
che occupa solamente (6 + 6 + 6 + 6 + 6 = 30 bits, 30 <= 32) 4 bytes.
Riga 77:
Supponiamo di aver scritto il seguente codice:
<
template <typename T>
class C {
Riga 86:
T x_;
};
</syntaxhighlight>
Può convenire sostituire tale codice con il seguente:
<
template <typename T>
class C {
Riga 101:
void f_(int i) { body(); return i; }
</syntaxhighlight>
Ad ogni istanziazione di un template di classe che fa uso di una funzione di quel template di classe, tutto il codice di quella funzione viene istanziato.
|