Delka log.radku

Draxal Miroslav evik@vol.cz
Pondělí Prosinec 29 14:16:23 CET 2008


Ach tak. Potom vse jasne. Diky velice. MIRA

-----Original Message-----
From: hw-list-bounces@list.hw.cz [mailto:hw-list-bounces@list.hw.cz] On
Behalf Of Pavel Troller
Sent: Monday, December 29, 2008 12:58 PM
To: HW-news
Subject: Re: Delka log.radku


> No ano, potom vse co je za ; je vlastne REM, tak potom nevim proc 
> pouzivat /* */. Nemel by kompiler zarvat, ze je chyba? Tohle jsou fakt

> pro me zajimavy chyby, který nekdy objevit je horor. Často pomuze 
> nahlednuti ciziho člověka, kterej to nemá v hlave ofoceny ale cte sys.

> radek po radku.  MIRA
> 
Zdravím,
  ne, není pravda, že vše, co je za středníkem, je REM - nejsme v
BASICu, ale v C :-).
  Středník je oddělovač jednotlivých "příkazů" - tj. nehraje si na
fyzické konce řádků, ale jen na ukončení pomocí sředníku.
  Příklad:

  a = 1 ; b = 2 ; c = 3 ;
  
  představuje 3 přiřazovací příkazy na jednom řádku, provedou se
všechny.
  Mohu ale napsat:

  a
  =
  3
  ;

  a bude to úplně to samé, neboť normální řádková struktura je
kompilátorem ignorována.

  A nyní pozor: Vaše chyba způsobila zjednodušeně řečeno toto:

  a = 3 ; + 4 ; + 5 ;

  Co tohle znamená ? První přiřazovací příkaz dává smysl a proto se
provede. Ten druhý, vzniklý tím nadbytečným středníkem (a třetí
jakbysmet) nikam nepřiřazuje, je to jen ten "výkřik do tmy", který však
je v C zcela legální. To vyplývá z toho, že v C vždy mohu ignorovat
návratovou hodnotu volané funkce, a výraz je vlastně zvláštní případ
funkce. Proto to v tomto konkrétním případě působí, jako by ten středník
"zakomentoval" zbytek řádku, ale není tomu tak
- on jen rozdělil jeden složitější výraz v přiřazovacím příkazu na více
jednodušších a u všech kromě prvního chybí levá strana, takže se
"zahodí".
  Už je to jasnější ?

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




Další informace o konferenci Hw-list