32 ビットを 64 ビット コードに移植しようとしていましたが、移植に関して標準的なルールがあるかどうか疑問に思っていました。
コードを 64 ビット環境でコンパイルしたところ、次のようなエラーが発生しました。
ポインタから異なるサイズの整数へのキャスト [-Werror=pointer-to-int-cast]
x = (int32_t)y;
これを取得するには、 x = (size_t)y; を使用します。私はエラーを取り除きますが、これは正しい方法です。また、さまざまな場所で、変数を (unsigned long long) にキャストする必要があります。例えば
printf("Total Time : %5qu\n",time->compile_time
これにより、エラー エラーが発生します。形式 '%qu' は型 'long long unsigned int' の引数を期待していますが、引数 2 の型は (XYZ) です。
これを修正するには、次のようなことをします
printf("Total Time : %5qu\n",(unsigned long long) time->compile_time
またこれは適切ですか??