Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Once upon a time, when += was spelled =+, struct members in C were global names whose "values" were the offsets from the beginning of the struct[1]; a.b is simply a[ptrtab[b]] and a->b is a[0][ptrtab[b]].

[1]: This is why all of the names of struct members in unix are "needlessly" prefixed; i.e. struct stat.st_mode is not struct stat.mode because that could conflict with struct foo.mode until the early 1980s.



Ah that explains it, I wondered about those old struct defs.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: