問題タブ [c-standard-library]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - UINT64_MAX 標準ライブラリ マクロの使用方法を教えてください。
C++ を学習しているときに、最近マクロの使用法に出くわし、次のような多くの標準マクロがあることを知りました (および整数用の他の多くのマクロ)。
( https://en.cppreference.com/w/cpp/types/integerから)
名前がそれ自体を物語っていても(私は推測しますか?)、コードでそれをどのように使用するかはよくわかりません。
編集:このマクロがuint64_tに含めることができる 最大値を返すことはわかっています。私が知らないのは、これをいつどのように使用する必要があるかです。書かれた例と「一般的な」シナリオを示すことができれば、それは完璧です.
c - 複数の `return` ステートメントを持つ可変引数関数の各 `return` ステートメントの前に `va_end()` を呼び出す必要がありますか?
いつも私を困惑させることが 1 つありますva_end()
。これは実際の関数ではなく、プリプロセッサ マクロであるとよく読みます。これは取るに足らない詳細のように聞こえるかもしれませんが、実際には、va_end()
呼び出す必要がある場所に影響を与える可能性があります。
問題は単純です:複数のステートメントを持つ可変引数関数のva_end()
各ステートメントの前に呼び出す必要がありますか?return
return
次の例の可変個引数関数には、その引数の最初の非 を返すという簡単なタスクがありNULL
ます。ご覧のとおりreturn
、関数本体には 3 つのステートメントがあります。そのうちの 1 つva_start()
が の前後に表示されva_end()
ます。
このコードは正しいですか?
編集:
明確にするために、上記の例は、教訓的な目的でのみその形式で書かれています。実際には、次のように、より適切で合成的な方法で書き直すことができます。