Quais são os recursos do padrão C atual, que originalmente não faziam parte do C, mas foram inventados no / para C ++ e por causa de seus benefícios, foram posteriormente adotados no C?
Um exemplo proeminente é o comentário de linha única //
, originalmente originário de C ++ e posteriormente adotado por C.
Você conhece mais recursos do C Standard, que explícita ou implicitamente vieram do desenvolvimento do C ++?
Info: Claro, eu sei que C ++ é derivado de C, mas eu estava pensando sobre quais recursos foram adotados a partir do desenvolvimento de seu derivado, C ++.
c++
c
language-lawyer
standards
language-features
RobertS suporta Monica Cellio
fonte
fonte
_Bool
tipo de C foi inspirado em C ++,bool
acredito.main()
) é (acho) também algo que o C ++ foi pioneiro e o C adotado posteriormente.Respostas:
Não posso confirmar que eles foram definitivamente influenciados pelo C ++ diretamente 1 , mas aqui está uma lista de recursos no C ++ padrão que foram adicionados no C99:
C11:
1 Por exemplo, BCPL, o predecessor de B, que por sua vez é o predecessor de C, já tinha a mesma sintaxe para comentários de linha única. Alguns deles podem ter sido suportados como extensões de idioma em alguma implementação C antes de serem incorporados ao C ++ padrão. Nesses casos, C padrão e C ++ padrão podem ter sido influenciados pela mesma fonte, em vez de influenciar um ao outro.
fonte
union named { struct { int i;}; };
Sem nome:union named { struct { int i;} unnamed; };
. A estrutura sem nome é não tem nome, mas tem uma variável nomeada. Estrutura anônima não tem nome e não possui variável nomeada.Os atributos foram adicionados no C ++ 11 e serão adicionados na próxima revisão do padrão C C2x . A proposta (e aqui ) para esse recurso faz referência específica ao C ++.
Exemplo:
Neste exemplo, " atributo attr1 aplica-se ao tipo de variável i, attr2 e attr3 se aplicam à própria variável, attr4 se aplica à instrução if e fornecedor :: attr5 se aplica à instrução de retorno. " Fonte
fonte