
paulo1205
(usa Ubuntu)
Enviado em 28/10/2019 - 02:28h
Eu comecei a ensaiar uma resposta, mas percebi que estava discorrendo sobre C++ como resposta a uma pergunta sobre C. Como eu lembrava que uma das diferenças entre C e C++ era justamente o uso de
inline, fui tentar ler sobre o uso desse recurso em C, e depois de várias horas de leitura, em vários
sites diferentes, cheguei à triste conclusão de que entendi quase nada, e o que eu
acho que
quase cheguei a entender me assustou (e.g. se você tem uma função declarada como
inline e que não seja também declarada como
static num determinado arquivo,
tem de ter uma
outra declaração e definição externa da mesma função em outra parte do programa, mas, ao produzir o executável, fica sem saber qual das duas será chamada).
Só por essas coisas esquisitas, eu já não usaria
inline num programa em C.
Curiosamente, o uso de
inline em C++ me parece muito mais sadio. Sem conflitos nem comportamento indefinido, porém com o custo de complicar o processo de compilação e de
linking.
... “Principium sapientiae timor Domini, et scientia sanctorum prudentia.” (Proverbia 9:10)