Page 1 of 1

Pawn Directives

Posted: Mon Oct 24, 2011 6:08 am
by RoberTo
Salut.

In acest tutorial va voi prezenta toate directivele folosite in pawno.

Sa incepem..

[font=courier]#assert
- Aceasta directiva verifica daca ceva este adevarat si daca nu opreste compilarea.

#define MOO 10
#assert MOO > 5

Aceasta se va compila fara probleme deoarece este adevarat ( 10 este mai mare ( > ) ca 5 )

#define MOO 1
#assert MOO > 5

Acest exemplu va da eroare deoarece 1 nu este mai mare ( > ) decat 5.
Este similar cu

#define MOO 1
#if MOO <= 5
#error Moo check failed
#endif


In caz ca nu este adevarat assert va da o eroare:

Code: Select all

"Assertation failed: 1 > 5"
In cazul al 2-lea asserts va da eroare:

Code: Select all

"User error: Moo check failed"
[hr]

[font=courier]#define
- Aceasta directiva defineste un simbol si oriunde este gasit simbolul define-ului va fi gasit va fii inlocuit.

#define MOO 7
printf( "%d", MOO );

E acelasi lucru cu:
printf( "%d", 7 );

De aceea toate define-urile sunt pierdute in decompilare pentru ca ele nu exista ( toate directivele sunt pre-processor ).
Define-urile nu trebuie sa contina numere.
#define Loop new i = 0; i < MAX_PLAYERS; i++ ) if ( IsPlayerConnected( i )

for ( Loop )
{
printf( "%d connected", i );
}

[hr]

[font=courier]#else
- #else is like else, dar #if in loc de if

[hr]

[font=courier]#elseif
- #elseif is like else, dar pentru #if

#define MOO 10

#if MOO == 9
printf("if") ;
#else
#if MOO == 8
printf("else if");
#else
printf("else");
#endif
#endif


[hr]

[font=courier]#emit
- Acest directiv nu este in tabelul pawn-lang.pdf dar totusi exista. Acest este un inline compiler, daca sti AMX poti folosi asta pentru a pune opcoduri AMX in codul tau.

[hr]

[font=courier]#endif
- #endif este ca o paranteza inchis pentru #if

[hr]

[font=courier]#endinput
- Acesta opreste includerea unei singure file. Este folosit pentru a impiedica compilarea include-urilor de 2 ori accidental.

#include "bla.inc"
#include "bla.inc"


bla.inc

#if defined _BLA_INC
#endinput
#endif
#define _BLA_INC


[hr]

[font=courier]#error
- Acesta opreste compilarea si arata o eroare setat de user.( Uitate la #assert pentru un exemplu )

[hr]

[font=courier]#file
- Seteaza numele filei. Este o functie inutila.

[hr]

[font=courier]#if
- Poti alege exact ce vrei sa se compileze si ce nu de aici.

#define LIMIT 10

if ( LIMIT < 10 )
{
printf("Limit too low");
}

Se va compila ca:
if ( 10 < 10 )
{
printf("Limit too low");
}[/font]


Am tradus aceste chestii de AICI.
Tutorialul este incomplet, deoarece nu am mai avut chef sa mai tradus, am ramas la [font=courier]#pragma[/font], cine vrea poate continua si voi pune in main post cu credite ;)



SIGNATURE:
[ R.S.F. ] in Development..