C と C++ の両方で書かれたオープンソースのコードベースがあります。私は、少なくとも64 ビット幅であることが保証されている整数型を探しています。これは、ほとんどの OS X (Intel、64 ビット) およびオープンソースの C および C++ コンパイラを備えた Linux ボックスで、過度にコンパイルすることなく確実にコンパイルできます。エンド ユーザー側の余分な作業。現時点では、Windows および 32 ビット クライアントのサポートは重要ではありません。
私は OS X でいくつかのテストを行いましたが、開発者ツールに同梱されている最新の GCC は C+11 モードをサポートしていません (したがって、の可用性は保証されていないようですlong long
)。long long
特定のバージョン以降、C99 モードが有効になっている場合はサポートされますが、Clang もこれをサポートしません。
移植性が重要な目標である場合int64_t
、代わりに使用する一般的な提案はありますか? long long
フォーマット指定子を使用するのは苦痛に思えます。
パラメータとして受け取る既存の関数やライブラリで使用するために、 int64_t
to long long
(および同様に とunsigned
同等のもの)を確実にキャストできますか? (もちろん、また戻ってきます。)uint64_t
long long
そのような考え方で、GCC にない Clang 機能を必要とするコードを出荷した場合、Clang は Linux で選択されるコンパイラとして GCC に取って代わるのでしょうか? そのコンパイラは、ソース コードをエンド ユーザーに提供するときに、ほとんどの場合、期待できるものでしょうか?
基本的に、移植可能な C および C++ コードに両方のタイプを使用したことのある他の開発者からのアドバイスをお願いしたいと思います。 .