Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-04-2015
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 11
aguml Va por buen camino
Evitar este Warning

Hola amigos, tengo este condicional:
Código PHP:
if((Offset 0x00FFFFFF) == a
Tanto "Offset" como "a" son del tipo unsigned long.
Y el compilador me dice esto:
Cita:
[C++ Warning] TBruteForce.cpp(101): W8060 Possibly incorrect assignment
Funcionar funciona como yo quiero ya que solo entra cuando esa condicion se cumple pero queria saber porque me da ese Warning y como evitarlo.
Gracias.
Responder Con Cita
  #2  
Antiguo 15-04-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola aguml.

¿ Será ese el código causante ?, en el contexto que describes no me genera ninguna advertencia:



Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 15-04-2015
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 11
aguml Va por buen camino
Ya di con el problema, era justo en otro condicional anterior. ¿No se puede hacer que builder muestre los numeros de linea?
Responder Con Cita
  #4  
Antiguo 16-04-2015
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 11
aguml Va por buen camino
Ahora tengo otro Warning:
Cita:
[C++ Warning] Unit1.h(96): W8027 Functions containing switch are not expanded inline
Si miro a que se refiere veo que es a esto que tengo en el .h de la clase TForm1:
Código PHP:
protected:
   
BEGIN_MESSAGE_MAP
      VCL_MESSAGE_HANDLER
(WM_SYSCOMMANDTWMSysCommandOnWMSysCommand)
   
END_MESSAGE_MAP(TForm
¿se puede evitar o no pasa nada?
Responder Con Cita
  #5  
Antiguo 16-04-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola aguml.

Esa declaración tampoco me genera advertencia, pero no es realmente importante, no funcionará mál.

Sin embargo podrías probar si de este modo te la elimina:
Código PHP:
protected:
   
#pragma option push -w-inl 
   
BEGIN_MESSAGE_MAP
      VCL_MESSAGE_HANDLER
(WM_SYSCOMMANDTWMSysCommandOnWMSysCommand)
   
END_MESSAGE_MAP(TForm)
   
#pragma option pop 
Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 16-04-2015
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 11
aguml Va por buen camino
Con eso se quita el warning ¿que hace eso exactamente? yo es que ni siquiera se para que es pragma
Responder Con Cita
  #7  
Antiguo 16-04-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Revisa estos links

Error is " functions containing switch are not expanded inline

W8027: Functions containing 'statement' are not expanded inline

http://www.borlandtalk.com/w8027-fun...-vt108082.html

Basicamente el compilador te esta diciendo que no puede expandir la funcion, esto es, aprovechar cierta caracteristica que permite que una funcion, en lugar de compilarla una sola vez y cada vez que llamas a esa funcion, ir a ese unico lugar de todo tu programa en donde va a estar, se reemplazan las llamadas a la funcion esparcidas por tu codigo por la rutina de la funcion en si

No se entendio nada no?

Código Delphi [-]
unit FooUnit;

interface

  function Foo(x: integer): boolean; inline;

implementation
  function Foo(x: integer): boolean;
  begin
    Result := x > 10; 
  end;

Código Delphi [-]
unit Unit1;

interface

uses FooUnit;

interface
  function Bar: boolean;
  function Bar2: boolean;

implemetantion

  function Bar: boolean;
  begin
    Result := Foo(Random(5)); 
  end;

  function Bar2: boolean;
  begin
    Result := Foo(Random(8)); 
  end;

Al compilarlo esto se traduce en:

Código Delphi [-]
implemetantion

  function Bar: boolean;
  begin
    Result := Random(5) > 10; 
  end;

  function Bar: boolean;
  begin
    Result := Random(8) > 10; 
  end;


Esto evidentemente genera mas lineas de codigo, pero se gana performance ya que se evita el cambio de contexto que llamar a una funcion/procedimiento supone. Pero no siempre es posible, si la funcion es compleja o por ejemplo en un caso como el tuyo. Es una "sugerencia" al compilador (Ref)

Última edición por AgustinOrtu fecha: 16-04-2015 a las 17:06:15.
Responder Con Cita
  #8  
Antiguo 16-04-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola aguml.
Cita:
Empezado por aguml Ver Mensaje
Con eso se quita el warning ¿que hace eso exactamente? yo es que ni siquiera se para que es pragma
En la primer línea desactivo las advertencias sobre inline y en la última las restauro.
Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #9  
Antiguo 17-04-2015
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 11
aguml Va por buen camino
Pues sigo sin enterarme de mucho pero tendré que intentar entenderlo porque parece algo importante. Sobre desactivar y activar las advertencias del inline, lo hago aquí porque me dices que está todo correcto pero no como estoy pez en temas de inline no lo haré en futuros códigos por motivos de integridad (no quiero que me explote el pc jajaja) ya que supongo que si desactivo eso y hago alguna barbaridad en esa zona, muy posible que pase cuando no se sabe bien lo que se hace, a saber que podría pasar jajaja.
Responder Con Cita
  #10  
Antiguo 17-04-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
El inlining es una optimizacion, nada mas
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
¿Cómo evitar un warning por sobrecargar un constructor? vejerf OOP 5 28-07-2008 13:49:55
linker warning en builder c++ mns C++ Builder 2 27-05-2008 22:36:36
¿Como evitar este mensaje de error? Deiv HTML, Javascript y otros 4 27-11-2006 21:46:38
Evistar los warning en php por pagina Andrea Martinez PHP 2 30-11-2004 07:59:54
Warning Salomon Varios 2 05-04-2004 19:53:23


La franja horaria es GMT +2. Ahora son las 00:18:07.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi