Переменная это не неотъемлемая часть скрипта.Она имеет свой тег и значение.
В языке PAWN один тип, это ячейка - 4 байта, ячейка равна 4 байтам, или 32 битам, что соответствует данному диапазаону (диапазон от -2147483648 до 2147483647) она является, как универсальный тип.
new - объявление переменной . Синтаксис объявления переменной - new название; или new тег название = значние; по стандарту если вы не указали тег переменной значение будет целым числом INT.
INT - целые числа, например 1,9,48,99. Еще в целых числах можно хранить символы. Например h,r,u. Пример объявления такой переменной: new name; (значение не указано,значит оно будет равно нулю),или же new name = 93. Значение будет равно 93. либо new name = 'y';
Float: - ( число с плавающей запятой ), например 1.2 или 47.797 . Для вещественных чисел применяется специальный тег Float:, именно специальный, потому что он обладает специфичным свойством, отличающим его от остальных тегов, которые в случаи присвоения вещественного числа будут давать предупрежденние компилятора о несоответствие тегов и их значений без соответствущего присвоения с первичным "сбросом" первоначального тега по-средству _:или же самого на себя. Пример объявления: new Float: название; Либо new Float: название = значение; Пример: new Float: name; (значение не указано,значит оно будет равно 0.0) или new Float: name = 47.797; будет равна 47.797.
Вывод переменных: ( покажу на примере функции printf - выводит перменные в консоль. ) Спецификатор %d - ( вывод целочисленной перменной). еще может быть %i - тоже самое что и %d. Пример. создадим перменную: new name = 33; Выведем в консоль printf( "Значение перемнной - %d", name );
Спецификатор %s - ( вывод текста ). Пример. создадим перменную: new name[5] = "text";
Выведем в консоль printf( "Значение перемнной - %s", name );
Спецификатор %f - ( вывод числа с точкой ). Пример. создадим перменную: new Float: name = 3.7; Выведем в консоль printf( "Значение перемнной - %f", name );
Спецификатор %c - ( вывод одного символа ). Пример. создадим перменную: new name = 'y'; Выведем в консоль printf( "Значение перемнной - %c", name );
Еще переменные можно объявлять через static, это статическая переменная. Она может быть использована как в локальной так и в глобальной среде. Особенность такой переменной в том что она сохраняется в локальной среде. Дело в том, что если объявить переменную в локальной среде, то при каждом вызове этой среды, переменная будет пересоздаваться, и её прошлые значения не будут сохраняться, нежели со static. К примеру: Создадим функцию без аргументов под названием "FirstFunction"
Code
stock FirstFunction( ) { // Локальная среда. new test; // Создадим переменную под названием "test", тип INT ( целое число ), по-умолчанию будет равной 0. printf( "После создания значение переменной равно %d", test ); // Будет равна 0. test = 33; // Меняем значение нашей переменной. }
При первом вызове переменная будет равна 0, и при тоже при последующих вызовах, так как она постоянно создается заного, и её новое значение ( 33 ) не будет сохранятся. А теперь попробуем, через static:
Code
stock SecondFunction() { // Локальная среда. static test; // Создадим переменную под названием "test", тип INT ( целое число ), по-умолчанию будет равной 0. printf( "После создания значение переменной равно %d", test ); // Переменная равна 0 при первом вызове функции. test = 33; // Устанавливаем новое значение для нашей переменной. }
При первом вызове наша переменная будет равна 0, а уже при последующих будет равна 33, так как ниже мы установили ей новое значение 33. И значение сохраняется.
Переменную нельзя использовать до её инициализации , то есть пока переменная не объявлена нельзя ей пользоваться например : Как нельзя делать:
Тег bool - ( булевое значение ), такая переменная может хранить в себе только два значения 0 или 1 ( true/false ), создана для экономии памяти,булевое знчение применяется когда нужно хранить только 2 значение, например в записная книжка или права на Т.С. они либо есть,либо их нет тут пригодится bool. Пример объявления: new bool: название = значение; ( значение не указано,по умолчанию она будет равна 0 ( false ) ) либо new bool: название = значение; значение будет равно 1 ( true )
По словам тонисикса, в павн этот тег бесполезен, так как от того что он есть, объем памяти не сокращается, а остается тем же, поэтому смысла в использовании bool'евых переменных - нету!
По словам тонисикса, в павн этот тег бесполезен, так как от того что он есть, объем памяти не сокращается, а остается тем же, поэтому смысла в использовании bool'евых переменных - нету!
Хорошо было бы разъяснить новичками, почему массив размерности 5, а строка длины 4.
Code
Спецификатор %d
Есть ведь еще спецификатор %i для целых чисел, в чем разница ? И хотя бы пару слов про диапазон значений.
Добавлено (10.02.2012, 16:30) --------------------------------------------- А вообще молодец, хоть какие то шансы есть, что новички это прочитают и будут знать чуточку больше.
Rockman, всё пояснил))) в павн вообще один тип это ячейка - 4 байта, ячейка равна 4 байтам, или 32 битам, что соответствует данному диапазаону (диапазон от -2147483648 до 2147483647) она является, как универсальный тип.
%d и %i одно и тоже. целое десятичное число это как синоним для %i так как d - decimal что в переводе с английского - десятичное а i integer . И новичкам врятле надо забивать этим голову...
Приватно никого не консультирую, моды также не пишу, ни так, ни за деньги. Моя ICQ 675715, пишу только с неё. Все остальные Роачи фейки, ничего я не продаю и продавать не буду, вас разводят.
Специфичность представления строковых переменных в си-подобных языках состоит в том, что для определения строки в памяти отводится на 1 байт больше, чем требуется для самого текста. Этот самый байт отводится для нулевого символа, который определеяет конец строки т.е заполняется байтом, в двоичной записи которой одни нули.
Приватно никого не консультирую, моды также не пишу, ни так, ни за деньги. Моя ICQ 675715, пишу только с неё. Все остальные Роачи фейки, ничего я не продаю и продавать не буду, вас разводят.
%d и %i одно и тоже. целое десятичное число это как синоним для %i так как d - decimal что в переводе с английского - десятичное а i integer . И новичкам врятле надо забивать этим голову...
Прочитав, твой урок, они скачают какой нибудь мод и увидят там %i, и будут думать, что либо ты не договорил, либо скриптер ошибся.
Quote (Latron) %d и %i одно и тоже. целое десятичное число это как синоним для %i так как d - decimal что в переводе с английского - десятичное а i integer . И новичкам врятле надо забивать этим голову...
Но если прочитают это,врятле,только если совсем тупые
Imperealist, ну по сути он прав. это тег,одна из специфических возможностей PAWN. можно создать свой тег,например, new teg: name; и этого абсолютно ничего не изменить,кроме как вызовет ошибку при компиляции скрипта. А так bool удобен ,как коментарий что бы быстро понять что переменная использует всего два значения...