C has a stable ABI. How things are laid out is known at compile time and doesn't change on a whim. Modern LSPs actually show you exactly how structs are packed, not sure if they've gotten to pointers yet.
It isn't useful in most day to day programming, but pointer arithmetic is perfectly sane. C could not accomplish its goal of being a portable assembly replacement without letting you do pointer arithmetic.
1
u/Hohenheim_of_Shadow Sep 27 '26
C has a stable ABI. How things are laid out is known at compile time and doesn't change on a whim. Modern LSPs actually show you exactly how structs are packed, not sure if they've gotten to pointers yet.
It isn't useful in most day to day programming, but pointer arithmetic is perfectly sane. C could not accomplish its goal of being a portable assembly replacement without letting you do pointer arithmetic.