小编Tey*_*beo的帖子

修改参数时gdb打印错误的值

系统

全新安装的代码块12.11 + mingw pack.

  • win7 64
  • gcc 4.7.1
  • gdb 7.5

示例代码

用-g编译,没有优化.

#include <stdio.h>

void foo(int a, int b);

int main() {

    foo(400, 42);

    return 0;
}

void foo(int a, int b) {

    a = a - 10;
    b = a + 1;

    printf("y2 %d\n", b);

}
Run Code Online (Sandbox Code Playgroud)

问题

我在"void foo(int a,int b)"上设置了一个断点,当我逐步完成3行时,我看起来是b的值.无论是使用代码块调试功能还是使用gdb命令行,b的值都是42而不是391.控制台输出正确,391.

GDB命令

C:\DebugTest>"C:\Program Files (x86)\CodeBlocks\MinGW\bin\gdb.exe"
GNU gdb (GDB) 7.5
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This …
Run Code Online (Sandbox Code Playgroud)

c gdb

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

在法语中,复数系统将 0 视为“other”而不是“one”

res/values/strings.xml,我有

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <plurals name="days_amount">
        <item quantity="one">%d day EN</item>
        <item quantity="other">%d days EN</item>
</plurals>
</resources>
Run Code Online (Sandbox Code Playgroud)

res/values-fr/strings.xml,我有

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <plurals name="days_amount">
        <item quantity="one">%d jour FR</item>
        <item quantity="other">%d jours FR</item>
    </plurals>
</resources>
Run Code Online (Sandbox Code Playgroud)

使用英语语言环境res.getQuantityString(R.plurals.days_amount, 0, 0)返回:

“0天”

根据英语规则,这是可以的(又名零数量 <=> 几个数量)。


但是对于法语语言环境,它返回:

“0 小时”

根据法国规则,这是不行的(又名零数量 <=> 单数)。

它应该回来了 "O jour"

法语规则:http : //www.unicode.org/cldr/charts/25/supplemental/language_plural_rules.html#fr


那么,这是一个错误,还是我做错了什么?

android localization plural

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

渲染到1D纹理

我正在尝试几种方法来实现一个简单的粒子系统.在这里,我在几个纹理之间使用乒乓技术,所有纹理都附加到一个独特的fbo.

我认为所有绑定/设置都是正确的,因为我看到它使用来自A纹理的数据写入B纹理.

问题是只有B纹理的一个纹素被写入:

问题

在此图像中,我尝试将纹理像素从源纹理复制到目标纹理.

那么让我们来看看代码:

设置代码

#define NB_PARTICLE 5

GLuint fbo;
GLuint tex[6];
GLuint tex_a[3];
GLuint tex_b[3];
int i;

// 3 textures for position/vitesse/couleur
// we double them for ping-pong so 3 * 2 = 6 textures
glGenTextures(6, tex);

for (i = 0 ; i < 6 ; i++ )
{
    glBindTexture(GL_TEXTURE_1D, tex[i]);
    glTexImage1D(GL_TEXTURE_1D, 0, GL_RGBA32F, NB_PARTICLE, 0, GL_RGBA, GL_FLOAT, NULL);
    glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
    glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
    glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_WRAP_S, GL_CLAMP);
    glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_WRAP_T, GL_CLAMP);
}

for (i = 0; i < …
Run Code Online (Sandbox Code Playgroud)

c opengl shader glsl

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

标签 统计

c ×2

android ×1

gdb ×1

glsl ×1

localization ×1

opengl ×1

plural ×1

shader ×1