Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming
Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming
Pannello QD-OLED da 32 pollici con risoluzione 4K, frequenza di aggiornamento a 240Hz e tempi di risposta rapidissimi: il Gigabyte MO32U24 evolve il progetto del suo predecessore MO32U e alza ulteriormente l'asticella delle prestazioni. È ancora una volta un monitor indirizzato ai giocatori più esigenti
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
realme 16 5G è un nuovo smartphone con sensore Sony IMX 852 da 50MP sul retro e uno specchio selfie fisico integrato nella camera bar, una prima nel segmento di mercato. Batteria da 6550mAh in un corpo da 8,1mm e 183g, certificazione IP69K e ricarica da 45W completano un pacchetto aggressivo per la fascia media, per uno dei prodotti più interessanti del produttore sul piano commerciale
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni
Sono ormai definitive le nuove norme del Codice della Strada per i monopattini elettrici. Non solo targa e assicurazione, le regole sono tante e riguardano diversi aspetti, vi spieghiamo come evitare sanzioni che possono essere salate
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 23-01-2007, 11:16   #1
tidus8
Member
 
Iscritto dal: Feb 2005
Città: Catania
Messaggi: 188
[C++]

Ciao ragazzi, ho una domanda da farvi.
Sto usando una struttura nel mio codice C++ che ha all'interno uno short int (2 byte) e un char (1 byte). Perchè quando vado a fare sizeof(miaStruttura) mi dice che occupa 4 byte? Addirittura se metto int (4 byte) al posto di short, mi dice che la struttura occupa 8 byte....Sapete dirmi perchè?
tidus8 è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2007, 11:22   #2
pela
Member
 
Iscritto dal: Jul 2003
Città: pisa
Messaggi: 141
vengono inseriti dei byte aggiuntivi per far sì che i campi siano allineati in memoria (l'accesso risulta solitamente più veloce)
pela è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2007, 12:05   #3
tidus8
Member
 
Iscritto dal: Feb 2005
Città: Catania
Messaggi: 188
Quindi avrò solo multipli di 4...non posso fare una struttura di 3 byte in pratica...
tidus8 è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2007, 12:46   #4
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da tidus8
Quindi avrò solo multipli di 4...non posso fare una struttura di 3 byte in pratica...
Sì che si può, basta indicare al compilatore di usare un altro tipo di allineamento.
Codice:
#pragma pack(1)

typedef struct
{
    short a;
    char b;
} MIASTRUCT;

#pragma pack()
Ora sizeof(MIASTRUCT) dà 3.

Notare che le direttive pragma sono specifiche per ogni compilatore, quindi non tutti i compilatori potrebbero avere il pragma pack (sebbene molti ce l'hanno).
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2007, 13:08   #5
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Quote:
Originariamente inviato da andbin
Sì che si può, basta indicare al compilatore di usare un altro tipo di allineamento.
[
A patto, ovviamente, che tutto questo sia supportato ad un livello piu' basso.
Non esiste alcun problema, per i processori Intel, far iniziare una word ad una locazione di memoria che sia dispari, ma non e' cosi' per tutti.
In tal caso non puoi cambiare lo stile di allineamento
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2007, 13:19   #6
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da sottovento
A patto, ovviamente, che tutto questo sia supportato ad un livello piu' basso.
Certo ... e che il compilatore abbia una direttiva pragma pack o similare/equivalente.
Ma sono questioni che dipendono da cosa si sta usando ... e quindi è da verificare, non posso conoscere tutti i processori/compilatori su questa terra.

Quote:
Originariamente inviato da sottovento
ma non e' cosi' per tutti.
Giusto solo per mia curiosità personale: su quali architetture di processori non è possibile "disallineare" i dati??
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2007, 17:41   #7
tidus8
Member
 
Iscritto dal: Feb 2005
Città: Catania
Messaggi: 188
Grazie ragazzi, sempre tempestivi e precisi....Mi siete stati di grande aiuto
tidus8 è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2007, 19:06   #8
vizzz
Senior Member
 
L'Avatar di vizzz
 
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
Quote:
Originariamente inviato da andbin
Giusto solo per mia curiosità personale: su quali architetture di processori non è possibile "disallineare" i dati??
mi sono scontrato proprio oggi con un problema analogo in cui era necessario disallineamento con un paio di struct...piattaforma arm7
vizzz è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming Gigabyte MO32U24 OLED: il 4K a 240Hz su un panne...
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh Recensione realme 16 5G: lo smartphone con Selfi...
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni Come rispettare tutte le nuove regole per i mono...
DLSS 4.5: con Dynamic Frame Generation e MFG 6X NVIDIA alza la posta DLSS 4.5: con Dynamic Frame Generation e MFG 6X ...
Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere) Plaud NotePin S, il registratore IA si fa indoss...
Prime Day anticipato, le offerte sui rob...
Microsoft: l'obbligo dell'account online...
Prime Day anticipato, i migliori Roboroc...
'Case distrutte dai razzi di Musk': il l...
Meno 50% dal picco: Bitcoin a $64.394 e ...
MOVA, guida all'acquisto dei tagliaerba ...
Come potrebbero essere le CPU Intel Rapt...
DJI Osmo 360 Combo Essenziale a 395€: 1 ...
Teste di bambola e foto finte: cos&igrav...
Haier rilancia con due TV da tenere d'oc...
Easy Anti-Cheat sul kernel Linux: Epic G...
Amazon Fire TV Stick 4K Select a 24,99€:...
Una teoria matematica cambia i datacente...
Prime Day in anticipo, giorno 1: tutte l...
Agenti IA che si coordinano tra loro: Go...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 11:14.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v