LINUX.ORG.RU

Почему string.h функции возвращают указатель?


0

0

В чем глубокий смысл возврата указателей из функций типа strcpy на строку? Почему создатели стандартной библиотеки выбрали такой путь, вместо простого возврата кода ошибки? Ведь указатель все равно "возвращается" как первый параметр функции? Я прочитал мнение на английском форуме, что самый цимес string именно в этом, но объяснить почему товарищ не захотел или не смог.

Я встретил такой подход еще в нескольких библиотеках. В то же время, многие другие уважаемые библиотеки (большинство!) используют возврат целых как кода ошибки.

Что я не понимаю в С? Объясните плиз!

★★★

1. А какой код ошибки может быть в strcpy?
2. Возврат строки дает возможность запихать вызов strcpy в вызов какой-нибудь еще функции. Например, strcat

svu ★★★★★
()
Ответ на: комментарий от svu

> 1. А какой код ошибки может быть в strcpy?

Хороший ответ, однако :). Тот самый случай, когда ошибка быть может (переполнение буфера), а кода ошибки - нет!

Пожалуй, вопрос я снимаю. Я не нашел функций в string.h, где нужен код ошибки. Сам вопрос возник от того, что товарищ с форума очень многозначительно написал, что тот кто возвращает целые - еще не понял С и привел в пример string.h как правильный подход. Никаких доводов иных он не предоставил.

atoku ★★★
() автор топика
Ответ на: комментарий от anonymous

А что на голых сях можно придумать лучше?

Deleted
()

> В чем глубокий смысл возврата указателей из функций типа strcpy на строку?

Для того чтобы функцию можно было использовать в выражениях. svu уже написал об этом, и пример привели.

shumer
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.