这些之间有什么区别:
struct Class * CreateClass();
和:
Class * CreateClass();
这只是一个工厂功能声明.你可以看到一个开头有一个结构而一个没有结构.我已经尝试了两种方式,似乎没有什么区别.
我应该使用哪个?
解决方法
它来自C;在C中没有区别*.
*好的,我撒谎,对不起. :P如果你真的想要,你可以混淆自己,如果你使用一个名字相同但底层类型不同的typedef,你可能会有所不同,但通常它们并没有什么不同.这是假设已经声明了Class,但是……如果Class未声明,则第二个甚至不会编译.
也就是说,惯例是:
typedef struct Class { ... } Class;
这样它在C和C中的编译方式相同.