W1013 Constante 0 convertie en NIL (Delphi)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Messages d'erreur et d'avertissement (Delphi)

Le compilateur Delphi permet désormais à la constante 0 d'être utilisée dans des expressions de pointeurs à la place de NIL. Cela permet de compiler du code ancien avec des changements effectués dans la bibliothèque d'exécution RTL de bas niveau.


program Produce;

  procedure p0(p : Pointer);
  begin
  end;

begin
  p0(0);
end.

Dans cet exemple, la procédure p0 est déclarée pour prendre un paramètre Pointer alors que la constante 0 est transmise. Le compilateur exécutera les conversions nécessaires en interne, transformant le 0 en NIL, de façon à ce que le code fonctionne correctement.


program Solve;

  procedure p0(p : Pointer);
  begin
  end;

begin
  p0(NIL);
end.

Il existe deux approches pour résoudre le problème. Dans le cas ci-dessus, la constante 0 a été remplacée par NIL. Alternativement, la définition de la procédure aurait pu être changée de façon à ce que le paramètre soit de type Integer.