Bool ili int

pre 5 godina
1,815
pregleda
20
postova
Kriso_Anderson
Kingpin
pre 5 godina
Problem(error/warning): Sta je bolje int ili bool? UlogovanProvera==1 ili ==true
Dio skripte:
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log):
Slika/video ingame problema(obavezno ako je ingame problem):
ToniSB
Hustler
pre 5 godina
Nema neke razlike u PAWN jeziku jer iirc isto imaju bitova (kec/true) (nula/false)
Svakako koristi bool za 0/1 vrednosti

Edit, evo sada cu videti asm kodove, samo da jedem
Kriso_Anderson
Kingpin
pre 5 godina
Okej, samo me je ovo zanima.
ToniSB
Hustler
pre 5 godina
Ovo sam dobio za bool:

CODE 0 ; 0
;program exit point
halt 0

DATA 4 ; 0
dump 37030

DATA 0 ; 4
dump 1

CODE 0 ; 8
proc ; main
; line 6
break ; c
; line 7
break ; 10
load.pri 4
const.alt 1
eq
jzer 1c
;$exp
l.1c ; 30
zero.pri
retn

STKSIZE 1000

...a ovo za int

CODE 0 ; 0
;program exit point
halt 0

DATA 4 ; 0
dump 37030

DATA 0 ; 4
dump 1

CODE 0 ; 8
proc ; main
; line 6
break ; c
; line 7
break ; 10
load.pri 4
const.alt 1
eq
jzer 1c
;$exp
l.1c ; 30
zero.pri
retn

STKSIZE 1000

Znaci potpuno je isti koliko mogu videti 🙂


Ovo sam koristio za test:
#include 

new a = 1;

main()
{
if (a == 1)
{
//code
}
}
#include 

new bool:a = true;

main()
{
if (a == true)
{
//code
}
}


EDIT: I da, bila je ugasena optimizacija koda u compileru tako da nema greske
Kriso_Anderson
Kingpin
pre 5 godina
Znaci isti djavo
ToniSB
Hustler
pre 5 godina
Kriso wrote on February 11, 2020, 11:59 am:
Znaci isti djavo

Kao sto mozes videti 😛
Mozes lock temu
Kriso_Anderson
Kingpin
pre 5 godina
PS. Verovatno compajler pretvara bool u int ili tako nesto
_impact
Rookie
pre 5 godina
Samo nemoj da koristis UlogovanProvera molim te.
Kriso_Anderson
Kingpin
pre 5 godina
Dao sam kao primer, i kao da je bitno sta koristis
ToniSB
Hustler
pre 5 godina
// impact wrote on February 11, 2020, 12:02 pm:
Samo nemoj da koristis UlogovanProvera molim te.

To je samo ime funkcije, najbolje je primenjivati ENGLESKA imena za sve u modu (kao sto ja radim) ali svakako mu je potrebno i ovo za neke stvari 🙂 (ne u svakoj komandi kao sto obicno rade haha)
Kriso_Anderson
Kingpin
pre 5 godina
public OnPlayerCommandReceived(playerid, cmdtext[])
{
    if(IgracUlogovan == 0)
{
        SCM(playerid, COLOR_GREY, "Niste se prijavili, te ne mozete koristiti komande!");
return 0;
}
  return 1;
}
ᗪ乇Ҝ丂卂
Underboss
pre 5 godina
y_bit

new
    BitArray:UlogovanProvera;

public OnPlayerConnect(playerid) {
    Bit_Vet(UlogovanProvera, playerid); // Bit_Vet postavlja na false (0)
    return 1;
}

public OnPlayerSpawn(playerid) {
    Bit_Let(UlogovanProvera, playerid); // Bit_Let postavlja na true (1)
    return 1;
}

// Ali nemas potrebe da koristis to 'UlogovanProvera' ja sam ti dao primer samo kako da koristis y_bit..
ToniSB
Hustler
pre 5 godina
YumikoJR wrote on February 11, 2020, 12:08 pm:
y_bit

new
    BitArray:UlogovanProvera;

public OnPlayerConnect(playerid) {
    Bit_Vet(UlogovanProvera, playerid); // Bit_Vet postavlja na false (0)
    return 1;
}

public OnPlayerSpawn(playerid) {
    Bit_Let(UlogovanProvera, playerid); // Bit_Let postavlja na true (1)
    return 1;
}

// Ali nemas potrebe da koristis to 'UlogovanProvera' ja sam ti dao primer samo kako da koristis y_bit..

Ne koristi se za to y_bit 🙂
ᗪ乇Ҝ丂卂
Underboss
pre 5 godina
malitoni wrote on February 11, 2020, 12:09 pm:
Ne koristi se za to y_bit 🙂

Ali moze..
ToniSB
Hustler
pre 5 godina
Kriso wrote on February 11, 2020, 12:01 pm:
PS. Verovatno compajler pretvara bool u int ili tako nesto

Edit: Ovu msg nisam video, ne, pawn je retardiran i ta dva imaju isto bitova (bool ima istu vrednost kao int koji ima vrednost 2mil+ (cellmax).., isto je ugl)

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava