問題タブ [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.

0 投票する
1 に答える
187 参照

c++ - UINT64_MAX 標準ライブラリ マクロの使用方法を教えてください。

C++ を学習しているときに、最近マクロの使用法に出くわし、次のような多くの標準マクロがあることを知りました (および整数用の他の多くのマクロ)。

( https://en.cppreference.com/w/cpp/types/integerから)

名前がそれ自体を物語っていても(私は推測しますか?)、コードでそれをどのように使用するかはよくわかりません。

編集:このマクロがuint64_tに含めることができる 最大値を返すことはわかっています。私が知らないのは、これをいつどのように使用する必要があるかです。書かれた例と「一般的な」シナリオを示すことができれば、それは完璧です.

0 投票する
1 に答える
96 参照

c - 複数の `return` ステートメントを持つ可変引数関数の各 `return` ステートメントの前に `va_end()` を呼び出す必要がありますか?

いつも私を困惑させることが 1 つありますva_end()。これは実際の関数ではなく、プリプロセッサ マクロであるとよく読みます。これは取るに足らない詳細のように聞こえるかもしれませんが、実際には、va_end()呼び出す必要がある場所に影響を与える可能性があります。

問題は単純です:複数のステートメントを持つ可変引数関数のva_end()各ステートメントの前に呼び出す必要がありますか?returnreturn

次の例の可変個引数関数には、その引数の最初の非 を返すという簡単なタスクがありNULLます。ご覧のとおりreturn、関数本体には 3 つのステートメントがあります。そのうちの 1 つva_start()が の前後に表示されva_end()ます。

このコードは正しいですか?

編集:

明確にするために、上記の例は、教訓的な目的でのみその形式で書かれています。実際には、次のように、より適切で合成的な方法で書き直すことができます。