関数の引数で配列を宣言することは可能ですか?

J.シーク

次のように、intの配列をCの関数に渡す方法はありますか?

func(int[]{1, 2, 3});

またはこのように?

func({1, 2, 3});

私はva_listの存在を知っていますが、それは私が探しているものではありません。

ジョナサン・レフラー

複合リテラルを探しているようですC11§6.5.2.5複合リテラルで定義されています。C99の機能でもあります)。

func((int[]){ 1, 2, 33, 491 });

複合リテラルは、キャストの後に、キャストで指定されたタイプのブレース付き初期化子が続くように見えます。複合リテラルのスコープは、それが導入されたステートメントブロックの終わりまでであるため、呼び出しfunc()が見つかったブロック全体で有効になりますしたがって、への呼び出し全体に対して有効ですfunc()また、複合リテラルは変更可能な値です。

配列内の値の数を指定せずに関数へのインターフェイスについて正当に疑問を呈することはできますが(func()配列の大きさをどのように知ることできますか)、それは複合リテラル表記の概念にいくらか接しています。

関数自体は、配列引数を取る完全に普通の関数です。

extern void func(int arr[]);

void func(int arr[])
{
    …
}

または、もちろん:

extern void func(int *arr);

void func(int *arr)
{
    …
}

そして(関数が配列の大きさをどのように知るかについての主な警告があります)、次のように書くことができます:

void calling_func(void)
{
    func((int[]){ 1, 2, 33, 491 });
    int array[] = { 2, 99, 462, -9, -31 };
    func(array);
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

typedefなしで配列参照を返す変換関数を宣言することは可能ですか?

分類Dev

C ++で引数としてそれ自体を使用する関数型を宣言することは可能ですか?

分類Dev

Pythonで関数を前方宣言することは可能ですか?

分類Dev

三項代入で関数の引数を分解することは可能ですか?

分類Dev

引数付きの関数を自動生成することは可能ですか?

分類Dev

引数として任意のサイズの配列を受け入れる関数(Golangでは可能ですか?)

分類Dev

Python3.7で関数入力引数の静的型宣言を行うことは可能ですか?

分類Dev

null配列をJavaの可変引数に渡すことは可能ですか?

分類Dev

関数が他の場所で宣言された文字列配列のスライスのサイズを変更することは可能ですか?golang

分類Dev

関数の引数として固定サイズの配列をインプレースで構築することは可能ですか?

分類Dev

n次元の配列を取ることができる関数を書くことは可能ですか?

分類Dev

同じ行の関数宣言でCの関数ポインタを初期化することは可能ですか?

分類Dev

Cの配列から関数を呼び出すことは可能ですか?

分類Dev

Pythonで「except」という関数を宣言することは可能ですか?

分類Dev

可変個引数テンプレート関数の引数を修正することは可能ですか?

分類Dev

引数に名前を付けることでRustの関数を呼び出すことは可能ですか?

分類Dev

関数に配列を渡すことと、main内で配列を宣言することの違いは何ですか?

分類Dev

関数宣言に配列のサイズを含めることのポイントは何ですか?

分類Dev

Javascriptリターンで関数を宣言することは可能ですか?

分類Dev

任意の数の引数を取るPHP関数を作成することは可能ですか?

分類Dev

関数の引数をfinalと宣言するのはなぜですか?

分類Dev

「call」または「apply」を使用して、引数の配列を一度に複数の関数に渡すことは可能ですか?

分類Dev

関数内のExcel配列で個々のセル参照を使用することは可能ですか?

分類Dev

PHP、配列で無名関数を使用して特定の値を取得することは可能ですか?

分類Dev

StringでJavaのデフォルト引数を宣言することは可能ですか?

分類Dev

引数で配列を宣言するのは悪い習慣ですか?

分類Dev

afterScenario関数に引数を送信することは可能ですか?

分類Dev

可変数の要素で配列を作成することは可能ですか?

分類Dev

Rustで未使用の結果を警告する関数を宣言することは可能ですか?

Related 関連記事

  1. 1

    typedefなしで配列参照を返す変換関数を宣言することは可能ですか?

  2. 2

    C ++で引数としてそれ自体を使用する関数型を宣言することは可能ですか?

  3. 3

    Pythonで関数を前方宣言することは可能ですか?

  4. 4

    三項代入で関数の引数を分解することは可能ですか?

  5. 5

    引数付きの関数を自動生成することは可能ですか?

  6. 6

    引数として任意のサイズの配列を受け入れる関数(Golangでは可能ですか?)

  7. 7

    Python3.7で関数入力引数の静的型宣言を行うことは可能ですか?

  8. 8

    null配列をJavaの可変引数に渡すことは可能ですか?

  9. 9

    関数が他の場所で宣言された文字列配列のスライスのサイズを変更することは可能ですか?golang

  10. 10

    関数の引数として固定サイズの配列をインプレースで構築することは可能ですか?

  11. 11

    n次元の配列を取ることができる関数を書くことは可能ですか?

  12. 12

    同じ行の関数宣言でCの関数ポインタを初期化することは可能ですか?

  13. 13

    Cの配列から関数を呼び出すことは可能ですか?

  14. 14

    Pythonで「except」という関数を宣言することは可能ですか?

  15. 15

    可変個引数テンプレート関数の引数を修正することは可能ですか?

  16. 16

    引数に名前を付けることでRustの関数を呼び出すことは可能ですか?

  17. 17

    関数に配列を渡すことと、main内で配列を宣言することの違いは何ですか?

  18. 18

    関数宣言に配列のサイズを含めることのポイントは何ですか?

  19. 19

    Javascriptリターンで関数を宣言することは可能ですか?

  20. 20

    任意の数の引数を取るPHP関数を作成することは可能ですか?

  21. 21

    関数の引数をfinalと宣言するのはなぜですか?

  22. 22

    「call」または「apply」を使用して、引数の配列を一度に複数の関数に渡すことは可能ですか?

  23. 23

    関数内のExcel配列で個々のセル参照を使用することは可能ですか?

  24. 24

    PHP、配列で無名関数を使用して特定の値を取得することは可能ですか?

  25. 25

    StringでJavaのデフォルト引数を宣言することは可能ですか?

  26. 26

    引数で配列を宣言するのは悪い習慣ですか?

  27. 27

    afterScenario関数に引数を送信することは可能ですか?

  28. 28

    可変数の要素で配列を作成することは可能ですか?

  29. 29

    Rustで未使用の結果を警告する関数を宣言することは可能ですか?

ホットタグ

アーカイブ