Program
Moderátori: psichac, Moderátori
Program
17) Napište příklad osmibitové proměnné s přiřazenou hodnotou a bez přiřazené hodnoty.
18) Napište definici proměnné s názvem operand, která je v rozsahu 0 až 255 a přiřaďte do ní hodnotu 5, ale zapsanou v hexadecimální soustavě.
19) Napište příklad definice/deklarace/volání funkce s parametry a bez parametrů.
Víte prosím někdo?
18) Napište definici proměnné s názvem operand, která je v rozsahu 0 až 255 a přiřaďte do ní hodnotu 5, ale zapsanou v hexadecimální soustavě.
19) Napište příklad definice/deklarace/volání funkce s parametry a bez parametrů.
Víte prosím někdo?
0
Re: Program
Škola ?
Programovací jazyk ?
Pokud se jedná o jazyk C ,tak pro otázku 17) má být hodnota signed nebo unsigned ?
Nějaká sranda ,co ?
Programovací jazyk ?
Pokud se jedná o jazyk C ,tak pro otázku 17) má být hodnota signed nebo unsigned ?
Nějaká sranda ,co ?
0
Re: Program
Já vůbec nevím, dal nám to učitel který nás má na mikropočítače a je to z okruhu Vývojové prostředky jednočipových mikropočítačů
0
-
- Ultimate člen
- Príspevky: 2328
- Dátum registrácie: 25 Jún 2013, 21:06
- Bydlisko: Krajné
- Vek: 57
- Kontaktovať používateľa:
Re: Program
odpoveď 18 je úplne mimo. Ba priam by som povedal že je to hrozná zákernosť. Podľa toho čo si myslím ako pracuje C prekladač tak od tohoto riadku v programe sa začnú diať veci ktoré začiatočník ťažko pochopí.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.
Re: Program
To možná,ale XC8 to sežere bez problému.Tazatel určitě prošel nějakou teorií,tak by si to měl upravit podle toho co od něj učitel chce.
Ono by šlo napsat #define operand 0x05; nebo unsignet char define = 0x05;
Ono by šlo napsat #define operand 0x05; nebo unsignet char define = 0x05;
0
-
- Ultimate člen
- Príspevky: 2328
- Dátum registrácie: 25 Jún 2013, 21:06
- Bydlisko: Krajné
- Vek: 57
- Kontaktovať používateľa:
Re: Program
Nepoznám XC8. Zozrať to zožere asi každý kompilátor, ale to neznamená že to robí to čo si myslíš. Je to zákernosť a velká. Nikdy ma nenapadlo takéto niečo tak ani neviem čo by s tým urobilo napríklad gcc. Ono sa to prejaví až niekde o x riadkov ďalej. Nie na tom riadku define. Samozrejme iba za určitých okolností. Doporučujem si prečítať čo robí direktíva #define.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.
-
- Ultimate člen
- Príspevky: 2561
- Dátum registrácie: 20 Júl 2010, 00:00
- Bydlisko: okolie KE
- Vek: 27
Re: Program
Dobrý večer,
Typujem, že kde napíše unsigned, zjaví sa tam char operand = 0x05; No súhlasím s tým, že narobí to v kóde také zmeny, že začiatočník z toho bude úplne mimo. Takže p. senderovi tiež odporúčam naštudovať si direktívy preprocesora.
Typujem, že kde napíše unsigned, zjaví sa tam char operand = 0x05; No súhlasím s tým, že narobí to v kóde také zmeny, že začiatočník z toho bude úplne mimo. Takže p. senderovi tiež odporúčam naštudovať si direktívy preprocesora.
0
Re: Program
Po odzkoušení zjišťuji,že se to v každém překladači chová jinak. V XC8 to funguje správně a v Hi-Tech to nelze použít (překladač to nesežere).Další jsem zatím nezkoušel.
V případě #define to překladač chápe jako konstantu.
V případě 0x05 v unsigned i signed se jedná stále o hodnotu dec 5 (00000101)
V případě #define to překladač chápe jako konstantu.
V případě 0x05 v unsigned i signed se jedná stále o hodnotu dec 5 (00000101)
0
-
- Ultimate člen
- Príspevky: 2328
- Dátum registrácie: 25 Jún 2013, 21:06
- Bydlisko: Krajné
- Vek: 57
- Kontaktovať používateľa:
Re: Program
Ja by som očakával presne to čo napísal maskrtnik01. Čo znamená že v XC8 to funguje správne? Čo to tam teda urobilo?
V otázke v bode 18 išlo o to aby maturant vedel ilustrovať rozdiel medzi definíciou a deklaráciou. S direktívou #define to nemá nič spoločné,
Niečo na rozšírenie obzorov.
https://www.smnd.sk/anino/programming/c ... /kap04.htm
-- Spojený príspevok 02 Apr 2017, 18:36 --
Až teraz som si všimol že zákernosť bola vymazaná. Takže ďalšia diskusia zrejme stráca zmysel.
A čo je to to? Obávam sa že nechápeš ako pracuje direktíva #define, čo je to preprocesor a textové makroSender napísal: V případě #define to překladač chápe jako konstantu.
V otázke v bode 18 išlo o to aby maturant vedel ilustrovať rozdiel medzi definíciou a deklaráciou. S direktívou #define to nemá nič spoločné,
Niečo na rozšírenie obzorov.
https://www.smnd.sk/anino/programming/c ... /kap04.htm
-- Spojený príspevok 02 Apr 2017, 18:36 --
Až teraz som si všimol že zákernosť bola vymazaná. Takže ďalšia diskusia zrejme stráca zmysel.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.
Re: Program
tak to skus popisat, aby z toho mal nieco aj taky, ktory povodny text nevidel a zacal citat vlakno az po tvojom prispevku...
0
-
- Ultimate člen
- Príspevky: 2561
- Dátum registrácie: 20 Júl 2010, 00:00
- Bydlisko: okolie KE
- Vek: 27
Re: Program
Je to jednoduché. Pred samotnou kompiláciou .c súboru sa spúšťa tzv. preprocesor. Kde nájde direktívu DEFINE, nahradí niečo niečím (ako v textovom editore funkcia nájsť a nahradiť). Mimochodom, kde nájde direktívu INCLUDE, tam pridá obsah uvedeného súboru.
Čiže takto sa ešte dá:
#define MAX_STR_LEN 50
Kde nájde preprocesor MAX_STR_LEN, nahradí to 50kou. Ale toto už zblbne:
#define unsigned char tmp = 0;
Kde nájde preprocesor unsigned, pravdepodobne tam zapíše char tmp = 0; . A toto je už dosť zákerná skrytá chyba.
Takto sa ešte dá:
#define NUM_CHARS ('Z' - 'A')
Čiže , preprocesorom si môžeme skrátiť zápis niektorých zložitejších konštánt, ale nepoužívať na deklaráciu premenných. .
Čiže takto sa ešte dá:
#define MAX_STR_LEN 50
Kde nájde preprocesor MAX_STR_LEN, nahradí to 50kou. Ale toto už zblbne:
#define unsigned char tmp = 0;
Kde nájde preprocesor unsigned, pravdepodobne tam zapíše char tmp = 0; . A toto je už dosť zákerná skrytá chyba.
Takto sa ešte dá:
#define NUM_CHARS ('Z' - 'A')
Čiže , preprocesorom si môžeme skrátiť zápis niektorých zložitejších konštánt, ale nepoužívať na deklaráciu premenných. .
0
Re: Program
peterple>znamená to že překladač XC8 chápe ten zápis jako konstantu s hodnotou 0x05. Schválně jsem zkoumal manuál od XC8 a dočetl jsem se ,že #define má celou řadu možností použití a způsobů zápidu.Ten kód (xdefine unsigned char neco = 0x05 ) není pro xc8 vůbec divočina,přesto že to dle standardu (jazyka c) není jak má.
Nevím nic se se tazatel učí,ale snažím se ho nějak nasměrovat.Cečkař nejsem.Rád se něco přiučím.Z mých dosavadních zkušeností s C,mám názor že je třeba se zaměřit na konkrétní kompilátor jazyka (standardy ne vždy fungují a preprocesor je u každého odlišný).To platí o pro jiný programovací jazyky.
Nevím nic se se tazatel učí,ale snažím se ho nějak nasměrovat.Cečkař nejsem.Rád se něco přiučím.Z mých dosavadních zkušeností s C,mám názor že je třeba se zaměřit na konkrétní kompilátor jazyka (standardy ne vždy fungují a preprocesor je u každého odlišný).To platí o pro jiný programovací jazyky.
0
-
- Podobné témy
- Odpovedí
- Zobrazení
- Posledný príspevok