我已经反向设计了跟随算法来生成随机数;
int __cdecl sub_40BB60()
{
char v0; // si@1
int v1; // edx@1
int v2; // ecx@1
unsigned int v3; // eax@1
int v4; // edi@1
int v5; // esi@1
int result; // eax@1
v0 = random_state;
v1 = dword_685440[((_BYTE)random_state - 3) & 0xF];
v2 = dword_685440[random_state] ^ v1 ^ ((v1 ^ 2 * dword_685440[random_state]) << 15);
v3 = ((unsigned int)dword_685440[((_BYTE)random_state - 7) & 0xF] >> 11) ^ dword_685440[((_BYTE)random_state - 7) & 0xF];
v4 = v3 ^ dword_685440[random_state] ^ v1 …Run Code Online (Sandbox Code Playgroud) 我在 Visual Studio 2012 下的 Windows 上使用 C++。
我有一个开始和结束内存地址,需要在两个地址之间生成一个页面基地址/句柄列表。我考虑过手动探测页面的可能性,但认为必须有更好的方法来枚举它们。
这样的方式存在吗?
免责声明;最后的页句柄必须是基地址,这样当窗口页的大小添加到它们时,结果地址不会重叠到下一页。首选解决方案不是特定于平台的,并且与 32 位(带/不带 WOW64)兼容。
我正在使用GHC在Windows上进行编译.这是我的参考资料http://hpaste.org/86539
问题是以下表达式不解析:
3+2 < 1+-4 <= -3 << 1.它应解析为:

..然而,-当它显然是最高的运营商时,我会感到意外.我怀疑这是因为我使用了try第55行,但没有它<,<<并且重复一个符号的运算符无法正确解析.
我正在寻求建议或提示.
考虑一种完全可选分号的语言,几乎完全是糖,即:
;; foo; bar;;;; 已验证foo bar foobar 已验证if (+1); foo与if (+1) foo语义不同,因此;不能被视为空格这是一个示例解析器:
{-# LANGUAGE OverloadedStrings #-}
import Text.Trifecta
import Text.Trifecta.Delta
import Text.PrettyPrint.ANSI.Leijen (putDoc, (<>), linebreak)
import Control.Monad.Trans.State.Strict
import Control.Applicative
type TestParser a = StateT Int Parser a
data AST a = Foo a | Bar a deriving (Show)
pFoo :: TestParser (AST (Delta, Int))
pFoo = curry Foo <$ string "foo" <*> position <* modify (+1) <*> get
pBar :: TestParser …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用迭代器作为一个值,std::map以便我可以通过id它有效地查找对象,或者通过它有效地迭代它depth.
请考虑以下代码:
#include <string>
#include <algorithm>
#include <array>
#include <iostream>
#include <random>
#include <map>
#include <unordered_map>
struct object {
static int next_id;
int id;
int depth;
std::map<int, object>::iterator id_it;
std::multimap<int, std::map<int, object>::iterator>::iterator depth_it;
static std::map<int, object> by_id;
static std::multimap<int, std::map<int, object>::iterator> by_depth;
object() = delete;
object(object const &) = delete;
object(object &&) = delete;
object & operator=(object const &) = delete;
object && operator=(object &&) = delete;
~object() = default;
object(int id) : id(id), …Run Code Online (Sandbox Code Playgroud) 当事情发生变化时,我希望减少我必须对代码进行的维护.
在某个头文件中,我有一些长而且有点像这样的冗长:
extern std::map<event_t, std::multimap<real_t, event>> event_schedule;
Run Code Online (Sandbox Code Playgroud)
然后,在cpp文件中,我认为实际声明它会更容易;
decltype(event_schedule) event_schedule;
Run Code Online (Sandbox Code Playgroud)
有什么理由不去吗?
有人告诉我,如果我用作rsp通用寄存器,操作系统可能会将寄存器转储到它在中断时指向的位置,从而导致出现问题的行为。
这是真的吗?如果不是,那么如果我不需要堆栈,我可以将其rsp用作通用寄存器吗?
编辑:在用户空间中运行。
我想调用一次宏N次,每次使用累加器,即;
%macro foo 1
range 1, 8, {some_partially_applied_macro %1}
%endmacro
Run Code Online (Sandbox Code Playgroud)
相当于
%macro foo 1
some_partially_applied_macro %1, 1
some_partially_applied_macro %1, 2
some_partially_applied_macro %1, 3
...
some_partially_applied_macro %1, 8
%endmacro
Run Code Online (Sandbox Code Playgroud)
我尝试写下面的内容(及其几种变体):
%macro range 3
%assign i %1
%rep %2
%[%3 i]
%assign i i+1
%endrep
%endmacro
Run Code Online (Sandbox Code Playgroud)
我没有成功.
需要注意的一点是,第三个参数可能需要部分应用.
我正在用几乎纯汇编程序编写一个解释器。目前,我混合使用 NASM 宏和 m4(当它们不够强大时)来生成大量代码。
我记得看到 lisp 被用作元编程引擎来生成和构建汇编程序。我记不清具体在哪里了。
有人可以给出使用 lisp 作为汇编器元编程工具的项目示例,或者解释应使用哪些引擎或库来实现此目的吗?
使用 Angular 2/4,我有一个复杂的页面模板。
假设我有 3 个相互嵌套的组件:page.component, 里面header.component和里面header.title.component有适当设置的自定义选择器。
page.component html模板:
<layout-header></layout-header>
...
Run Code Online (Sandbox Code Playgroud)
header.component html模板:
<section class="dynamic-content" *ngIf="!collapsed" #dynamicContent>
<layout-header-title></layout-header-title>
...
</section>
Run Code Online (Sandbox Code Playgroud)
header.title.component html模板:
<ng-content selector="card-layout-title"></ng-content>
Run Code Online (Sandbox Code Playgroud)
然后,在我的实际页面模板上:
<layout-page>
<card-layout-title>Title goes here</card-layout-title>
</layout-page>
Run Code Online (Sandbox Code Playgroud)
在ng-content selector="card-layout-title"只有当直接父是在标签内的组件选择,即从工作header.title.component,我无法选择2的水平式的嵌套组件找到内容transclude成card-layout-title。
我该怎么做(最好不要在每个级别添加和传递模板引用,因为每个级别有 5-10 个嵌套组件)?