Ispacked
Материал из Wikipedia Pi
Описание:
Проверяет, является ли строка упакованной, или нет.
Параметры:
(string[])
string | строка для проверки на факт упаковки. |
Возвращаемые значения:
false - если строка не запакована.
true - если строка запакована.
true - если строка запакована.
Примечание |
Это имя функции начинается со строчной буквы. |
Баг Pawn |
Функция возвращает неправильное значение, если упакованная строка начинается с ячейки, в которой самый значимый бит установлен в 1:ispacked(!"строка") // выдаст false, хотя строка упакованная |
Подсказка |
Для исправления бага с функцией используйте следующий код:stock ispacked(string[]) { #emit lref.s.pri string #emit const.alt ucharmax #emit geq #emit retn return 0; } |
Пример использования:
stock PrintPackStatus(const name[], const string[]) printf("Строка %s %sупакована", name, ispacked(string) ? "" : "не "); main() { // Строка str1 упакована, а str2 объявлена в неупакованном виде. new str1[] = !"abcd"; new str2[] = "efgh"; // Выведем информацию о том, упакованы ли строки PrintPackStatus("str1", str1); // "Строка str1 упакована" PrintPackStatus("str2", str2); // "Строка str2 не упакована" // Теперь распакуем str1 и, наоборот, упакуем str2 strpack(str1, str1); strunpack(str2, str2); // Выведем информацию об упакованности строк ещё раз PrintPackStatus("str1", str1); // "Строка str1 не упакована" PrintPackStatus("str2", str2); // "Строка str2 упакована" }
Связанные функции
Следующие функции также могут быть полезны, поскольку они так или иначе связаны с рассматриваемой функцией.