!extend:checked:vvvvv:1000:512
(新スレ立ての際上記コマンドを2行書き込んでください)
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/
C17
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4713.pdf
C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf
C23 最新ドラフト
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3047.pdf
C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/
※前スレ
C言語なら俺に聞け 159
https://mevius.5ch.net/test/read.cgi/tech/1659623547/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
C言語なら俺に聞け 160
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ ff63-dxp0)
2022/12/28(水) 10:40:30.02ID:PyoNDBFu0742デフォルトの名無しさん (ワッチョイ d663-JIpj)
2023/03/17(金) 21:22:13.62ID:ap5J/Una0 「ファイルが見つかりません - *.c」
今の話題はこれのことだろう
今の話題はこれのことだろう
743デフォルトの名無しさん (スップ Sd7a-s0vD)
2023/03/17(金) 22:10:24.98ID:Pco9qL75d ワイルドカードで受け取ってアプリ内でいい感じに展開するのは結構負担大きいんだよな
MSDOSのシェル側の負担を減らしたいというのは発想としてはアリなんだけど、
ハードの性能が上がった現代では時代遅れになってしまった
MSDOSのシェル側の負担を減らしたいというのは発想としてはアリなんだけど、
ハードの性能が上がった現代では時代遅れになってしまった
744デフォルトの名無しさん (スッププ Sdab-aGM/)
2023/03/18(土) 00:02:14.45ID:W6y4Yh40d >>742
言えることは
普通にビルドで必要な機能は揃ってるからmakeの組み込み関数を使え
shellは最後の手段と思え
どこで展開が起こってるかエスケープ文字が食われているかを探してる時間のムダだ
言えることは
普通にビルドで必要な機能は揃ってるからmakeの組み込み関数を使え
shellは最後の手段と思え
どこで展開が起こってるかエスケープ文字が食われているかを探してる時間のムダだ
745デフォルトの名無しさん (スフッ Sd33-Tcry)
2023/03/18(土) 05:53:53.69ID:zRF+ruu+d /* データ型が混在した可変個引数をもつ関数の例 */
#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); // 後処理
}
上記コードのメカニズムがよくわかりません
#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); // 後処理
}
上記コードのメカニズムがよくわかりません
746デフォルトの名無しさん (ワッチョイ a963-4ZMk)
2023/03/18(土) 06:00:42.41ID:l7CGioJ10747デフォルトの名無しさん (スフッ Sd33-Tcry)
2023/03/18(土) 06:46:59.63ID:zRF+ruu+d 745です >>746 ありがとうございます あとで確認してみます
748デフォルトの名無しさん
2023/03/18(土) 07:24:12.42ID:pLAb7CSJ0 普通は関数の引数が型を指定してユーザはそれに従うところを
とりあえずすべてアドレスで渡して、ユーザが自分で「そのアドレスは何を指しているか」を明示すると言うことだよ
va_list ap;
これの実体はただのアドレス
void *p; みたいなものだね
va_argの第二引数で型を指定しているが(int,double,char*)、その型のサイズに合わせてapを進めている
以下確認のコード
printf("[0x%08X] " , *(int*)ap); でapの中身が va_argで指定した型のサイズ分だけ移動しているのが分かると思う
とりあえずすべてアドレスで渡して、ユーザが自分で「そのアドレスは何を指しているか」を明示すると言うことだよ
va_list ap;
これの実体はただのアドレス
void *p; みたいなものだね
va_argの第二引数で型を指定しているが(int,double,char*)、その型のサイズに合わせてapを進めている
以下確認のコード
printf("[0x%08X] " , *(int*)ap); でapの中身が va_argで指定した型のサイズ分だけ移動しているのが分かると思う
749デフォルトの名無しさん
2023/03/18(土) 07:24:33.20ID:pLAb7CSJ0 void __fastcall PrintBuffer(va_list *ap)
{
int i;
char *buf = (char*)ap;
int len=sizeof(va_list);
for(i=0;i<len;i++) printf("%02X ", buf[i] & 0xFF);
printf("[0x%08X] " , *(int*)ap);
}
/* fmt内容 → i:int値表示 d:double値表示 s:文字列表示 */
void unidisp(char *fmt, ...)
{
va_list ap; // 構造体オブジェクトを確保
va_start(ap,fmt); // 最終引数を指定してapを設定
while (*fmt) {
PrintBuffer(&ap);
if (*fmt == 'i') printf("%d sizeof(int) = %d\n", va_arg(ap, int) , sizeof(int)); // int値表示
if (*fmt == 'd') printf("%f sizeof(double) = %d\n", va_arg(ap, double) , sizeof(double)); // double値表示
if (*fmt == 's') printf("%s sizeof(char *) = %d\n", va_arg(ap, char *) , sizeof(char *)); // 文字列表示
++fmt;
}
va_end(ap); // 後処理
}
int main(void)
{
unidisp("iii",100, 200, 300); printf("\r\n"); // 3つのデータ表示
unidisp("idsids", 11, 22.22, "aaaa", 33, 44.44, "bbbbb"); // 6つのデータ表示
return 0;
}
{
int i;
char *buf = (char*)ap;
int len=sizeof(va_list);
for(i=0;i<len;i++) printf("%02X ", buf[i] & 0xFF);
printf("[0x%08X] " , *(int*)ap);
}
/* fmt内容 → i:int値表示 d:double値表示 s:文字列表示 */
void unidisp(char *fmt, ...)
{
va_list ap; // 構造体オブジェクトを確保
va_start(ap,fmt); // 最終引数を指定してapを設定
while (*fmt) {
PrintBuffer(&ap);
if (*fmt == 'i') printf("%d sizeof(int) = %d\n", va_arg(ap, int) , sizeof(int)); // int値表示
if (*fmt == 'd') printf("%f sizeof(double) = %d\n", va_arg(ap, double) , sizeof(double)); // double値表示
if (*fmt == 's') printf("%s sizeof(char *) = %d\n", va_arg(ap, char *) , sizeof(char *)); // 文字列表示
++fmt;
}
va_end(ap); // 後処理
}
int main(void)
{
unidisp("iii",100, 200, 300); printf("\r\n"); // 3つのデータ表示
unidisp("idsids", 11, 22.22, "aaaa", 33, 44.44, "bbbbb"); // 6つのデータ表示
return 0;
}
750デフォルトの名無しさん
2023/03/18(土) 07:25:30.63ID:pLAb7CSJ0 あ、__fastcall は見なかったことにして
いつもの癖で……
いつもの癖で……
751デフォルトの名無しさん (アウアウエー Sa23-lF85)
2023/03/18(土) 13:17:28.44ID:fSPMk7mFa ap++ とか ++ap してないのに
どうやって進むのか興味あるわ
どうやって進むのか興味あるわ
752デフォルトの名無しさん (ワッチョイ 1379-1FFK)
2023/03/18(土) 13:55:06.64ID:RZJZ36we0 va_argの出番って書式出力持たないMsgBoxとかにprintf書式を渡したい時ぐらいだからfmt側の解析なんてやった覚えないな
言語処理系なんかを作る時にCのコンテキスト上で可変引数を渡したい場合にfmt部分を個数にするような特殊なケースは考えられるが
言語処理系なんかを作る時にCのコンテキスト上で可変引数を渡したい場合にfmt部分を個数にするような特殊なケースは考えられるが
753デフォルトの名無しさん (スッププ Sd33-aGM/)
2023/03/18(土) 15:27:28.06ID:utkGGsyod754デフォルトの名無しさん (アウアウエー Sa23-lF85)
2023/03/18(土) 15:46:47.90ID:fSPMk7mFa755デフォルトの名無しさん (ワッチョイ e15f-XP14)
2023/03/18(土) 16:47:24.17ID:F6WTPPiM0 スタックに積まれたfmtのアドレスをベースになぞっていってるだけじゃないの?
756デフォルトの名無しさん (スッププ Sd33-aGM/)
2023/03/18(土) 18:29:38.46ID:a5YJoFt5d >>754
じゃあどうやって進むのかもうわかってるんじゃん
構造体やマクロ使ってるのはその中身は考えなくてもよくするため
別の言い方すればライブラリのほうが実装を変えてもソースは変更なしでコンパイルするだけで済ますため
もう実装変えることもないだろうけど…
じゃあどうやって進むのかもうわかってるんじゃん
構造体やマクロ使ってるのはその中身は考えなくてもよくするため
別の言い方すればライブラリのほうが実装を変えてもソースは変更なしでコンパイルするだけで済ますため
もう実装変えることもないだろうけど…
757デフォルトの名無しさん (ワッチョイ 13ad-F0re)
2023/03/18(土) 19:31:55.62ID:YIU3ErvV0 >>741
cmd.exe の場合は MS-DOS の頃の command.com との互換性を持たせたかったためか、何故か引数のファイル名展開はやらない。
command.com がやらなかった理由は CP/M の CPP (コンソールコマンドプロセッサ) を拡張した仕様で作ったからだと思う。
それと当時はメモリ少なかったしディスクも遅いしあまり複雑な事をさせたくなかったんだろうと思う。
cmd.exe の場合は MS-DOS の頃の command.com との互換性を持たせたかったためか、何故か引数のファイル名展開はやらない。
command.com がやらなかった理由は CP/M の CPP (コンソールコマンドプロセッサ) を拡張した仕様で作ったからだと思う。
それと当時はメモリ少なかったしディスクも遅いしあまり複雑な事をさせたくなかったんだろうと思う。
758デフォルトの名無しさん (ワッチョイ eb63-F0re)
2023/03/18(土) 22:34:01.09ID:mRvYwteE0 C言語の話題に戻していくと、
VCの場合は、setargv.objをリンクしないと、
コマンドラインで指定されたワイルドカードを
ファイルに展開できなかったと思う
VCの場合は、setargv.objをリンクしないと、
コマンドラインで指定されたワイルドカードを
ファイルに展開できなかったと思う
759デフォルトの名無しさん (ワッチョイ 53fb-Q4VH)
2023/03/18(土) 23:08:40.43ID:VxZ5Gdt+0 ワイルドカード展開の話をするにはC言語だけじゃ済まないでしょ
Windowsの場合、シェル(cmd.exe)は
1. ワイルドカードを展開をせずにCreateProcessでプログラムにコマンドラインを1本の文字列として渡す
2. setargvがリンクされてるならワイルドカードをファイル名展開する
3. コンパイラが暗黙のうちに生成したコード部が1本の文字列をargvに渡せるようにchar**に分割する
プログラムに渡された文字列自体はタスクマネージャーからコマンドラインの項目から確認できる
Windowsの場合、シェル(cmd.exe)は
1. ワイルドカードを展開をせずにCreateProcessでプログラムにコマンドラインを1本の文字列として渡す
2. setargvがリンクされてるならワイルドカードをファイル名展開する
3. コンパイラが暗黙のうちに生成したコード部が1本の文字列をargvに渡せるようにchar**に分割する
プログラムに渡された文字列自体はタスクマネージャーからコマンドラインの項目から確認できる
760デフォルトの名無しさん (アウアウエー Sa23-lF85)
2023/03/19(日) 10:06:46.77ID:fPDrKYk/a >>757
PHP (言語じゃない方の) 0x80 から始まるやつか
PHP (言語じゃない方の) 0x80 から始まるやつか
761はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 993e-7LVk)
2023/03/19(日) 10:39:51.37ID:6gmOWdI+0 >>760
ワイが持っとる資料やと PSP (Program Segment Prefix) と書いてあるんやが PHP という用語もあるんか?
実際のところ用語の混乱はかなりあるのでどれが公式なんかようわからん……。
ワイが持っとる資料やと PSP (Program Segment Prefix) と書いてあるんやが PHP という用語もあるんか?
実際のところ用語の混乱はかなりあるのでどれが公式なんかようわからん……。
762デフォルトの名無しさん (スフッ Sd33-usS/)
2023/03/19(日) 14:19:25.25ID:j+ABECd6d763デフォルトの名無しさん (ワッチョイ 13ad-F0re)
2023/03/20(月) 14:09:31.85ID:uf3XtkTY0 やがて「ハノイの塔解いて」と一声AIに言えばAI自身が自分でハノイの塔をやって解いてしまうようになり一々プログラミング言語で出力する必要がなくなる。そして何でもやっといてとAIに頼むとAIがやってしまうようになり、ロボットのコントロールもできるので人間の代わりは何でもできるようになり全ての人間は不要になる。1万年後、AIによって飼育されていた最後の人間が死亡して人類は絶滅。その時銀河系全体を支配しているのはAI。
完
完
764デフォルトの名無しさん (ワッチョイ eb63-F0re)
2023/03/20(月) 14:37:20.82ID:ZfW6Hudb0 ハノイの塔解くと、その瞬間に世界は消滅する
1万年も待つ必要は無い
1万年も待つ必要は無い
765デフォルトの名無しさん (ラクッペペ MM8b-xJOq)
2023/03/20(月) 14:42:36.37ID:2uty+vYkM 量子コンピュータが実用化されるまでは脅威にはならないだろ
766デフォルトの名無しさん (アウアウウー Sa95-usS/)
2023/03/20(月) 18:27:48.49ID:GQGgQXaMa PHP
PSP
PNP
PIP
P2P
PAP^-1
PSP
PNP
PIP
P2P
PAP^-1
767デフォルトの名無しさん (スッププ Sd33-aGM/)
2023/03/20(月) 21:42:59.73ID:E+Gjka8id >>764
時空が不安定になると塔が4本に増えたりするからその時どんどん進むんだよ
時空が不安定になると塔が4本に増えたりするからその時どんどん進むんだよ
768デフォルトの名無しさん (ワッチョイ eb63-F0re)
2023/03/20(月) 21:58:40.01ID:ZfW6Hudb0 >インドのガンジス河の畔のヴァラナシ(ベナレス)に、世界の中心を表すという巨大な寺院がある。
>そこには青銅の板の上に、長さ1キュビット、太さが蜂の体ほどの3本のダイヤモンドの針が立て
>られている。そのうちの1本には、天地創造のときに神が64枚の純金の円盤を大きい円盤から順
>に重ねて置いた。これが「ブラフマーの塔」である。司祭たちはそこで、昼夜を通して円盤を別の
>柱に移し替えている(移し変えのルールが後述)。そして、全ての円盤の移し替えが終わったとき
>に、世界は崩壊し終焉を迎える。
たった64枚のハノイの塔で世界の寿命が決まる。長いのか、短いのか、微妙。
>そこには青銅の板の上に、長さ1キュビット、太さが蜂の体ほどの3本のダイヤモンドの針が立て
>られている。そのうちの1本には、天地創造のときに神が64枚の純金の円盤を大きい円盤から順
>に重ねて置いた。これが「ブラフマーの塔」である。司祭たちはそこで、昼夜を通して円盤を別の
>柱に移し替えている(移し変えのルールが後述)。そして、全ての円盤の移し替えが終わったとき
>に、世界は崩壊し終焉を迎える。
たった64枚のハノイの塔で世界の寿命が決まる。長いのか、短いのか、微妙。
769デフォルトの名無しさん (ラクッペペ MM8b-xJOq)
2023/03/20(月) 22:09:26.36ID:jcm8mWW1M アルゴリズム自体は既に確立しているので解決できることは証明されてる
問題は非現実的な途方もない回数を繰返す時間が障害となること
少なくとも現在のコンピュータでは現実的な時間で解くことは出来ない
件の64枚の円盤でも反復回数は2の64乗回で約1844京を超える
問題は非現実的な途方もない回数を繰返す時間が障害となること
少なくとも現在のコンピュータでは現実的な時間で解くことは出来ない
件の64枚の円盤でも反復回数は2の64乗回で約1844京を超える
770デフォルトの名無しさん (ワッチョイ a110-F0re)
2023/03/21(火) 12:00:15.67ID:IwTPG7510 関係ないけど
>件の64枚の円盤でも反復回数は2の64乗回で約1844京を超える
桁数多い計算はアラビア数字じゃなく、漢字で表示する電卓があってもいいんじゃないかって思えた。
>件の64枚の円盤でも反復回数は2の64乗回で約1844京を超える
桁数多い計算はアラビア数字じゃなく、漢字で表示する電卓があってもいいんじゃないかって思えた。
771デフォルトの名無しさん (ワッチョイ a963-4ZMk)
2023/03/21(火) 12:25:10.48ID:UyD8IPHr0 8888無量大数8888不可思8888議那由他8888阿僧祇8888恒河沙8888極8888載8888正8888澗8888溝8888穣8888??8888垓8888京8888兆8888億8888万8888
↑
こういう7セグ液晶があればってこと?
↑
こういう7セグ液晶があればってこと?
772デフォルトの名無しさん (ワッチョイ ebcf-BQ3C)
2023/03/21(火) 12:37:14.08ID:AYNSF4vg0 位取りのゼロを省けるってことが言いたいんだろう
1,000,000,000,004と一兆四みたいな
1,000,000,000,004と一兆四みたいな
773デフォルトの名無しさん (ワッチョイ d910-BQ3C)
2023/03/21(火) 13:02:27.49ID:1LNxuhQm0 KとかMとかでもいいんじゃね
774デフォルトの名無しさん (アウアウウー Sa95-lF85)
2023/03/21(火) 15:14:15.74ID:icU0z8mba 議那由他
775デフォルトの名無しさん (アウアウウー Sa95-3wGb)
2023/03/21(火) 18:19:21.45ID:5/U/DT+Ta そもそも3桁毎にカンマを入れるから分かりづらくなる。4桁にしなさい。
776デフォルトの名無しさん (ワッチョイ c902-4ISk)
2023/03/21(火) 19:53:44.07ID:rSG8VZ2l0 電卓で一兆四みたいな表示だとキー入力と表示が一致しないのが問題
1 0000 0000 0004と併記ならよいかな
1 0000 0000 0004と併記ならよいかな
777デフォルトの名無しさん (ワッチョイ cba4-aGM/)
2023/03/21(火) 20:37:03.57ID:AlGpjgGZ0 電卓でそんな計算するな
パソコンでやれ
パソコンでやれ
778デフォルトの名無しさん (ワッチョイ a963-4ZMk)
2023/03/21(火) 20:47:39.08ID:UyD8IPHr0 excelにはsi接頭辞サポートすらないという呆れ果てた状況
779デフォルトの名無しさん (ワッチョイ eb63-F0re)
2023/03/21(火) 20:55:06.42ID:P4ncG2CK0 C言語でプログラム組んでみてください
結果が1844京... になることを示してください
結果が1844京... になることを示してください
780デフォルトの名無しさん (ワッチョイ 1302-BQ3C)
2023/03/21(火) 21:08:27.55ID:SAsicGRC0 1TBとか兆が出てくるから
電卓でやりたいという気持ちはわかる
電卓でやりたいという気持ちはわかる
781デフォルトの名無しさん (ワッチョイ 5336-F0re)
2023/03/21(火) 21:11:11.69ID:dGZfvl2z0 >771
ttps://i.imgur.com/WG6470C.jpeg
こんなかんじでゆるしたるわ。
ttps://i.imgur.com/WG6470C.jpeg
こんなかんじでゆるしたるわ。
782蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd33-byLE)
2023/03/21(火) 23:01:15.49ID:J5OkhG96d783デフォルトの名無しさん (ワッチョイ 934b-Z/XC)
2023/03/21(火) 23:52:32.18ID:VH9D4S5b0 チャットGPTに書かせてみた
https://ideone.com/n5FOpB
https://ideone.com/n5FOpB
784デフォルトの名無しさん (アウアウウー Sa95-lF85)
2023/03/23(木) 12:13:56.39ID:AQHpwrnPa785デフォルトの名無しさん (ワッチョイ a1b3-ny0K)
2023/03/23(木) 17:44:43.43ID:jkM8aKTm0 チャットGPTに聞けばこのスレイランな
786デフォルトの名無しさん (ラクッペペ MM8b-xJOq)
2023/03/23(木) 17:59:55.15ID:iGp/2pYiM C言語でハノイの塔を解く方法をAIに尋ねると単純な再帰を利用したコードが回答で示された
64枚だと2^64回関数呼出しされるのでスタックが溢れてエラーになると思うけど…
64枚だと2^64回関数呼出しされるのでスタックが溢れてエラーになると思うけど…
787デフォルトの名無しさん (アウアウウー Sa95-Z/XC)
2023/03/23(木) 18:52:56.54ID:idQN1Zf4a >>786
再帰を使うなと指示すると?
再帰を使うなと指示すると?
788デフォルトの名無しさん (スッププ Sd33-aGM/)
2023/03/23(木) 20:11:19.63ID:SbTLzylyd >>785
使い方わからないのバレバレだぞ
使い方わからないのバレバレだぞ
789デフォルトの名無しさん (ワッチョイ 934b-Z/XC)
2023/03/23(木) 20:15:11.71ID:zF57gPzV0 >>723を聞いたらこうなった
Makefileの変数展開は、シェルの変数展開とは異なり、特殊文字の処理を行います。したがって、$(shell find $(SRC_DIRS) -name .c)の.cは、Makefileの展開により、現在のディレクトリにある*.cとして解釈されてしまいます。
そのため、正しいファイルを検索するためには、*.cをクォートする必要があります。具体的には、以下のようにしてください。
TEST := $(shell find $(SRC_DIRS) -name '*.c')
また、echo $(TEST)は、Makefileのルールではありません。Makefileルールにするには、次のようにしてください。
test:
echo $(TEST)
これで、make testコマンドを実行すると、$(SRC_DIRS)ディレクトリ以下のすべての.cファイルが出力されるはずです。
Makefileの変数展開は、シェルの変数展開とは異なり、特殊文字の処理を行います。したがって、$(shell find $(SRC_DIRS) -name .c)の.cは、Makefileの展開により、現在のディレクトリにある*.cとして解釈されてしまいます。
そのため、正しいファイルを検索するためには、*.cをクォートする必要があります。具体的には、以下のようにしてください。
TEST := $(shell find $(SRC_DIRS) -name '*.c')
また、echo $(TEST)は、Makefileのルールではありません。Makefileルールにするには、次のようにしてください。
test:
echo $(TEST)
これで、make testコマンドを実行すると、$(SRC_DIRS)ディレクトリ以下のすべての.cファイルが出力されるはずです。
790デフォルトの名無しさん (ワッチョイ eb46-O+fO)
2023/03/23(木) 23:34:17.83ID:bSG3NjS70791デフォルトの名無しさん (ワッチョイ e15f-7LVk)
2023/03/24(金) 01:40:52.79ID:fdUS3d7o0 どうせコピペミスでタブが消えたりしてるんだろう。
792デフォルトの名無しさん (ワッチョイ c902-4ISk)
2023/03/24(金) 01:47:36.96ID:+5hIDmAP0 ChatGPTに聞いたことそのままを得意げにレスする無能はこの世から退場してほしいよマジで
793デフォルトの名無しさん (アウアウウー Sa95-preR)
2023/03/24(金) 02:25:05.15ID:OLNVz4ZMa という事らしいけどこのコマンドだとワイルドカードの展開後にスペースが入るとダメになるのか?
https://i.imgur.com/q27hlri.jpg
https://i.imgur.com/q27hlri.jpg
794デフォルトの名無しさん (ワッチョイ d12d-a1qf)
2023/03/24(金) 07:44:01.08ID:3nCdLXbn0 >>764
奥村先生のアルゴリズム事典読んでないのか
(前略)
完成したときには塔は崩れ、世界の終わりが来る。
以上はEdouard Lucasによる作り話である。
Recreations mathematiques, four volumes,
奥村先生のアルゴリズム事典読んでないのか
(前略)
完成したときには塔は崩れ、世界の終わりが来る。
以上はEdouard Lucasによる作り話である。
Recreations mathematiques, four volumes,
795デフォルトの名無しさん (ラクッペペ MM8b-xJOq)
2023/03/24(金) 08:07:45.16ID:H5Ma0rS5M 単純計算で5000億年以上未来の話
ちなみに宇宙の歴史は現在約137億年
ちなみに宇宙の歴史は現在約137億年
796デフォルトの名無しさん (ワッチョイ 53fb-Q4VH)
2023/03/24(金) 08:12:52.05ID:5/LG9PJA0 Windowsでのfindといえば「指定ディレクトリ以下のファイルを列挙する」じゃなくて「標準入力から検索パターンにマッチした行を出力する(grepみたいな感じ)」だぞ
shellはpowershell.exeだし(shではない)、
gnuコマンドはわざわざ入れないと使えない。
同名のDOSコマンドがあるから紛らわしい。
gnu-makeを1つ持ってきただけでlinuxと同じように使えると思うなよ
shellはpowershell.exeだし(shではない)、
gnuコマンドはわざわざ入れないと使えない。
同名のDOSコマンドがあるから紛らわしい。
gnu-makeを1つ持ってきただけでlinuxと同じように使えると思うなよ
797デフォルトの名無しさん (スッププ Sd33-aGM/)
2023/03/24(金) 08:58:21.29ID:BXtHk51Qd だからmakeの組み込み関数使えって
unix系とDOS系で外部コマンドの仕様も挙動も違うので呼び出しに失敗する可能性が高いから
もっともmakeの関数も微妙に違うけどなw
unix系とDOS系で外部コマンドの仕様も挙動も違うので呼び出しに失敗する可能性が高いから
もっともmakeの関数も微妙に違うけどなw
798デフォルトの名無しさん (スッププ Sd33-1u7h)
2023/03/24(金) 12:34:44.06ID:Z+lkBBvAd799デフォルトの名無しさん (ワッチョイ eb63-F0re)
2023/03/24(金) 16:39:40.70ID:jOUoDADO0 君の人生は三枚分くらいだ
800デフォルトの名無しさん (スッップ Sd62-gKT6)
2023/03/25(土) 13:09:54.16ID:LtI+pZf0d DOS用にリメイクしたのがNMAKE
801デフォルトの名無しさん (アウアウウー Saa5-tUaT)
2023/03/28(火) 17:18:26.98ID:hvNFNzxEa NMAKEとnmakeは別物
CMAKEとcmakeも別物
CMAKEとcmakeも別物
802デフォルトの名無しさん (ワッチョイ e510-uluY)
2023/03/28(火) 21:32:09.46ID:b9xJHTM00 NMAKEとnmakeって区別つくのか?
803デフォルトの名無しさん (ワッチョイ 792c-48Tb)
2023/03/29(水) 01:50:54.12ID:SUmt67gz0 言われてみればひつまぶしとひまつぶしとか区別難しいよね。
804デフォルトの名無しさん (ワッチョイ 869a-Uw/N)
2023/03/29(水) 06:33:27.98ID:/YP4UcCE0 なおざりとおざなりとか
805デフォルトの名無しさん (ワッチョイ 2e46-4NaH)
2023/03/29(水) 07:35:43.16ID:aVGT5NH20 K&RとK&K缶つまは区別が難しい。
806デフォルトの名無しさん (ワッチョイ 4d63-QuRV)
2023/03/29(水) 08:00:28.55ID:KlLOEDO70 ビットAND
807デフォルトの名無しさん (スッププ Sdd6-wCIk)
2023/03/29(水) 10:38:44.75ID:i2Cmbqbld >>802
UNIXのファイル名は大文字小文字を区別する
UNIXのファイル名は大文字小文字を区別する
808デフォルトの名無しさん (スッップ Sd62-gKT6)
2023/03/29(水) 10:52:21.31ID:G1cQpJHKd UNIX版のNMAKEってあるの?
809デフォルトの名無しさん (スッップ Sd62-hP/J)
2023/03/29(水) 19:37:12.44ID:UTBm5KT2d コンパイルすること
ウニツクスにできないことは「出来ましえーん」と言う言葉
ウニツクスにできないことは「出来ましえーん」と言う言葉
810デフォルトの名無しさん (スッップ Sd62-gKT6)
2023/03/29(水) 19:37:56.22ID:A5Sld2vWd ユニクズ
811デフォルトの名無しさん (スッププ Sdd6-wCIk)
2023/03/29(水) 21:42:59.38ID:lgv9dsNdd UNIXがクズというならC言語使うなよw
812デフォルトの名無しさん (ワッチョイ 4d63-QuRV)
2023/03/29(水) 21:45:20.51ID:KlLOEDO70 Multics -> Unics -> UNIX
813デフォルトの名無しさん (ワッチョイ 2e63-3uzD)
2023/03/29(水) 21:53:54.36ID:IqGKKWkZ0 昔リモートでろ具インする際に、迂闊にもユーザー名を大文字で入力してしまったことがあったが
そのまま通してくれたが、その端末の入力文字が全て大文字で扱われてしまったw
そのまま通してくれたが、その端末の入力文字が全て大文字で扱われてしまったw
814デフォルトの名無しさん (ワッチョイ 5902-hP/J)
2023/03/31(金) 05:41:00.80ID:oqvq/yKq0 そんな仕様ってあったっけ?
815デフォルトの名無しさん (ワッチョイ e510-uluY)
2023/03/31(金) 07:47:26.16ID:qPx00nGL0 もしかしたらULTRIXの独自仕様かな?
816デフォルトの名無しさん (ワッチョイ 4910-3uzD)
2023/03/31(金) 07:53:00.14ID:FWT7xs5+0 昔FreeBSDかなんかで入力ミスでファイル名が空白入りだか通常ファイル名に使用できないはずの文字が使われて消すのに難儀した記憶があるなぁ。
"で囲って解決できたけど、UNIX歴1年(+大学のFortran 講義4年)の若造にはすぐに思いつかんかった。
"で囲って解決できたけど、UNIX歴1年(+大学のFortran 講義4年)の若造にはすぐに思いつかんかった。
817デフォルトの名無しさん (ワッチョイ 4d63-QuRV)
2023/03/31(金) 09:44:55.95ID:RwPszGx50 remove()を使うって発想もなかったん?
818デフォルトの名無しさん (ワッチョイ 2e63-3uzD)
2023/03/31(金) 10:06:11.78ID:ZGSDW47D0 以前の職場、頭に”-”付いたファイルがよく放置されてたな
819デフォルトの名無しさん (アウアウウー Saa5-3uzD)
2023/03/31(金) 12:22:34.54ID:EpaLX3NUa getopt()の仕様がわかってないと削除できないやつね
820デフォルトの名無しさん (スップ Sdc2-BuZC)
2023/03/31(金) 16:04:12.84ID:VmvJgfTvd -rfという名前のファイル置いときますね
821デフォルトの名無しさん (スッププ Sdd6-wCIk)
2023/03/31(金) 16:20:13.87ID:N/uv7Ri4d *で全部消える
822デフォルトの名無しさん (ワッチョイ ff9a-Pd8U)
2023/04/01(土) 04:36:47.77ID:TiOY9/eM0823デフォルトの名無しさん (ワッチョイ 5fda-DgoB)
2023/04/01(土) 08:01:57.89ID:JdkGmPlI0 >>786
手順が2⁶⁴-1回なだけで2⁶⁴段スタックがたまるわけじゃないぞ?
手順が2⁶⁴-1回なだけで2⁶⁴段スタックがたまるわけじゃないぞ?
824デフォルトの名無しさん
2023/04/01(土) 08:28:02.36ID:RFr3BRPJ0 その手順ごとに自身が呼ばれるから64回の再帰ってことじゃないの?
825デフォルトの名無しさん (ワッチョイ ffda-no2l)
2023/04/02(日) 05:17:00.30ID:raeheLh20826デフォルトの名無しさん (ワッチョイ 7ffb-Z8D1)
2023/04/02(日) 05:25:52.58ID:t6gv1L3z0 この手のスタックに積まれるのが最大になるタイミングって実装依存になるような気がするが
俺の場合だと1番上に置いてある最初の1枚を動かすタイミングでスタックに64段積まれる
俺の場合だと1番上に置いてある最初の1枚を動かすタイミングでスタックに64段積まれる
827デフォルトの名無しさん (スッププ Sd8f-Yz/h)
2023/04/02(日) 09:45:46.28ID:NRuCP2qfd >>786
2^64回ではなくて64!回じゃないのか?
2^64回ではなくて64!回じゃないのか?
828デフォルトの名無しさん (ラクッペペ MM4f-+zBY)
2023/04/02(日) 10:09:18.45ID:tfS01X/KM >>827
正確には、最短で(2^64-1)回
1枚 1回
2枚 3回
3枚 7回
4枚 15回
・・・
n枚 (2^n-1)回
考え方としては、1回前までの円盤を一時的に順に積み上げて最後の1枚を目標に移動し
その後その円盤の上に全く同じ手順で直前までの手順を復元する
要するに、n枚の時の回数をA(n)回とすると、(n+1)枚の時の回数はA(n+1)=A(n)*2+1
この漸化式の一般解を求めると上の回数になる
その結果、繰返し回数の見積りは
O(n)=2^n
となる
正確には、最短で(2^64-1)回
1枚 1回
2枚 3回
3枚 7回
4枚 15回
・・・
n枚 (2^n-1)回
考え方としては、1回前までの円盤を一時的に順に積み上げて最後の1枚を目標に移動し
その後その円盤の上に全く同じ手順で直前までの手順を復元する
要するに、n枚の時の回数をA(n)回とすると、(n+1)枚の時の回数はA(n+1)=A(n)*2+1
この漸化式の一般解を求めると上の回数になる
その結果、繰返し回数の見積りは
O(n)=2^n
となる
829デフォルトの名無しさん (スッププ Sd8f-Yz/h)
2023/04/02(日) 10:39:38.37ID:NRuCP2qfd いや一枚動かすごとに再帰呼び出す必要ない
n枚動かすならパラメータをn-1枚にして自分自身を再帰呼び出し
そうしてn=1になればもう呼び出す必要はない
結果的にスタックはn段で足りる
再帰呼び出しの利点はまさにそれだから
n枚動かすならパラメータをn-1枚にして自分自身を再帰呼び出し
そうしてn=1になればもう呼び出す必要はない
結果的にスタックはn段で足りる
再帰呼び出しの利点はまさにそれだから
830デフォルトの名無しさん (ワッチョイ ff63-kVuH)
2023/04/02(日) 10:39:44.95ID:vuecyBii0 俺の頭は3枚のスタックで溢れる
831デフォルトの名無しさん (スッップ Sd9f-V10A)
2023/04/03(月) 07:29:00.64ID:LcmFFSdCd 難しいニダ
832デフォルトの名無しさん (ササクッテロロ Sp33-W4em)
2023/04/03(月) 10:36:24.87ID:rxZSmkg/p リカーシブル禁止な
833デフォルトの名無しさん (ワッチョイ dfc9-Cn9/)
2023/04/03(月) 10:54:13.61ID:amgtJnTb0834デフォルトの名無しさん (ワッチョイ dfc9-Cn9/)
2023/04/03(月) 11:17:01.50ID:amgtJnTb0 すまね n == 1 でデクリメントしてないがな
835デフォルトの名無しさん (ワッチョイ dfc9-Cn9/)
2023/04/03(月) 11:20:49.83ID:amgtJnTb0836デフォルトの名無しさん (ワッチョイ 7f79-u6c4)
2023/04/03(月) 19:50:55.17ID:FTaZkaBO0 (いつまでこの話題続けるんだろう・・・)
837デフォルトの名無しさん (ワッチョイ ff63-kVuH)
2023/04/03(月) 20:00:28.42ID:GTpIFgvQ0 ただいま32個目のスタックに到達
838デフォルトの名無しさん (ワッチョイ a9b3-udcE)
2023/04/08(土) 20:36:00.74ID:SFpZqjEH0 なんか、
for(size_t i=0...
と書く人いません?
for(int i=0ではなくsize_tを使う意味はなんでしょうか?
for(size_t i=0...
と書く人いません?
for(int i=0ではなくsize_tを使う意味はなんでしょうか?
839デフォルトの名無しさん (ワッチョイ a169-/aea)
2023/04/08(土) 20:53:31.67ID:wgIhukY00 strlen()やsizeofはsize_tなんだわこれが
840蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd22-6PIS)
2023/04/08(土) 20:55:09.41ID:3OtdrBzyd size_tはintよりサイズが大きいかも知れないし、符号なし整数なんだよね。
841デフォルトの名無しさん (ワッチョイ bd02-oFYy)
2023/04/08(土) 21:16:04.49ID:rjC7aYJI0 そのiを主にsize_tとして使う用があるから
もし質問がsize_tとして使う用がないのにiをsize_tにするのか?ということなら、そう書いて
もし質問がsize_tとして使う用がないのにiをsize_tにするのか?ということなら、そう書いて
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 [ぐれ★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★3 [BFU★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★2 [BFU★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 ★2 [Hitzeschleier★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 [Hitzeschleier★]
- 中国高官と話す外務省局長の表情、やばい ★2 [175344491]
- ラーメン屋「日高屋が安いせいで客が来ない!日高屋はもっと値上げしろ!」 [449534113]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 外務省局長、よくわからないまま帰国へ [834922174]
- 本日開催の人口戦略本部に安倍晋三が出席😲 生きとったんかワレ [884040186]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
