Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!usc!snorkelwacker.mit.edu!paperboy!hsdndev!cmcl2!adm!smoke!gwyn From: gwyn@smoke.brl.mil (Doug Gwyn) Newsgroups: comp.lang.c Subject: Re: finding offset of a member in C structures Message-ID: <16194@smoke.brl.mil> Date: 20 May 91 04:09:18 GMT References: <1276@unisql.UUCP> Organization: U.S. Army Ballistic Research Laboratory, APG, MD. Lines: 19 In article <1276@unisql.UUCP> pckim@unisql.UUCP (Pyung-Chul Kim) writes: - struct a_struct { - short member1; - char member2; - int memner3; - }; -can I get the offset of member2 at *compiling time* and *portably* ? Yes, but you shouldn't very often need to do so. -It is possible to provide a compiler operator: - offsetof(member_name,structure_type_name) -as it provides 'sizeof' operator. -Do you know if there is a compiler operator like above, or is there any -alternative solution. Standard C provides an offsetof() macro, but you don't really need one. struct a_struct foo; int offset2 = (char *)&foo.member2 - (char *)&foo; /* for example */