假设如下:
sizeof(char) = 1
sizeof(short) = 2
sizeof(int) = 4
sizeof(long) = 8
Run Code Online (Sandbox Code Playgroud)
对于4字节有符号数,printf
2字节有符号数的格式%hd
是%d
,对于8字节有符号数%ld
,但是1字节有符号数的正确格式是什么?
我正在制作一个 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 中双击鼠标右键,它仍然会打开!
请告诉我如何一劳永逸地禁用这个该死的东西(我什至愿意恢复到一些晦涩的、黑客的、不切实际的解决方案,只要它有效)。
我需要一个可以计算x86-64指令长度的函数.
例如,它可以这样使用:
char ret[] = { 0xc3 };
size_t length = instructionLength(ret);
Run Code Online (Sandbox Code Playgroud)
length
在此示例中将设置为1.
我不想包含整个反汇编库,因为我需要的唯一信息是指令的长度.
我正在寻找一种用C语言编写的极简主义方法,理想情况下尽可能小.
100%完整的x86-64指令集并不是绝对必要的(可以省略非常模糊的指令,例如向量寄存器集指令).
我正在寻找的类似答案(但对于错误的架构):
我有这个代码:
[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)"错误.
有没有办法做到这一点?如果是这样,正确的语法是什么?
谢谢!
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)
但是我想知道是否有办法做我最初提出的建议.
在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) 我需要在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中,当使用sscanf时,对于format参数,使用时有区别:
%255[^\0]s
Run Code Online (Sandbox Code Playgroud)
和:
%255c
Run Code Online (Sandbox Code Playgroud)
一个更快吗?以上其中一种会产生不同的结果吗?
对于我的项目,我需要分析不同的句子,并通过确定它们是否以问号结束来确定哪些是问题.
所以我尝试使用explode,但它不支持多个分隔符.我暂时将所有标点符号替换为chr(1),以便我可以爆炸所有句子,无论它们以什么结束(.,!,?等等).
然后我需要找到每个句子的最后一个字母,但是爆炸功能已经删除了所有的标点符号,所以我需要一些方法将它放回去.
我花了很长时间才解决问题,但最终我解决了这个问题.我在这里发布我的解决方案,以便其他人可以使用它.