我有一个 iPhone 应用程序,它曾经使用包含数千个小对象的数组作为其数据源。现在,我试图让它使用 C++ Structs,以提高性能。我已经编写了结构,并将其放在“Particle.h”中:
typedef struct{
double changeX;
double changeY;
double x;
double y;
}ParticleStruct;
然后,我导入“Particle.h”,并尝试定义数组:
#import "Particle.h"
@implementation ParticleDisplay
struct ParticleStruct particles[];
///Size will be determined later, this declaration is to make
////the declaration visible to the entire class...
然而,在这一行中,我收到错误:“数组类型具有不完整的元素类型”。 据我所知,其他一切都可以正常编译,而且我确信“Particle.h”已在声明之前导入。 有什么想法吗?
最佳答案
因为你已经有 typedef
在 Particle.h 中编辑它,删除 struct
这个词来自数组声明行(错误所在的行)。
但是,
在 C++ 中,您不需要
typedef
就写struct Particle { /* members */ };
为什么要声明一个没有长度的数组?考虑使用
std::vector
( tutorial ) 这是一个动态 可调整大小的数组(您永远不必为长度而烦恼)。很简单:std::vector< Particle > particles;
关于数组中的 C++ 结构,帮助!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3887007/