The size of the following struct should be 14 bytes. It appears to be 16 bytes. When I write it to a binary file, two bytes seem to be inserted after the first two bytes. The two erroneous bytes have the hex values: cc cc. The first four bytes of the struct when filled out appropriately are: 42 4D CC CC

This is the smallest amount of code that I could reproduce the problem

Code:
#include <iostream>

using std::cout;
using std::cin;

struct bfHeader
{
	unsigned short bfType;// = 19778 = 'BM'
	unsigned int bfSize;// = size of file
	unsigned short bfReserved1, bfReserved2;// = 0;
	unsigned int bfOffBits;// = 54;
};

int main()
{
	cout<<"\n Size of ushort: " << sizeof(unsigned short);
	cout<<"\n Size of uint: " << sizeof (unsigned int);
	cout<<"\n Expected size of struct: " << sizeof(unsigned short) * 3 + sizeof(unsigned int) * 2;
	cout<<"\n Size of bfHeader: " << sizeof(bfHeader);
	cin.get();
	return 0;
}
output
Code:
 Size of ushort: 2
 Size of uint: 4
 Expected size of struct: 14
 Size of bfHeader: 16
This was done on VC++ 2008 express. Why is this struct 16 bytes in size?