c - 是否可以将类型推断添加到 C 语言中?

标签 c compiler-construction functional-programming type-inference

比方说,我们创建了 C 的重新实现,唯一的区别是 推断类型。存储类和修饰符仍然需要 给定(const、static、restrict 等),让我们将注意力限制在单个 暂时归档 C 程序。可以吗?主要有哪些 障碍?

关于可能导致类型推断问题的一些想法

  • 具有相同字段名称的结构需要手动消除歧义
  • 对于具有相同字段名称的 union 也是如此
  • casts 可能需要一个“from”注释,比如

    var i = (uint32_t -> uint64_t) *some_pointer;
    

这些问题需要一些用户注释,但不应该太多 很麻烦,是否有一些致命的问题使这个想法落空?

编辑:澄清一下,我不是在谈论添加泛型或参数多态性,只是对现有 C 类型进行类型推断。

2014 年编辑:任何对这个概念感兴趣的人都可能想研究一下 Rust

最佳答案

GCC 5.1 支持:

关于c - 是否可以将类型推断添加到 C 语言中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6513806/

相关文章:

c++ - 寻找有关报告的链接/编译时间优化的论文/研究

c++ - 编译器如何评估 c 中的 sizeof 运算符

functional-programming - 是否存在无法使用尾递归编写的问题?

javascript - 如何使用 ImmutableJS 计算列表中的项目?

c - 为什么 inode 编号从 1 而不是 0 开始?

c - RSA算法部分字符无法加密(Cryptography)

C 动态内存分配 - 从文件读取数据

c - 访问冲突写入位置 0x011CF000

c++ - GMP、MPC、MPFR的库文件和头文件是分开的,如何安装GCC?

haskell - 有没有办法 "remove"仿函数中不存储其参数的部分?