Erros, bugs, perguntas - página 2762

 
Igor Makanu:

verificado:

OK, funciona sem qualquer aviso de compilação

Obrigado

Vai-se rir, mas mesmo isso funciona sem qualquer aviso

uchar c[16];
int ini2=0xFFFF;
ArrayInitialize(c, (uchar)ini2);
 
Aleksey Mavrin:

Vai-se rir, mas mesmo isto funciona sem avisos

também se vai rir, mas é o caminho para a UB e a forma de colocar o insecto complicado nas próximas construções :-)

int foo=-1;

uchar bar=(uchar)foo; // чему должен быть равен bar ?

 
Igor Makanu:

verificado:

OK, funciona sem qualquer aviso de compilação

Obrigado

Porque é necessária a chamada ArrayInitialize neste caso? Porque não escrever apenas uchar uc[16] = {0xFF}; ?

ArrayInitialize faz sentido para arrays distribuídos dinamicamente, enquanto aqui o tamanho é supostamente conhecido no momento da descrição.

 
Aleksey Mavrin:

Vai-se rir, mas mesmo isto funciona sem qualquer aviso

não é engraçado, não é uma inicialização correcta, o que pode não compreender porque o fez

é claro que o byte mais significativo será cortado quando se faz o casting para uchar


Stanislav Korotky:

Porque é que preciso de ArrayInitializar a chamada neste caso? Porque não escrever apenas uchar uc[16] = {0xFF}; ?

ArrayInitialize faz sentido para arrays distribuídos dinamicamente e aqui o tamanho é supostamente conhecido no momento da descrição.

não vai funcionar

Sem impressão, o primeiro elemento será 255 e os restantes 0, 0, 0, 0, ...

 
Igor Makanu:

OK, funciona sem qualquer aviso de compilação

sem um fantasma é normalmente assim

ArrayInitialize(uc, '\xFF');
UPD não, o mesmo aviso, um tal literal é do tipo ushort
 
Mais uma vez, com uma quilha uniforme...
void OnStart(){
   uchar uc[16];
   ArrayInitialize (uc, -1);
   ArrayPrint(uc);  // 255 255 255 255 255 ...
}
 
Sergey Dzyublik :
Mais uma vez, em pé de igualdade...
Qual é o problema?
 
Sergey Dzyublik:
Mais uma vez no local...

Estou totalmente confuso )

Adverte sobre constantes de 128 e 0xFF, mas não sobre variáveis int com os mesmos valores.

Além disso, também não avisa sobre a constante -1 int. Haverá alguma lógica nisto?

s.s. Acho que é compreensível com -1, é reduzido a qualquer valor não assinado por valor máximo de acordo com as regras.
 
Andrei Trukhanovich:

sem um fantasma como esse.

UPD não, também um aviso, tal literal é do tipo ushort
'\xFF'

?? wow... em 4 (está aberto de vez em quando) rolos.

void OnStart()
  {
ushort foo='\xFF';

  }

PS/ quando, ocasionalmente, quem quer que tenha um site na Internet perto de si, lhe der uma bofetada no pulso.

 
Na construção 2460 e 2470 quando se apaga todas as transacções e se desactiva a actualização automática e se abre uma nova ordem, todas elas reaparecem antes de isto não acontecer e parte dos conselheiros e indicadores escreve err 400 e err 401 embora compilem sem erro mas não querem trabalhar.....