Pointer na strukturu – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Pointer na strukturu – C / C++ – Fórum – Programujte.comPointer na strukturu – C / C++ – Fórum – Programujte.com

 

Pavelv0
Stálý člen
10. 7. 2015   #1
-
0
-

Zdravím, jak optimalizovat kód psaný ve switchi, přes pointery? Za boha nevím jak udělat pointer na strukturu a pohybovat se v ní.

unsigned char funkce(unsigned char)
{
	...
}
					
void main(void)
{
	typedef struct
	{
		byte sens1;
		byte sens2;
		byte sens3;
		byte sens4;
		byte sens5;
		byte sens6;
	}SENSOR;
	
	SENSOR Sensor;
	
	while(1)
	{
		static char i = 0;
		switch(i)
		{
		case 1:
			Sensor.sens1 = funkce(i);
			i++;
			break;
		case 2:
			Sensor.sens1 = funkce(i);
                        i++;                        break;		case 3:
			Sensor.sens3 = funkce(i);
			i++;
                        break;
			
			...
			
		case 10:
			Sensor.sens10 = funkce(i);
			i = 1;
                        break;
		}
		
	}
}

Jedná se o 16ti bitový procesor MSP430. Něco lepšího co mi napadá, je jenom udělat pole a to dát se strukturou do unionu, a přistupovat přes pole, nebo přes dynamický pole, já bych raději staticky, zjistil adresu struktury, přičet n*velikost prvku a tam data uložil.

Nahlásit jako SPAM
IP: 212.79.110.–
KIIV
~ Moderátor
+43
God of flame
10. 7. 2015   #2
-
0
-

No bude trochu zalezet na tom, jestli jsou ty bajty hned za sebou, nebo jsou zarovnany na 16b - to by slo dejme tomu zjistit experimentem.

byte * senzory = (byte *)&Sensor;

senzory[i] = funkce(i);  // ale bacha, i se pocita od 0

Kazdopadne ocividne chces pole, ikdyz tvrdis, ze ne. Protoze k cemu je ti ta struktura, krom vyrazneho zkomplikovani kodu... kdyz tam das   byte senzory[10] ={0}; tak pak je muzes vyplnovat stejnym zpusobem jako ten pointer.

Nahlásit jako SPAM
IP: 94.113.93.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Pavelv0
Stálý člen
10. 7. 2015   #3
-
0
-

#2 KIIV
Díky, tohle je přesně ono, zkoušel jsem to všelijak podobně, ale přetypovat Sensor na byte jsem nezkoušel :-D. Věděl jse, že to musí být na dva řádky. Ten kód jsem vytrhl z kontextu, ve skutečnosti je struktura složitější a je použitá v celém programu n+1 :-D

Nahlásit jako SPAM
IP: 212.79.110.–
KIIV
~ Moderátor
+43
God of flame
10. 7. 2015   #4
-
0
-

blbej navrh no .. v ty strukture muzes mit i pole

Nahlásit jako SPAM
IP: 94.113.93.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 96 hostů

Podobná vlákna

Pointer na strukturu — založil Fugii

Pointer na strukturu — založil Romča

Strukturu new — založil pep

Ako na strukturu — založil Vestax

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý