小编mcz*_*nek的帖子

使用inhertitance在C++中销毁的析构函数和成员变量的顺序是什么?

与这些问题非常相似的问题,除了不完全相同:在C++中调用析构函数和构造函数的顺序是什么顺序 成员构造函数和析构函数调用

我想知道:派生类的成员变量是在调用基类的析构函数之前或之后销毁的吗?

这是使用Visual Studio 2008的C++.谢谢.

c++ inheritance destructor visual-studio-2008

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

如果内存池比 malloc 快,为什么 malloc 不在幕后使用它们?

我一直听说内存池在分配内存时可以显着提高性能..那么为什么传统的 malloc 实现不以某种方式使用它们呢?

我知道部分原因是内存池使用固定大小的内存块,但似乎有些没有,他们唯一需要的是提前获取一点额外的内存。有没有一种方法可以将它们充分概括用于此类目的?

c c++ malloc memory-pool

9
推荐指数
1
解决办法
520
查看次数

如何以不需要比产生的收益更多的开销的方式实现惰性评估?

我知道有些地方懒惰评估会阻止需要计算。例如,将两个数字相加,然后将它们传递给一个最终从未被使用的函数参数。

但在我看来,存储和加载稍后要使用的操作会产生很多开销,而且这种开销通常会抵消任何收益。

有人可以解决这个问题吗?

haskell runtime compilation lazy-evaluation

6
推荐指数
1
解决办法
184
查看次数

是否可以在 C++ 中的单个操作中同时获得除法的模数和商数?

我听说当处理器执行 / 或 % 时,它将执行相同的操作,但以一种方式返回商,另一种方式返回余数。

是否可以在一次操作中同时获得两者?也许如果我加入一段汇编代码(我从未做过)?

c++ assembly integer-division modulus

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

C++:如果抛出异常,超出范围的对象是否被销毁?

通常它会在范围结束时被破坏.但是如果抛出异常,我可以看到问题.

c++ scope exception throw visual-studio-2008

4
推荐指数
1
解决办法
2848
查看次数

为什么要预测分支,而不是简单地并行执行?

我相信在创建CPU时,当选择错误的分支时,分支预测是一个主要的减速.那么为什么CPU设计师选择一个分支而不是简单地执行两个分支,然后一旦你知道哪一个被选中就切掉一个?

我意识到这只能在短数量的指令中深入2或3个分支,或者并行阶段的数量会变得非常大,所以在某些时候你仍然需要一些分支预测,因为你肯定会遇到更大的分支,但是不会像这样的几个阶段有意义吗?在我看来,它会显着加快速度,值得增加一点复杂性.

即使只是一个分支深度几乎有一半的时间被错误的分支吃掉,对吧?

或者它可能已经有点像这样?当您进行组装时,分支通常只在两种选择中进行选择,对吗?

cpu-architecture branch-prediction

3
推荐指数
1
解决办法
470
查看次数

C++ 线程安全:如果只有一个线程可以写入非原子变量,但多个线程从中读取..会遇到问题吗?

如果一个线程读取另一个线程正在写入的非原子原始变量,是否保证在写入之前或之后读取该值,或者它是否可以在写入期间以某种方式读取某些损坏的版本?

我意识到诸如链表之类的集合是另一回事。

c++ concurrency

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

在对象之外更改对象的变量是否被视为副作用?

我试图理解函数式和面向对象的编程。我目前试图理解的是面向对象编程中副作用的概念,特别是当它与提高程序的安全性有关时。

我将“副作用”理解为任何改变链接到一个对象内的一个函数的变量的任何东西,这些变量被一个对象使用的不同函数使用。但是如果允许在对象外部设置对象变量,但不允许在对象内部的函数内设置呢?

在我看来,这比将它设置在另一个函数中更安全。并且该对象中使用此变量的函数会知道没有其他函数会在不通知的情况下更改它。

我错过了什么吗?你还会认为这是副作用吗?在对象初始化时设置一堆变量怎么样?

haskell functional-programming side-effects

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

是否有可能知道从文件中读取的长文本将在 C 中出现多少个字符?

我知道在 C++ 中,你可以检查字符串的长度,但在 C 中,没有那么多。

是否可以知道文本文件的文件大小,以了解文件中有多少个字符?

是每个字符一个字节还是其他标题是否秘密存储,无论我是否设置它们?

出于性能原因,我想避免在遍历文件时对每个字符执行空检查。

谢谢。

c filesize char

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

为什么会出现内存损坏...只有当我们不打印变量被破坏时?

我在C中有一个奇怪的错误.我们有以下代码,我首先尝试了它没有中间两个fprintf(f, "Passed PKLEN pklen: %u ,params->pklen: %u \n", pklen, params->pklen);函数,并且得到了看起来像内存损坏,pklen停止等于params->pklen.当我添加这两个中间部分println以确定实际腐败发生的位置时...两者相等于最后一个.

void ntru_get_seed(uint8_t *msg, uint16_t msg_len, NtruIntPoly *h, uint8_t *b, const NtruEncParams *params, uint8_t *seed) {
  FILE *f = fopen("log.txt", "a");
  uint16_t oid_len = sizeof params->oid;
  uint16_t pklen = params->pklen;
  fprintf(f, "Passed PKLEN pklen: %u ,params->pklen: %u \n", pklen, params->pklen);
  fflush(f);
?
  uint8_t bh[ntru_enc_len(params)];
  fprintf(f, "Passed PKLEN pklen: %u ,params->pklen: %u \n", pklen, params->pklen);

  ntru_to_arr(h, params->q, (uint8_t*)&bh);
  fprintf(f, "Passed PKLEN pklen: %u ,params->pklen: …
Run Code Online (Sandbox Code Playgroud)

c memory-corruption

0
推荐指数
1
解决办法
127
查看次数