我正在研究一个进程的Linux IA-32内存模型,我有一个简单的问题.图片中的灰色区域包含什么?它们仅用于显示记忆的开头和结尾吗?那么,文本是从0x0开始,堆栈是从0xFFFFFFFF开始的吗?
重新开放: 嗨,在操作系统课程中,我正在参加这个问题再次变得相关.具体来说,我需要知道灰色区域包含什么.基于到目前为止的答案,我可以看到它在顶部包含内核代码,在底部包含空指针解除引用页面.但是内核代码是什么?我不认为它是整个操作系统本身,但它可能是嵌入式调度程序,内核库调用还是?
最诚挚的问候,Lasse Espeholt
alt text http://img403.imageshack.us/img403/3156/capturecj.png
我经常需要使用属性来扩充对象.直到现在(厌倦了它;)它也很丑陋)我这样做了:
var someListOfObjects = ...;
var objectsWithMyProperty = from o in someListOfObjects
select new
{
o.Name, /* Just copying all the attributes I need */
o.Address, /* which may be all of them. */
SomeNewProperty = value
};
Run Code Online (Sandbox Code Playgroud)
有一个聪明的方法来做到这一点?我以前做的是这样的:
var objectsWithMyProperty = from o in someListOfObjects
select new
{
OldObject = o, /* I access all of the old properties from here */
SomeNewProperty = value
};
Run Code Online (Sandbox Code Playgroud)
我想这可以用一些反思来完成,但我想有一种更快的方法可以使某些东西等同于第一种繁琐的方法.
谢谢,Lasse
我有这段代码:
let rec h n z = if n = 0 then z
else <@ (fun x -> %(h (n - 1) <@ x + %z @>)) n @>
Run Code Online (Sandbox Code Playgroud)
从http://www.cs.rice.edu/~taha/publications/journal/dspg04a.pdf中的MetaOcaml示例转换而来
在本文中,解释了上面的例子将产生以下参数3
和.<1>.
(在MetaOcaml表示法中):
.<(fun x_1 -> (fun x_2 -> (fun x_3 -> x_3 + (x_2 + (x_1 + 1))) 1) 2) 3>.
Run Code Online (Sandbox Code Playgroud)
正如你所看到x
的那样被替换为x_1
,x_2
等等,因为x
否则只会引用x
最里面的fun
.
但是在F#中这是不允许的.我得到编译时错误:"变量'x'在引号中绑定,但用作拼接表达式的一部分.这是不允许的,因为它可能会逃避其范围." 所以问题是:如何改变它以便编译并具有与MetaOcaml输出相同的语义?
更新评论:我使用PowerPack来实际评估报价.但我不认为这与它有任何关系,因为错误是在编译时.到目前为止,QuotationEvaluation仍然有效.但是,我知道它可能不是最有效的实现.
更新Tomas的回答:
我真的不希望它x
是全局的,或者是为了逃避范围.但我想要的是相当于
let rec h …
Run Code Online (Sandbox Code Playgroud) 我希望在Ocaml中完成以下操作,但是前F#中的答案可以让我有足够的洞察力来自己进行转换.
一个有序的电源组(从最大设置到最小设置)将使我更进一步解决下面的问题,我希望理想地想要解决.
对于效率低下的图形着色,我需要一个函数,它给出了以下内容:
f({a,b,c,d}):
{{a,b,c,d}}
{{a,b,c},{d}}
{{a,b,d},{c}}
{{a,c,d},{b}}
{{b,c,d},{a}}
{{a,b},{c,d}}
{{a,c},{b,d}}
{{a,d},{b,c}}
{{a},{b,c},{d}}
{{a},{b},{c,d}}
{{a},{b,d},{c}}
...
{{a},{b},{c},{d}}
Run Code Online (Sandbox Code Playgroud)
作为集合的列表(或更好,作为集合的惰性列表/枚举)
所以我想要在一些集合中表示所有变量.但是我希望它有序,所以我得到的是最先设置最少的那个,以及所有变量最后都设置的那个.
我有一个解决方案是这样的:
f: Take powerset -> iterate -> apply f on the rest
<- sort the whole list of possibilities
但我想避免排序指数列表.希望我可以用懒惰的列表来做到这一点,所以我避免迭代所有可能性.
我使用以下类型在运行时创建一个新函数:
typedef int (*pfunc)(int);
union funcptr {
pfunc x;
byte* y;
};
Run Code Online (Sandbox Code Playgroud)
这使我能够编写指令y
,然后调用这个函数:
byte* p = (byte*)VirtualAllocEx(GetCurrentProcess(), 0, 1<<16, MEM_COMMIT, PAGE_EXECUTE_READWRITE );
// Write some instructions to p
funcptr func;
func.y = p;
int ret = func.x(arg1); // Call the generated function
Run Code Online (Sandbox Code Playgroud)
了解C++如何准备参数(调用约定)至关重要,因此我查找了项目属性(Visual C++),我可以看到它的用途__cdecl
.它应该根据以下内容在堆栈上放置参数:http://msdn.microsoft.com/en-us/library/aa271989(v = vs.60).aspx和http://en.wikipedia.org/wiki/X86_calling_conventions #cdecl但是当我查看生成的程序集时,参数将被移动到EAX寄存器.
我想绝对肯定这些论据是如何准备的.所以我忽略了一些关于cdecl
Visual C++优化调用的内容,如果是这样,我如何确保它不会发生?
最诚挚的问候,Lasse Espeholt
假设我有这个解析器:
let test p str =
match run p str with
| Success(result, _, _) -> printfn "Success: %A" result
| Failure(errorMsg, _, _) -> printfn "Failure: %s" errorMsg
let myStatement =
choice (seq [
pchar '2' >>. pchar '+' .>> pchar '3' .>> pchar ';';
pchar '3' >>. pchar '*' .>> pchar '4' .>> pchar ';';
])
let myProgram = many myStatement
test myProgram "2+3;3*4;3*4;" // Success: ['+'; '*'; '*']
Run Code Online (Sandbox Code Playgroud)
现在,"2+3;2*4;3*4;3+3;"
将失败并出现错误2*4;
.但是,什么是最好的做法,如果我想无论是对错误2*4;
和3+3;
?基本上,我想扫描到最近的';' …
我正在开发一个网站,我需要将HTML简报发送到邮件列表.
我已经构建了一个html框架,其中我有"浏览器中的视图"和"Unsubscrib"链接(原因会有所不同).在管理模块中,我发布了html并上传了html-newsletter的图片.这是一个很好的方法吗?
我应该如何发送XX.XXX人的电子邮件?我不能使用BCC,因为取消订阅链接会有所不同.所以我想我必须单独发送所有的电子邮件.但是代码应该是容错的,所以如果出现错误,只有一半得到通讯.
最好的问候,Lasse
我正在学习LINQ,我不知道如何写一个查询来返回一个布尔值,指示是否在数组中找到了一个项目.我有一个非常简单的清单:
var targetProperties = new string[] { "SelectedDate", "SelectedMonth" };
Run Code Online (Sandbox Code Playgroud)
我需要编写一个LINQ查询,如果传入的项目在数组中,则返回true,如果不是,则返回false.那个查询会是什么样的?谢谢你的帮助.
在.master文件中我有......
<div id="menu">
<ul>
<li class="1"><a href="#">One</a></li>
<li><a href="#">Two</a></li>
</ul>
</div>
<div id="Div1">
<ul>
<li class="1"><a href="#">Three</a></li>
<li><a href="#">Four</a></li>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
在我有的CSS文件
#menu {
width: 940px;
height: 49px;
margin: 0 auto;
padding: 0;
}
#menu ul {
margin: 0;
padding: 0;
list-style: none;
line-height: normal;
}
Run Code Online (Sandbox Code Playgroud)
那么为什么如何使用相同的样式"#menu"进行<div id="menu">
AND <div id="Div1">
?
我是一个完整的jQuery noob,如果这是一个愚蠢的问题,请原谅我.
这段代码会对我的网站产生负面影响吗?我在想SEO等等.
$(function() {
$("[title]").removeAttr('title');
});
Run Code Online (Sandbox Code Playgroud)
我用它来防止鼠标悬停在图像上时弹出工具提示.
我在这里找了一下,发现这个代码也是:
$(this).data("title", $(this).attr("title")).removeAttr("title");
Run Code Online (Sandbox Code Playgroud)
但我无法让它发挥作用.
提前致谢!