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.
Hi everyone,
I have the following working code:
typedef struct { int spam; int eggs; char padding[200]; } MyStruct; const char code foo[] = "This is a string."; const MyStruct code bar = { 1, 2 }; // padding not initialized
Because MyStruct includes padding that is currently unused, I would like to move the contents of foo into the structure. Within my application, this makes logical sense in addition to reducing the amount of wasted code space. I would like to do something like the following, but I can't get it to work:
typedef struct { int spam; int eggs; char foo[18]; // includes \0 at end char padding[182]; } MyStruct; const char code bar = { 1, 2, "This is a string." };
I am getting the error "non-address/constant initializer". Any suggestions?
-Scott
I could not get this to compile using the 9.x series of the Keil tool chain. Programmatically we have since reverted to v8.12, under which the (unmodified) source compiles just fine. I did not investigate further.