uint64_t
と を使用して、16 進文字列からいくつかの値を読み込みたいと思いprintf
ますscanf
。
私が使用しているすべてのプラットフォームでlong
orのサイズが同じであるとは限らlong long
ないため、次のようなフォーマット文字列を使用する"%llx"
と、long long が 128 ビットのプラットフォームでは警告が"%lx"
表示され、long long が 64 ビット (および long long より小さい) のプラットフォームでは警告が表示されます。 )。
私が最初に考えたのは、フォーマット文字列をマクロで定義することでしたが、sizeof はマクロ式ではサポートされていません。
できれば警告なしで、どのプラットフォームでも機能するようにフォーマット文字列を定義する方法はありますか?