問題タブ [inline-functions]
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++ - C ++でインライン関数を使用してもバイナリサイズが大きくならないのはなぜですか?
私はこのコードを書きました:
しかし、なぜこのプログラムのバイナリはこのプログラムと変わらないのですか?
c - 再帰関数をインラインにするとどうなりますか?
インライン関数について疑問があります。インライン関数は関数呼び出しを必要としませんが、インライン関数の呼び出しが行われる場所で関数定義を置き換えるだけです。インライン関数には、マクロとは異なり、型の強制があります。再帰関数をインライン化するとどうなりますか?
c++ - C++ インライン関数のプロトタイプ
インラインおよび const であるさまざまな関数プロトタイプ宣言を含むヘッダー ファイルを見つけました。
inlineキーワードを使用すると、関数が呼び出されたときにコンパイラが (潜在的に) 関数を展開できることを理解していますが、関数の本体を含めないのはなぜですか?
定義がヘッダーファイルに含まれていれば、私にはもっと理にかなっています:
プロトタイプでインラインを使用するポイントは何ですか?
c - Linux C インライン関数へのパラメーターの受け渡し
C プログラムから 2 つの整数またはポインター パラメーターを使用して非inline
関数を呼び出す場合、それらはレジスターrdi
およびに渡されますrsi
。inline
関数への整数/ポインターパラメーターが(スタックではなく) レジスターにも渡されるような方法でコンパイルを行うことはできますか?
objective-c - 構造体作成時のインラインブロック
これは学習用です =) 関数、メソッド、ブロックはすべて宣言してから呼び出すことができることを理解しています。ブロックをよりよく理解しようとしているだけです。
これが私がやりたいことの基本的な考え方です。
コンパイラはブロックの戻り値を認識しておらず、代わりにブロック自体をエラーになる値として認識しています。ブロックをキャストする方法をいくつか試しましたが、解決策を見つけることができませんでした。
これを行う方法はありますか?そうでない場合、戻り値を使用してインライン関数を実行する別の方法はありますか?
編集 Heres は、正解の最初の例に基づいて使用しているコード例です。
編集2これは元の質問の文脈から少し外れていますが、質問を読むときにいつも感謝している文脈での関連性を示しています.
このコード例は、条件に基づいて一部の UILabels のフレームを変更し、オプションでアニメーション化し、完了ブロックを実行します。
各ラベルの setFrame は 1 回だけ呼び出されるので、非常に扱いやすいコードになることに注意してください。
ブロックはすごい!
static-members - Inline Static 関数と静的変数
静的関数をインラインにすることの用途は何ですか? 2 つのファイルで同じ関数を使用するのではなく、静的関数の他の用途はありますか?
c - Cマクロ/インライン関数を可変関数名で使用するには?
基本的に、必要に応じて、基本的な C でオブジェクト指向プログラミングをシミュレートしています。便宜上、マクロまたはインライン関数を使用して、記述する必要があるコードの量を減らしたいと考えています。私の400以上の変数の場合、それぞれに次のような構造が必要です
これをマクロワンライナーとして書く賢い方法があることを望んでいたので、タイプをフィードfoo(x)
して、それをすべてのコードに置き換えることができます。x
問題は、変数を文字列として使用して、関数のタイトルで使用できるようにすることだと思います。
以前にこの種のことに出くわした C の第一人者はいますか?
c++ - 10000の配列乗算用のc ++インライン関数
私は 2 つのプログラムを担当しており、これは 2 つ目のプログラムです。最初のプログラムには、calculation() 関数が含まれておらず、プログラムの開始時と終了時に時間を計っていました。私のコンピュータは、0.523 秒から 0.601 秒まで何でも表示します。
2 番目のタスクは、計算用のインライン関数を作成することでした。高速ではないため、間違っていると思います。表示情報が含まれているために計算関数を正しく作成したのか、それともインライン関数が乗算のみに焦点を当てるべきなのかはわかりません。どちらの方法でも、配列をメインから取り出して関数に入れるのは速くありません。
コンパイラはそれを無視していますか?