int mm(int x)
{
  return x * x;
}
void updata( )
{
  LPBYTE p = (LPBYTE) mm; /* 这句可以执行 */
  p[0] = 0x20; /* 这句编译通过,但执行时产生异常,如何处理 */
}问题:为什么会产生异常,如何才能完成updata的任务???

解决方案 »

  1.   

    你这个是什么意思?
    mm是函数,怎么能被强制转换成LPBYTE?强制转换编译器不会报错,但转换出来会是什么东东?
      

  2.   

    我希望mm函数不能被调用,而是用来保存数据的在VC中使用,不会有错误呀,我编译过的
      

  3.   

    彻底理解不了你这么做的用意函数指针大都是用在回调函数上,你这么做在意义上想不通,在语法上看不懂PS:把mm当作函数,用的时候diao一下,不用就放在一边,这可不太好
      

  4.   

    我在DOS下可以这样使用的(把 LPBYTE 修改成 unsigned char * 即可),但在WINDOWS里为什么不能呢,要如何才能使用!!怎么没有人知道呀????!!!!**
    你这么做在意义上想不通(我认为有用就可以啦,谢谢)
      

  5.   

    我希望mm函数不能被调用,而是用来保存数据的在VC中使用,不会有错误呀,我编译过的
    ???????????????????????????保存数据????用static变量或者全局变量阿?
    为什么要这么做呢?