Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > C Moderated > Re: Need a GURU...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 9 of 9 Topic 1044 of 1133
Post > Topic >>

Re: Need a GURU!!! I'm stuck.

by hnarkaytis@[EMAIL PROTECTED] Mar 8, 2008 at 12:21 PM

I hope that you are using GCC, otherwise my advice will not work.
I will give a piece of code

 typedef struct XXX_ELEMENT_tag
 {
    UINT8   num;
    UINT8   param;
    UINT16  fre1;
    INT16   a1;} ;

 typedef struct XXX_ELEMENT_tag ELEMENT_T;

 typedef struct XYZ_S_tag {
     UINT8     num_elements;
     UINT8     flag;
     ELEMENT_T * element;    /*** Array should be dynamically
allocated, not a static ***/
 } XYZ_S_tag;

 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;
 T_table t_table =3D
 {
         { /* In GCC you may initialise elements in random order. You
should use GCC extension
http://gcc.gnu.org/onlinedocs/gcc-2.95.3/gcc_4.html=
#SEC81
*/
                 2, /* Num Elements */
                 APPLY_WINDOW, /* Flag */
                 (ELEMENT_T[]){
                         /*        N  p   f     a */
                         /* 0 */ { 2, 0, 480, -240 },
                         /* 1 */ { 0, 0,   0, 500 },
                 }
         },
         { /* walk  */
                         /* repeat many many times */
                 }
         }

 }

Hope that will help.

On 17 =C6=C5=D7, 21:04, Chris LaVelle <cjlave...@[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
> {
> =9A =9AUINT8 =9A num;
> =9A =9AUINT8 =9A param;
> =9A =9AUINT16 =9Afre1;
> =9A =9AINT16 =9A a1;} ;
>
> typedef struct XXX_ELEMENT_tag ELEMENT_T;
>
> #define MAX_ELEMENTS 8
> typedef struct XYZ_S_tag {
> =9A =9A UINT8 =9A =9A num_elements;
> =9A =9A UINT8 =9A =9A flag;
> =9A =9A ELEMENT_T element[MAX_E]; =9A =9A/*** This is the spot ***/
>
> } XYZ_S_tag;
>
> And of course the S_tag structure is buried one more structure down.
> Say something like:
>
> typedef struct T_TABLE_tag
> {
> =9A =9AXYZ_S_tag run;
> =9A =9AXYZ_S_tag walk;
> =9A =9A.... =9A/* alot of these */
> =9A =9AXYZ_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 =3D
> {
> =9A =9A =9A =9A { /* run =9A =9A =9A*/
> =9A =9A =9A =9A =9A =9A =9A =9A 2, /* Num Elements */
> =9A =9A =9A =9A =9A =9A =9A =9A APPLY_WINDOW, /* Flag */
> =9A =9A =9A =9A =9A =9A =9A =9A {
> =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A /* =9A =9A =9A =9AN =9Ap
=
=9A f =9A =9A a */
> =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A /* 0 */ { 2, 0, 480,
-240 =
},
> =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A /* 1 */ { 0, 0, =9A 0,
500=
 },
> =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A /* 2 */ { 0, 0, =9A 0, 0
}=
,
> =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A /* 3 */ { 0, 0, =9A 0, 0
}=
, =9A =9A =9A
> =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A /* 4 */ { 0, 0, =9A 0, 0
}=
,
> =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A /* 5 */ { 0, 0, =9A 0, 0
}=
,
> =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A /* 6 */ { 0, 0, =9A 0, 0
}=
,
> =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A /* 7 */ { 0, 0, =9A 0, 0
}=
,
> =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A /* 8 */ { 0, 0, =9A 0, 0
}=
,
> =9A =9A =9A =9A =9A =9A =9A =9A }
> =9A =9A =9A =9A },
> =9A =9A =9A =9A { /* walk =9A*/
> =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A /* repeat many many
times =
*/
> =9A =9A =9A =9A =9A =9A =9A =9A }
> =9A =9A =9A =9A }
>
> }
>
> 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. =9AI'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. =9AI have
the=

> number of elements. =9AI would have thought something along the lines of
> *element instead of element[MAX_E]. =9ABut I get warnings about the
> unexpected brace for element. =9AIs there a way to make the compiler
auto
> size the space for me? =9AIn the above example I would be deleting rows
2-=
8.
>
> Any and all help is appreciated?
>
> Thanks
> cj
> --
> comp.lang.c.moderated - moderation address: c...@[EMAIL PROTECTED]
 -- you
must
> have an appropriate newsgroups line in your header for your mail to be
see=
n,
> or the newsgroup name in square brackets in the subject line. =9ASorry.
-- 
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.
 




 9 Posts in Topic:
Need a GURU!!! I'm stuck.
Chris LaVelle <cjlavel  2008-02-17 12:04:40 
Re: Need a GURU!!! I'm stuck.
=?ISO-8859-1?Q?Hans-Bernh  2008-03-08 12:19:59 
Re: Need a GURU!!! I'm stuck.
Keith Thompson <kst-u@  2008-03-17 15:18:58 
Re: Need a GURU!!! I'm stuck.
=?UTF-8?B?SGFucy1CZXJuaGF  2008-03-20 01:09:51 
Re: Need a GURU!!! I'm stuck.
Barry Schwarz <schwarz  2008-03-08 12:20:10 
Re: Need a GURU!!! I'm stuck.
David Thompson <dave.t  2008-03-17 15:23:28 
Re: Need a GURU!!! I'm stuck.
Carl Barron <cbarron41  2008-03-08 12:20:22 
Re: Need a GURU!!! I'm stuck.
Joel Yliluoma <bisqwit  2008-03-08 12:20:33 
Re: Need a GURU!!! I'm stuck.
hnarkaytis@[EMAIL PROTECT  2008-03-08 12:21:14 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Thu Jul 24 2:33:12 CDT 2008.