在查看一些反编译的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,然后移动%esi到x而不是仅仅移动y到x直接?
如果重要的话,这是整个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) 我想根据两个变量来连接2个或更多个连续的串入一个串中的阵列x和y这意味着从起始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)
像这样.任何人都知道如何在没有复杂编程的情况下完成
我一直在试验本文所述的距离场字体: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) 在创建对象后它有一个类主体及其有用的内容时,它会调用什么?
例:
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)