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

关于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 on 2006-06-08 20:59 "齐柏林飞艇"迷上了"哥特金属" 阅读(190) 评论(1)  编辑 收藏

评论

#1楼    回复  引用  查看    

是不是struct被4字节对齐了
2006-09-04 11:08 | 千里马肝      

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2006-06-08 21:07 编辑过


相关链接: