alignas (c++11)
#include <iostream>
#include <string>
#include <memory>
#include <sstream>
using namespace std;
struct cardDeck
{
char cardVal[8];
//char h;
};
int main( void )
{
alignas( 16 ) cardDeck deck1;
alignas( 16 ) cardDeck deck2;
alignas( 16 ) cardDeck deck3;
cardDeck deck4;
cardDeck deck5;
cout << "size of deck 1 : " << sizeof( deck1 ) << endl;
cout << "size of deck 2 : " << sizeof( deck2 ) << endl;
cout << "size of deck 3 : " << sizeof( deck3 ) << endl;
cout << "size of deck 4 : " << sizeof( deck4 ) << endl;
cout << "size of deck 5 : " << sizeof( deck5 ) << endl;
cout << "address of deck 1 : " << reinterpret_cast< int64_t >( std::addressof( deck1 ) ) << endl;
cout << "address of deck 2 : " << reinterpret_cast< int64_t >( std::addressof( deck2 ) ) << endl;
cout << "address of deck 3 : " << reinterpret_cast< int64_t >( std::addressof( deck3 ) ) << endl;
cout << "address of deck 4 : " << reinterpret_cast< int64_t >( std::addressof( deck4 ) ) << endl;
cout << "address of deck 5 : " << reinterpret_cast< int64_t >( std::addressof( deck5 ) ) << endl;
cout << endl << "difference between deck 1 and 2 :" << reinterpret_cast< int64_t >( std::addressof( deck2 ) ) - reinterpret_cast< int64_t >( std::addressof( deck1 ) );
cout << endl << "difference between deck 2 and 3 :" << reinterpret_cast< int64_t >( std::addressof( deck3 ) ) - reinterpret_cast< int64_t >( std::addressof( deck2 ) );
cout << endl << "difference between deck 3 and 4 :" << reinterpret_cast< int64_t >( std::addressof( deck4 ) ) - reinterpret_cast< int64_t >( std::addressof( deck3 ) );
cout << endl << "difference between deck 4 and 5 :" << reinterpret_cast< int64_t >( std::addressof( deck5 ) ) - reinterpret_cast< int64_t >( std::addressof( deck4 ) );
return 0;
}
Output
asad@asad-ub20cpp11:~/proj$ g++ align.cpp
asad@asad-ub20cpp11:~/proj$ ./a.out
size of deck 1 : 8
size of deck 2 : 8
size of deck 3 : 8
size of deck 4 : 8
size of deck 5 : 8
address of deck 1 : 140734348135248
address of deck 2 : 140734348135264
address of deck 3 : 140734348135280
address of deck 4 : 140734348135288
address of deck 5 : 140734348135296
difference between deck 1 and 2 :16
difference between deck 2 and 3 :16
difference between deck 3 and 4 :8
difference between deck 4 and 5 :8asad@asad-ub20cpp11:~/proj$