怎么将c移植到d05中
发表于:2024-11-30 作者:千家信息网编辑
千家信息网最后更新 2024年11月30日,本篇内容主要讲解"怎么将c移植到d05中",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么将c移植到d05中"吧!// In Ctypedef struc
千家信息网最后更新 2024年11月30日怎么将c移植到d05中
本篇内容主要讲解"怎么将c移植到d05中",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么将c移植到d05中"吧!
// In C
typedef struct foo_s
{
int x;
struct foo_s *next;
} foo_t;
//一个_s,_t.
// In D
struct foo_t//用后面那个.
{
int x;
foo_t *next;
}
还有c的不透明结构/c++的前向引用,
// In C
typedef struct foo_s foo_t;
// In D
struct foo_t;
翻译结构成员,也是差不多,Typedefs, Aliases,和本地类型,但还有些陷阱.命名函数/类型时,尽量与c一样.但有时c中名字有d的关键字.因而一般在前面加个_.然后在文档中说明.
// In C
typedef struct
{
//d关键字.
int module;
} foo_t;
// In D
struct foo_t
{
int _module;//加上_.
}
还有就是一些c库成员,包装在#define块中.在绑定及用c库时,易出错,转d容易,但用时要小心.
// In C
typedef struct
{
float x;
float y;
#ifdef MYLIB_GO_3D
float z;
#endif
} foo_t;
// In D
struct foo_t
{
float x;
float y;
//用版本限定块,与环境相关的名字
version(Go3D) float z;
}
编译时加上,-version=Go3D开关.如果绑定是库,则应用程序也要加.这就折腾了.c库也要这样编译.如果公开,则还要加上版本文档.真是坑人.
还有个坑,就是位域,一般用std.bitmanip库来解决,但不是特效药,因为c标准,未定义位域的顺序.
typedef struct
{
int x : 2;
int y : 4;
int z: 8;
} foo_t;
不保证字段的顺序,以及是否及在哪填空白.不同编译器,不同平台都不一样.必须得手动匹配.可以考虑用std.bitmanip.bitfields
// D用std.bitmanip.bitfields
struct foo_t
{
mixin(bitfields!(//来转换
int, "x", 2,
int, "y", 4,
int, "z", 8,
int, "", 2)); // padding
}
必须为8的倍数,上面是2个空位.从最不重要位开始.必须要与c编译器匹配.
其余是用
struct foo_t
{
int flags;
int x() @property { ... }
int y() @property { ... }
int z() @property { ... }
}
到此,相信大家对"怎么将c移植到d05中"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
编译
移植
不同
关键
关键字
内容
名字
就是
成员
文档
版本
类型
结构
编译器
顺序
学习
实用
更深
重要
差不多
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
c 数据库生成实体类
iphone网络安全行业
dayz能自己建服务器吗
沭阳县网络安全知识
上海呼啦圈网络技术
互联网科技核心技术
国外pe服务器
蓝队云服务器管理
银行网络安全基本情况介绍
精益软件开发 咨询
学校网络安全办公室建设
软件开发需要物理吗
吉林市委网络安全
网络安全主题海报 包含内容
服务器扩容会出现什么情况
网络安全 资讯
软件开发要不要交文化建设税
三级网络技术路由器 距离
网络安全保护条例第八条
杨丰挺 人社厅 网络安全
苏州智能服务器生产商
换服务器
dns服务器无法启动
app娃娃机软件开发
国外网络安全公司收费
青岛软件开发驻场服务
哆哒互联网科技有限公司
浙江省大学生网络安全竞赛
网络安全问题产生的原因
京友网络技术