Sari la conținut
ELFORUM - Forumul electronistilor

Structura in IAR Embeded Workbench MSP430


cirip

Postări Recomandate

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

Link spre comentariu
  • Răspunsuri 4
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • psanyi

    3

  • cirip

    2

Zile populare

Top autori în acest subiect

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;}
Link spre comentariu

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 :)

Link spre comentariu

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

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări