我正在编写一本关于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)
这编译但当然没有做任何事情,所以我仍然在想
在我的操作系统类中,我被问到从用户切换到内核模式是否具有特权.这不是特定于操作系统的.起初我想是的,但它似乎是一个很大的Catch 22.我提到了我的教科书:
硬件允许特权指令仅在内核模式下执行....
切换到内核模式的指令是特权指令的示例.
Gagne,Greg; Abraham Silberschatz; Peter B. Galvin(2010-01-26).操作系统概念(第22页).Wiley Higher Ed.Kindle版.
所以我们从用户模式开始.要切换到内核模式,需要特权指令.必须在内核模式下执行特权指令,因此我们必须切换到内核模式以启用切换到内核模式.
我认为系统不允许用户直接切换到内核模式,但是当用户试图执行另一个特权指令时,它由内核完成.那是对的吗?
所以我在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
?这只是"因为"原因之一吗?
我正在尝试测量系统调用的时间,我尝试使用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) 我已经下载了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文件做任何事情.
我在R和正则表达式中都非常生疏.我试过阅读R的正则表达式帮助文件,但它根本没有帮助!
我有一个包含3列的数据框:
列表从最常见到最不常见排列,因此不按字母顺序排列.
我需要为所有以相同字母开头的单词拉出整行.(我不需要循环遍历所有字母表,我只需要一个字母的结果.)
我不只是询问正则表达式,而是如何在R中编写它,所以我将结果放在一个新的数据帧中.
我正在编写一个编程任务并编写一堆函数来实现二叉搜索树,并给出了一些函数.我以为我理解了递归,但是如果你愿意,我会一直挂断转换方向.
这是赋值的函数:
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
.
请帮我理解.
我在几个地方看过这种条形图.这是来自LinkedIn.该页面相当复杂.
单击某个条形时,它会重新计算并重新排序其他列中的条形.在这里,点击了San Fran.
在d3中有这样的例子吗?
它有什么具体名称吗?