[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 09/06 12:27 / Filesize : 234 KB / Number-of Response : 1016
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C言語なら俺に聞け 160



753 名前:デフォルトの名無しさん [2023/03/18(土) 05:53:53.69 ID:zRF+ruu+d.net]
/* データ型が混在した可変個引数をもつ関数の例 */
#include <stdio.h>
#include <stdarg.h>

void unidisp(char *fmt, ...);

int main(void)
{
unidisp("iii",100, 200, 300); // 3つのデータ表示
unidisp("idsids", 11, 22.22, "aaaa", 33, 44.44, "bbbbb") // 6つのデータ表示
return 0;
}
/* fmt内容 → i:int値表示 d:double値表示 s:文字列表示 */
void unidisp(char *fmt, ...)
{
va_list ap; // 構造体オブジェクトを確保
va_start(ap,fmt); // 最終引数を指定してapを設定
while (*fmt) {
if (*fmt == 'i') printf("%d\n", va_arg(ap, int)); // int値表示
if (*fmt == 'd') printf("%f\n", va_arg(ap, double)); // double値表示
if (*fmt == 's') printf("%s\n", va_arg(ap, char *)); // 文字列表示

++fmt;
}
va_end(ap); // 後処理
}

上記コードのメカニズムがよくわかりません






[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<234KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef