|
Тема |
Re: Otgovora [re: Иcтopиka] |
|
Автор | GG (Нерегистриран) | |
Публикувано | 02.08.01 12:59 |
|
|
1. На x86 платформа и двата записа се компилират идентично.
Една от адресациите на инстукцията "cmp" e да сравни съдържанието на клетка с число (байт) т.е.:
cmp [0xYYYYYYYY], ZZ
и в двата случая / i == 2; 2 == i / резултата от компилатора е един и същ, т.е.:
cmp [0xYYYYYYYY], 0x02
2. Това, че на компилатора му е известен типа на "2" е безмислено. Пример
char i1;
short i2;
int i3;
float i4;
2 == i1;
2 == i2;
2 == i3;
2 == i4;
Вижда се, че типа се определя от iX. Така че при всички случай комилатора ще се "консултира" за типа на i.
За warning-инте съм абсолютно съгласен. Те са за това.
Заис от вида 2 == i е изчанчен стил на програмиране, подобно на:
b = bool(i = 2) ? !!0 : !!i
което е същото като:
b = !(i = 2)
Айде със здраве!
|
| |
|
|
|