小编pun*_*ess的帖子

main()周围没有花括号 - 为什么这有效?

我正在编写一本关于C++的书和关于它有错误的章节(我留下了一些小问题,但主要是这个):

int main()
try { 
        // our program (<- this comment is literally from the book)
        return 0;
}
catch(exception& e) {
    cerr << "error: " << e.what() << '\n';
    return 1;
}
catch(...) {
    cerr << "Unknown exception\n";
    return 2;
}
Run Code Online (Sandbox Code Playgroud)

这编译但当然没有做任何事情,所以我仍然在想

  1. 为什么在main()之后没有一组花括号括起来?是块还是我称之为"流行语"(ha!)是main()的一部分还是没有?
  2. 如果它们是函数,那么在catch之前没有"int"(无论如何)?
  3. 如果它们不是功能,它们是什么?
  4. 重新捕捉(...),我从未见过用这种方式使用的椭圆.我可以在任何地方使用省略号来表示"任何东西"吗?

c++ syntax error-handling

27
推荐指数
3
解决办法
2106
查看次数

从用户模式切换到内核模式

在我的操作系统类中,我被问到从用户切换到内核模式是否具有特权.这不是特定于操作系统的.起初我想是的,但它似乎是一个很大的Catch 22.我提到了我的教科书:

硬件允许特权指令仅在内核模式下执行....

切换到内核模式的指令是特权指令的示例.

Gagne,Greg; Abraham Silberschatz; Peter B. Galvin(2010-01-26).操作系统概念(第22页).Wiley Higher Ed.Kindle版.

所以我们从用户模式开始.要切换到内核模式,需要特权指令.必须在内核模式下执行特权指令,因此我们必须切换到内核模式以启用切换到内核模式.

我认为系统不允许用户直接切换到内核模式,但是当用户试图执行另一个特权指令时,它由内核完成.那是对的吗?

operating-system kernel

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

为什么我需要在同名的.c文件中包含.h头文件?

所以我在Head First C中跟随我们,我们正在学习一起编译多个文件的章节.其中之一是encrypt.c.

#include "encrypt.h"


void encrypt(char *message)
{
  char c;
  while (*message) {
   *message = *message ^ 31;
   message++;
  }
}
Run Code Online (Sandbox Code Playgroud)

encrypt.h文件在结尾处以分号重复第一行,为什么我需要它?我明白为什么我需要头文件来修复在定义之前使用函数的问题,所以我可以理解#including它在一个使用的文件中encrypt.c,但为什么我需要它在里面encrypt.c?这只是"因为"原因之一吗?

c

8
推荐指数
3
解决办法
3199
查看次数

time()和gettimeofday()之间的差异以及为什么会导致seg错误

我正在尝试测量系统调用的时间,我尝试使用time(0)gettimeofday()在此程序中,但每当我使用gettimeofday()它时seg故障.我想我可以使用,time(0)但我想知道为什么会这样.我知道你们可以看看它并看到问题所在.请不要对我大喊大叫!

我想得到时间,但不能保存在任何地方.

我已经尝试了我能想到的每种代码组合,但是我在这里粘贴了最简单的版本.我是C和Linux的新手.我看一下.stackdump文件,但这对我来说毫无意义.

GetRDTSC位于util.h中rdtsc(),正如人们所预料的那样.现在它设置为10次迭代但后来循环将运行1000次,没有printf.

#include <stdio.h>
#include <time.h>
#include "util.h"

int main() {

    int i;
    uint64_t cycles[10];

    for (i = 0; i < 10; ++i) {

         // get initial cycles
         uint64_t init = GetRDTSC();

         gettimeofday(); // <== time(0) will work here without a seg fault.

         // get cycles after
         uint64_t after = GetRDTSC();   

         // save cycles for each operation in an array
         cycles[i] = after - init;

         printf("%i\n", …
Run Code Online (Sandbox Code Playgroud)

c linux time segmentation-fault

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

绝望:如何安装Haskell School of Expression图形pkg,Windows XP和7

我已经下载了Haskell平台,并且我一直在使用ghci没有问题,但就是这样.我需要使用SOE图形文件,然后我下载了文件(我认为它是tar.gz),但无论我在哪里看,Windows的说明似乎都跳过了步骤或不工作.即使我把它从一个埋藏的文件夹移动到ghci所居住的垃圾箱,我也无法让阴谋工作(从不在范围内).对于OpenGL或GLFW或其他任何调用都是如此.

我需要为我的桌面(Win XP SP2)和我的笔记本电脑(Win 7)提供明确的分步说明.如果您将我指向现有页面,我可能已经到过那里并试图按照说明顺利完成.看看你是否可以澄清这个过程.

请跟我说话,好像我是个白痴.如果你告诉我输入内容,我需要知道我在哪里打字.如果我需要下载文件,请告诉我它所属的文件夹.请.

第一:我应该卸载我已经下载的所有内容以重新开始,如果是这样,我只是删除文件还是必须进入注册表?


我实际上取得了一些进展.我得到了安装GLFW的cabal.我输入-i./SOE/src,我得到了正确的结果.然后我去了:加载Draw.lhs并得到了

编译SOE(SOE.hs,解释)

SOE.hs:136:31:无法将预期类型'Bool'与实际类型'()'匹配预期类型:GLFW.WindowCloseCallback实际类型:IO()在'closeWindow_'调用的返回类型中在第二个'($ =)'的参数,即'closeWindow_ eventsChan'失败,模块加载:无

????? 我只是想澄清一下,我自己没有对SOE.hs文件做任何事情.

graphics install haskell expression

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

查找以某个字母开头的所有单词

我在R和正则表达式中都非常生疏.我试过阅读R的正则表达式帮助文件,但它根本没有帮助!

我有一个包含3列的数据框:

  1. 词汇表,即在语料库中找到的500个最常见单词的列表
  2. 计数,单词出现的时间,以及
  3. 概率,计数除以所有字数的总和

列表从最常见到最不常见排列,因此不按字母顺序排列.

我需要为所有以相同字母开头的单词拉出整行.(我不需要循环遍历所有字母表,我只需要一个字母的结果.)

我不只是询问正则表达式,而是如何在R中编写它,所以我将结果放在一个新的数据帧中.

regex string r

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

遍历二叉搜索树C++

我正在编写一个编程任务并编写一堆函数来实现二叉搜索树,并给出了一些函数.我以为我理解了递归,但是如果你愿意,我会一直挂断转换方向.

这是赋值的函数:

static void deleteAll(BSTNode<Data>* n) {
  if (0 == n) return;
  deleteAll(n->left);
  deleteAll(n->right);
  delete n;
}
Run Code Online (Sandbox Code Playgroud)

要删除一棵非常短的树,

    root
   /    \
lefty  righty

我打电话deleteAll(root).n != 0所以现在我打电话deleteAll(lefty).n != 0所以我打电话deleteAll(lefty->left).当然没有左节点.当我添加lefty节点时,我的构造函数将left,right和parent指针初始化为0,所以现在n == 0.所以我退出了这个功能,永远不会删除.我怎么去deleteAll(n->right)

正如我所说,提供此功能所以我不应该改变它.我想也许我不得不打电话deleteAll(b.begin())或者b.end()从左边或最右边的节点开始,但是每当我在脑海里经历它时,我都会打n == 0.

请帮我理解.

c++ recursion binary-search-tree

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

D3:这种类型的图表和代码示例是否有名称?

我在几个地方看过这种条形图.这是来自LinkedIn.该页面相当复杂.

单击某个条形时,它会重新计算并重新排序其他列中的条形.在这里,点击了San Fran.

在d3中有这样的例子吗?

它有什么具体名称吗?

来自LinkedIn的示例

bar-chart d3.js

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