We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Code: /* ---------------------------------------------------------------------- * DECLARE your own open(), close(), addr(), and byte() routines here. * */
static int open1(), close1(), addr1(), byte1(); static int open2(), close2(), addr2(), byte2(); static int open3(), close3(), addr3(), byte3(); static int open4(), close4(), addr4(), byte4();
/* ---------------------------------------------------------------------- * ADD an entry to this table to register your * output format routines. Give your object format * a name to be specified with the -F option. * */
static int format; static struct { char *name; int (*e_open)(); int (*e_close)(); int (*e_addr)(); int (*e_byte)(); } formtab[] = { { "tdr", open1, close1, addr1, byte1 }, { "byte", open2, close2, addr2, byte2 }, { "od", open3, close3, addr3, byte3 }, { "srec2", open4, close4, addr4, byte4 }, { "srec3", open4, close4, addr4, byte4 }, { "srec4", open4, close4, addr4, byte4 } };
#define FORMTABSIZE (sizeof(formtab)/sizeof(formtab[0])) Hi,
Above the structure declared the function in structure. This sample code is picked from other sample project code. This sample project i took from net is not completed source and some of the .h and .c file is not included.
The call functions:
Code: (*formtab[format].e_open)(file,ftype,arg); (*formtab[format].e_close)(); (*formtab[format].e_addr)(a); (*formtab[format].e_byte)(b); The compiler show:-> error C267: 'function': requires ANSI-style prototype
How to declare the function? I already included initial define function prototype. I think my function prototype is wrong.
The attached file is the code. Please help me...
Thank you.
It looks like you are using function pointers: the Keil tools have serious issues with function pointers - you need to ensure that you thoroughly understand them before you continue!
Read this App Note: http://www.keil.com/appnotes/docs/apnt_129.asp
and search the Knowledgebase for "Function Pointer" before you do anything else...!