Re: c: pøetypování - skr
Jan Waclawek
konfera na efton.sk
Neděle Leden 13 13:04:41 CET 2019
[preposielam]
Dobry den,
v texte.
typedef enum {
uint8_t value;
struct {
unsigned prvniBit :1;
unsigned druhyBit :1;
};
}_KontrolaDataResult_ ;
: uz som sice do C-cka dlhsie nepozrel, tak tejto konstrukcii velmi
nerozumiem. Ta
: konstrukcia typedef enum je pre mna nezrozumitelna. Keby tam bol
union resp. namiesto
: enum prazdne miesto, tak by som tomu rozumel... Ale takto len
typujem, ze tam ma byt
: union... A ten je optimalizovany dobre.
_KontrolaDataResult_ pokus(void){
// v podprogramu je cca 10x
_KontrolaDataResult_ KontrolaDataResult;
KontrolaDataResult.value = 0x19;
return KontrolaDataResult;
}
Pokud na to kouknu do asm, dost blbì to tam je optimalizovaný, optimalizace
vechny zapnutý
: Moja otazka, ktoru verziu kompilatora pouzivate? v1.xx alebo v2.xx?!
:
: Ak sa zacitate do readme fileov ku v2.xx, tak tam taka mudra poznamka
: ku "optimization" v duchu, ze nasledujuca verzia bude lepsia. Zrejme
dôsledok toho, ze
: mplabx a xc8 ma uz byt pre vsetky mcu od microchipu... Teda je
otazka ci novy xc8 bude
: skor v duchu klasiky HiTech alebo pojde cestou GCC...
! _KontrolaDataResult_ KontrolaDataResult;
! KontrolaDataResult.value = 0x19;
0x7D2E: MOVLW 0x19
0x7D30: MOVWF KontrolaDataResult_2242, ACCESS
! return KontrolaDataResult;
0x7D32: MOVF KontrolaDataResult_2242, W, ACCESS
0x7D34: RETURN 0
urobi len to co ste mu prikazal....
prostì to nehodí klasicky
RETLW 0x19
: no skuste
:
: return(KontrolaDataResult.value = 0x19)
:
: alebo
:
: KontrolaDataResult.value = 0x19;
: return(0x19);
Prajem pekny den.
Další informace o konferenci Hw-list