Errores, fallos, preguntas - página 2762

 
Igor Makanu:

revisado:

OK, funciona sin ninguna advertencia del compilador

Gracias

Te reirás, pero incluso eso funciona sin una advertencia

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

Te reirás, pero incluso esto funciona sin advertencias

te reirás también, pero es el camino a la UB y la forma de conseguir el difícil bicho en las próximas construcciones :-)

int foo=-1;

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

 
Igor Makanu:

revisado:

OK, funciona sin ninguna advertencia del compilador

Gracias

¿Por qué es necesaria la llamada ArrayInitialize en este caso? ¿Por qué no escribir simplemente uchar uc[16] = {0xFF}; ?

ArrayInitialize tiene sentido para los arrays distribuidos dinámicamente, mientras que aquí el tamaño es supuestamente conocido en el momento de la descripción.

 
Aleksey Mavrin:

Te reirás, pero incluso esto funciona sin una advertencia

no es divertido, no es una inicialización correcta, que tal vez no entienda por qué lo hizo

está claro que el byte alto se truncará al pasar a uchar


Stanislav Korotky:

¿Por qué necesito la llamada ArrayInitialize en este caso? ¿Por qué no escribir simplemente uchar uc[16] = {0xFF}; ?

ArrayInitialize tiene sentido para arrays distribuidos dinámicamente y aquí el tamaño es supuestamente conocido en el momento de la descripción.

no funcionará

Si lo desimprimes, el primer elemento será 255 y el resto 0, 0, 0, ...

 
Igor Makanu:

OK, funciona sin ninguna advertencia del compilador

sin un fantasma es normalmente así

ArrayInitialize(uc, '\xFF');
UPD no, la misma advertencia, tal literal es de tipo ushort
 
Una vez más, en un plano de igualdad...
void OnStart(){
   uchar uc[16];
   ArrayInitialize (uc, -1);
   ArrayPrint(uc);  // 255 255 255 255 255 ...
}
 
Sergey Dzyublik :
Una vez más, en igualdad de condiciones...
¿Cuál es el problema?
 
Sergey Dzyublik:
Una vez más en el lugar...

Estoy totalmente confundido )

Advierte sobre las constantes de 128 y 0xFF, pero no sobre las variables int con los mismos valores.

Además, tampoco avisa de la constante -1 int. ¿Hay alguna lógica en esto?

s.s. Supongo que es comprensible con -1, se reduce a cualquier valor sin signo por máximo según las reglas.
 
Andrei Trukhanovich:

sin un fantasma como ese.

UPD no, también una advertencia, tal literal es de tipo ushort
'\xFF'

... wow... en 4 (está abierto en ocasiones) rollos.

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

  }

PD/ cuando en alguna ocasión, quien tiene una web por ahí, le da un tirón de orejas.

 
En la build 2460 y 2470 cuando se borran todas las operaciones y se desactiva el auto-refresh y se abre una nueva orden vuelven a aparecer todas antes esto no ocurría y parte de los asesores e indicadores escribe err 400 y err 401 aunque compilan sin error pero no quieren funcionar.....