ALTE DOCUMENTE
|
|||||
Вы, воз&# 21221n131v 1084;ожно, обратили внимание в предыдущих «С»-программах на довольно непринужденное отношение к копированию указателей. В общем это верно, что на большинстве машин указатель можно присвоить целому и передать его обратно, не изменив его; при этом не происходит никакого масштабирования или преобразования и ни один бит не теряется. К сожалению, это ведет к вольному обращению с функциями, воз&# 21221n131v 1074;ращающими указатели, которые затем просто передаются другим функциям, - необходимые описания указателей часто опускаются.
strsave(s) s alloc, и воз&# 21221n131v 1074;ращает указатель на это место. Правильно она должна быть записана так:
char strsave char s save string s somewhere
*strsave(s) /* save string s somewhere */
Эта программа будет правильно работать на многих машинах, потому что по умолчанию функции и аргументы имеют тип int реализации и архитектуры машины и может привести к неправильным результатам на конкретном используемом вами компиляторе. Разумнее всюду использовать полные описания. Среда программирования Visual C lint
|