Macro.
#1

Hola, intento hacer un macro y no entiendo porque me da advertencias, me parece que estб bien:

PHP код:
#define Bit_Set(%1,%2,%3) ((%3)?(((%1)|=(%2))):(((%1)&= ~(%2)))) 
Intento hacer un macro para un flag que haga esto:

PHP код:
Bit_Set(variableflagtrue/false); 
Mi cуdigo:

PHP код:
// This is a comment
// uncomment the line below if you want to write a filterscript
//#define FILTERSCRIPT
#include <a_samp>
#define Bit_Set(%1,%2,%3) ((%3)?(((%1)|=(%2))):(((%1)&= ~(%2))))
    
enum (<<= 1)
{
    
PLAYER_ADMIN 1
};
new
    
pInfo[MAX_PLAYERS];
main()
{
    
Bit_Set(pInfo[0], PLAYER_ADMINtrue);

Код:
warning 205: redundant code: constant expression is zero
warning 215: expression has no effect
Reply
#2

Seria mejor utilizar: https://sampforum.blast.hk/showthread.php?tid=275142
Reply
#3

Si lo que quieres es utilizar solo zonas de 1 bit, una opciуn serнa algo como...

pawn Код:
#define Bit_Set(%0,%1,%2) %0 |= ((%2 & 0x01) << %1)

enum
{
    PLAYER_ADMIN
};
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)