除非你知道buffer里面的内容,你才可以这么做,但是这又是你要做的,所以说,这是个误解的题目。任何类型都可以被表示成void*如果非要这么做的话,双方定义协议是必须的

解决方案 »

  1.   

    这样的,对方是php程序,我是php扩展,对方没有类型这个概念
      

  2.   

    这样的,对方是php程序,我是php扩展,对方没有类型这个概念这么看来,你要自己动手,实现一个PHP的类型系统。
      

  3.   

    对于内存来说,不管你是什么数据,它都是干吧吧的二进制,你怎么能够识别出整型和浮点的区别?BYTE和WORD的区别?必须要有规则才能识别啊
      

  4.   

    void是一个很抽象的类型,一般来说都使用“值+枚举类型”做为一个void* 来传送,“值”一般都是结构体,这样的话可以根据“枚举类型”来判断这个值是什么类型的。就是上面大家所说的协议。
    如果没有协议硬判断的话是不行的。
      

  5.   

    “里面的数据有可能是一个int值,也有可能是char*的字符串”只能 试探。先 是 (char*) 看看 是不是(除了 0, 8, 10, 13) , 不是 就是 int
      

  6.   

    类似:
    __isascii returns a non-zero value if c is an ASCII character (in the range 0x00 – 0x7F). 
      

  7.   

    建议学习一下mfc的序列化,
    《深入浅出MFC》里面有讲