Dois enums com mesmo nome em 2 arquivos diferentes -
Rodney Francalim - 09.02.2015
Pra nгo termos problemas com variбveis de mesmo nome em 2 arquivos diferentes, usamos o static ao invйs do new, certo?
Como eu poderia fazer isso se tratando de enum?
Re: Dois enums com mesmo nome em 2 arquivos diferentes -
JoaoPedro - 09.02.2015
Nгo. Nгo tem absolutamente nada a ver isso. New e Static tem propriamente dito o mesmo papel que й criaзгo de uma variбvel.
Hгo lido com Pawn a muitos anos entгo nгo tenho contato com sua sintaxe. Enums sгo variбveis tambйm, logo, vocк nгo pode ter nomes iguais.
Se vocк tem um enum em um escopo local entгo nгo tem problema repetir o nome em outro escopo local, mas quando se cria um enum em um escopo global, nгo se pode repetir o mesmo. Й a mesma regra de variбveis.
Re: Dois enums com mesmo nome em 2 arquivos diferentes -
Rodney Francalim - 09.02.2015
Quote:
Originally Posted by JoaoPedro
Nгo. Nгo tem absolutamente nada a ver isso. New e Static tem propriamente dito o mesmo papel que й criaзгo de uma variбvel.
|
https://sampwiki.blast.hk/wiki/Keywords:Initialisers#static
Quote:
Originally Posted by Wiki SA-MP;
"This means you can have two globals of the same name in different files."
|
Й o que tem na wiki.
Quote:
Originally Posted by JoaoPedro
Enums sгo variбveis tambйm, logo, vocк nгo pode ter nomes iguais.
Se vocк tem um enum em um escopo local entгo nгo tem problema repetir o nome em outro escopo local, mas quando se cria um enum em um escopo global, nгo se pode repetir o mesmo. Й a mesma regra de variбveis.
|
Pois й, tф fazendo isso sу pra evitar que caso alguйm crie uma variбvel com o mesmo nome da minha dк erro. Mas eu vou criar um enum com um prefixo exclusivo mesmo, entгo. Valeu!
Re: Dois enums com mesmo nome em 2 arquivos diferentes -
JoaoPedro - 09.02.2015
Ok, deixa eu corrigir entгo. O static cria uma variбvel global onde seu escopo й o arquivo que ele estб. Perfeito.
Agora em relaзгo ao enum acredito que nгo й possivel.
Re: Dois enums com mesmo nome em 2 arquivos diferentes -
rjjj - 09.02.2015
A declaraзгo de constantes enumeradas tambйm pode ser feita por
static const, alйm do mйtodo por
enum 
.
Por exemplo, estas constantes declaradas por
enum:
pawn Код:
enum
{
Letra,
Numero,
Caractere
};
Poderiam ser declaradas por

:
pawn Код:
static const Letra = 0;
static const Numero = 1;
static const Caractere = 2;
Esse outro mйtodo resolveria o seu problema, visto que nele as constantes sгo declaradas com
static.
Espero ter ajudado

.
Re: Dois enums com mesmo nome em 2 arquivos diferentes -
Rodney Francalim - 09.02.2015
Mas eu me refiro especificamente ao nome do enum.
Exemplo:
Re: Dois enums com mesmo nome em 2 arquivos diferentes -
rjjj - 09.02.2015
Quote:
Originally Posted by Rodney Francalim
Mas eu me refiro especificamente ao nome do enum.
Exemplo:
|
Sendo assim vocк pode utilizar
#define para redefinir o nome ao final de cada arquivo de cуdigos. Dessa forma, seria como se a cada declaraзгo de
enum com o mesmo nome um novo nome fosse utilizado

.
Veja este cуdigo:
pawn Код:
#include <a_samp>
enum Nome
{
A,
B,
C
};
main()
{
printf("%d", _:Nome);
}
#define Nome NovoNome
enum Nome
{
D,
E
};
O nъmero mostrado pelo
printf seria 3, pois
Nome englobaria trкs constantes:
A,
B e
C. Com o cуdigo a seguir, porйm, o
printf mostraria 2, pois
Nome englobaria duas constantes,
D e
E, e equivaleria a
NovoNome, que seria na verdade uma nova enumeraзгo

.
pawn Код:
#include <a_samp>
enum Nome
{
A,
B,
C
};
#define Nome NovoNome
enum Nome
{
D,
E
};
main()
{
printf("%d", _:Nome);
}
Espero ter ajudado

.