小编mın*_*maτ的帖子

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

语法 - 可能的函数指针

一行代码让我困惑,我无法解决它.它可以是一个函数地址的转换并将它分配给一个函数指针,但是'address'不应该存在.还是我完全脱离背景?

int32_t (*const my_func)(uint32_t address) = (int32_t (*)(uint32_t address)) nvm_addr;
Run Code Online (Sandbox Code Playgroud)

c++

12
推荐指数
2
解决办法
597
查看次数

为一个emscripten HTML程序提供stdin?

我有一个C程序,它通过命令行接受一个参数(一个char数组/字符串),并从stdin读取.我使用emscripten将其编译为JavaScript.这是成功的,我可以像使用node.js的普通C程序一样运行它:

emcc -O2 translate.c
node translate.js "foo" < bar.txt
Run Code Online (Sandbox Code Playgroud)

如您所见,我提供字符串"foo"作为参数,bar.txt的内容为stdin.现在我希望这是一个自包含的HTML文件.

通过将输出更改为HTML:

emcc -O2 translate.c -o trans.html
Run Code Online (Sandbox Code Playgroud)

我通过添加arguments: ['foo'],到中的定义来提供参数var Module.这按预期工作,程序正确接收参数.

现在,我如何为此程序提供stdin输入?我不需要动态地这样做.只需在HTML中的某个地方声明一个包含所需stdin内容的字符串即可.

编辑

刚刚找到了适合我的解决方案.在生成HTML的JS文件中,prompt()当没有定义其他输入方法时,有一个默认的输入处理程序是用户.只需编辑变量result或调用您自己的函数:

} else if (typeof window != 'undefined' &&
    typeof window.prompt == 'function') {
    // Browser.

    // REPLACE THIS CODE:
    result = window.prompt('Input: ');  // returns null on cancel
    if (result !== null) {
        result += '\n';
    }
Run Code Online (Sandbox Code Playgroud)

javascript emscripten

10
推荐指数
2
解决办法
2472
查看次数

MikeOS引导加载程序中的堆栈段

我不明白这段代码:

mov ax, 07C0h   ; Set up 4K of stack space above buffer
add ax, 544     ; 8k buffer = 512 paragraphs + 32 paragraphs (loader)
cli             ; Disable interrupts while changing stack
mov ss, ax
mov sp, 4096
sti             ; Restore interrupts
Run Code Online (Sandbox Code Playgroud)
  • mov ax,07C0h - 这里BIOS加载我们的代码.但什么是'4K'?千字节?我没弄明白:)
  • 添加斧头,544 - 为什么再次'8K'?为什么我们加544?为什么不是512?
  • mov sp,4096 - 这里我们设置堆栈指针.

在设置堆栈指针之前,我们要做什么操作呢?

assembly bootloader

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

列中的NULL值的Dapper Cast异常

我正在使用SQLite和它的闭包扩展来存储层次结构.非闭包表创建为

_connection.Execute(@"CREATE TABLE IF NOT EXISTS category (
    id INTEGER NOT NULL PRIMARY KEY,
    name TEXT,
    parent_id INTEGER,
    FOREIGN KEY (parent_id) REFERENCES category (id)
);");
Run Code Online (Sandbox Code Playgroud)

插入的根节点parent_id设置为NULL.Dapper来往的类是

public class TestRecord
{
    public long id;
    public string name;
    public long? parent_id;
}
Run Code Online (Sandbox Code Playgroud)

在我看来,Dapper在读取根节点或非根节点时应该没有任何问题,因为所讨论的列明显标记为可为空.但是,查询所有条目如下:

_connection.Query<TestRecord>(@"SELECT * FROM category;");
Run Code Online (Sandbox Code Playgroud)

将抛出根节点,因为它无法投射某些东西(这很奇怪,因为任何地方都没有涉及32位整数):

Unhandled Exception: System.Data.DataException: 
Error parsing column 2 (parent_id=1 - Int64) ---> 
System.InvalidCastException: Unable to cast object of type 'System.Int64' to type 
  'System.Int32'.
Run Code Online (Sandbox Code Playgroud)

一个解决方法返回正确的结果是

.Query<TestRecord>(@"SELECT id, IFNULL(parent_id, 0), name …
Run Code Online (Sandbox Code Playgroud)

c# sqlite dapper

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

在bootstrap-select上显示/隐藏选项?

不久之前我试图在bootstrap-select lib上编写一个小片段,它应该打开并隐藏一些关于父选项的点击/更改事件的额外选项(在底部示例中为一半).

它应该如何工作......

当用户单击特定选项时,一些包含更多附加信息的额外项目将显示在父项下方.当用户再次单击时,应隐藏额外的项目,并从已选择的选项中清除子项目.

问题是什么?

不幸的是我的jquery水平并不高,所以在这一刻我只有/显示/功能没有/隐藏/子项和清除选中(如果选择了一些隐藏父项的子项).如果父项目上的选中箭头不显示,那么将会很好,仅限于孩子.

我的例子

这是我的简短代码 -

    $('.remove-example').find('.hider').hide();

  $('.selectpicker').change(function() {

      var feta = $(this).find("option:selected:first").attr('id');
      var feta1 = $(this).find("option:selected:last").attr('id');
      
      $('.remove-example').find('.' + feta).show();
      $('.remove-example').find('.' + feta1).show();
      
    $('.remove-example').selectpicker('refresh');

  });




$('.rm-mustard').click(function() {
    $('.remove-example').find('.Mustard').hide();
    $('.remove-example').selectpicker('refresh');
  });
  $('.rm-mustard1').click(function() {
    $('.remove-example').find('.Mustard').show();
    $('.remove-example').selectpicker('refresh');
  });


 $('.selectpicker').selectpicker();
Run Code Online (Sandbox Code Playgroud)
.btn-primary {
  padding: 0px 74px;
  margin-top: 5px;
}                
#tastes {
  margin: 15px 0px 0px 15px;
}

.padd {
 margin-left:20px;   
}
}
Run Code Online (Sandbox Code Playgroud)
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.6.3/js/bootstrap-select.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.2/js/bootstrap.js"></script>

<link href="http://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.6.3/css/bootstrap-select.css" rel="stylesheet"/>
<link href="http://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.2/css/bootstrap.css" rel="stylesheet"/>

 <select class="selectpicker remove-example" multiple>
    <option  id="Mustard" value="">Mustard</option>
     <option …
Run Code Online (Sandbox Code Playgroud)

javascript jquery drop-down-menu bootstrap-select

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

gitignore错过了一些二进制文件(DLL和PE)

我使用最新版本的Github Desktop.我的repo包含一个相当大的C#解决方案,包含许多子目录和项目.我想使用驻留在本地repo目录的根目录中的.gitignore文件忽略所有R#-cache文件和已编译的二进制文件.此回购中没有其他任何gitignore,在任何父目录中都没有.我现在的gitignore是这样的:

*.suo
*.user
_ReSharper.*
bin
obj
packages
*.cache
*.pdb
*.dll
*.exe
*.xml
Run Code Online (Sandbox Code Playgroud)

当我进行更改,重新编译并测试所有内容时,我打开Github Desktop.它捕获几乎所有应该被忽略的文件,只有一些 .dll s,.pdbs和.exes不会被忽略并且总是显示为已更改:

IMG

现在,这个仓库中有更多的二进制文件.只有屏幕抓取中的特定内容被遗漏.

这是可以修复的,和/或是否可以更改gitignore来捕获它应该捕获的所有文件?

这是我试过的:

  • 删除并重新克隆存储库
  • 删除并手动重新创建gitignore
  • 右键单击 - >从GitHub Desktop客户端中按文件扩展名忽略.这不起作用,更糟糕的是,它在gitignore中创建了重复的掩码
  • 检查Github Desktop可访问的目录中是否存在冲突的gitignore

gitignore github-desktop

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

不同浏览器中不同 SRI 结果的可能原因?

客户想在其网站上的所有 CSS 和 JS 资产上使用 SRI,但他们在 Firefox 中遇到了一个非常奇怪的问题。他们的服务器是一个 apache2 实例,提供 HTML 内容。为整个虚拟主机启用 CORS,适用于任何 ( *) 源。没有缓存或 CDN。

有问题的两个文件是

  • company.min.css
  • company.min.js

为了生成 SRI 哈希,最初使用了SRI 哈希生成器。其输出有多种算法,如下所示:

<script src="https://example.com/static/company.min.js" integrity="sha256-aKuSpMxn15zqbFa0u0FVA7mAFOSVwIwU4gA3U7AZf5Y= sha384-WDAg+qGBjbEyE52SdQ5UHdTObTY+jYTL63m9Oy2IJcGZR8AFn0t9JNN7qdut6DBk sha512-bxmUFj1FVOVV74+zIYau/HSUcLq9cuneBKoMJyW9dAz//yKFi8eRhyyIezF++2vbGO7cR6Pzm1l9rvnPcrvIrg==" crossorigin="anonymous"></script>
Run Code Online (Sandbox Code Playgroud)

CSS 文件类似。这些被插入到 HTML 中,并在几个不同的浏览器中对站点进行了测试,结果如下:

  • 适用于 Chrome (/Canary)、Opera、Edge 甚至 IE
  • 不会在Firefox(/日)的工作。

Firefox 只讨厌 CSS,说 SHA512 与资源不匹配。无论出于何种原因,它都能很好地处理 JS 文件。

我确认(使用 OpenSSL)上述工具生成的散列确实是正确的,而且它在除 Firefox 之外的几乎所有浏览器中都有效这一事实让我想到了。

因此,我尝试使用 Mozilla 自己的 SRI 工具srihash.org对资源进行哈希处理,这是 Mozilla 从他们关于 SRI的博客文章中推荐的。

现在它变得有点奇怪。

  • 对于 CSS 文件,srihash.org 生成一个完全不同的哈希。
  • 对于 JS …

javascript css firefox subresource-integrity

5
推荐指数
0
解决办法
574
查看次数

使用 getchar 输入字符串

我试图将一个字符串读入一个由用户选择的长度的字符数组。问题是 getchar() 不会停止阅读,直到用户根据我的代码按 Enter 手动输入换行符。我已经阅读了其他人的帖子,我明白为什么我不能这样做,这与我的作业讲义完全矛盾。

int chPrompt(int nchars);
void strInput(char str[], int nchars);

int main(void) {
    int nchars = chPrompt(nchars);
    char str[nchars];

    strInput(str, nchars);

    return 0;
}

int chPrompt(int nchars) {
    printf("How many chars do you need to input? >");

    return scanf("%i", &nchars);
}

void strInput(char str[], int nchars) {
    int i = 0;

    while((str[i] = getchar()) != '\n') {
        if(i > nchars-1)
            break;
        i++;
    }
    str[i] = '\0';

    //Troubleshooting
    printf("%s %d", str, strlen(str));
}
Run Code Online (Sandbox Code Playgroud)

这是讲义上的内容:

使用我们讨论过的技术从键盘输入一个字符串(包括空格)(使用 getchar(),而不是 gets() 、 …

c string while-loop getchar

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

Python集不会执行联合

我有一个定义了成员的类:

self.myset = set()
Run Code Online (Sandbox Code Playgroud)

当我执行时myobject.myset.add('item'),使用我的类的一个实例,它工作正常:print(myobject.myset)给我 {'item'} 。

但是,当我执行myobject.myset.union(yourset), whereyourset不为空时,它将不起作用;print(myobject.myset)仍然打印为空集。为什么一种方法 ( add) 有效而另一种方法 ( )union却悄悄地(没有抛出异常)失败?即使myobject.myset = yourset有效,但union尤其不会。

我正在使用 Python 3。

python union scope set mutability

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