Jump to content
ELFORUM - Forumul Electronistilor
Sign in to follow this  
cirip

Structura in IAR Embeded Workbench MSP430

Recommended Posts

Salut,Incerc sa definesc si sa initializez o structura la compile time in IAR Embedded Workbench pentru MSP430. Ar trebui sa fie ceva banal, dar ma poticnesc la faptul ca daca vreau sa accesez un membru al structurii, compilatorul face scandal. Iata mai in detaliu:struct s{ int x; int y; };struct s s1[] = { 10, 20 };int c;int main( void ){ c=s1.x; //Aici marcheaza ca EROARE!! return 0;}La linia cu EROARE, compilatorul se vaicareste cum ca:Error: expression must have struct or union typeM-am uitat in K&R si mie mi se pare ca accesarea membrului structurii e corecta, dar poate imi scapa ceva. Ma poate ajuta cineva?Multumesc,Cirip

Share this post


Link to post
Share on other sites

struct s s1[] = {

10, 20

};

 

 

Problema este aici . Ai creat un tabel de structuri si compilatorul crede ca doresti sa initializezi un tabel cu structuri.

Daca doresti o singura structura initializata, ar veni cam asa

 

struct s{	int a;	int b;};struct s sx = { 10,20 };int c;int main(void){	c = sx.a;	c = sx.b;	return 0;}

Share this post


Link to post
Share on other sites

Da, scuze uitasem si a doua varianta cand doresti sa initializezi o tabela de structuri prin alocare statica.

 

struct s{	int a;	int b;};struct s sx[] = {    {10,20},    {15.22}};int c;int main(void){	c = sx[1].a;	c = sx[2].b;	return 0;}

Am pus parantezele in asafel sa intelegi despre ce este vorba. Sper ca ti-a fost de folos. Succes !

 

EDIT:

 

"tabela de structuri" = matrice de structuri :)

Share this post


Link to post
Share on other sites

Da, merg ambele variante, multumesc psanyi.Daca inteleg bine, motivul ptr care nu mergea este ca initializam o structura cu mai multi membri (tabela de structuri, cum o denumesti tu), dar accesul il faceam ca si cum aveam numai un membru al structurii si compilatorul nu stia pe care sa il aleaga (desi era numai unul singur).Eu credeam ca daca nu specific size in interiorul "[]" ar trebui sa isi dea seama din initializare ca am un singur membru si sa-l acceseze pe ala, atunci cand fac asignarea c=sx.a;Inca o data, multumesc. MergeCirip

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.