-PR-
締切り
済み

任意の数の引数をとる関数

  • 暇なときにでも
  • 質問No.97742
  • 閲覧数76
  • ありがとう数3
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 77% (530/685)

gccでprintfのように、任意の数の引数をとる関数を作りたいのですが、MS-VCでは
hoge(arg1, arg2, ...)
という書式のようですが、gccではエラーでした。
どうすればいいのでしょうか?
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全3件)

  • 回答No.1

someFunction(LPSTR lpszFormat, ...) とすれば使えるはずです。 使い方は、ご自分で探してください。 TRACEマクロなどをソースから探せば使い方が 分かると思いますよ。 ではでは☆ ...続きを読む
someFunction(LPSTR lpszFormat, ...)
とすれば使えるはずです。

使い方は、ご自分で探してください。
TRACEマクロなどをソースから探せば使い方が
分かると思いますよ。

ではでは☆
補足コメント
haporun

お礼率 77% (530/685)

それが、どうもそこ構文でエラーになってしまいます。
バージョンが低いのかな?
投稿日時 - 2001-07-02 15:48:17


  • 回答No.2
レベル13

ベストアンサー率 37% (570/1525)

#include <stdio.h> #include <stdarg.h> int func(int, ...) ; int main(void) {  func(1, "a") ;  func(2, "a", "ab") ;  func(3, "a", "ab&quo ...続きを読む
#include <stdio.h>
#include <stdarg.h>

int func(int, ...) ;

int main(void)
{
 func(1, "a") ;
 func(2, "a", "ab") ;
 func(3, "a", "ab", "abc") ;
 return (0) ;
}

int func(int num, ...)
{
 char *pp ;
 int cc ;
 va_list ll ;

 va_start(ll, num) ;
 for (cc = 0 ; cc < num ; cc++) {
  pp = va_arg(ll, char *) ;
  printf("%3d:\"%s\"\n", cc, pp) ;
 }
 va_end(ll) ;
 return (cc) ;
}

egcs2.91.57(CygWin32上)ではオッケーでした。
MSVC++でもstdargはサポートされています。
補足コメント
haporun

お礼率 77% (530/685)

stdarg.hをインクルードしなければ、関数の定義ができないのでしょうか?
使い方はとりあえずわかっているので。
投稿日時 - 2001-07-02 15:50:08
  • 回答No.3
レベル12

ベストアンサー率 75% (398/526)

 関数の定義自体は、stdarg.hをインクルードしなくても出来ますよ。 (可変長引数のプロトタイプは、ANSI C準拠の処理系ならば、どこでも使えるはずですが。)  ちなみに下記のコードでテストしてみたところ、問題なく動作しました。 (gccのバージョンは2.95.2でした) #include <stdio.h> void arg(int n, ... ); i ...続きを読む
 関数の定義自体は、stdarg.hをインクルードしなくても出来ますよ。
(可変長引数のプロトタイプは、ANSI C準拠の処理系ならば、どこでも使えるはずですが。)

 ちなみに下記のコードでテストしてみたところ、問題なく動作しました。
(gccのバージョンは2.95.2でした)

#include <stdio.h>

void arg(int n, ... );

int main(void)
{
  arg(5, 1,5,3,4,7);
  return 0;
}

void arg(int n, ... )
{
  int *p = &n;
  int i;

  for (i = 0; i < n; i++)
    printf("%d\n", *++p);
}

# 引数の渡され方が分かっていれば、stdarg.hがなくても処理できます。
お礼コメント
haporun

お礼率 77% (530/685)

うーむ、構文は間違ってないと思うのですが。
もういちど調べてみます。
投稿日時 - 2001-07-06 12:07:31
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ