Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

[ROZWIĄZANE] Jak porównać #define do liczby?

define liczby porównać

Najlepsza odpowiedź BlackPerfum, 07.07.2014 12:36

Jak chcesz operować na stałej to przechodzisz z instrukcji pawna na kompilatora ;D
Przykład:

#define CZAS 0


public Terror(id)
{
	#if CZAS == 0
	
	//funkcja 1

	#else
	
	//funkcja 2
	set_task(CZAS.0, "SledzOfiare")
	
	#endif
}
Przejdź do postu


  • Zamknięty Temat jest zamknięty
4 odpowiedzi w tym temacie

#1 Drago36

    Profesjonalista - if you know what i mean

  • Power User

Reputacja: 561
Wszechwiedzący

  • Postów:707
  • GG:
  • Imię:Mów mi D.ave
  • Lokalizacja:Polska
Offline

Napisano 07.07.2014 10:32

Witam.

 

Posiadam taki kod:

#define CZAS 0
//(...)

public Terror(id)
{
	if(CZAS == 0) // w tej linijce wyskakuje ostrzeżenie: redundant test: constant expression is non-zero
	{
		//funkcja 1
	}
	else
	{
		//funkcja 2
		set_task(CZAS.0, "SledzOfiare")
	}
}

Jak ominąć te ostrzeżenie nie używając "new const"?


  • +
  • -
  • 0

#2 BlackPerfum

    Pseudo interakcja??

  • Power User

Reputacja: 459
Wszechobecny

  • Postów:575
  • Lokalizacja:...
Offline

Napisano 07.07.2014 11:57

Kompilator widzi coś takiego:
public Terror(id)
{
	if(true)
	{
		//funkcja 1
	}
	else
	{
		//funkcja 2
		set_task(CZAS.0, "SledzOfiare")
	}
}
Czyli warunek ZAWSZE się spełni a czyli to tak samo jak byś go nie dał!!! Jaki sens ma takie porównywanie:
if(0 == 0)
?? Co chcesz osiągnąć? Pamiętaj że definicja stałej CZAS jest tylko do kompilacji bo podczas niej kompilator podmieni twoją stałą na liczbę jej przypisaną
  • +
  • -
  • 0
Chcesz napisać do mnie na PW to:
Spoiler

Mój tok myślenia jest błędny? Wskaż mi błąd zmienie to!

Aktualnie bije limit 32 graczy (łącze serwery) ale nadal są lagi przy zbyt dużym przesyłu informacji Dołączona grafika
Gra się płynnie do 40~50 graczy potem łącze pada i zamiast biegać ludzie się teleportują Dołączona grafika

#3 Drago36

    Profesjonalista - if you know what i mean

  • Autor tematu
  • Power User

Reputacja: 561
Wszechwiedzący

  • Postów:707
  • GG:
  • Imię:Mów mi D.ave
  • Lokalizacja:Polska
Offline

Napisano 07.07.2014 12:28

Czasem będę sobie ustawiał na 0 i chciałbym aby funkcja 1 się wykonywała, a czasem będę ustawiał na inną liczbę (CZAS) i kompilował od nowa.

Może jakoś strcmp? Chociaż co ja tam wiem..


  • +
  • -
  • 0

#4 BlackPerfum

    Pseudo interakcja??

  • Power User

Reputacja: 459
Wszechobecny

  • Postów:575
  • Lokalizacja:...
Offline

Napisano 07.07.2014 12:36   Najlepsza odpowiedź

Jak chcesz operować na stałej to przechodzisz z instrukcji pawna na kompilatora ;D
Przykład:

#define CZAS 0


public Terror(id)
{
	#if CZAS == 0
	
	//funkcja 1

	#else
	
	//funkcja 2
	set_task(CZAS.0, "SledzOfiare")
	
	#endif
}

  • +
  • -
  • 1
Chcesz napisać do mnie na PW to:
Spoiler

Mój tok myślenia jest błędny? Wskaż mi błąd zmienie to!

Aktualnie bije limit 32 graczy (łącze serwery) ale nadal są lagi przy zbyt dużym przesyłu informacji Dołączona grafika
Gra się płynnie do 40~50 graczy potem łącze pada i zamiast biegać ludzie się teleportują Dołączona grafika

#5 Drago36

    Profesjonalista - if you know what i mean

  • Autor tematu
  • Power User

Reputacja: 561
Wszechwiedzący

  • Postów:707
  • GG:
  • Imię:Mów mi D.ave
  • Lokalizacja:Polska
Offline

Napisano 07.07.2014 20:24

Nie wiem kto cię zrobił, ale ta osoba powinna dostać Nobla.

Działa jak natura chciała.

 

 

P.S

Uzupełnij trochę biblioteki, bo czasem widzę, że wykorzystujesz natywy, które znasz mimo że nic nie jest wspomniane w naszej biblioteczce (wiem, dowiedziałeś się z innych źródeł, ale fajnie było by, aby inni też znali, żebyśmy się rozpowszechniali). Ogólnie dzięki.


  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych