Skocz do zawartości
Minokon

Słowniczek programisty Pawn

Rekomendowane odpowiedzi

new const aha = 2 + 2;

#define SPAM 2+2

printf("aha*2 = %d, SPAM*2 = %d", aha * 2, SPAM * 2);

Wynik

aha*2 = 8, SPAM*2 = 6

Dlatego też w jakże często wspominanych przez Ciebie standardach programowania poleca się stosowanie nawiasów w makrodefinicjach. Może i jest tutaj pomyłka co do literału, a stałej, ale to nie ma jakiegoś kluczowego znaczenia.

A tak na marginesie to człowiek inteligentny, który do tego posiada tak dużą wiedzę ścisłą, powinien zachować chociaż pozory kulturalnego zachowania. To co jest opublikowane krytykować można, a nawet powinno się, ale zacznijmy od tego, że

Tak mnie rozbawiliście, że aż wam odpowiem.

Jeżeli już musisz to zwracaj się do autora poradnika, bo raczej nikogo więcej nie interesuje wytykanie błędów jego poradnika przez Ciebie.

Skoro nie rozumiesz moich przykładów to nie pisz poradników.

Zacytowałeś fragment tekstu i wszyscy powinni się domyśleć, co Per Pan Programista Destrojer miał w zamyśle? To już cecha nie ludzi inteligentnych, a raczej prostaków.

I nie proś o usunięcie tematu, bo nie ma w tym żadnego innego celu, jak tylko podbudowanie Twojej dumy.

Nie musisz odpisywać, mam świadomość, że zależy Ci tylko na dalszej kłótni z którymkolwiek użytkownikiem, ale jeśli mam to być ja to uznajmy, że wygrałeś spór.

Pozdrawiam serdecznie.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ja jeszcze dorzucę coś do postów na temat zmiennych. W PAWN nie ma typów. Jest tylko jeden, w języku C++ nazwalibyśmy go signed int. Zajmuje 32 bity w pamięci RAM. Wszystkie rzeczy typu Float:, DB:, itd. to tylko tagi. Jest to jedynie dodatek, który zapobiega zapisywaniu nieodpowidnich danych, np.

new Float:z1;
new DB:z2;
z2 = z1; // Wyrzuci warring, gdyż nie ma zgodności tagów
Możesz dodawać własne tagi:
new Jestem_noobem:zmienna; // POPRAWNIE!!!!

Aha, apropos tagów np DB. Wydaje mi się, że db_open zwraca id/adres w pamięci otwartej bazy. Natomiast Float to rzeczywiście zakodowana liczba zmiennoprzecinkowa:

wiki:http://pl.wikipedia.org/w/index.php?title=Plik:IEEE-754-single1.svg&filetimestamp=20060920164005

W taki sposób reprezentowana jest liczba zmiennoprzecinkowa

PS: dlatego kiedyś dziwiłem się, dlaczego _:(7.0 / 5.67) wyrzuca mi kosmiczne liczby :P

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Moze i pisze ze tylko 32 bitowy ale obsluguje takze 64bitowe liczby.

Emm niby jakie? jak maksymalną liczbą jaką możesz używać jest cellmax czyli 2147483647 a to jest właśnie ograniczenie 32 bitowe

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Emm niby jakie? jak maksymalną liczbą jaką możesz używać jest cellmax czyli 2147483647 a to jest właśnie ograniczenie 32 bitowe


@amx.c:420

#if PAWN_CELL_SIZE==16

#define swapcell swap16

#elif PAWN_CELL_SIZE==32

#define swapcell swap32

#elif PAWN_CELL_SIZE==64 && (defined _I64_MAX || defined HAVE_I64)

#define swapcell swap64

#else

#error Unsupported cell size

#endif

@amx.c:1988

#if PAWN_CELL_SIZE==16

assert(sizeof(cell)==2);

#elif PAWN_CELL_SIZE==32

assert(sizeof(cell)==4);

#elif PAWN_CELL_SIZE==64

assert(sizeof(cell)==8);

#else

#error Unsupported cell size

#endif

@amx.c:4288

#if PAWN_CELL_SIZE==16

#define CHARMASK	 (0xffffu << 8*(2-sizeof(char)))

#elif PAWN_CELL_SIZE==32

#define CHARMASK	 (0xffffffffuL << 8*(4-sizeof(char)))

#elif PAWN_CELL_SIZE==64

#define CHARMASK	 (0xffffffffffffffffuLL << 8*(8-sizeof(char)))

#else

#error Unsupported cell size

#endif

to ze sa-mp jest ulokowane na 32 bitach nie znaczy ze pawn jest ; p

najfaniejsze jest to ze 32bitowe aplikacje moga spokojnie uzywac 64bitowe vary. 64 bitowy procek daje jedynie wiecej mozliwosci codo wielkosci RAMU (a z tym aplikacje ktore potrzebuja go wiecej moga go smialo dostac)

zreszta napisanie plugina nie jest takie trudne aby 64 bitowe vary byly obslugiwane, lecz nawet dodawanie i odejmowanie by trabylo robic funkcjami xd

Chyba ze assembly potrafisz, #emit ami sie mozna niezle pobawic musze przyznac, smieszny fakt:

z pawn mozna wyknac asm, a c++ zostalo, takjakby zrobione w asm xd (jesli by popatrzec na korzenie)

Edytowane przez grasmanek94

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Moze i pisze ze tylko 32 bitowy ale obsluguje takze 64bitowe liczby.

jest napisane.

Tak mnie rozbawiliście, że aż wam odpowiem.

No ku***, też ci odpiszę (a niech mi któryś da ostrzeżenia za wulgaryzm i napisze, że istenieje wolność słowa)

Po 1 każdy obiekt/zmienna przechowuje tylko i wyłącznie dane liczbowe (w programowaniu wszystko jest liczba nawet durna nazwa waszej zmiennej >>jest to adres do komórki pamięci, tak jest KOMÓRKI a nie OBSZARU<<).

Ja tam myślałem, że jak dam nazwę kutas (nie jest wulgaryzmem) to taka będzie :) (jeżeli ziom nie zajarzyłeś sarkazmu, to sprawdź środkowy)

Po 2 W PAWN nie ma typów są tylko tagi. innymi słowy

new bool:aha = 3.14;

printf("%f", aha);

aha = 43;

printf("%d", aha);

Ameryki ziomek nie odgryłeś.

Niestety nie wymyśliłem tak kreatywnej nazwy jak ty, ale to chyba dobrze bo po co ? przecież mnie oświciłeś, że to będzie liczba. Aczkolwiek mam coś dla ciebie : ) proszę.

 new destrojer[5];

destrojer[0] = 'd';

destrojer[1] = 'e';

destrojer[2] = 'b';

destrojer[3] = 'i';

destrojer[4] = 'l';


for(new i; i < sizeof(destrojer); i++)


printf("%i\n", destrojer[i]);

Jak tak bardzo lubisz liczby.

Edytowane przez Restorer

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×