编程语言书籍解释了在堆栈上创建了值类型,并且在堆上创建了引用类型,而没有解释这两者是什么.我还没有看清楚这个问题.我理解堆栈是什么.但,
language-agnostic heap stack memory-management dynamic-memory-allocation
这个问题可能听起来相当简单,但这是我与另一位与我合作的开发人员的辩论.
我正在小心处理堆栈分配的东西,而不是堆分配它们.他正在跟我说话,看着我的肩膀并评论说这没有必要,因为他们的表现是明智的.
我一直认为堆栈的增长是恒定的时间,并且堆分配的性能取决于堆的当前复杂性(用于找到合适大小的孔)和解除分配(折叠孔以减少碎片,如如果我没有弄错的话,许多标准库实现在删除期间需要时间来完成此操作.
这让我觉得可能非常依赖于编译器.特别是对于这个项目,我使用Metrowerks编译器来实现PPC架构.对这种组合的洞察力将是最有帮助的,但总的来说,对于GCC和MSVC++,情况如何?堆分配不如堆栈分配高吗?没有区别吗?或者差异是如此微小,它变得毫无意义的微优化.
我正在研究安全关键软件的开发,特别是编程语言的选择对这种开发的影响.
请详细说明常用的语言及其原因.
什么是一组漂亮的预处理器黑客(ANSI C89/ISO C90兼容),它在C中实现某种丑陋(但可用)的面向对象?
我熟悉一些不同的面向对象语言,所以请不要回答"学习C++!"这样的答案.我读过" 面向对象的ANSI C编程 "(当心:PDF格式)和其他一些有趣的解决方案,但我最感兴趣的是你:-)!
另请参见您能用C编写面向对象的代码吗?
对于一个相对较新但不是全新的*nix用户,是否有任何好书可以获得更深入的知识(所以没有"Linux for dummies")?在大多数情况下,我不是在寻找从头到尾阅读的东西.更确切地说,当我需要知道如何做某事或者每当我有一个"如何再次这样做?"时,我宁愿拥有一些我可以拿起并阅读的东西.时刻.我想看到的一些领域是:
我希望它尽可能与平台无关(意味着它具有与任何Linux发行版以及BSD,Solaris,OS X等相关的信息),但我最常使用的unix系统是OS X和于Debian/Ubuntu.因此,如果我从拥有更多依赖于平台的书籍中受益最多,那么这些就是目标平台.
如果我能在一本书中得到所有这些,那很好,但我宁愿有更深入的材料而不是覆盖所有东西.因此,如果有任何书籍只涵盖其中一个区域,请发布.地狱,即使它与任何这些领域无关,也要发布它,你认为这是我所处位置的人应该知道的事情.
经过五年的专业Java(以及在较小程度上,Python)编程并慢慢感觉我的计算机科学教育失控,我决定我想开阔我的视野/对世界的一般用处并做一些感觉更多(对我而言)就像我真的对机器有影响力.我选择学习C和Unix编程,因为我觉得这是许多最有趣的问题.
我的最终目标是能够以专业的方式做到这一点,如果没有其他原因,我必须每周花费40-50小时来支付账单的工作,所以它也可能是我编码的类型想要变得更好.当然,你没有被聘用去做你以前没做过的事情,所以现在我正在逐步加强.
为此,我从K&R开始,这是一个很好的资源,部分原因是每章都有练习.之后我转到了计算机系统:程序员的视角,然后是Unix环境中的高级编程十章.完成本书后,我将阅读Unix网络编程.
史蒂文斯的书中我缺少的是缺乏编程问题; 它们主要记录功能并提供示例,以及一些章后问题.我觉得,通过挑战每一章a K&R中的知识,我会受益更多.我可以为每个函数编写一些测试程序,但这是一个不太理想的方法,因为(1)我可能没有比上升到一些外部挑战更少的动机,并且(2)我自然只会想到使用该函数以我已经发生过的方式.
所以,我想就如何练习提出一些建议.显然,我的第一选择是找到一些有Unix编程挑战的资源.我也考虑过寻找并尝试为一些开源C项目做出贡献,但这有点令人生畏,因为学习使用该软件会有一些开销,然后学习代码库.我能想到的唯一一个我经常使用的开源C项目是Python,我不确定开始这么容易.
也就是说,我对各种建议持开放态度,因为有些事情我甚至都没有想过.
作为C++程序员,我们必须在将它们实现到类之前处理概念和相关概念的关系.
但是,如何用C等程序语言设计软件呢?如何在没有C++类的帮助下处理概念.
有关:
如何在Windows上花费超过10年后迁移到*nix平台?哪种口味易于处理,让我更舒服,然后我可以切换到更多stadard*nix口味?我现在已经推迟了一段时间.帮助我额外推动.
在学习C++(和C)时,我对堆栈分配的工作有一些特别的疑问,我无法找到解决方案:
堆栈分配是否隐式调用malloc/free函数?如果不; 它如何确保堆栈分配和堆分配之间没有冲突?
如是; C++中的堆栈分配是否也隐式调用new/delete?如是; 重载一个类的new运算符会影响它的堆栈分配吗?
它在VC++中产生了令人困惑的结果; 但由于VC++并不完全符合标准(或者我听说过),我决定在这里问一下......
c ×5
c++ ×3
heap ×3
stack ×3
unix ×3
linux ×2
command-line ×1
extern ×1
memory ×1
object ×1
objective-c ×1
oop ×1
performance ×1