paulo1205
(usa Ubuntu)
Enviado em 15/05/2018 - 00:13h
Steve escreveu:
Ainda aprendendo C e claro olhando códigos prontos na Internet entre outros sites...
Me deparei com essa função strrev()
O caso é que os sites, cursos pela internet, falam dela como algo normal, presente na biblioteca string.h da Linguagem C.
O problema é que grande parte do material sobre C que existe em Português na Internet é derivado das mesmas fontes obsoletas, voltadas principalmente para MS-DOS e para Turbo C, ou usa como referência uma das edições do péssimo, do ponto de vista técnico,
C Completo e Total (tradução do
C: The Complete Reference), escrito pelo Herbert Schildt.
Eu havia entendido que a biblioteca string.h pertence a linguagem C
Então me deparo com alguns sites informando que essa função NÃO EXISTE no Linux no compilador gcc. É essa parte que EU não consegui entender o porque?
O cabeçalho <string.h> certamente existe no Linux, e contém todas as funções padronizadas da biblioteca do C. A questão é que muitos sistemas, padrões secundários e implementações específicas de compiladores estendem a biblioteca padrão do C, inclusive colocando conteúdo a mais nos cabeçalhos padronizados.
O mal é quando as pessoas que escrevem material didático, por falta de conhecimento, não sabem separar o que faz parte do padrão daquilo que é a extensão particular de uma determinada plataforma alvo.
NOTA: Não é ilegal estender a biblioteca padrão e os cabeçalhos padronizados. O que seria impróprio é retirar conteúdo padronizado ou oferecer funcionalidade diferente para tal conteúdo e, ainda assim, alegar compatibilidade com o padrão.
Isso me deixou confuso porque como saberei o que faz parte de C ou o que não faz parte! E o porque essa função foi removida do Linux apenas! Alguém sabe explicar?
Como se dizia antigamente: RTFM (sem ofensa — era assim que o pessoal falava mesmo!).
E essa função não foi removida só do Linux. Ela apenas fez parte de alguma implementação comum nos PCs com DOS, e acabou permanecendo, por compatibilidade, em muitas implementações voltadas para essa plataforma, bem como suas sucessoras.