On Sun, 17 Feb 2008 12:04:40 -0600 (CST), Chris LaVelle
<cjlavelle@[EMAIL PROTECTED]
> wrote:
>I don't know the easiest way to explain this so, I'm going to give an
>example of how it is today....and what I'm trying to accomplish.
>
>in the header...
>typedef struct XXX_ELEMENT_tag
>{
> UINT8 num;
> UINT8 param;
> UINT16 fre1;
> INT16 a1;
>} ;
This is a syntax error. You either
remove the typedef from in front of the declaration or
you include the "new name" ELEMENT_T before the final
semicolon and delete the next declaration.
>typedef struct XXX_ELEMENT_tag ELEMENT_T;
>
>#define MAX_ELEMENTS 8
>typedef struct XYZ_S_tag {
> UINT8 num_elements;
> UINT8 flag;
> ELEMENT_T element[MAX_E]; /*** This is the spot ***/
Where did you declare MAX_E? Did you mean MAX_ELEMENTS?
>} XYZ_S_tag;
>
>And of course the S_tag structure is buried one more structure down.
>Say something like:
>
>typedef struct T_TABLE_tag
>{
> XYZ_S_tag run;
> XYZ_S_tag walk;
> .... /* alot of these */
> XYZ_S_tag crawl;
>} TABLE_T;
>typedef struct T_TABLE_tag T_table;
>
>And in a C file a global is initialized like this...
>T_table t_table =
>{
> { /* run */
> 2, /* Num Elements */
> APPLY_WINDOW, /* Flag */
> {
> /* N p f a */
> /* 0 */ { 2, 0, 480, -240 },
> /* 1 */ { 0, 0, 0, 500 },
> /* 2 */ { 0, 0, 0, 0 },
> /* 3 */ { 0, 0, 0, 0 },
> /* 4 */ { 0, 0, 0, 0 },
> /* 5 */ { 0, 0, 0, 0 },
> /* 6 */ { 0, 0, 0, 0 },
> /* 7 */ { 0, 0, 0, 0 },
> /* 8 */ { 0, 0, 0, 0 },
MAX_ELEMENTS is 8. The subscripts range from 0 to 7. You have 9
initializers. You can't stuff 10 pounds into a 5 pound bag.
> }
> },
> { /* walk */
> /* repeat many many times */
> }
> }
>}
>
>Ok, let's just say element is bigger than my example above and there are
>about a 1000 of these, only half of which have data. I've inherited
>this code and this table is occupying 300k of memory and memory's tight.
>I want to delete all the filler rows and declare element in a way that
>the compiler will auto size what it needs for each instance. I have the
>number of elements. I would have thought something along the lines of
>*element instead of element[MAX_E]. But I get warnings about the
We can't help you with something along the lines of. We need to see
you exact code and the exact error message.
>unexpected brace for element. Is there a way to make the compiler auto
>size the space for me? In the above example I would be deleting rows
2-8.
Remove del for email
--
comp.lang.c.moderated - moderation address: clcm@[EMAIL PROTECTED]
-- you must
have an appropriate newsgroups line in your header for your mail to be
seen,
or the newsgroup name in square brackets in the subject line. Sorry.


|