Darge
Умник
При использовании char мы устанавливаем границы каждой ячейки массива: от 0 и до 255.
Каждая ячейка может принимать 256 значений.
Все постигается в сравнении
Давайте создадим обычный массив.
PHP:
new example_1[MAX_PLAYERS];
[HR][/HR]Пояснение:
если заглянуть в a_samp.inc, то можно увидеть, что по стандарту максимальное количество MAX_PLAYERS равно 1000 (с выходом 0.3.7 клиента)
4 - количество байт, занимаемых целочисленным типом.
[HR][/HR]
Давайте создадим массив типа char.
PHP:
new example_2[MAX_PLAYERS char];
[HR][/HR]Пояснение:
Каждая ячейка равна 4 байтам. Тип char лишь запаковывает округленный вверх результат деления числа, стоящего перед ним, на 4.
[HR][/HR]
Пример использования
Чтобы обратиться к массиву типа char, мы используем не квадратные скобочки, а фигурные.
PHP:
// создаем
new example_2[MAX_PLAYERS char];
// обращаемся к нему
example_2{playerid}//...
PHP:
// обратимся к конкретному игроку с ID 123
example_2{123}//...
PHP:
new no_char_[MAX_PLAYERS];
// будет вызван no_char_[1000];
PHP:
// ничего у вас не получится!
enum enum_example
{
//..
};
new example_3[MAX_PLAYERS char][enum_example];
PHP:
new array_char[MAX_PLAYERS char];
array_char{playerid} = INVALID_PLAYER_ID; // воу, полугче
Я не понял как это 256 значений
Мы объявляем массив, в котором будут записаны: буквы в различных регистрах, цифры и символы.
PHP:
new example_4[6] = "Darge";
PHP:
new example_5[6] = {'D', 'a', 'r', 'g', 'e', '\0'};
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Еще один момент
PHP:
// Не правильно!
// Почему?
// Смотри самый верх темы!
example{playerid} = 256;
// Правильно
example{playerid} = 255;
[HR][/HR]
Благодарю пользователя vladua100 за исправление ошибок в данной статье.
Автор урока: Darge
Последнее редактирование:
