GCC 3.4.5(MinGW的版本)产生一个警告:参数具有不完全的类型为以下C代码的第2行:Ç的typedef:参数具有不完整的类型
struct s;
typedef void (* func_t)(struct s _this);
struct s { func_t method; int dummy_member; };
有一种方法来解决这个(或者至少隐藏警告)而不将方法参数的签名更改为(struct s *)?至于为什么像这样会有用:我目前正在修补一个面向对象的框架; 'method'是调度表中的一个条目,并且由于该框架的特定设计,按值传递'_this'而不是通过引用(因为它通常完成)是合理的...
哪个版本的GCC?这段确切的代码(加上一个主函数)给我提供了4.3.2版本的Ubuntu中没有的GCC警告。是否还有其他涉及导致警告的内容? – Sean 2008-12-16 15:44:56
我目前坚持使用MinGW版本的gcc,它是3.4.5(?)。但很高兴知道问题可能最终会消失... – Christoph 2008-12-16 15:51:22
海湾合作委员会3.4.6抱怨下-Wall; GCC 4.3.2不支持 - Solaris 10. – 2008-12-16 16:34:53