Предупреждение tag mismatch в динамическом массиве.

Сообщения
1,661
Реакции
1,486
Помог
24 раз(а)
Ошибка
(12) : warning 213: tag mismatch
Компилятор
Локальный
Amx Mod X
1.9.0
Исходный код
#pragma semicolon 1

#include <amxmodx>
#include <reapi>

public plugin_init()
{
new Array:g_aTeams[TeamName];

g_aTeams[TEAM_UNASSIGNED] = ArrayCreate(1, 0);

ArrayPushCell(g_aTeams[TEAM_UNASSIGNED], 0);
}
Где баг?)
 

Ayk

Сообщения
763
Реакции
476
Помог
19 раз(а)
Пару тестов показали, что компилятору не нравится именно такой вариант:
ArrayPushCell(g_aTeams[TEAM_UNASSIGNED], 0);
Сначала подумал что это из-за того, что TeamName это тэг. Но и другой enum без тэга вызывает варн.
Такой вариант очевидно работает:
ArrayPushCell(g_aTeams[0], 0);
Ну и фикс варна:
ArrayPushCell(Array:g_aTeams[TEAM_UNASSIGNED], 0);
 
Сообщения
327
Реакции
289
Помог
9 раз(а)
fl0wer, ячейка с тегом CsTeams: или как то так
 
Сообщения
1,661
Реакции
1,486
Помог
24 раз(а)
zhorzh78, так ячейка же, а не массив.
 

d3m37r4

111111
Сообщения
1,420
Реакции
1,162
Помог
10 раз(а)
В чем смысл указаывать арий, если массив и так арий?
Чтобы при компиляции у нас явно был задан и подставлен нужный тип данных, поэтому и указывается и чтобы другой тип данных не прилетал.
Код:
public asd123()
{
  new Array:g_aTeams[TeamName:TEAM_SPECTATOR];

  g_aTeams[TEAM_UNASSIGNED] = ArrayCreate(1, 0);

  ArrayPushCell(Array:g_aTeams[TeamName:TEAM_UNASSIGNED],  0);
}

public asd123123()
{
  new Array:g_aTeams[TEAM_SPECTATOR];

  g_aTeams[TEAM_UNASSIGNED] = ArrayCreate(1, 0);

  ArrayPushCell(Array:g_aTeams[TEAM_UNASSIGNED],  0);
}

public asd1235()
{
  new Array:g_aTeams[TeamName];

  g_aTeams[TEAM_UNASSIGNED] = ArrayCreate(1, 0);

  ArrayPushCell(Array:g_aTeams[TeamName:TEAM_UNASSIGNED],  0);
}
public asd12357()
{
  new Array:g_aTeams[TeamName];

  g_aTeams[TEAM_UNASSIGNED] = ArrayCreate(1, 0);

  ArrayPushCell(Array:g_aTeams[TEAM_UNASSIGNED],  0);
}
public asd1234()
{
  new Array:g_aTeams[3];

  g_aTeams[_:TEAM_UNASSIGNED] = ArrayCreate(1, 0);

  ArrayPushCell(Array:g_aTeams[_:TEAM_UNASSIGNED],  0);
}
Ayk, верно указал. Разрабам хай.
 
Сообщения
1,661
Реакции
1,486
Помог
24 раз(а)
В том, чтобы избавиться от варна, не?
Выглядит как костыль, по причине того что весь массив это арий на 4 ячейки.

Чтобы при компиляции у нас явно был задан и подставлен нужный тип данных
Он и так явно указан. Зачем во всех вызовах указывать?
26 Апр 2020
Алексеич, не помогло.
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу