Web Log di Adrian Florea

"You know you've achieved perfection in design, not when you have nothing more to add, but when you have nothing more to take away." Antoine de Saint-Exupery
posts - 440, comments - 2715, trackbacks - 3944

My Links

Archives

Post Categories

Image Galleries

.RO Blogs

.RO People

.RO Sites

Blogs

Furls

Links

vinCitori

Slot per variabili locali in IL

Per ridurre la signatura delle variabili locali, IL permette di specificarle in degli slot indicizzati: [0], [1], etc. così da poter condividere uno slot con più variabili locali dello stesso tipo. Per esempio, a questo metodo Main:

static void Main()
{
  int i = 1;
}

corrisponde questo codice IL in seguito a una compilazione con /debug+

.method private hidebysig static void Main() cil managed
{
  .entrypoint
  .maxstack 1
  .locals init ([0] int32 i)
  ldc.i4.1
  stloc.0
  ret
}

in cui si nota lo slot [0] per la variabile i. Però, se si compila con /debug-, lo slot sparisce:

.method private hidebysig static void Main() cil managed
{
  .entrypoint
  .maxstack 1
  .locals init (int32 V_0)
  ldc.i4.1
  stloc.0
  ret
}

Strano, mi aspettavo a un comportamento al contrario.

Print | posted on domenica 7 novembre 2004 15:46 | Filed Under [ Carillon .NET ]

Powered by:
Powered By Subtext Powered By ASP.NET