Нет в Pawn типов данных, как в других языках. Даже в документации указано, что это бестиповый язык.
Единственный тип данных, поэерживаемый компилятором Pawn - целочисленный. Есть ещё Float, но он объявлен в одном из стандартных инклудов Pawn (технически это пользовательское пространство), в компиляторе этот тип не определён. Тип bool определён в компиляторе, но это всего лишь синтаксический сахар, на практике этот тип абсолютно бесполезен: переменным целочисленного типа можно присвоить true/false, а булевым переменным - целочисленные значения. С данными типа Float такое не прокатит только потому, что название типа начинается с заглавной буквы (да, вот такой странный признак для задания строгой/нестрогой типизации), кроме того для Float переопределён оператор "=" и если попытаться присвоить вещественной переменной целочисленное значение, будет произведён неявный вызов функции float() для конвертации целого числа в вещественное.
Что же касается char, то это всего лишь оператор, который означает, что число перед ним нужно поделить на количество байт в ячейках (4 в версии для SA:MP, но в других может быть и по 8 байт,
вот здесь, например).
Обычно его используют в указании размера массивов:
PHP код:
new arr[32 char]; // массив 8 ячеек (32 байт)
Но ничто не мешает использовать этот оператор в других случаях:
PHP код:
new x = 32 char; // x = 8
Стоит заметить, что это не просто деление на 4. "3 char" вернёт 1, а не 0, "5 char" - 2 и т.д.
Без оператора char указанный выше 2-й пример будет выглядеть так:
PHP код:
// допустим, будет 4 (имейте в виду, что, как я уже говорил, в других реализациях значение может меняться,
// так что не указывайте число 4 в явном виде, только через константы, иначе нарушите переносимость кода)
const BYTES_PER_CELL = cellbits / charbits;
// макрос для вычисления кол-ва ячеек
#define tobytes(%0) ((%0) + BYTES_PER_CELL - 1) / BYTES_PER_CELL
// x = 8
new x = tobytes(32);
Здесь cellbits и charbits - встроенные константы Pawn, определённые в компиляторе наравне с __Pawn (указывает версию компилятора, для стандартного pawncc из комплекта сервера SA:MP это 0x0302, для версии от Zeex - 0x030A), debug (уровень отладки, с которым скомпилирован скрипт, указывается в ключе компилятора -d), cellmin, cellmax, charmin, charmax, ucharmax, true, false и EOS (а также __line и __compat в версии от Zeex).
Назовите номер страницы в документации, где вы это нашли.
Позвольте поинтересоватьтся, там хоть где-нибудь сказано, что char - это тип данных? И к какой версии Pawn документация, к 4.0? В ней довольно много отличий от версии 3.2, которой уже давно нет на сайте разработчика Pawn (насколько помню, в комплекте YSI сохранились документы по 3.2). Кстати, если у вас доки к версии 4.0, не могли бы залить их на какой-нибудь хостинг? Недавно они тоже куда-то пропали с сайта разработчика, ссылки не рабочие.
И да, что за "форум"? Govno-Info, "игровой портал о программировании в Pawno"? Первым в голову приходит именно он, ведь обычно это там во весь голос твердят, что например "весь код лучше писать в одну строку, так оптимизированнее!" или "командные процессоры нагружают сервер, лучше делать strcmp по over9000 раз" и т.п. (орфографические ошибки, капс и ядовитый цветной шрифт в цитатах убраны для удобства читателей). Но если я ошибся, убедительная просьба к вам написать название форума в ЛС.