我定义了一个包含18个属性的结构。代码编译得很好,直到我定义了一个将整数映射到此结构的映射。在这种情况下,我在编译期间收到以下错误消息
InternalCompilerError: Stack too deep, try removing local variables.
我知道在定义函数时最多只能有16个本地(包括参数和返回值)。但是在宣布映射时我从未遇到过这个问题。
以下是一些示例代码
pragma solidity ^0.4.18;
struct MyBigStruct {
address owner;
string name;
.... //16 additional attributes
}
mapping(unit => MyBigStruct) myElements; //this causes the compile error