小编Cha*_*nor的帖子

为什么GCC在分配之前将变量移动到临时位置?

在查看一些反编译的C代码时,我看到了这个:

movl    -0xc(%rbp), %esi
movl    %esi, -0x8(%rbp)
Run Code Online (Sandbox Code Playgroud)

这对应于此C代码:

x = y;
Run Code Online (Sandbox Code Playgroud)

这让我想:怎么就GCC移动y%esi,然后移动%esix而不是仅仅移动yx直接?


如果重要的话,这是整个C和反编译代码:

C

int main(void) {
    int x, y, z;

    while(1) {
        x = 0;
        y = 1;
        do {
            printf("%d\n", x);

            z = x + y;
            x = y;
            y = z;
        } while(x < 255);
    }
}
Run Code Online (Sandbox Code Playgroud)

反编译

pushq    %rbp
movq     %rsp, %rbp
subq     $0x20, %rsp
movl     $0x0, -0x4(%rbp)

movl     $0x0, -0x8(%rbp) ; x = …
Run Code Online (Sandbox Code Playgroud)

c x86 assembly decompiling

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

如何在Java中的字符串数组中将两个或多个字符串连接成一个?

我想根据两个变量来连接2个或更多个连续的串入一个串中的阵列xy这意味着从起始X:第元件,串联,直到我们已经级联ÿ元件.例如,如果数组'A'包含以下元素:

A = {"europe", "france", "germany", "america"};
x=2;y=2;
//Here, I want to concatenate france and germany as :
A = {"europe", "france germany", "america"};
//Or 
x=2,y=3;

A= {"europe", "france germany america"};
Run Code Online (Sandbox Code Playgroud)

像这样.任何人都知道如何在没有复杂编程的情况下完成

java android

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

libGDX - TextButton 字体的自定义着色器

我一直在试验本文所述的距离场字体:https : //github.com/libgdx/libgdx/wiki/Distance-field-fonts

当我只是渲染字体时一切正常,但是当我尝试在 a 上使用着色器时TextButton,按钮会变成白色,因为它将着色器应用于整个按钮而不仅仅是文本。我环顾四周,但找不到任何有关如何仅更改 a 文本的着色器的信息,TextButton所以我在这里问;如何将 cutom 着色器仅应用于 a 的文本渲染TextButton

初始化代码:

textShader = new ShaderProgram(Gdx.files.internal("graphics/shaders/font/font.vert"),
             Gdx.files.internal("graphics/shaders/font/font.frag")); 
//exact same shaders as linked article
stage = new Stage();
stage.getBatch().setShader(textShader);
//Setting the shader for the stage will set the shader for everything in the stage,
//like my labels/buttons etc. This works fine for my labels as they are plain text,
//but my buttons become completely white.

init the rest of my labels, buttons, batches …
Run Code Online (Sandbox Code Playgroud)

java opengl shader glsl libgdx

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

在实例化时,您将其称为定义其方法/字段的对象是什么?

在创建对象后它有一个类主体及其有用的内容时,它会调用什么?

例:

public MyObject myObject = new MyObject() /*from here*/{
    void myMethod() {
        //code
   }
};/*to here*/
Run Code Online (Sandbox Code Playgroud)

因为通常它看起来像这样:

public MyObject myObject = new MyObject();
Run Code Online (Sandbox Code Playgroud)

java anonymous

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

标签 统计

java ×3

android ×1

anonymous ×1

assembly ×1

c ×1

decompiling ×1

glsl ×1

libgdx ×1

opengl ×1

shader ×1

x86 ×1