d假装d头常是可变的

原文
如下无法编译:

// test.c
static int *do_something(int * const p){
  int * const data = p;
  *data = 2; // 错误:无法修改`'*data'常'`表达式
  return 0;
}//从sqlite中化简.

不知道该怎么办,因为constImportC中是传递性的.

保持现状或忽略错误,但这允许更多正确的程序成功编译.

刚刚产生的想法:D假装C头常可变的.实践中,始终要复制,因为可假定代码已在现有的C编译器上编译了,而实现并不受影响.这要归功于亚当的创意.
所以,在该示例中,'int*常 p'就变成了'int*p',其他同样.
可在AST注解常,以便确保头常.

是的,头常之下都可保持传递性,这会拒绝一些有效的C代码,但会避免无效D代码,这是公平的妥协.
直觉,一般都是可行的,剩下情况,则显式强制转换.

posted @   zjh6  阅读(12)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示