問題タブ [function-parameter]
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 - 関数プロトタイプを理解する
関数のプロトタイプか
と
似ている?
はいの場合、どういうint []
意味ですか?
位置を入れ替えて上記のプロトタイプを定義できますか?
?
注:ポインタについてはわかりません(申し訳ありません)。
c - 配列引数を関数に渡す
関数呼び出し時
メイン関数で
asb
ではなく引数を渡すのはなぜですか? 注:私はポインタについての知識がありません。b[]
sum_array(b[],10)
c - 関数の VLA 配列パラメーターに整数の代わりにアスタリスク "[*]" を使用するのはなぜですか?
関数のパラメータとして 可変長配列を使用する場合
n
最初のパラメーター ( ) が 2 番目のパラメーター ( ) の長さを指定することを理解するのは簡単a
です。しかし、パラメータとして VLAに使用される別のプロトタイプに遭遇しました
内部*
の代わりに使用される理由を理解するのは本当に難しいですか?n
[]
c - 引数としての「複合リテラル」
sum(int [], arr_size)
ステートメントで関数を呼び出す
複合リテラル が (int []){1,2,3,4,5}
引数として渡されます。配列の長さがリテラルの要素の数によって決定されることは明らかです(これはもちろん5
ここにあります)。5
それでは、別の引数として 渡す必要は何ですか?
上記の関数を次のように定義できませんか
そしてそれを次のように呼び出します
?
c# - VB C# の「オプション」に相当するもの
C# に Optional はありますか?
上記のコードを C# でどのように実装しますか? 見optionalstr
optionalint
たことがありますが、他のデータ型とカスタム オブジェクトはどうですか?
sql - パラメータが重複する PostgreSQL 関数
で奇妙な関数シグネチャを見つけましたpg_catalog.pg_stat_get_activity
:
この関数は同じパラメータ名を 2 回宣言していますが、これは からも報告されていinformation_schema
ます。
上記の結果が得られます (このSQLFiddleも参照してください)。
単純に、同様の関数を作成しようとしましたが、役に立ちませんでした:
私の質問:
pg_stat_get_activity
内部関数が同じパラメーター名を 2 回再宣言するのはなぜですか? これの目的は何ですか?たとえば、なぜINOUT
パラメーターを使用しないのですか?pg_stat_get_activity
内部関数と私の違いは何ですか?この構文を使用できないのはなぜですか?
これらはかなりアカデミックな質問であることは承知していますが、jOOQ codegenerator の問題を修正するには、これを正しく理解する必要があります。
c - 関数プロトタイプとそのパラメーター宣言リストを宣言する方法は?
ISO/IEC 9899:TC3 6.9.1 を読んだとき -> 例 13
そしてメモ:
[...]
ここで int a, b; パラメータの宣言リストです。これら 2 つの定義の違いは、最初の形式は関数への後続の呼び出しの引数の変換を強制するプロトタイプ宣言として機能するのに対し、2 番目の形式はそうしないことです。
そこで、そのようにコンパイルするための独自のテスト コードを作成しました。(私は、両方の方法を前に宣言する必要があるか、とにかく言及された型定義でプロトタイプを作成する必要があると考えました)
だから私は今尋ねています:この方法の間にパフォーマンス関連の違いはありますか:
そしてこれは?
私が理解しているように、最初の方法では関数呼び出しで複数の変換が回避されるため、違いがあります。これは、型が型になることが保証されているため、パラメーター型への変換が必要ないためです (この場合) size_t
.
しかし、プロトタイプは両方の場合で似ている必要があり、プロトタイプはコンパイラが処理を行うソースであると考えたので、混乱しました。
だから:違いは正確には何ですか?また、ある場合、なぜ最初の方法はめったに (決して) 見られないのでしょうか?