小编CHR*_*RIS的帖子

printf格式为1字节有符号数

假设如下:

sizeof(char) = 1
sizeof(short) = 2
sizeof(int) = 4
sizeof(long) = 8
Run Code Online (Sandbox Code Playgroud)

对于4字节有符号数,printf2字节有符号数的格式%hd%d,对于8字节有符号数%ld,但是1字节有符号数的正确格式是什么?

c printf

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

禁用 Firefox 愚蠢的右键单击上下文菜单

我正在制作一个 HTML 5 游戏,需要使用右键单击来控制播放器。

我已经能够通过执行以下操作来禁用右键单击上下文菜单:

<body oncontextmenu="return(false);">
Run Code Online (Sandbox Code Playgroud)

然后我注意到,如果按住 Shift 并右键单击,Firefox 中仍然会打开上下文菜单!

所以我也通过添加这个 JS 来禁用它:

document.onclick = function(e) { if(e.button == 2 || e.button == 3) { e.preventDefault(); e.stopPropagation(); return(false); } };
Run Code Online (Sandbox Code Playgroud)

但是,如果您按住 Shift 键,然后在 Firefox 中双击鼠标右键,它仍然会打开!

请告诉我如何一劳永逸地禁用这个该死的东西(我什至愿意恢复到一些晦涩的、黑客的、不切实际的解决方案,只要它有效)。

html javascript contextmenu

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

获取x86-64指令的大小

我需要一个可以计算x86-64指令长度的函数.

例如,它可以这样使用:

char ret[] = { 0xc3 };
size_t length = instructionLength(ret);
Run Code Online (Sandbox Code Playgroud)

length 在此示例中将设置为1.

我不想包含整个反汇编库,因为我需要的唯一信息是指令的长度.

我正在寻找一种用C语言编写的极简主义方法,理想情况下尽可能小.

100%完整的x86-64指令集并不是绝对必要的(可以省略非常模糊的指令,例如向量寄存器集指令).

我正在寻找的类似答案(但对于错误的架构):

获取装配说明的大小

c assembly x86-64

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

用直接代码替换@selector

可能重复:
我可以使用Objective-C将块作为@selector传递吗?

我有这个代码:

[myButton addTarget:self action:@selector(doSomething:) forControlEvents:UIControlEventTouchUpInside];
Run Code Online (Sandbox Code Playgroud)

但由于doSomething包含如此少的代码,我想知道是否可以将代码直接放在这里,而不是让它运行doSomething.

我已经尝试过了:

[myButton addTarget:self action:^ { /* code here */ } forControlEvents:UIControlEventTouchUpInside];
Run Code Online (Sandbox Code Playgroud)

但它只是给"不兼容的类型SEL"发送"send(void)^(void)"错误.

有没有办法做到这一点?如果是这样,正确的语法是什么?

谢谢!

cocoa-touch selector ios

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

结构标签

CI希望能够在结构中标记特定位置.例如:

struct test {
    char name[20];

    position:
    int x;
    int y;
};
Run Code Online (Sandbox Code Playgroud)

这样我就能做到:

struct test srs[2];
memcpy(&srs[1].position, &srs[0].position, sizeof(test) - offsetof(test, position));
Run Code Online (Sandbox Code Playgroud)

将srs [0]的位置复制到srs [1]中.

我已经尝试将位置声明为没有任何字节的类型但是这也不起作用:

struct test {
    char name[20];

    void position; //unsigned position: 0; doesn't work either
    int x;
    int y;
};
Run Code Online (Sandbox Code Playgroud)

我知道我可以将x和y嵌入另一个名为position的结构中:

struct test {
    char name[20];

    struct {
        int x;
        int y;
    } position;
};
Run Code Online (Sandbox Code Playgroud)

或者只使用x属性的位置:

struct test srs[2];
memcpy(&srs[1].x, &srs[0].x, sizeof(test) - offsetof(test, x));
Run Code Online (Sandbox Code Playgroud)

但是我想知道是否有办法做我最初提出的建议.

c label struct

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

403回复还可以吗?

在HTTP中,我知道标准的200响应最后带有“ OK”。但是我似乎找不到其他代码(例如403)是否需要OK。

例如(来自维基百科):

HTTP/1.1 200 OK
Date: Mon, 23 May 2005 22:38:34 GMT
Server: Apache/1.3.3.7 (Unix) (Red-Hat/Linux)
Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
Etag: "3f80f-1b6-3e1cb03b"
Content-Type: text/html; charset=UTF-8
Content-Length: 131
Connection: close

<html>
<head>
  <title>An Example Page</title>
</head>
<body>
  Hello World, this is a very simple HTML document.
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

因此,在403响应中它将以:

HTTP/1.1 403 OK
Run Code Online (Sandbox Code Playgroud)

要么:

HTTP/1.1 403 FORBIDDEN
Run Code Online (Sandbox Code Playgroud)

要不就:

HTTP/1.1 403
Run Code Online (Sandbox Code Playgroud)

http response

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

匿名结构

我需要在struct test中嵌入一个匿名结构,以便它设置如下:

#include <stdio.h>

struct test {
    char name[20];

    struct {
        int x;
        int y;
    };
};

int main(void) {
    struct test srs = { "1234567890123456789", 0, 0 };
    printf("%d\n", srs.x); // I can access x property without having to go to go within another struct
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这样我就可以访问x和y属性而无需进入另一个struct.

但是,我希望能够使用在其他地方声明的结构定义,如下所示:

struct position {
    int x;
    int y;
}
Run Code Online (Sandbox Code Playgroud)

我无法编辑上面的结构!

因此,例如,一些伪代码可能是:

#include <stdio.h>

struct position {
    int x;
    int y;
};

struct test {
    char name[20];

    struct position;
};

int …
Run Code Online (Sandbox Code Playgroud)

c gcc struct c11

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

%255 [^\0] s和%255c之间的差异

在C中,当使用sscanf时,对于format参数,使用时有区别:

%255[^\0]s
Run Code Online (Sandbox Code Playgroud)

和:

%255c
Run Code Online (Sandbox Code Playgroud)

一个更快吗?以上其中一种会产生不同的结果吗?

c format scanf

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

PHP在保持分隔符的同时爆炸字符串

对于我的项目,我需要分析不同的句子,并通过确定它们是否以问号结束来确定哪些是问题.

所以我尝试使用explode,但它不支持多个分隔符.我暂时将所有标点符号替换为chr(1),以便我可以爆炸所有句子,无论它们以什么结束(.,!,?等等).

然后我需要找到每个句子的最后一个字母,但是爆炸功能已经删除了所有的标点符号,所以我需要一些方法将它放回去.

我花了很长时间才解决问题,但最终我解决了这个问题.我在这里发布我的解决方案,以便其他人可以使用它.

php string explode delimiter

0
推荐指数
2
解决办法
3431
查看次数