C言語なら俺に聞け 160at TECHC言語なら俺に聞け 160 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト750:デフォルトの名無しさん 23/03/17 21:22:13.62 ap5J/Una0.net 「ファイルが見つかりません - *.c」 今の話題はこれのことだろう 751:デフォルトの名無しさん 23/03/17 22:10:24.98 Pco9qL75d.net ワイルドカードで受け取ってアプリ内でいい感じに展開するのは結構負担大きいんだよな MSDOSのシェル側の負担を減らしたいというのは発想としてはアリなんだけど、 ハードの性能が上がった現代では時代遅れになってしまった 752:デフォルトの名無しさん 23/03/18 00:02:14.45 W6y4Yh40d.net >>742 言えることは 普通にビルドで必要な機能は揃ってるからmakeの組み込み関数を使え shellは最後の手段と思え どこで展開が起こってるかエスケープ文字が食われているかを探してる時間のムダだ 753:デフォルトの名無しさん 23/03/18 05:53:53.69 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); // 後処理 } 上記コードのメカニズムがよくわかりません 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch