2017-02-17 16 views
-7

C/C++プログラミングのインライン関数とインライン関数と外部関数の違いについて知っておく必要があります。助けのためのthnx ^^組込みシステムのインライン、インライン、外部の違いは?

+5

言語はありません。C/C++。 –

+0

と@πάνταῥεwhatが言ったことを完了するために、 'C/C++ 'という表現はCとC++の両方でUBです。 :) –

+1

@πάνταῥεyouあなたはこの特定の質問に関してCとC++が違うと言っていますか?彼らがいない場合、私は本当に各言語のための1つの質問を持つ必要性を見ていない。 –

答えて

2

組み込み関数

は、ライブラリ内の実際の関数を呼び出すときに可能性の代わりに、コンパイラが直接実装の機能です。 たとえば、最適化や特定のハードウェア機能に到達するために使用できます。

ARM用には、単一のNOP(No Operation)命令を挿入する「__nop()」と呼ばれる組み込み関数(およびその他多くのもの)が存在します。それはdoesnのよう

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0205g/Ciabijcc.html

What are intrinsics?

https://en.wikipedia.org/wiki/Intrinsic_function

エクスターナル機能

詳細については、以下のリンクを参照してくださいには、何かが他の場所で定義されているコンパイラーに指示します。 〜しない定義されていない、または多重定義されていると不平を言います

CやC++で関数を宣言するときにキーワードexternを使用する必要はほとんどありませんが、通常はこのようにデフォルトでリンクされています。

次の詳細情報へのリンク

Extern functions in C vs C++

http://www.cplusplus.com/forum/general/21368/

インライン関数

インライン関数を参照してくださいは、特に実行時間を短縮するために、コンパイラによって使用される最適化手法であります。 たとえば、1つの入力パラメータで小さな関数(インラインとして宣言されていない)があり、この関数を複数回呼び出すとします。 プロセッサう機能

  • に保存
    1. (とりわけ)パラメータ
    2. ジャンプ機能に
    3. ストア結果を実行します(もしあれば)
    4. バック前の位置へ
    5. ジャンプ

    代わりに、関数がインラインであった場合、関数は呼び出し文を関数コード自体に置き換えてコンパイルしますコード。

    主要な検索エンジンで利用可能ないくつかのより多くのリンクがあります。詳細について

    http://www.cplusplus.com/articles/2LywvCM9/

    https://en.wikipedia.org/wiki/Inline_function

    http://www.cprogramming.com/tutorial/lesson13.html

    については、以下のリンクを参照してください。

  • +2

    リンクのみの回答は目立たないが、これは操作よりも多くの努力を示している! +1 –

    +0

    yr replyのthnxですが、組み込み関数の使い方を理解していませんか?あなたは私にexamplをくれませんか? – SES

    +0

    @Colin__sこれはこれがどのように動作するかではありません....幸いにも答えは拡大しました –

    関連する問題