Pole v C

Duan Slavtnsk dslav3@treeinfo.cz
Steda Listopad 26 14:50:30 CET 2008


Já nevěděl jestli to není nějaká optimalizační finta. U GCC by se to dalo čekat. Schválně se zkuste podívat jestli to vygeneruje stejný kód.

Dušan Slavětínský

 

 

From: hw-list-bounces@list.hw.cz [mailto:hw-list-bounces@list.hw.cz] On Behalf Of Zdeněk Materna
Sent: Wednesday, November 26, 2008 2:47 PM
To: HW-news
Subject: Re: Pole v C

 

A víte že ani nevím? Asi je to tím, že ve škole používáme pro 8051 Keil, kde je jen čísté C. Doma používám GCC, které pro AVRka zkompiluje i věci z C++. Pak ve škole píšeme v Builderu, v Javě, v CodeSys (plc WAGO) atd. Prostě v tom asi mám guláž a tak pořádně nevím, co kde můžu, případně nemůžu :-) Každopádně díky za upozornění.

Dne 26. listopad 2008 14:27 Dušan Slavětínský <dslav3@treeinfo.cz> napsal(a):

Asi trochu od věci, spíš jenom pro zajímavost.

 

Proč používáte (*m).neco a ne m->neco? 

 

Dušan Slavětínský

 

From: hw-list-bounces@list.hw.cz [mailto:hw-list-bounces@list.hw.cz] On Behalf Of Zdeněk Materna
Sent: Wednesday, November 26, 2008 2:03 PM
To: HW-news
Subject: Pole v C

 

Zdravím,

mám takový problém v C.

Ve struktuře mám deklarované pole e (zatím) pevné velikosti. Mám ukazatel na strukturu, ten předávám jako parametr funkci, a chci do pole ukládat hodnoty, ze kterých budu počítat klouzavý průměr. V e_arr_len je uložená délka pole.

Takto je deklarované pole (ve struktuře):

volatile int16_t e[5];

Toto nefunguje:

for(uint8_t i=0; i<((*m).e_arr_len-1);i++)




  (*m).e[i] = (*m).e[i+1];

A toto ano:

(*m).e[0] = (*m).e[1];




(*m).e[1] = (*m).e[2];




(*m).e[2] = (*m).e[3];




(*m).e[4] = ((*m).req_speed - (*m).act_speed);


Samozřejmě bych radši používal for, protože je to čistší a navíc chci to pole alokovat dynamicky. Ale ať na to koukám, jak na to koukám, chybu nevidím. Kompilátorem to projde, ale bohužel to nefunguje.

Celý program je kdyžtak tady: http://robotic-hardware-interface.googlecode.com/svn/trunk/elektronika/motor_control/motor_control.c. Kompilátor používám gcc.

Díky za případnou radu.

 

 


_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz
Hw-list@list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list

 

------------- dal st ---------------
HTML příloha byla odstraněna...
URL: http://list.hw.cz/pipermail/hw-list/attachments/20081126/eb0861f7/attachment-0002.htm 


Dal informace o konferenci Hw-list