[解決済み] CのMINとMAX
2022-03-14 16:52:51
質問
どこですか?
MIN
と
MAX
C言語で定義されているとしたら、それは何ですか?
これらを、できるだけ一般的に、かつ型安全に実装するためには、どのような方法があるでしょうか?(主流のコンパイラのためのコンパイラ拡張/ビルトインが望ましい。)
どのように解決するのですか?
<ブロッククオート
どこですか?
MIN
と
MAX
C言語で定義されているとしたら、それは何ですか?
そうではありません。
これらを、できるだけ一般的で型安全な形で実装する最善の方法は何でしょうか(主流のコンパイラのためのコンパイラ拡張/ビルトインが望ましい)。
関数として。のようなマクロは使いません。
#define MIN(X, Y) (((X) < (Y)) ? (X) : (Y))
特に、コードを配布する予定がある場合は。自分で書くか、標準的な
fmax
または
fmin
でマクロを修正するか、あるいは
GCCのtypeof
(型安全性のボーナスも得られます)。
GCCステートメント式
:
#define max(a,b) \
({ __typeof__ (a) _a = (a); \
__typeof__ (b) _b = (b); \
_a > _b ? _a : _b; })
そして、数ヶ月後には、最も愚かな問題を何時間もかけてデバッグすることになるのです。
を使用していることに注意してください。
__typeof__
ではなく
typeof
:
ヘッダーファイルを書く場合 ISO C に含まれる場合に動作する必要があります。 プログラムでは
__typeof__
の代わりにtypeof
.
関連
-
赤線の位置は必ずしも間違っていない:式は変更可能なlvalueでなければならないエラーは、この文とは別の場所に存在する可能性があります。
-
[解決済み] C++とCの融合 - #ifdef __cplusplus はどのように機能するのか?
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] 1ビットのセット、クリア、トグルはどのように行うのですか?
-
[解決済み] マクロで無意味なdo-while文やif-else文を使っているのはなぜですか?
-
[解決済み] CとC++でmain()は何を返すべきですか?
-
[解決済み] Project Eulerとの速度比較。CとPythonとErlangとHaskellの比較
-
[解決済み] リストに対して max()/min() を使用して、返された最大または最小の項目のインデックスを取得する
-
[解決済み] C言語でファイルサイズを取得するには?[重複]する
-
[解決済み] Postgresで2つのフィールドのMIN()を取得する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ⑭と⑯は何のためにあるのですか?
-
[解決済み] ソケットアクセプト - "開かれているファイルが多すぎる"
-
[解決済み] C関数から文字列を返す
-
[解決済み] "static const" vs "#define" vs "enum"
-
[解決済み] constexpr` と `const` の相違点
-
[解決済み] printfにおけるdoubleの正しい書式指定子
-
[解決済み] なぜsizeof(x++)はxをインクリメントしないのですか?
-
[解決済み] C言語でファイルが存在するかどうかを確認する最も良い方法は何ですか?
-
[解決済み] ストラクチャーとユニオンの違い
-
[解決済み] C言語で "unsigned long "をprintfする方法は?