Alexey Navoykov: Es un error de imprenta con el tipo de int, supongo.
Sí... Corregido en todas partes para anular - para simplificar.
Por otro lado, el significado, pero ya las advertencias (*) no están claras
//lib.h //объявления
int g(); //Warning: no #import declaration //(*)void f(); //Warning: no #import declaration
lib.h es un archivo de declaración general, mientras que lib.mq5, lib2.mq5, lib3.mq5... con implementaciones, que se incluyen mediante #include según sea necesario. Por lo tanto, puede que no haya ninguna implementación de int g() en una compilación particular, pero la oscura advertencia está ahí. De hecho, hay cientos de ellas y le impiden ver las advertencias realmente importantes
Sí... Corregido en todas partes para anular - para simplificar.
Por otro lado, el significado, pero ya las advertencias (*) no están claras
lib.h es un archivo común con declaraciones, mientras que lib.mq5, lib2.mq5, lib3.mq5... con implementaciones, que se introducen a través de #include según sea necesario. Por lo tanto, puede que no haya ninguna implementación de int g() en una compilación particular, pero la oscura advertencia está ahí. En realidad, hay cientos de ellas, y obstaculizan la visión de los avisos realmente importantes.
Tenga en cuenta que incluso si especifica una implementación en el mismo libro de inclusión, esta advertencia también aparecerá.
struct A
{
int i;
};
struct B : public A
{
string Str;
};
voidOnStart()
{
A a = {0};
B b;
b = a;
a = b; // OK
}
Me pregunto si debo utilizar esta función en mi código o no. Si funciona en C++, lo utilizaré. No, no lo creo, porque puede ser cancelado en las próximas construcciones.
¿Es un error que no haya un aviso de inicialización?
struct A
{
int i;
};
struct B : public A
{
string Str;
};
voidOnStart()
{
A a;
B b;
// b = a; // possible use of uninitialized variable 'a'
a = b; // OK
}
Y no hay error
Error durante la compilación
Por lo demás:
Está bien. ¿Cuál es la diferencia?
Además, C++ compila normalmente en una sola pasada:
Advertencia poco clara sobre la compilación
Por lo demás:
todo está bien - no hay advertencia. ¿Qué diferencia hay?
Aviso poco claro durante la compilación
Es un error de imprenta con el tipo de int, supongo.
Sí... Corregido en todas partes para anular - para simplificar.
Por otro lado, el significado, pero ya las advertencias (*) no están claras
lib.h es un archivo de declaración general, mientras que lib.mq5, lib2.mq5, lib3.mq5... con implementaciones, que se incluyen mediante #include según sea necesario. Por lo tanto, puede que no haya ninguna implementación de int g() en una compilación particular, pero la oscura advertencia está ahí. De hecho, hay cientos de ellas y le impiden ver las advertencias realmente importantesSí... Corregido en todas partes para anular - para simplificar.
Por otro lado, el significado, pero ya las advertencias (*) no están claras
lib.h es un archivo común con declaraciones, mientras que lib.mq5, lib2.mq5, lib3.mq5... con implementaciones, que se introducen a través de #include según sea necesario. Por lo tanto, puede que no haya ninguna implementación de int g() en una compilación particular, pero la oscura advertencia está ahí. En realidad, hay cientos de ellas, y obstaculizan la visión de los avisos realmente importantes.Tenga en cuenta que incluso si especifica una implementación en el mismo libro de inclusión, esta advertencia también aparecerá.
El siguiente error merece especial atención:
Esencialmente similar a este, pero con muchos archivos, bastante poco evidentes y difíciles de entender