Модератор
Скриптер
Проверенный
Участник
Пользователь
- Сообщения
- 1,304
- Реакции
- 2,303
- Помог
- 57 раз(а)
Суть проблемы:
1) Есть энум
2) Есть массив, размер которого задан тайтлом энума
3) Ячейкам массива присвоено значение по-умолчанию через = { -1, ... }
4) Компилим плагин, декомпилим, и видим что засеталась только 1-ая ячейка, остальные по нулям.
Собственно, вопрос. Так и должно быть, или это баг компилятора (т.е. стоит зарепортить на гит)?
Исходный
Декомпил
1) Есть энум
2) Есть массив, размер которого задан тайтлом энума
3) Ячейкам массива присвоено значение по-умолчанию через = { -1, ... }
4) Компилим плагин, декомпилим, и видим что засеталась только 1-ая ячейка, остальные по нулям.
Собственно, вопрос. Так и должно быть, или это баг компилятора (т.е. стоит зарепортить на гит)?
Исходный
Код:
#include <amxmodx>
enum _:CATEGORIES_ENUM {
CATEGORY__FREE,
CATEGORY__VIP,
CATEGORY__PREMIUM,
CATEGORY__GIRL,
CATEGORY__HOLIDAY
}
#define INVALID_CATEGORY_POS -1
// если заюзать тут CATEGORIES_ENUM то сетается только первая ячейка, остальные по нулям. WTF?
new g_iFirstPos[ CATEGORIES_ENUM /*sizeof(CATEGORY_NAMES)*/ ] = { INVALID_CATEGORY_POS, ... }
new g_iFirstPos2[ 5 ] = { INVALID_CATEGORY_POS, ... }
public plugin_init() {
for(new i; i < CATEGORIES_ENUM; i++) {
log_to_file("ArrayDebug.log", "g_iFirstPos[%i]: %i", i, g_iFirstPos[i])
}
for(new i; i < CATEGORIES_ENUM; i++) {
log_to_file("ArrayDebug.log", "g_iFirstPos2[%i]: %i", i, g_iFirstPos2[i])
}
}
Код:
new MaxClients;
new MapName[64];
new NULL_STRING[1];
new Float:NULL_VECTOR[3];
new g_iFirstPos[5] =
{
-1, 0, 0, 0, 0
};
new g_iFirstPos2[5] =
{
-1, ...
};
public plugin_init()
{
new i;
while (i < 5)
{
log_to_file("ArrayDebug.log", "g_iFirstPos[%i]: %i", i, g_iFirstPos[i]);
i++;
}
new i;
while (i < 5)
{
log_to_file("ArrayDebug.log", "g_iFirstPos2[%i]: %i", i, g_iFirstPos2[i]);
i++;
}
return 0;
}
Download all Attachments
-
758 байт Просмотры: 2
-
418 байт Просмотры: 0
-
572 байт Просмотры: 1