This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

C Structure (Keil Compiler)

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.