a co je na tom radku ?
Simulace běhu programu v MPLAB X IDE
Moderátor: Moderátoři
Můžu jen vložit tu současnou verzi, která to ovšem už nehlásí.
Ale ta poznámka o trvání než se rozsvítilo mne inspiruje ke konstatování že stejně nechápu proč se v progamech běžně vyskytuje příkaz x++ aniž by bylo třeba použít přiřazení nové hodnoty x do proměnné x (např. v Herout: "Učebnice jazyka C" je příklad cyklu while
while (x < 10)
x++
a v mém programu to nefungovalo. Připadá mi to jako obdobná situace, jen s jiným operátorem. Nebo snad to znamená že u bitových operací je nutno ten výsledek ještě přiřazovat a u jiných ne?
rnbw píše:Namiesto n=n>>1; mozes pouzit n >>= 1;
Ano, to už jsem našel taky, ale to je jen zjednodušená verze toho zápisu s přiřazením (možná bude i rychlejší ve výsledném běhu programu). Mně jde o to zjistit, v jakých situacích stačí zapsat n>>1; místo n>>=1; nebo n=n>>1;
Beru to totiž jako obdobu zápisu x++; místo x=x+1;
No a protože u n>>1; jsem narazil, hledám vysvětlení proč to u x++; jde a u n>>1; to nejde. Zda to jde jen proto, že jsem to našel u změny obsahu řídící proměnné cyklu nebo proto že u bitových operací to nejde použít, či je jiný důvod.
Naproti tomu je n++ pouhá inkrementace (o konstantní hodnotu 1) jednoho operandu a výsledek je implcitně přiřazen tomuto operandu.
Pokud jsem to dobře pochopil, měla by být možná i konstrukce příkazu
n=n>>k, kde pomocí proměnné k by šel v cyklu měnit krok posunu. Nevím sice k čemu by se to používalo, jde mi pouze o to zda to dobře chápu.
S unárním operátorem ++ a -- je to malinko složitější, asi nejlíp je to k pochopení na příkladu (i když to přiřazení se v praxi používá málokdy):
Kód: Vybrat vše
n = 3;
x = ++n;
x = n++
To první přiřazení funguje tak, že se nejprve inkrementuje n o jedna na hodnotu čtyři a poté se do x dosadí čtyři.
Druhé funguje obráceně, nejprve se do x dosadí hodnota n (v příkladu by to byla čtyřka, protože nejprve proběhlo to první přiřazení), a poté se inkrementuje proměnná n na pětku.
Kdybys chtěl v elektronické podobě knížku se základy programování v C, tak mi napiš SZ, pošlu ti jí.
Případně na serveru mcu.cz vycházel docela pěkný seriál o C zaměření na programování µC.