Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
void GetNameElk(elk, stOut)
ELK elk;
unsigned char *stOut;
{
unsigned char *stElk = &rgchElkNames[mpelkichName[elk]];
unsigned cch = stElk[0] + 1;
while (--cch >= 0)
*stOut++ = *stElk++;
}
cch не уменьшается с каждой итерацией? Ведь там указано --cch >= 0, а не просто cch >= 0.Assert((1 > 0) == 1);
error_message_array[some_value > some_limit].By definition, the numeric value of a relational or logical expression is 1 if the relation is true, and 0 if the relation is false.Так что если считать K&R стандартом, то по идее такого быть не должно. Но опять же, стандартом она была лишь де-факто, так что вполне вероятно, что этот ассерт — проверка на адекватность компилятора.
P.S. Тем временем, пользователи на HackerNews уже делают первые открытия в исходном коде Word, проверяя годами ходившие предания:
grep -ri fuck .
* Function will add the szSetupPath to the users path statement in the
* autoexec.bat file. The szSetupPath will be the first location in the
* path statement. The path can be in about a million fucked up forms
* depending on the level of stupidity in the user
/* Special handling for ParaNormal [...]
/* just in case… */
/* windows bug work around */
if ((fCloseDoc = (doc = DocFromSt(stFileName)) ==
docNil) && (doc = DocOpenStDof(stFileName,
dofNoWindow, NULL)) == docNil)
for (ifoo = 1; ifoo < ifooMac; ifoo++);
{
if (*pvoteFoo == 0)
goto LRet;
if (*pvoteFoo > voteMaj)
{
fooMaj = *pfoo;
voteMaj = *pvoteFoo;
}
*pfoo++;
*pvoteFoo++;
}
short_addr $LSEEK ; 66 42short_addr $GET_DATE ; 42 2AGET_DATE EQU 42 ; 42 2ALSEEK EQU 66 ; 66 42SUBTTL DATE AND TIME - SYSTEM CALLS 42,43,44,45; S/G DATE,TIMEprocedure $GET_DATE,NEAR ;System call 42GETDATE: ;Function call 42[yse@yse msdos]$ cat `find ./ -iname "*.c" -or -iname "*.asm"` | wc -l
65266
[yse@yse Word 1.1a CHM Distribution]$ cat `find ./ -iname "*.c" -or -iname "*.asm"` | wc -l
423318
Microsoft открывает исходный код первых версий MS-DOS и Word