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

How to initiase structures

I'm trying to initialise a C-structure in like this:

struct S { uint8 a; uint8 b;};
struct S s1={.a=2};

Keil C51 v8.12 compiler does not like it:

error C141: syntax error near '.'

although my syntax is C99 conform. I couldn't find what the ANSI definition says about structure initialisation.

If I try

struct S {uint8 a; uint8 b;};
struct S s1={2};

it does not work either. This is also conform to C99.

Only

struct S {uint8 a;uint8 b;};
struct S s1={2,0};

is valid.

The problem is, that I don't want to explicitly initialise b, which in my real program has many bytes.

Of course, it is always possible to do

s1.a=2;

in the init part of the program. In my real program, the structure is to be stored in FLASH, therefore is no use to initialise like that.

Note that for simplicity, the reseved word "code" was not written.

Do you have an idea what is the source of the problem?
Thanks you in advance for your ideas.

0