Errores, fallos, preguntas - página 2566
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Con esta fundición, no hay pérdida de datos. O es 0 o no es 0.
Otro caso es cuando double -> cualquier tipo de entero (hasta int32 inclusive)
Estás jugando demasiado con las advertencias en mi opinión, hay una falta de coherencia en tu juicio
Te has pasado un poco con las advertencias en mi opinión, hay una falta de coherencia en el juicio
De acuerdo
Aquí tampocohay pérdida de datos en este sentido( o0 o no 0)
pero hay una advertencia. Se esperaba un enfoque uniforme
Resultado de un intento de acceso a una propiedad de una instancia de clase desde una función estática de la misma clase:
El compilador no se pronunció al respecto.No inicializa una cadena vacía con un null terminal.
Resultado
Se espera
Nota en la ayuda de la función StringInit
De hecho, no hay distribución.
Es decir, la asignación de esta manera, diez espacios
no es lo mismo que.
El texto de ayuda marcado en rojo no corresponde al comportamiento lógico.
Te estás pasando con las advertencias en mi opinión, no hay suficiente consistencia en el juicio
Las advertencias no funcionan en las operaciones booleanas, ahora me he dado cuenta accidentalmente de una errata en mi código, así que lo he reproducido:
No inicializa una cadena vacía con un terminal null.
Resultado
Esperado
Nota en la ayuda de la función StringInit
De hecho, no hay ninguna distribución.
Es decir, la asignación de esta manera, diez espacios
no es lo mismo que.
Y no parece coincidir con la lógica del comportamiento, resaltada en rojo en el texto de ayuda.
Te ha faltado la función StringBufferLen - devuelve el tamaño del buffer asignado. StringLen devuelve la longitud de la cadena, es decir, hasta el carácter terminal, respectivamente, si está al principio - longitud 0. Buffer != string.
Has pasado por alto la función StringBufferLen - devuelve el tamaño del buffer asignado. StringLen devuelve la longitud de la cadena, es decir, hasta el carácter terminal, respectivamente, si está al principio - longitud 0. Buffer != cadena.
De lo contrario, no se conoce a sí mismo.
Has pasado por alto la función StringBufferLen - devuelve el tamaño del buffer asignado.
StringLen devuelve la longitud de la cadena, es decir, hasta el carácter terminal, respectivamente, si está al principio - longitud 0. Buffer != cadena.
Esto está claro, estamos hablando de inicializar una cadena con ceros terminales.
¿Por qué no llenar stringInit(str, 10, 0); con diez ceros terminales? Y devuelve la longitud real de la cadena.
Si quieres inicializar una cadena vacía, sin rellenarla, por ejemplo con 100 caracteres,
entonces o bien 100 espacios como str = " muchos golpes de teclado ", o bien inicializar la basura StringInit(str, 100, 65)
No entiendo por qué tengo que inicializarlo con basura, ya hay suficiente ))
Es comprensible, estamos hablando de inicializar la cadena con ceros terminales.
¿Por qué no rellenar StringInit(str, 10, 0); con diez ceros terminales? Y devuelve la longitud real de la cadena.
Si quieres inicializar una cadena vacía, sin rellenarla, por ejemplo con 100 caracteres,
entonces o bien 100 espacios como str = " muchos golpes de teclado ", o bien inicializar la basura StringInit(str, 100, 65)
No entiendo por qué tengo que inicializar con basura, ya hay suficiente ))
¿Qué te hace pensar que no está rellenado? Es que la longitud en la cadena µl no se almacena, es reconocida por el terminal cero.
¿No?
Y si necesitas ceros, hay una clase String en algún lugar de las entrañas de µl std.
¿Qué te hace pensar que no está rellenado? Es que la longitud en la cadena µl no se almacena, es reconocida por el terminal cero.
¿No?
Y si necesitas ceros, hay una clase String en algún lugar de las entrañas de la µl std.
No... También devuelve cero de esa manera. Y el tercer parámetro ushort, requiere un código de carácter entero.
Si inicializo como str = " "; y luego paso los datos de la dll, todo está bien.
Pero si lo inicializo como StringInit(str, 10, 0) entonces los datos no llegan. Esto se debe a que el código no asigna memoria para la cadena con el tamaño necesario.
Si tuviera código para el espacio, probablemente habría funcionado, pero que no he encontrado tal código en diferentes tablas.
Necesitamos asignar memoria para el número de caracteres futuros que luego irán a la cadena vacía ya inicializada.
Pero la basura para inicializar la cadena, no kommelpho.
StringInit(str, 100, 0); debe rellenarse con nulos terminales y devolver la longitud 100.