以下是引用犬虫门心在2011-2-18 16:43:01的发言:
首先,你的写法是有语法错误的,应该为:
a = (struct A1)b;
要注意一个问题,C语言是支持结构体实例之间的直接赋值的;而其赋值本质是:内存块赋值!将b的内存内容(当然是按照struct A1的格式和长度为基础的)直接覆盖到a所占用内存空间中!
但此时要特别注意的是:
此时的C语言是不可能关心相关内存空间的“人文内容”的!要特别注意!
以后,再使用a的时候,对a的空间当然按a本身的类型进行解释,至于解释成什么,那就需要更深的计算机原理的知识了。但这至少有一个结论:如果你对计算机原理了解不深,那么请不要使用这种你无法掌控的方法!
首先,你的写法是有语法错误的,应该为:
a = (struct A1)b;
要注意一个问题,C语言是支持结构体实例之间的直接赋值的;而其赋值本质是:内存块赋值!将b的内存内容(当然是按照struct A1的格式和长度为基础的)直接覆盖到a所占用内存空间中!
但此时要特别注意的是:
此时的C语言是不可能关心相关内存空间的“人文内容”的!要特别注意!
以后,再使用a的时候,对a的空间当然按a本身的类型进行解释,至于解释成什么,那就需要更深的计算机原理的知识了。但这至少有一个结论:如果你对计算机原理了解不深,那么请不要使用这种你无法掌控的方法!
你试过a=(struct A1)b;么?没实践过别臆测。
别动不动就长篇大论,误人子弟。
My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.