在两个等价的C结构之间转换
发布时间:2020-12-16 09:49:05 所属栏目:百科 来源:网络整理
导读:参见英文答案 Casting one C structure into another????????????????????????????????????8个 编译以下代码时: struct Point { int x; int y;};struct Position { int x; int y;};struct Point p = {1,2};struct Position q = (struct Position)p; 发生错
参见英文答案 >
Casting one C structure into another????????????????????????????????????8个
编译以下代码时: struct Point { int x; int y; }; struct Position { int x; int y; }; struct Point p = {1,2}; struct Position q = (struct Position)p; 发生错误:
当这些结构实际上具有相同的定义时,是否有某种方式在不同的结构实例之间进行转换? 解决方法
对于C语言中的结构类型,没有“cast”这样的东西. C语言仅支持标量类型的转换和void.
当在()内使用任何其他类型时,它不再是强制转换.它只能作为复合文字语法的一部分有效.复合文字是C语言的完全不同的特征,与任何演员表无关.例如,这是正确的 struct Position q = (struct Position) { 1,2 }; 在您的情况下,您显然需要重新连接序列 q = *(struct Position *) &p; C语言声明这种访问被认为是有效的,只要您的结构声明确实是同步的.您还可以考虑简单地将一个对象存储到另一个对象. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- KEIL软件的Error: Flash Download failed - Coul
- 如何在OSX上的XCode中的动态库中解压缩C中的导出
- 在Oracle SQL Developer中使用Ref Cursor
- ruby-on-rails – 无法在Rails中使用guard-minit
- ruby-on-rails – Ruby中的PI类型是什么?
- Quick-cocos2d-x如何判断点击的sprite位置是否透
- 在线钢琴曲播放器
- 《高性能网站建设指南》阅读笔记_规则14- 使Ajax
- swift详解之十六-----------GCD基础部分
- iphone – NSString stringWithUTF8String中的内
热点阅读