源码,或者检查程序是否用到该语句,delphi编译器,对于没有用到的语句或者函数是不会编译的,更不可能执行

解决方案 »

  1.   

    不执行是什么意思?Length 没有结果么.以下猜测仅供参考:
    Length有正确值,但是断点执行不到这一句.
    sizeof(Integer)有可能被编译器优化,等价于Length :=4;所以看不到执行效果.
      

  2.   

    在project菜单下选options...在对话框中选择compiler页中的debuging中的选项。同时选中左下角的default.OK?
      

  3.   

    确实奇怪,我刚才在机器上试的是对的结果:4。
    本来还以为有可能是Length与函数Length() 有重名的嫌疑,可是我用的变量就是Length。
    但以前我用Sizeof()确实也出过毛病:我用Sizeof()去读一个结构的长度尺寸,死活读不对,最后没办法只好一个一个变量的去计算。也许是盗版的一点Bug吧。
    把这个语句换在别的地方试试吧。
      

  4.   

    用sizeof函数时需要使用以下编译开关:{$A-}
    否则编译器会自动进行优化,把结构中的字段自动按照一定的边界对齐,这个时候sizeof函数返回的值会比真正的值大一点