#include <stdio.h> // 引数の数が違う、同じ関数に置き換える #define DEBUG_PRINT(...) printf(__VA_ARGS__) #define DEBUG_PRINT2(fmt, ...) printf(fmt, __VA_ARGS__) // 引数の数が違う、別の関数に置き換える #define GET_MACRO(_1,_2,_3,NAME,...) NAME #define SUM(...) GET_MACRO(__VA_ARGS__, sum3, sum2)(__VA_ARGS__) int sum2(int a,int b) { return a+b; } int sum3(int a,int b,int c) { return a+b+c; } int main(void) { DEBUG_PRINT("num=%d\n",2); D