Para muitas tarefas rápidas em que se poderia empregar uma função f(x,y)
, em C simples, são usadas macros. Gostaria de perguntar especificamente sobre esses casos, que podem ser solucionados por uma chamada de função (ou seja, macros usadas para embutir funções, não para expansão de código arbitrário).
Normalmente, as funções C não estão embutidas, pois podem estar vinculadas a outros arquivos C. No entanto, as funções C estáticas são visíveis apenas no arquivo C em que estão definidas. Portanto, elas podem ser incorporadas pelos compiladores. Ouvi dizer que muitas macros devem ser substituídas, transformando-as em funções estáticas, porque isso produz código mais seguro.
Existem casos em que essa não é uma boa ideia?
Novamente: Não pergunte sobre macros de produção de código com construções iguais a ## que não podem ser expressas como uma função.
inline
ing funções apenas garante que pode ser definido várias vezes no binário, o compilador pode decidir se ele vai realmente em linha-lo para talvez economizar espaço
inline
, não se trata de C ++.
inline
em C, pelo menos desde C99. Para uma visão geral rápida, consulte Wikipedia sobre funções embutidas .