#define ADMINLEVEL ADMIN_LEVEL_C + inna flaga
Taurinn
13.01.2015
Cześć mam coś takiego "#define ADMINLEVEL ADMIN_LEVEL_C" i chciał bym żeby dodać jeszcze flagę ADMIN_LEVEL_E jak to zrobić?
XXL
13.01.2015
#define ADMINLEVEL ADMIN_LEVEL_C #define ADMINLEVEL ADMIN_LEVEL_E
Lub
#define ADMINLEVEL ADMIN_LEVEL_C && ADMIN_LEVEL_E
Użytkownik XXL edytował ten post 13.01.2015 16:42
grankee
13.01.2015
#define ADMINLEVEL ADMIN_LEVEL_C
#define ADMINLEVEL ADMIN_LEVEL_E
Nie można zdefiniować drugi raz tego samego. Nawet jak kompilator przepuści, w co wątpię, to będzie źle działało.
Jeżeli chcesz aby ADMINLEVEL posiadało wartość obu tych flag:
#define ADMINLEVEL (ADMIN_LEVEL_C & ADMIN_LEVEL_E)
natomiast jeśli ma posiadać dowolną z tych flag:
#define ADMINLEVEL (ADMIN_LEVEL_C | ADMIN_LEVEL_E)
Różnica jest taka, że jak będzie sprawdzał czy ktoś ma level ADMINLEVEL :
if(get_user_flags(id) & ADMINLEVEL)
to pierwszym przypadku ze znaczkiem & sprawdzi czy gracz ma obie te flagi, a w drugim ze znaczkiem | sprawdzi czy ma dowolną z tych flag(przynajmniej jedną)