相关疑难解决方法(0)

堆栈和堆的内容和位置是什么?

编程语言书籍解释了在堆栈上创建了值类型,并且在堆上创建了引用类型,而没有解释这两者是什么.我还没有看清楚这个问题.我理解堆栈是什么.但,

  • 它们在哪里和它们(物理上在真实计算机的记忆中)?
  • 它们在多大程度上受操作系统或语言运行时控制?
  • 它们的范围是什么?
  • 是什么决定了它们的大小?
  • 是什么让一个更快?

language-agnostic heap stack memory-management dynamic-memory-allocation

7847
推荐指数
27
解决办法
145万
查看次数

哪个更快:堆栈分配或堆分配

这个问题可能听起来相当简单,但这是我与另一位与我合作的开发人员的辩论.

我正在小心处理堆栈分配的东西,而不是堆分配它们.他正在跟我说话,看着我的肩膀并评论说这没有必要,因为他们的表现是明智的.

我一直认为堆栈的增长是恒定的时间,并且堆分配的性能取决于堆的当前复杂性(用于找到合适大小的孔)和解除分配(折叠孔以减少碎片,如如果我没有弄错的话,许多标准库实现在删除期间需要时间来完成此操作.

这让我觉得可能非常依赖于编译器.特别是对于这个项目,我使用Metrowerks编译器来实现PPC架构.对这种组合的洞察力将是最有帮助的,但总的来说,对于GCC和MSVC++,情况如何?堆分配不如堆栈分配高吗?没有区别吗?或者差异是如此微小,它变得毫无意义的微优化.

c++ memory heap performance stack

489
推荐指数
13
解决办法
12万
查看次数

哪些语言用于安全关键软件?

我正在研究安全关键软件的开发,特别是编程语言的选择对这种开发的影响.

请详细说明常用的语言及其原因.

safety-critical

168
推荐指数
11
解决办法
5万
查看次数

C中的面向对象

什么是一组漂亮的预处理器黑客(ANSI C89/ISO C90兼容),它在C中实现某种丑陋(但可用)的面向对象?

我熟悉一些不同的面向对象语言,所以请不要回答"学习C++!"这样的答案.我读过" 面向对象的ANSI C编程 "(当心:PDF格式)和其他一些有趣的解决方案,但我最感兴趣的是你:-)!


另请参见您能用C编写面向对象的代码吗?

c oop object

152
推荐指数
9
解决办法
7万
查看次数

什么是优秀的Linux/Unix书籍为一个先进的用户?

对于一个相对较新但不是全新的*nix用户,是否有任何好书可以获得更深入的知识(所以没有"Linux for dummies")?在大多数情况下,我不是在寻找从头到尾阅读的东西.更确切地说,当我需要知道如何做某事或者每当我有一个"如何再次这样做?"时,我宁愿拥有一些我可以拿起并阅读的东西.时刻.我想看到的一些领域是:

  • 命令行管理
  • bash脚本
  • 编程(虽然我想要的东西不仅仅与C程序员有关)

我希望它尽可能与平台无关(意味着它具有与任何Linux发行版以及BSD,Solaris,OS X等相关的信息),但我最常使用的unix系统是OS X和于Debian/Ubuntu.因此,如果我从拥有更多依赖于平台的书籍中受益最多,那么这些就是目标平台.

如果我能在一本书中得到所有这些,那很好,但我宁愿有更深入的材料而不是覆盖所有东西.因此,如果有任何书籍只涵盖其中一个区域,请发布.地狱,即使它与任何这些领域无关,也要发布它,你认为这是我所处位置的人应该知道的事情.

unix linux command-line

85
推荐指数
6
解决办法
4万
查看次数

extern关键字是什么意思?

什么是extern关键字是什么意思?我已经在函数声明面前看过了

extern void DoFoo ...
Run Code Online (Sandbox Code Playgroud)

c objective-c extern

56
推荐指数
2
解决办法
4万
查看次数

我如何在C中练习Unix编程?

经过五年的专业Java(以及在较小程度上,Python)编程并慢慢感觉我的计算机科学教育失控,我决定我想开阔我的视野/对世界的一般用处并做一些感觉更多(对我而言)就像我真的对机器有影响力.我选择学习C和Unix编程,因为我觉得这是许多最有趣的问题.

我的最终目标是能够以专业的方式做到这一点,如果没有其他原因,我必须每周花费40-50小时来支付账单的工作,所以它也可能是我编码的类型想要变得更好.当然,你没有被聘用去做你以前没做过的事情,所以现在我正在逐步加强.

为此,我从K&R开始,这是一个很好的资源,部分原因是每章都有练习.之后我转到了计算机系统:程序员的视角,然后是Unix环境中高级编程十章.完成本书后,我将阅读Unix网络编程.

史蒂文斯的书中我缺少的是缺乏编程问题; 它们主要记录功能并提供示例,以及一些章后问题.我觉得,通过挑战每一章a K&R中的知识,我会受益更多.我可以为每个函数编写一些测试程序,但这是一个不太理想的方法,因为(1)我可能没有比上升到一些外部挑战更少的动机,并且(2)我自然只会想到使用该函数以我已经发生过的方式.

所以,我想就如何练习提出一些建议.显然,我的第一选择是找到一些有Unix编程挑战的资源.我也考虑过寻找并尝试为一些开源C项目做出贡献,但这有点令人生畏,因为学习使用该软件会有一些开销,然后学习代码库.我能想到的唯一一个我经常使用的开源C项目是Python,我不确定开始这么容易.

也就是说,我对各种建议持开放态度,因为有些事情我甚至都没有想过.

c unix

48
推荐指数
2
解决办法
1万
查看次数

C++程序员应该如何在C中设计软件?

作为C++程序员,我们必须在将它们实现到类之前处理概念和相关概念的关系.

但是,如何用C等程序语言设计软件呢?如何在没有C++类的帮助下处理概念.

有关:

c c++

9
推荐指数
5
解决办法
1087
查看次数

从Windows转移到*nix编程平台

如何在Windows上花费超过10年后迁移到*nix平台?哪种口味易于处理,让我更舒服,然后我可以切换到更多stadard*nix口味?我现在已经推迟了一段时间.帮助我额外推动.

unix linux development-environment

7
推荐指数
1
解决办法
1388
查看次数

关于C/C++堆栈分配

在学习C++(和C)时,我对堆栈分配的工作有一些特别的疑问,我无法找到解决方案:

  1. 堆栈分配是否隐式调用malloc/free函数?如果不; 它如何确保堆栈分配和堆分配之间没有冲突?

  2. 如是; C++中的堆栈分配是否也隐式调用new/delete?如是; 重载一个类的new运算符会影响它的堆栈分配吗?

它在VC++中产生了令人困惑的结果; 但由于VC++并不完全符合标准(或者我听说过),我决定在这里问一下......

c c++ heap stack memory-management

6
推荐指数
5
解决办法
2万
查看次数