对于我的任务,我必须填写下面C代码的缺失部分.但是,我不确定哪些部分缺失或者我必须填写哪部分.我有一个示例汇编代码,此代码将生成,但不知道我必须更改哪些部分才能获得我的预期结果.我只是想澄清一下.
typedef enum {MODE_A, MODE_B, MODE_C, MODE_D, MODE_E} mode_t;
long switch3 (long *p1, long *p2, mode_t action) {
long result = 0;
switch(action){
case MODE_A:
case MODE_B:
case MODE_C:
case MODE_D:
case MODE_E:
default;
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
其他要点:
汇编代码结果示例:
# p1 in %rdi, p2 in %rsi, action in %edx
.L2: # MODE_E
movl $27, %eax
ret
.L7: # MODE_A
movl (%rsi), %rax
movq (%rdi), %rdx
movq %rdx, (%rsi)
ret
.L5: # MODE_B
movq (%rdi), %rax
addq (%rsi), …Run Code Online (Sandbox Code Playgroud) 我试图理解这个问题的解决方案:
鉴于下面的C代码,以及编译器的asm输出,是什么A和B?
答案:A是5,B是6.
我猜测必须进行某种划分,因为96和48都可以被6整除,20可以被5整除.
编辑:我在网上找到了答案.但是我不确定它是否准确
"一个字母从任何BYTE开始
短路仅在偶数字节处开始
一个int从BYTE开始,但可被4整除
很快就开始了BYTE,可以被8整除
str1.w很长,从5到8开始
str1.x可能有184或180
str2.p是int从值8开始,因此str1.array保持5到8个BYTES
str2.q短期可能是14到20
str2.z可能是32
char w [A] [B]和int X.
8 184
STR2.
short [B] int p doublez [B] short q
20 4 8 9
因此A = 5和B = 6"的值
代码如下:
// #define A ?? // 5
// #define B ?? // 6, but the question is how to figure that out from the asm
typedef struct {
char w[A][B];
int …Run Code Online (Sandbox Code Playgroud) 我已经在PyQt5pyqtgraph里面实现了QGraphicsView。当我按以下方式显示图像时,它会以与屏幕相同的宽高比拉伸和扩展。我该如何解决?
image = pg.ImageItem(asarray(Image.open('pic.png')) )
self.graphicsView.addItem(image)
image.rotate(270)
Run Code Online (Sandbox Code Playgroud)
编辑:找到了如何旋转图像,所以我用解决方案更新了问题。现在我只是想适当地缩放它。