для багатьох швидких завдань, де можна було б використовувати функцію f(x,y), у звичайному C використовуються макроси. Я хотів би запитати конкретно про ці випадки, які вирішуються викликом функції (тобто макроси, що використовуються для вбудованих функцій, а не для розширення коду довільного коду).
Зазвичай функції C не є впорядкованими, оскільки вони можуть бути пов'язані з іншими файлами C. Однак статичні функції C видно лише з файлу C, в якому вони визначені. Тому їх можна позначати компіляторами. Я чув, що багато макросів слід замінити, перетворивши їх на статичні функції, оскільки це створює більш безпечний код.
Чи бувають випадки, коли це не дуже гарна ідея?
Знову ж таки: не запитувати про макроси виробництва-коду з ## однаковими конструкціями, які взагалі не можуть бути виражені функцією.
inlineфункції ing просто гарантують, що його можна визначити кілька разів у двійковій формі , компілятор може вирішити, чи дійсно він буде вбудований, можливо, заощадити місце
inline, це не про C ++.
inlineв С, принаймні з C99. Для швидкого огляду див. Вікіпедію про вбудовані функції .