d假装d头常是可变的
原文
如下无法编译:
// test.c
static int *do_something(int * const p){
int * const data = p;
*data = 2; // 错误:无法修改`'*data'常'`表达式
return 0;
}//从sqlite中化简.
不知道该怎么办,因为const
在ImportC
中是传递性
的.
保持现状或忽略常
都错误
,但这允许更多正确
的程序成功编译
.
刚刚产生的想法:D假装C头常
是可变
的.实践中,始终要复制,因为可假定
代码已在现有的C编译器
上编译了,而实现
并不受影响.这要归功于亚当
的创意.
所以,在该示例中,'int*常 p'
就变成了'int*p'
,其他同样.
可在AST
中注解常
,以便确保头常
.
是的,头常
之下都可保持传递性
,这会拒绝一些有效的C代码
,但会避免无效
的D代码
,这是公平的妥协
.
直觉,一般都是可行的,剩下情况,则显式强制转换
.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现