随笔 - 24, 文章 - 0, 评论 - 10, 引用 - 0
数据加载中……

2006年6月8日

关于StructLayout的一个bug??

今天在公司用vs2003写了段代码
using System;
using System.Runtime.InteropServices;

namespace TestCSharp
{
    [StructLayout(LayoutKind.Sequential, Pack 
= 1)]
    
struct Data
    
{
        
public int i;
        
public char ch;
    }


    
class Program
    
{
        
static void Main(string[] args)
        
{
            
unsafe
            
{
                
int size = sizeof(Data);
                Console.WriteLine(
"size = {0}", size);
            }

        }

    }


}

结果输出是8,但是按照理论应该是6啊, 真是不解。

回家后,把这段代码在vs2005中输入,运行。结果是6,bingo!
但我认为这个东西不应该会出现bug啊,也从来没听人说过,难道是我设置错误!
明天对代码ildasm一下看看,希望能看到其中的玄机。

posted @ 2006-06-08 20:59 "齐柏林飞艇"迷上了"哥特金属" 阅读(197) | 评论 (1)编辑