GCC 3.4.5(MinGW版本)会在以下C代码的第2行产生警告:参数具有不完整类型:
struct s;
typedef void (* func_t)(struct s _this);
struct s { func_t method; int dummy_member; };
有没有一种方法可以修复这个问题(或者至少隐藏警告),而不需要更改方法参数的签名为(struct s *)?
注意:
为什么这样的东西会有用:我目前正在尝试使用面向对象的框架;'method'是一个调度表中的条目,由于框架的特定设计,通过值传递'_this'而不是通过引用传递是有意义的(通常是通过引用传递)...