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

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

c - -finline-limit GCC コンパイラ オプションの正確な動作

GCC のコンパイラ オプションを使用しています。コードをコンパイルしてプロファイリングし、CPU サイクルの削減を確認しています。Nを増やすと、理想的には、より大きな関数がインライン化されるため、サイクル数が減少するはずです。しかし、CPU サイクルが増加しています。なぜこうなった?-finline-limit=N

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

ios - Objective C で NS_INLINE 関数を使用する場合

多くの人NS_INLINEがコードで関数を使用することがあることに気付きました。私は、彼らがいつそれを使うべきか、そしてなぜそれを使うのかを知りたがっています。

INLINE関数は関数よりも命令が少ないと読みましたobjective-C。Cについてあまり知らないので、この分野で少し迷っています。

私が見たいくつかの例は次のとおりです。

特定の場所で使用したい。例えば。assetsギャラリーをすべて取得して、と があるかどうかを確認する必要がlocationありdateます。checkLocationそれらの機能を機能checkDateとして実行したいと思いinlineます。

一部のユーザーは 5000 枚の写真を持っていますが、iPhone 4s では時間が 5 分まで増加します。これは多すぎます。コードをリファクタリングしたいのですが、inline関数が悪い方法ではない場合があることを読みました。

0 投票する
2 に答える
524 参照

c - 関数を非静的として宣言し、静的インラインとして実装する

関数のさまざまな実装を書きたいと思いますinline。したがって、関数を次のように宣言します。

そしてまた持っています:

DO_INLINEコンパイル時に指定します。

MSVC ではこれに問題はありませんが、GCC (4.1.1) は、静的関数を非静的として宣言した後で静的関数を宣言していると文句を言います。static修飾子を削除すると#include "MyHeader.h"、複数のコンパイル単位から、複数の定義について不平を言うでしょう。(あたかもinline関数が であるかのようにextern。) コンパイラがこれに問題を抱えている理由がよくわかりません。

これはかなり明白で明確であるべきだと思います:

宣言が である必要はありませんstatic

そうは言っても、私が回避しようと非常に懸命に努力している私の問題に対する解決策があります。

編集: これは、より現実的な使用例です: http://codepad.org/OkC0Su3v

0 投票する
4 に答える
5129 参照

c - 2 つの c ファイル間のグローバルインライン関数

この質問に続いて、私は以前に尋ねました。inlineグローバル スコープで関数を定義する方法を知りたいです。

test.h で関数を宣言 し、main.cで定義して、test.c から呼び出したい。inline

main.c と test.c の両方#include "test.h"(コード サンプルについては、上のリンクをクリックしてください)。

これは基本的に、ユーザーが有効/無効にできるある種のコールバック関数です。また、関数が定義されているファイルは 1 つだけです。

inlineコンパイラへの単なる提案であり、最新の CPU では大きな違いはありませんが、これは 8 ビット マイクロコントローラ用であり、実際に必要になります。

編集:

このインライン関数を呼び出す関数が test.c にあります。呼び出しを main.c で定義された関数の本体に置き換えたいだけです。それが理にかなっていることを願っています。