do wielu szybkich zadań, w których można zastosować funkcję f(x,y), w zwykłym C używane są makra. Chciałbym zapytać konkretnie o te przypadki, które można rozwiązać za pomocą wywołania funkcji (tj. Makra używane do wstawiania funkcji, a nie do rozszerzania kodu dowolnego kodu).
Zazwyczaj funkcje C nie są wstawiane, ponieważ mogą być połączone z innymi plikami C. Jednak statyczne funkcje C są widoczne tylko z pliku C, w którym są zdefiniowane. Dlatego mogą być wstawiane przez kompilatory. Słyszałem, że wiele makr należy zastąpić, zamieniając je w funkcje statyczne, ponieważ zapewnia to bezpieczniejszy kod.
Czy istnieją przypadki, w których nie jest to dobry pomysł?
Znowu: Nie pytam o makra do produkcji kodu z podobnymi konstrukcjami ##, których w ogóle nie można wyrazić jako funkcję.
inlinefunkcje ing zapewniają, że można go zdefiniować wiele razy w pliku binarnym, kompilator może zdecydować, czy faktycznie wstawi to, by zaoszczędzić miejsce
inline, nie chodzi o C ++.
inlinew C, przynajmniej od C99. Szybki przegląd znajduje się w Wikipedii na temat funkcji wbudowanych .