Tips/関数多重定義inC

C言語による関数多重定義

ISO C11 _Generic によるargument type dispatch

  • コンパイル時に引数型で、呼び出し関数を dispatchさせる

http://marycore.jp/prog/c-lang/function-overloading-in-c/#_Generic

ISO C11 __VA_ARGS__ マクロによるargument number dispatch

  • マクロ引数照合を使って、引数の数に応じて呼び出し関数を dispatchさせる

https://stackoverflow.com/questions/11761703/overloading-macro-on-number-of-arguments

GNU/clang拡張属性 __attribute__((overloadable)) による多重定義

  • 関数プロトタイプによる多重定義(C++に近い)

http://marycore.jp/prog/c-lang/function-overloading-in-c/#__attribute__%28%28overloadable%29%29

Last modified:2018/12/14 22:51:49
Keyword(s):
References:[Tips]