C技巧:结构体参数转成不定参数

来源:互联网 发布:ubuntu deb包安装 依赖 编辑:程序博客网 时间:2024/05/16 05:31

http://coolshell.cn/articles/2801.html


#include <stdio.h> #define func(...) myfunc((struct mystru){__VA_ARGS__}) structmystru { constchar *name; intnumber; }; voidmyfunc(structmystru ms ){  printf("%s: %d\n", ms.name ?: "untitled", ms.number);} intmain(intargc, char**argv){  func("three", 3);  func("hello");  func(.name = "zero");  func(.number = argc, .name = "argc",);  func(.number = 42);  return0;}


原创粉丝点击