|
From: Raphael N. <rn...@we...> - 2009-11-16 09:56:09
|
Hi,
> This (contrived example) fails to compile:
>
> void test (int data)
> {
> int i ;
> i = data ;
> }
>
> Compile command:
>
> sdcc -mpic16 -p18f4685 -c test.c
>
> Gives:
>
> test.c:5: syntax error: token -> 'data' ; column 10
> test.c:6: error 159: in function test: name omitted for parameter 1
>
> Compiles fine with gcc, so wondering if 'data' is pre-defined as a
> keyword somewhere?
Yes, "data" is a memory space indicator (like code, idata, pdata,
xdata, and more).
You can compile with --std-c89, which defines only the variants
__data, __code, __idata, __pdata, __xdata, ... as keywords and allows
you to use the non-__-prefixed ones as regular identifiers.
Raphael
|