我正在尝试做一些定点向量数学,似乎每当我打印任何东西时,似乎都无关紧要。我的向量的值发生了变化。该代码是使用 Zilog 的 ZDSII 开发人员工作室编译的。
我有一个这样定义的结构
typedef struct {
long x;
long y;
} vector;
结构内的值在函数中初始化
void initVector( vector * vec, int x, int y ) {
vec -> x = (long) x << 14;
vec -> y = (long) y << 14;
}
在我的主要功能中,我有
int main() {
vector * vector1;
initVector( vector1, 1, 2 );
printf( "foo" ); // this prints alright
printf( "%d , %d", vector1 -> x >> 14, vector1 -> y >> 14 ); //garbage
...
...
}
哪个打印垃圾。这些值将根据我实际打印值的 printf 之前的 printf 语句的数量而变化。