RE: Proč to není chyba?

Miroslav Draxal evik na volny.cz
Pondělí Duben 29 21:23:48 CEST 2024


A nebo třeba MPLABX kombinace SHIFT+ALT+F = automatické formátování
zdrojového textu, který to opraví na
vysledek = vypocet - 1;

Míra
-----Original Message-----
From: Hw-list [mailto:hw-list-bounces na list.hw.cz] On Behalf Of Michal Gregor
Sent: Sunday, April 28, 2024 7:39 AM
To: HW-News
Subject: Re: Proč to není chyba?

Je dobre si poridit lepsi edito ktery umi tyhle chyby detekovat. 
Pripadne maji hlubsi analyzu kodu. (Napriklad Visual Studio)

Podobny problem:

uint32_t vypocet.
uint8_t vysledek;

vypocet = x + y * z;
vysledek = vypocet -1;
return vysledek;

Tuto chybu hlasi taky jen nektere kompilatory. Kod je funcni ale obcas 
dela zajimave "vedlejsi efekty" na ktere se obvykle prijde az kdyz je pozde.

C a C++ je ze sve podstaty generatorem chyb :-)

Michal Gregor


Dne 27.04.2024 v 15:35 Jindroush napsal(a):
> On 27.04.2024 14:39, Martin Záruba wrote:
>> Chtěl jsem napsat (zjednofušeno, pro přehled, obě řádky byly velmi 
>> dlouhé)
>>
>> a = 5
>>   + 10;
>>
>> Výsledek by pochopitelně byl 15, jenže já omylem za 5 udělal středník, 
>> takže vzniklo
>>
>> a = 5;
>>   + 10;
>>
>> A kompilátor nehlásí žádnou chybu a výsledek je 5, druhý řádek se 
>> ztratil. Proč ale neřve, že to je syntaktická chyba, vždyť nemá s tou 
>> 10 co udělat?
>>
> Chyba neni to, ze kompilator zkompiluje validni vyraz. Chyba je si 
> nezapnout vsechna varovani, tj. vetsinou -Wall, nebo podobny prepinac ;)
> 
> Nektere kompilatory podporuji i 'kazdy warning je chyba', ze kompilaci 
> nepusti dal, nez odstranite vsechna varovani. To uz ale zalezi na vkusu 
> kazdeho, zda radsi riskuje skryte chyby, ktere se nemusi nikdy projevit, 
> nebo ne.
> 

-- 
Tento e-mail byl antivirovým softwarem AVG zkontrolován na viry.
www.avg.com
_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list



Další informace o konferenci Hw-list