Сообщение от
Betta
Ведь в первом примере мне нужно загружать данные о территориях в эти переменные
Эмм, с чего ты так решил? Принцип работы с массивом в первом варианте совершенно такой же
PHP код:
enum coord_p
{
Float:area_x,
Float:area_y,
Float:area_z,
Float:area_a
}
new area_coord[5][coord_p] =
{
{22.33, 22.33, 22.33, 22.33},
{22.33, 22.33, 22.33, 22.33},
{22.33, 22.33, 22.33, 22.33},
{22.33, 22.33, 22.33, 22.33},
{22.33, 22.33, 22.33, 22.33}
};
enum не делает ничего сверхъестественное и не меняет логику работы массива. В нём просто создаются именные константы, которые являются теми же самыми ячейками, что и во втором случае. Код из первого случая равносилен этому:
PHP код:
const
area_x = 0,
area_y = 1,
area_z = 2,
area_a = 3,
area_coord_sizeof = 4;// Константы можно назвать как угодно. Главное - их значение, которое равносильно номерам ячеек
new Float:area_coord[5][area_coord_sizeof] =
{
{22.33, 22.33, 22.33, 22.33},
{22.33, 22.33, 22.33, 22.33},
{22.33, 22.33, 22.33, 22.33},
{22.33, 22.33, 22.33, 22.33},
{22.33, 22.33, 22.33, 22.33}
};
printf("%f", area_coord[0][area_y]);//Обращение
И с макросом:
PHP код:
#define area_x 0
#define area_y 1
#define area_z 2
#define area_a 3
#define area_coord_sizeof 4
new Float:area_coord[5][area_coord_sizeof] =
{
{22.33, 22.33, 22.33, 22.33},
{22.33, 22.33, 22.33, 22.33},
{22.33, 22.33, 22.33, 22.33},
{22.33, 22.33, 22.33, 22.33},
{22.33, 22.33, 22.33, 22.33}
};
printf("%f", area_coord[0][area_y]);//Обращение
То бишь, как я и говорил, на выходе это остаётся всё тот же двумерный массив и не более. А уже обёртка в виде enum, констант или макросов никак на его работоспособность не влияет. Она нужна лишь для тебя, дабы тебе было проще с этим кодом работать через неделю/месяц/год (не приходилось выискивать сам массив, дабы понять что же в ячейках хранится).
Ну и enum упрощает работу в случае, если ты решишь в один массив записать данные разных типов. Но перечисление (enum) является лишь синтаксической обёрткой, которая придумана с целью упростить жизнь. На деле у тебя всегда остаётся лишь массив