私はいくつかの固定小数点ベクトル計算をしようとしていますが、何かを印刷するたびに、何の問題もないようです。ベクトルの値が変わります。コードは、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 ステートメントの数に応じて変化します。