小编Jus*_*rne的帖子

关于GCC Optimizer的问题以及为什么这段代码总是返回42?

我最近遇到一个错误,在switch语句中初始化了一个变量.我开始玩这个更多,并意识到我不知道GCC在一些优化中试图做的第一件事.

鉴于此代码:

int main(int argc, char** argv) {
       switch (argc) {
               case 1000: return 42;
               int y = 24;
               default: return y;
       }
       return argc;
}
Run Code Online (Sandbox Code Playgroud)

生成的代码总是返回42.发生了什么?为什么int y = 24一切都搞砸了?

$ gcc -Wall -Werror -O2 -c test.c
$ objdump -drwCS -Mintel test.o

testo.o:     file format elf64-x86-64

Disassembly of section .text.startup:

0000000000000000 <main>:
   0:   b8 2a 00 00 00          mov    eax,0x2a
   5:   c3                      ret
Run Code Online (Sandbox Code Playgroud)

c optimization gcc

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

调用:通过JavaScript传输事件来悬停伪类

这是场景:

你有两个图像,它们堆叠在一起.最高阶z索引图像负责处理点击事件(想想Google的Map API)并且是透明的,而下面的图像负责视觉表示.

这是一个伪HTML/CSS表示:

div.visual-container {
    width: 10px;
    height: 10px;
}

div.visual-container:hover {
    background-color: #555;
}

div.click-container {
    width: 10px;
    height: 10px;
}

<div class='lowest'>
    <div class='visual-container'></div>
</div>

<div class='highest'>
    <div class='click-container'></div>
</div>
Run Code Online (Sandbox Code Playgroud)

现在,当单击"最高"元素时,也会在"最低"元素上调度该事件.

基本理念:

function onHoverEventForHighest() {
    createMouseEvent(lowest_element, 'mouseover', event);
};
Run Code Online (Sandbox Code Playgroud)

这部分很好并相应地传递事件,但它似乎没有调用:hover CSS psuedo-class.

做这种性质的人有没有运气?

html javascript css dom

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

标签 统计

c ×1

css ×1

dom ×1

gcc ×1

html ×1

javascript ×1

optimization ×1