为什么头文件没有在其他编程语言中流行起来?

无能为力:

基于对以下问题的回答:为什么C ++具有头文件和CPP

我已经看到了答案并理解了答案-那么为什么没有流行呢?C#Java?

罗迪:

因为它是解决接口与实现问题的快速,肮脏和微不足道的解决方案。

它完全依赖于C预处理器,它与抽屉中最钝的工具有关。

其他解决方案避免了以下问题:

  • 两个文件,其中一个将执行
  • 由于多个定义,链接时符号重复
  • 由于多个“静态”常量,代码膨胀
  • 要求设置标头防护以防止多个包容
  • 违反DRY原则
  • 和更多...

Dviljoen认为我对此很努力,他是对的。它是打孔卡和纸带时代的40年历史尽管上面列出了所有潜在的难题和问题,但还是有大量使用源/头文件排列的C / C ++内置的高质量软件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么C ++中的void方法可以返回void值,而在其他语言中却不能呢?

有没有一种方法可以使用Python或任何其他编程/脚本语言来更改多个文件的扩展名?

为什么没有其他字符出现?

为什么域驱动设计似乎仅在静态语言(例如C#和Java)中流行?

使库在其他语言中可用

为什么C这么快,为什么其他语言没有那么快?

Scheme中的闭包与其他语言中的常规闭包有什么区别?

什么是“ Class ClassName;” 放在其他类定义的头文件中时意味着什么?

在其他语言中,Cairo Graphics是否比c慢?以Haskell为例?

为什么要在PHP或其他语言中使用动态变量(变量变量)

为什么我的互斥锁没有在其他线程将其锁定之前锁定?

在C语言中,为什么%s没有给出值就可以工作?

它没有在其他if(i == 1)中执行代码,为什么会这样呢?

django中的某些静态文件在其他什么都没有的情况下会提供404服务-为什么?

为什么许多编程语言中的集合不是真正的集合?

为什么在所有编程语言中,默认参数必须始终位于所有非默认参数的右侧?

为什么在非数学或其他语言中的SQL中为null * 0 = null

在其他类的头文件中使用枚举

为什么在C语言的标头中使用'#'符号?为什么没有其他符号?

Gmail或任何其他流行的Webmail服务会从html电子邮件中清除javascript吗?如果没有,为什么?

编程语言中“ metal”文件夹的用途是什么?

为什么我的布尔变量没有在其他类上更新?

为什么git commit的更改在其他2次提交之后消失了(我没有更改受影响的文件)?

为什么文件的Inode号发生变化,而没有其他变化?

为什么编程语言中没有“return if”语句?

没有头文件如何使用C++调用其他模块中的函数?

为什么 WPF XAML 前端在其他机器上看起来不同?

如何在其他类头文件中包含类头文件

当我在其他函数中修改变量“num1”时,为什么它没有改变?