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.

Parents
  • the safestr way to break a leg is running UNLESS
    you first learned to crawl
    then learned to walk
    then and only then tried running.

    Your code and question show clearly that you skipped the first 2 steps.

    Put aside what you have, get the "getting started guide" and "the bible" and start crawling, then walking and then, and only then, come back with what you heve here.

    Erik

Reply
  • the safestr way to break a leg is running UNLESS
    you first learned to crawl
    then learned to walk
    then and only then tried running.

    Your code and question show clearly that you skipped the first 2 steps.

    Put aside what you have, get the "getting started guide" and "the bible" and start crawling, then walking and then, and only then, come back with what you heve here.

    Erik

Children
No data