Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    40

    [C++] Dimensione di una classe

    Salve a tutti ho un problema con la dimensione della classe in questione
    codice:
    class distrVehicle{
    public:
    	distrVehicle()
    	{
    		cout << "Inizializzazione Vehicle\n";
    	}
    
    	~distrVehicle()
    	{
    		cout << "Distruzione Vehicle\n";
    	}
    
    	double updateVELOCITY;
    	bool dream;
    	bool obstacle;
    	int mHealth;
    	int mAttack;
    	int mUpdateVelocity;
    	//char* vehicleBlockPosition;
    	double	m_dTimeElapsed;
    	double	mAcceleration;
    	//distributedSteeringBehaviour steering;
    	//std::vector<Vector2D> m_vecVehicleVB;
    
    	//Moving Entity
    	Vector2D    m_vVelocity;
    	Vector2D    m_vHeading;
    	Vector2D    m_vSide;
    	double	m_dMass;
    	double	m_dMaxSpeed;
    	double	m_dMaxForce;
    	double	m_dMaxTurnRate;
    
    	//Game Base Entity
    	int	m_ID;
    	int	m_EntityType;
    	bool m_bTag;
    	bool mLeader;
    	int mTeam;
    	int mBattalion;
    	double m_dBoundingRadius;
    	Vector2D m_vPos;
    	Vector2D m_vScale;
    
    	void fillVehicle(){
    		
    		m_dBoundingRadius = 43.65f;
    		m_vPos = Vector2D(32,43);
    		m_vScale = Vector2D(32,43);
    
    	}
    
    };
    Quando faccio sizeof(distrVehicle) il suo valore è di 184 byte, invece facendo la somma delle singole variabili io mi trovo 180 la differenza diventa maggiore se aggiungo anche una variabile char*... infatti sizeof(char*) occupa 4 byte invece nel computo generale risultano essere 8...
    sizeof(int) = 4
    sizeof(double) = 8
    sizeof(Vector2d) = 16
    sizeof(bool) = 1
    Il tutto è molto strano mi serve avere una misura specifica... perchè devo inviare l array di byte sulla rete....
    Grazie a tutti...

  2. #2

    Re: [C++] Dimensione di una classe

    http://en.wikipedia.org/wiki/Data_st...structs_on_x86

    Considera che l'allineamento dei campi può spesso essere cambiato tramite opportune direttive di compilazione o pragma che dipendono dal compilatore in uso.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    40
    grazie

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Cosa usi per compilare?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    40
    Sto programmando con visual studio 2008...

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Progetto Win32 (Console, GUI) ? In questo caso prova ad inserire all'inizio del codice

    #pragma pack(1)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.