首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在array - PAWN脚本中插入字符串

在array - PAWN脚本中插入字符串
EN

Stack Overflow用户
提问于 2013-06-15 03:39:26
回答 1查看 1.1K关注 0票数 1

我试图通过将一个变量插入到多个数组中来减少文件行。因此,我希望有一个字符串或数组变量,如下所示:

代码语言:javascript
复制
new combomeals[] = { 
    3025101, 3025100, 3003000, 3025002, 3030101, 3025001, 3025000, 3021602, 3031402, 3020100, 
    3031401, 3031400, 3031302, 3020242, 3031301, 3031300, 3021702, 3021701, 3021700, 3020602, 
    3021601, 3030100, 3021600, 3021502, 3021501, 3020201, 3021500, 3020150, 3020502, 3020501, 
    3020500, 3001802, 3001801, 3001800, 3001702, 3001701, 3001700, 3011602, 3011601, 3011600, 
    3011502, 3020202, 3011501, 3011500, 3011232, 3011231, 3011202, 3011201, 3010602, 3010601, 
    3010600, 3010902, 3010901, 3010900, 3011102, 3011101, 3011100, 3011002, 3011001, 3011000, 
}

它实际上比这要长得多,但我为了解释而缩短了它...我想把combomeals[]放到其他数组中。下面的方法不起作用,但是你会明白的:

代码语言:javascript
复制
new first_array[] = { 
    1, 
    2, 
    3,
    combomeals[], 
}

new second_array[] = { 
    4, 
    5, 
    6,
    combomeals[], 
}

new third_array[] = { 
    7, 
    8, 
    9,
    combomeals[], 
}

最终目标是将第一个数组放入其他几个数组中。请让我知道,如果这是有意义的,如果你能够帮助!

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-15 04:27:40

您不能以您正在尝试的方式扩展数组。假设new已被别名为整数类型,那么如果列表中的所有元素都是相同类型,则编译器将只接受first_array的初始化器列表。但是列表的最后一个元素是一个语法错误,因为combomeals是一个数组,而combomeals[]不属于初始化器列表。

second_arraythird_array也是如此。

您可以通过将combomeals中的数字放入宏中来完成类似的操作:

代码语言:javascript
复制
#define COMBOS \
3025101, 3025100, 3003000, 3025002, 3030101, 3025001, 3025000, 3021602, 3031402, 3020100, \
3031401, 3031400, 3031302, 3020242, 3031301, 3031300, 3021702, 3021701, 3021700, 3020602, \
3021601, 3030100, 3021600, 3021502, 3021501, 3020201, 3021500, 3020150, 3020502, 3020501, \
3020500, 3001802, 3001801, 3001800, 3001702, 3001701, 3001700, 3011602, 3011601, 3011600, \
3011502, 3020202, 3011501, 3011500, 3011232, 3011231, 3011202, 3011201, 3010602, 3010601, \
3010600, 3010902, 3010901, 3010900, 3011102, 3011101, 3011100, 3011002, 3011001, 3011000,

new combomeals[] = { COMBOS };

new first_array[] = { 1, 2, 3, COMBOS };
new second_array[] = { 4, 5, 6, COMBOS };
new third_array[] = { 7, 8, 9, COMBOS };

如果您的编译器在处理很长的源代码行时遇到问题,您可能需要拆分COMBOS。它不太方便,但c89编译器只需要支持509字节长的源文件。

代码语言:javascript
复制
#define COMBOS1 \
3025101, 3025100, 3003000, 3025002, 3030101, 3025001, 3025000, 3021602, 3031402, 3020100, \
3031401, 3031400, 3031302, 3020242, 3031301, 3031300, 3021702, 3021701, 3021700, 3020602, \
3021601, 3030100, 3021600, 3021502, 3021501, 3020201, 3021500, 3020150, 3020502, 3020501
#define COMBOS2 \
3020500, 3001802, 3001801, 3001800, 3001702, 3001701, 3001700, 3011602, 3011601, 3011600, \
3011502, 3020202, 3011501, 3011500, 3011232, 3011231, 3011202, 3011201, 3010602, 3010601, \
3010600, 3010902, 3010901, 3010900, 3011102, 3011101, 3011100, 3011002, 3011001, 3011000

new combomeals[] = {
    COMBOS1,
    COMBOS2,
};

new first_array[] = {
    1, 2, 3,
    COMBOS1,
    COMBOS2,
};

/* ...etc... */

如果您的C编译器不符合要求,您可能需要进一步分解这些行。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17116070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档