[comp.lang.c] MPW and offsetof macro

rhodes@grebyn.com (Ned Rhodes) (04/19/91)

	The following program fragment will not compile under my current
configuration of MPW.  I have not tried other versions or the latest one
ETO #3.  The same code will compile under gcc, so I think it is a
problem with MPW on the Mac.  Does anyone have any ideas?  I have passed
this on to DTS.


/*

	Shows that offsetof macro is not being properly processed
	
	MPW 3.2b9 and C 3.2b3Q101

*/

#include <stddef.h>

/* macro for sizeof a structure member */
#define sizeofm(struct_t, member) ((size_t)(sizeof(((struct_t *)0)->member)))

/* record definition */
typedef struct {
	char rd_contact[41];	/* contact name (last name first) */
	char rd_title[41];	/* contact job title */
	char rd_company[41];	/* company name */
	char rd_addr[2*40+1];	/* company address */
	char rd_city[26];	/* city */
	char rd_state[3];	/* state */
	char rd_zip[11];	/* zip code */
	char rd_phone[13];	/* phone number */
	char rd_ext[5];		/* phone extension */
	char rd_fax[13];	/* fax number */
	char rd_notes[4*40+1];	/* notes */
} rolodeck_t;

typedef struct {			/* field definition */
	size_t offset;			/* offset of field in record */
	size_t len;			/* field length */
	int type;			/* field data type */
	int flags;			/* flags */
	char filename[100];
					/* name of file to store keys in */
} cbfield_t;

/* field definition list */
const cbfield_t rdfldv[] = {
	{offsetof(rolodeck_t, rd_contact), 
	 sizeofm(rolodeck_t, rd_contact),
	 1,
	 2,
	 "rdcont.ndx"
	}
};

main()
{
}
-- 
Ned W. Rhodes                   (703) 534-2297 (voice)
Software Systems Group          (703) 237-9654 (fax)
2001 North Kenilworth Street	CompuServe : 71321,424
Arlington, VA  22205            rhodes@grebyn.COM