The original design of D allowed the compiler to lay out struct fields as it saw fit, and extern(C) had the C layout. This turned out to be rather pointless, and I dropped it.