- 678 名前:はちみつ餃子 mailto:sage [2022/06/13(月) 11:30:06.51 ID:zy+KupId0.net]
- マクロでコンパウンドリテラルを作ってから (その個数と共に) 渡すという方法が取れると思う。
受け取る関数の型は >>645 の通りではできないけど。 #include <stdio.h> #define foo(...) bar(sizeof((char[]){0, __VA_ARGS__}), (char[]){0, __VA_ARGS__}) void bar(int n, char* args) { if(n==1) { printf("no argment.\n"); } else { printf("argment is %c.\n", args[1]); } } int main(void) { foo('a'); foo(); }
|

|