Apa yang Diubah

Pada Windows 32-bit, tipe data bilangan bulat, panjang, dan penunjuk semuanya berukuran sama—32 bit. Keseragaman yang nyaman dalam ukuran jenis data ini telah menjadi anugerah bagi programmer C pintar, banyak di antaranya telah datang untuk menerimanya untuk diberikan.

Namun, pada Windows 64-bit, asumsi keseragaman ini tidak lagi valid. Pointer sekarang memiliki panjang 64 bit, tetapi jenis data bilangan bulat dan panjang tetap berukuran sama seperti sebelumnya—32 bit. Ini karena, sementara pointer 64-bit diperlukan untuk mengakomodasi sistem dengan memori virtual sebanyak 16 TB, sebagian besar data masih cocok dengan nyaman menjadi bilangan bulat 32-bit. Untuk sebagian besar aplikasi, mengubah ukuran bilangan bulat default menjadi 64 bit hanya akan membuang-buang ruang.

Pada platform Windows 32-bit, sistem operasi secara otomatis memperbaiki kesalahan penyelarasan memori mode kernel dan membuatnya tidak terlihat oleh aplikasi. Ini dilakukan untuk proses panggilan dan proses turunan apa pun. Fitur ini, yang sering secara dramatis mengurangi performa, belum diimplementasikan di Windows 64-bit. Dengan demikian, jika driver 32-bit Anda berisi bug ketidakselarasan, Anda harus memperbaikinya saat porting ke Windows 64-bit.