如何将c移植到d06中
发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,这篇文章主要介绍"如何将c移植到d06中",在日常操作中,相信很多人在如何将c移植到d06中问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"如何将c移植到d06中"的疑惑
千家信息网最后更新 2025年11月11日如何将c移植到d06中
这篇文章主要介绍"如何将c移植到d06中",在日常操作中,相信很多人在如何将c移植到d06中问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"如何将c移植到d06中"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
方法.但问题是...里面放什么,取决于c编译器,从最不重要位还是最重要位开始.及字段间是否有空白间隙.与std.bitmanip.bitfields遇着的问题一样.
我遇见过,然后用单个不能访问它的标志位字段,如果在多平台同其他编译器的库一起运行,没有简单解决方法.只有交给用户了.特定绑定,针对特定编译器/特定平台.
函数指针.一般作为回调.d有自己的语法,所以必须适配.
int function() MyFuncPtr;
//d风格指针声明
格式为中类型->函数关键字->参数列表->函数指针名
直接用MyFuncPtr也可以,但也可定义别名.
alias int function() da_MyFuncPtr;
da_MyFuncPtr MyFuncPtr;
//没啥意思
int foo(int i)
{
return i;
}
void main()
{
int function(int) fooPtr;//
fooPtr = &foo;
alias int function(int) da_fooPtr;
da_fooPtr fooPtr2 = &foo;
import std.stdio;
writeln(fooPtr(1));
writeln(fooPtr2(2));
}
//这样转换
// In C, foo.h
typedef int (*MyCallback)(void);
// In D
extern( C ) alias int function() MyCallback;
用别名,这样,你可像c一样用.
// In C, foo.h
extern void foo(int (*BarPtr)(int));
// In D.
// 1这样
extern( C ) void foo(int function(int) BarPtr);
// 2这样
extern( C ) alias int function(int) BarPtr;
extern( C ) void foo(BarPtr);
2较好,可以复用.接下来,构中内联声明函数指针.
// In C, foo.h
typedef struct
{
int (*BarPtr)(int);
} baz_t;
// In D
struct baz_t
{
extern( C ) int function(int) BarPtr;
}
静态绑定中的函数声明.d中不必声明.实现即是声明.也与你实现/声明位置无关.为链接c库,不必也无权访问实现,因而绑定.为了调用他们,d要知道存在他们.以便链接时找到正确地址.因此,必须声明.
// In C, foo.h
extern int foo(float f);
extern void bar(void);
// In D
extern( C )
{
int foo(float);
void bar();
}
动态绑定.用函数指针而不是函数声明.简单声明是不行的.先要考虑初化函数指针.
// D中.
int foo() { return 1; }
void* getPtr() { return cast(void*) &foo; }
void main()
{
int function() fooPtr;
fooPtr = getPtr();
}
//编译得到
fptr.d(10): Error: 不能隐式把(getPtr())的(void*)类型转为`int function()`
到此,关于"如何将c移植到d06中"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
函数
指针
移植
学习
编译
方法
编译器
问题
重要
接下来
别名
字段
平台
更多
类型
链接
帮助
不行
实用
位置
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
sql库数据库
重庆数据软件开发服务标准
devops和服务器运维
安全可靠服务器
大话服务器查询
smartbi服务器编码
西安软件开发平均工资多少钱
应用程序什么时候需要服务器
手机qq文件没上传到服务器
网络安全产品的现状发展
软件开发营运推广
数据库备份流程文档
网络安全法第45条规定
服务器里面的资料能导出来吗
山东服务器管理软件物理机
云计算服务器解决方案
比较出名的软件开发公司
数据库读权限
荣耀30更新数据库
手游服务器租赁网站
JAVA无框架数据库线程
单位无资金投入网络安全
学习网络安全绘画
深圳一流网络技术有限公司
中药标本数据库
海南通用软件开发参考价
云主机搭建vpn服务器
卫健系统网络安全会议内容
静海区电子网络技术售后服务
新澜网络技术有限公司怎么样