不确定我做错了什么因为aValue和bValue没有更新。
public void display(GLAutoDrawable gLDrawable){
// reset view matrix, needed?
// Calculate the model view projection matrix .. where does model matrix get it's values from?
// translate to Square1's position?
// rotate to Square1's angle?
// draw Square1 .. passing MVP matrix
// translate to Square2's position?
// rotate to Square2's angle?
// draw Square2 .. passing MVP matrix
}
答案 0 :(得分:3)
问题是指针和后增量不能达到你想要的效果。
如果你写
void someFunc(int *a, int *b) {
*a = *a+1;
*b = *b+1;
}
它有效
请参阅
++ on a dereferenced pointer in C?
解释为什么*a++
递增指针本身。
答案 1 :(得分:0)
someFunc中的变量a和b是副本,并且您正在递增副本。 后增量的优先顺序高于指针去引用,因此您将增加指针的副本。取消参考没有效果。
如有疑问,请使用括号。
void someFunc(int *a, int *b)
{
(*a)++;
(*b)++;
}
虽然有些人说你要做什么
void someFunc(int *a, int *b)
{
++(*a);
++(*b);
}
由于后增量在技术上返回一个值,而前增量只是递增。在这种情况下,大多数编译器都会生成相同的代码。我从来没有看过AVR编译器。