_ LPとLLP 教わったのでメモ。 Wikipediaの64ビットがまとまっている。 Linuxは、LP64。LPというのは、LongとPointerが64ビットという意味。 一方、Win64はLLP64。LLPというのは、Long longとPointerが64ビットという意味(Longは32ビット)。 そこで、Linuxであれば、sizeof(long) == sizeof(void*)なのでいい加減なキャストでも問題ないが、Win64だとsizeof(long) < sizeof(void*)なのでいい加減なキャストだと問題がおきる。 ここでのいい加減なキャストというのは、32ビットを前提とした void foo(long l) { strcpy((void*)l, "foobar"); } みたいなもの。