پرش به مطلب اصلی

کلمات کلیدی: عملگرها

char

char تعداد سلول‌های لازم برای نگه داشتن تعداد داده شده کاراکترها در یک رشته packed برمی‌گرداند. یعنی تعداد سلول‌های 4-بایتی لازم برای نگه داشتن تعداد داده شده بایت‌ها. برای مثال:

4 char

برمی‌گرداند 1.

3 char

برمی‌گرداند 1 (نمی‌توانید 3/4 متغیر داشته باشید).

256 char

برمی‌گرداند 64 (256 تقسیم بر 4).

این عموماً در اعلان متغیرها استفاده می‌شود.

new
someVar[40 char];

آرایه‌ای 10 سلولی خواهد ساخت.

برای اطلاعات بیشتر در مورد رشته‌های packed، pawn-lang.pdf را بخوانید.

defined

بررسی می‌کند که آیا نمادی وجود دارد. عموماً در دستورات #if استفاده می‌شود:

new
someVar = 5;
#if defined someVar
printf("%d", someVar);
#else
#error The variable 'someVar' isn't defined
#endif

بیشتر برای بررسی اینکه آیا define تعریف شده و تولید کد مطابق با آن استفاده می‌شود:

#define FILTERSCRIPT

#if defined FILTERSCRIPT

public OnFilterScriptInit()
{
return 1;
}

#else

public OnGameModeInit()
{
return 1;
}

#endif

sizeof

اندازه آرایه را در عناصر برمی‌گرداند:

new
someVar[10];
printf("%d", sizeof (someVar));

خروجی:

10

و:

new
someVar[2][10];
printf("%d %d", sizeof (someVar), sizeof (someVar[]));

می‌دهد:

2 10

state

این دوباره مربوط به کد autonoma در PAWN است و بنابراین اینجا پوشش داده نمی‌شود.

tagof

این عددی برمی‌گرداند که نمایانگر تگ یک متغیر است:

new
someVar,
Float:someFloat;
printf("%d %d", tagof (someVar), tagof (someFloat));

می‌دهد:

-./,),(-*,( -1073741820

که یک باگ جزئی است اما اساساً به معنای:

0x80000000 0xC0000004

برای بررسی، برای مثال، اینکه آیا متغیر float است (با تگ 'Float:'):

new Float: fValue = 6.9;

new tag = tagof (fValue);

if (tag == tagof (Float:))
{
print("float");
}
else
{
print("not a float");
}