!extend:checked:vvvvv:1000:512
(新スレ立ての際上記コマンドを2行書き込んでください)
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/
C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.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言語なら俺に聞け 154
https://mevius.5ch.net/test/read.cgi/tech/1578997950/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
C言語なら俺に聞け 155
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 76ba-P5bm)
2020/05/10(日) 23:20:27.99ID:Z3WQBr9X0773デフォルトの名無しさん (ワッチョイ 468c-1RiF)
2020/08/14(金) 15:33:21.13ID:Z47jWul30774デフォルトの名無しさん (ワッチョイ 7197-9ujE)
2020/08/14(金) 15:41:56.15ID:Z2/UjnqU0 間接成果物を作るのは無駄、というのは、
顧客が絶対チェックしないんだけどなぜか成果物として要求される、
中間工程を納品用にドキュメント化したもの、を作るのが無駄と言ってるのかな
まあ、わからんでもないけどそれがあれば顧客に引き継げる場合もあるし、ケースバイケースのような。
顧客が絶対チェックしないんだけどなぜか成果物として要求される、
中間工程を納品用にドキュメント化したもの、を作るのが無駄と言ってるのかな
まあ、わからんでもないけどそれがあれば顧客に引き継げる場合もあるし、ケースバイケースのような。
775デフォルトの名無しさん (ワッチョイ c20e-p5K4)
2020/08/14(金) 16:23:44.04ID:2wR+X/g+0778デフォルトの名無しさん (ワッチョイ 4914-056u)
2020/08/14(金) 18:05:29.78ID:8V/zklnR0779デフォルトの名無しさん (ワッチョイ c20e-p5K4)
2020/08/14(金) 18:05:35.24ID:2wR+X/g+0 >>777
手合いかと聞いているのを知らないからと思ってしまう
おまえさんの脳味噌こそ深刻なバグ抱えてるぜ
PGの世界でどうだか知らねえのか
マジでトーシロだな
この板では家畜以下の身分てことを自覚しろな
手合いかと聞いているのを知らないからと思ってしまう
おまえさんの脳味噌こそ深刻なバグ抱えてるぜ
PGの世界でどうだか知らねえのか
マジでトーシロだな
この板では家畜以下の身分てことを自覚しろな
780デフォルトの名無しさん (エムゾネ FF62-jwrZ)
2020/08/14(金) 18:16:58.51ID:zY2s9ydfF 投機的な不動産投資は儲からんかも知れんが
マンションとか土地持ってて他人に貸すのは儲かるで
マンションとか土地持ってて他人に貸すのは儲かるで
>>778-779
世間一般ではハッカーとクラッカーとは区別しません、両者ともハッカーといいますね
狭い業界ではハッカーとクラッカーを区別して、いいニュアンスを持つものだけをハッカーとしたいようですが、世間はそうは見ておらずハッカーもクラッカーもどちらも危ないものという認識だから両者を区別していないのです
狭い蛸壺で自分勝手にルールを決めても、そんなことはパンピーには通用しないという、いい例でしょう、ことわざにもありますよね「井の中の蛙大海を知らず」もっとも海水に耐える蛙は私もしりませんが
そうそう、どうしてもハッカーとクラッカーを区別したいんだったら「ホワイトハッカー」という言葉はある程度認知されているようですから、それを使いなさい
早く馬鹿が治るといいですね
世間一般ではハッカーとクラッカーとは区別しません、両者ともハッカーといいますね
狭い業界ではハッカーとクラッカーを区別して、いいニュアンスを持つものだけをハッカーとしたいようですが、世間はそうは見ておらずハッカーもクラッカーもどちらも危ないものという認識だから両者を区別していないのです
狭い蛸壺で自分勝手にルールを決めても、そんなことはパンピーには通用しないという、いい例でしょう、ことわざにもありますよね「井の中の蛙大海を知らず」もっとも海水に耐える蛙は私もしりませんが
そうそう、どうしてもハッカーとクラッカーを区別したいんだったら「ホワイトハッカー」という言葉はある程度認知されているようですから、それを使いなさい
早く馬鹿が治るといいですね
782デフォルトの名無しさん (ワッチョイ c20e-p5K4)
2020/08/14(金) 18:33:09.65ID:2wR+X/g+0783デフォルトの名無しさん (ワッチョイ 6277-p5K4)
2020/08/14(金) 18:47:19.76ID:cDg5L/fg0 防衛と侵略が区別できない政治家がいる国だもの。
>>782
>狭い蛸壺で自分勝手にルールを決めても、そんなことはパンピーには通用しない
>狭い蛸壺で自分勝手にルールを決めても、そんなことはパンピーには通用しない
>狭い蛸壺で自分勝手にルールを決めても、そんなことはパンピーには通用しない
>狭い蛸壺で自分勝手にルールを決めても、そんなことはパンピーには通用しない
>狭い蛸壺で自分勝手にルールを決めても、そんなことはパンピーには通用しない
>狭い蛸壺で自分勝手にルールを決めても、そんなことはパンピーには通用しない
>狭い蛸壺で自分勝手にルールを決めても、そんなことはパンピーには通用しない
>狭い蛸壺で自分勝手にルールを決めても、そんなことはパンピーには通用しない
>狭い蛸壺で自分勝手にルールを決めても、そんなことはパンピーには通用しない
>狭い蛸壺で自分勝手にルールを決めても、そんなことはパンピーには通用しない
786デフォルトの名無しさん (ワッチョイ c20e-p5K4)
2020/08/14(金) 19:11:49.78ID:2wR+X/g+0787デフォルトの名無しさん (ワッチョイ 3163-p0wA)
2020/08/14(金) 19:28:49.23ID:Us3wnTKB0 ここはどこの板で、
なんのスレだかも
見ようともしないのか
なんのスレだかも
見ようともしないのか
788デフォルトの名無しさん (ワッチョイ d17f-xn0R)
2020/08/14(金) 21:45:06.99ID:JGhukcXO0 古語で言うところの、夏厨ってやつだね
789デフォルトの名無しさん (ワッチョイ 3163-p0wA)
2020/08/14(金) 22:07:33.94ID:Us3wnTKB0 次スレから、IP強制表示にした方がいい?
790デフォルトの名無しさん (ワッチョイ 4290-o4rh)
2020/08/14(金) 22:13:46.18ID:yLQKJUZJ0 その方がいいと思う
いささか荒れすぎ感
いささか荒れすぎ感
791デフォルトの名無しさん (ワッチョイ 4946-+LRH)
2020/08/14(金) 22:39:41.29ID:AXcHM7Xg0792デフォルトの名無しさん (ワッチョイ 468c-1RiF)
2020/08/14(金) 22:41:53.95ID:h2QIVB9f0793デフォルトの名無しさん (ワッチョイ 81da-++7W)
2020/08/15(土) 00:46:37.07ID:xVZ93qLw0 >>792
本人のふりをして荒らさせようとするのはやめろ
本人のふりをして荒らさせようとするのはやめろ
794デフォルトの名無しさん (ワッチョイ 9901-eqxN)
2020/08/15(土) 12:58:19.65ID:Y9oiVJFr0 2次元配列への走査方向を行と列で入れ替えた際のパフォーマンスの違いは
何に起因するのでしょうか?
いずれにしてもソース上はランダムアクセスに違いないと思うのですが.
https://ideone.com/VjhO3l
何に起因するのでしょうか?
いずれにしてもソース上はランダムアクセスに違いないと思うのですが.
https://ideone.com/VjhO3l
795デフォルトの名無しさん (スッップ Sd62-NiDN)
2020/08/15(土) 13:28:06.72ID:Ol0PEc3Yd キャッシュ
796デフォルトの名無しさん (ワイーワ2 FF8a-jwrZ)
2020/08/15(土) 13:36:54.66ID:cGC1PAzNF >>784
ウィルス持ちの観光客が最強と判明しました
ウィルス持ちの観光客が最強と判明しました
797デフォルトの名無しさん (ワイーワ2 FF8a-jwrZ)
2020/08/15(土) 13:38:45.66ID:cGC1PAzNF >>794
メモリの連続性じゃないの?
メモリの連続性じゃないの?
798デフォルトの名無しさん (ワッチョイ 3163-p0wA)
2020/08/15(土) 13:43:34.64ID:0tc6f7mC0 今のPCってメモリーいっぱい積んでいるから、
よっぽど大きな配列出ないと差が出ないかも知れない
よっぽど大きな配列出ないと差が出ないかも知れない
799デフォルトの名無しさん (ワッチョイ 4961-IBtm)
2020/08/15(土) 13:57:10.40ID:qjcQBNN70 メモリが連続してる方向に走査すればCPUキャッシュが効きやすい
800デフォルトの名無しさん (ワッチョイ 422f-WAQY)
2020/08/15(土) 14:00:10.52ID:fqWla8CQ0 プロセッサのキャッシュにはキャッシュラインと言ってフェッチする単位があるんだよ。
あるアドレスをアクセスしたときラインサイズでフェッチしてあるからその後にそのライン内のアドレスならば速くアクセスできる。
要するに先読みしておいてくれるわけ。
あるアドレスをアクセスしたときラインサイズでフェッチしてあるからその後にそのライン内のアドレスならば速くアクセスできる。
要するに先読みしておいてくれるわけ。
801デフォルトの名無しさん (ワッチョイ 9901-eqxN)
2020/08/15(土) 14:31:56.10ID:Y9oiVJFr0 なるほどarr[i][j]へのアクセスでarr[i]の周辺もキャッシュに乗ることになって、
その近くなら早くアクセスできるんですね。
ありがとうございます。
その近くなら早くアクセスできるんですね。
ありがとうございます。
802デフォルトの名無しさん (ワッチョイ 9f10-fAYc)
2020/08/19(水) 09:31:04.59ID:9mqf8z+n0803デフォルトの名無しさん (スププ Sd9f-wndR)
2020/08/19(水) 12:30:49.32ID:ToVJAng8d まるでSuperfetchみたいな本末転倒だな
804デフォルトの名無しさん (ワッチョイ 1f05-YpYZ)
2020/08/19(水) 13:40:38.15ID:vFpWtsM/0 >>802
無意味なコピーだとコンパイラに見抜かれたら意味ないよね
無意味なコピーだとコンパイラに見抜かれたら意味ないよね
805デフォルトの名無しさん (ワントンキン MMdf-Ypyb)
2020/08/19(水) 20:00:17.69ID:/fw6ffjlM キャッシュに乗せるかどうかってコンパイラの仕事なの?
806デフォルトの名無しさん (ワッチョイ 9fca-8gnn)
2020/08/19(水) 20:01:21.69ID:iriw96df0 メモリアクセスしないといけないのに最適化でそのアクセスが省略されちゃうってこと
807デフォルトの名無しさん (ワントンキン MMdf-Ypyb)
2020/08/19(水) 20:02:45.07ID:/fw6ffjlM ああそっちか
808デフォルトの名無しさん (ワッチョイ 1fbb-Dag0)
2020/08/19(水) 20:19:01.78ID:wUlRTy820 -O3でコードが省略されるんですが計測したいのに省略されちゃうと計測できないんですが
-O3は計測するなってことですか?
-O3は計測するなってことですか?
809デフォルトの名無しさん (ワッチョイ 9f63-n+O8)
2020/08/19(水) 20:28:37.21ID:hsLGYVPM0 何らかの方法で「使ってますよ」って教えればいい
810デフォルトの名無しさん (ワッチョイ 1fbb-Dag0)
2020/08/19(水) 21:37:28.51ID:wUlRTy820 >>809
この前関数の呼び出しコストを計測しようとしたんですよ
void f() { }
みたいな関数なんですけど
でも-O3にすると関数呼び出しが省略されるんですね
このケースってなにかうまい方法ありますか?
この前関数の呼び出しコストを計測しようとしたんですよ
void f() { }
みたいな関数なんですけど
でも-O3にすると関数呼び出しが省略されるんですね
このケースってなにかうまい方法ありますか?
811デフォルトの名無しさん (ワッチョイ 1fbb-Dag0)
2020/08/19(水) 21:40:25.73ID:wUlRTy820 後出しみたいになってすみませんm(_ _)m
812蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd9f-iJX3)
2020/08/19(水) 21:41:01.00ID:FObCC8uFd マイナスオーゼロにすればぁ?
813デフォルトの名無しさん (スップ Sd1f-RBSG)
2020/08/19(水) 21:41:20.02ID:4erVQTjid 処理0個
処理1個
処理2個
の関数作って時間はかって処理1個にかかる時間を引き算
処理1個
処理2個
の関数作って時間はかって処理1個にかかる時間を引き算
814デフォルトの名無しさん (スップ Sd1f-RBSG)
2020/08/19(水) 21:42:15.13ID:4erVQTjid 最適化で展開とかされたらあかんけどね
815デフォルトの名無しさん (ブーイモ MM0f-PYI5)
2020/08/19(水) 21:44:41.25ID:afdzM61xM 最近のコンパイラさんは賢いで〜
816デフォルトの名無しさん (スップ Sd1f-RBSG)
2020/08/19(水) 21:45:36.69ID:4erVQTjid 最悪アセンブラ見てステップ数数える
関数呼び出しだけならそんな無いでしょ
関数呼び出しだけならそんな無いでしょ
817デフォルトの名無しさん (ワッチョイ 9f63-n+O8)
2020/08/19(水) 22:16:05.51ID:hsLGYVPM0 中でグローバル変数に代入してみたら?
コンパイラから見て、どこで使うかは分からないと思うよ
コンパイラから見て、どこで使うかは分からないと思うよ
818デフォルトの名無しさん (ワッチョイ 9fda-Dag0)
2020/08/19(水) 23:09:46.74ID:BCDBcsjw0 動的リンクされるようライブラリにすればいいんじゃね?
819デフォルトの名無しさん (ワッチョイ 1fbb-Dag0)
2020/08/19(水) 23:19:26.76ID:wUlRTy820 なるほど
参考にします
参考にします
820デフォルトの名無しさん (ワッチョイ 9f01-G9q0)
2020/08/19(水) 23:24:44.35ID:1TMyVKY80821デフォルトの名無しさん (ワッチョイ 7ff9-Dag0)
2020/08/20(木) 00:41:38.77ID:di44bxHe0 -O3でコンパイルした時のものを計測したいんだから
なくなる=時間0が正しいんじゃないの?
なくなる=時間0が正しいんじゃないの?
822デフォルトの名無しさん (ワッチョイ ff28-wQSi)
2020/08/20(木) 11:46:13.26ID:vxwYzwgQ0 前処理マクロの質問です。
ファイルの名前と関数名がコロンで繋がれた文字列を出力するマクロを作りたいです。
具体的には
somefile.cというファイルの中で
int somefnc(void) {
puts(FILE_FUNC);
return 0;
}
みたいなコードが,前処理を経て
int somefnc(void) {
puts("somefile:somefnc");
return 0;
}
というコードに変換されるようなマクロが書きたいです。
どうかよろしくおねがいします。
ファイルの名前と関数名がコロンで繋がれた文字列を出力するマクロを作りたいです。
具体的には
somefile.cというファイルの中で
int somefnc(void) {
puts(FILE_FUNC);
return 0;
}
みたいなコードが,前処理を経て
int somefnc(void) {
puts("somefile:somefnc");
return 0;
}
というコードに変換されるようなマクロが書きたいです。
どうかよろしくおねがいします。
823デフォルトの名無しさん (スップ Sd1f-RBSG)
2020/08/20(木) 13:06:29.61ID:OKbq69D/d824デフォルトの名無しさん (ワッチョイ ff28-wQSi)
2020/08/20(木) 15:49:31.41ID:vxwYzwgQ0 >>823
ありがとうございます。
__FILE__や__func__でファイル名・関数名が取得できることは
知っているのですが,その二つをコロンで繋いで文字列にする方法が
分からないんです。
言葉が足りなくてすいません。
例えば
#define FILE_FUNC __FILE__ ":" __func__
というような定義では,当然ではありますが,
うまくいきません。
__FILE__と__func__を展開しつつ,
間にコロンを入れて,外側を引用符で囲む,
という操作を実現できればいいのですが……。
ありがとうございます。
__FILE__や__func__でファイル名・関数名が取得できることは
知っているのですが,その二つをコロンで繋いで文字列にする方法が
分からないんです。
言葉が足りなくてすいません。
例えば
#define FILE_FUNC __FILE__ ":" __func__
というような定義では,当然ではありますが,
うまくいきません。
__FILE__と__func__を展開しつつ,
間にコロンを入れて,外側を引用符で囲む,
という操作を実現できればいいのですが……。
825デフォルトの名無しさん (スップ Sd1f-RBSG)
2020/08/20(木) 16:13:14.33ID:OKbq69D/d826デフォルトの名無しさん (エムゾネ FF9f-fHWV)
2020/08/20(木) 16:44:22.67ID:RX/3qqm6F char s[4] = "ABC";
は問題無いと思いますが
char s[4] = "ABCD";
とすると警告出ないのですが
最後の'\0'は無視されるのですか?
それとも意図しない領域に描き込まれているのですか?
は問題無いと思いますが
char s[4] = "ABCD";
とすると警告出ないのですが
最後の'\0'は無視されるのですか?
それとも意図しない領域に描き込まれているのですか?
827デフォルトの名無しさん (ブーイモ MMe3-Ga0Q)
2020/08/20(木) 17:36:07.94ID:h4eQG1wdM >>824
fprintf(stderr, "%s:%s", _FILE_, _func_)
fprintf(stderr, "%s:%s", _FILE_, _func_)
828デフォルトの名無しさん (ブーイモ MMe3-Ga0Q)
2020/08/20(木) 17:44:00.86ID:h4eQG1wdM >>826
仕様書6.7.9に余裕があったらnull文字も書き込むよって書いてあるので、余裕がないからnullは書き込まれてないんじゃないかな。
仕様書6.7.9に余裕があったらnull文字も書き込むよって書いてあるので、余裕がないからnullは書き込まれてないんじゃないかな。
829デフォルトの名無しさん (エムゾネ FF9f-fHWV)
2020/08/20(木) 17:52:19.01ID:RX/3qqm6F >>828
ありがとうございます
別の質問なのですが
char s[4] = "ABC";
のとき
printf("%2s\n", s);
で
ABC
まで表示されてしまいます
これを2文字で切るのは
%2s
じゃ駄目なんでしょうか?
ありがとうございます
別の質問なのですが
char s[4] = "ABC";
のとき
printf("%2s\n", s);
で
ABC
まで表示されてしまいます
これを2文字で切るのは
%2s
じゃ駄目なんでしょうか?
830デフォルトの名無しさん (ワッチョイ 9f63-n+O8)
2020/08/20(木) 18:19:55.36ID:ajS/uCbw0 %.2s
831デフォルトの名無しさん (エムゾネ FF9f-fHWV)
2020/08/20(木) 18:47:15.31ID:RX/3qqm6F 出来たかも知れないありがとう
ちなみに
char s[4] = "A";
printf("|%.2s|\n", s); // |A| 右詰めにならない(左に空白一文字分が出来ない)
printf("|%.-2s|\n", s); // |%.0-2s| って表示される
printf("|%-.2s|\n", s); // |A| 左詰めにならない(右に空白一文字分が出来ない)
なんですけど
printf("|%-2.2s|\n", s);
printf("|%2.2s|\n", s);
で自己解決です
ちなみに
char s[4] = "A";
printf("|%.2s|\n", s); // |A| 右詰めにならない(左に空白一文字分が出来ない)
printf("|%.-2s|\n", s); // |%.0-2s| って表示される
printf("|%-.2s|\n", s); // |A| 左詰めにならない(右に空白一文字分が出来ない)
なんですけど
printf("|%-2.2s|\n", s);
printf("|%2.2s|\n", s);
で自己解決です
832デフォルトの名無しさん (ドコグロ MM13-8+FT)
2020/08/20(木) 18:55:26.23ID:6pX7b83qM >824
そもそも__FILE__や__DATE__はリテラルだが__func__ はリテラルじゃないのでそういうことはできない。
そもそも__FILE__や__DATE__はリテラルだが__func__ はリテラルじゃないのでそういうことはできない。
833デフォルトの名無しさん (ワッチョイ ff28-wQSi)
2020/08/20(木) 19:58:56.88ID:vxwYzwgQ0 >>832
そうなんですね。
とすると,
#define FILE_FUNC(func) __FILE__ ":" func
みたいにして,
実際使う場面で
FILE_FUNC(__func__)
というように引数として渡す,という方法をとればいい
ってことでしょうか。
そうなんですね。
とすると,
#define FILE_FUNC(func) __FILE__ ":" func
みたいにして,
実際使う場面で
FILE_FUNC(__func__)
というように引数として渡す,という方法をとればいい
ってことでしょうか。
834833 (ワッチョイ ff28-wQSi)
2020/08/20(木) 20:00:10.19ID:vxwYzwgQ0835デフォルトの名無しさん (ワッチョイ 9f63-n+O8)
2020/08/20(木) 23:51:48.90ID:ajS/uCbw0836デフォルトの名無しさん (ワッチョイ ff28-wQSi)
2020/08/21(金) 12:10:40.53ID:RjoBQXpc0837デフォルトの名無しさん (ワッチョイ 1fd4-YpYZ)
2020/08/21(金) 17:03:22.67ID:/1umECfd0 ところで、何で__FILE__は直に文字列リテラルに置換され
__file__は暗黙に宣言される配列の識別子なんだろうな
まさに822が陥ったような混乱の元だと思うが
そうしなければならない理由があるのか
__file__は暗黙に宣言される配列の識別子なんだろうな
まさに822が陥ったような混乱の元だと思うが
そうしなければならない理由があるのか
838デフォルトの名無しさん (ワッチョイ ffe9-YpYZ)
2020/08/21(金) 17:31:23.64ID:J6Koy0SX0839デフォルトの名無しさん (ワッチョイ 1fbb-Dag0)
2020/08/21(金) 18:15:49.48ID:GWEzflke0 ああ、だから大文字じゃないのね
840デフォルトの名無しさん (ワッチョイ 1fd4-YpYZ)
2020/08/21(金) 18:46:45.25ID:/1umECfd0841デフォルトの名無しさん (ワッチョイ 7fad-RTUg)
2020/08/22(土) 10:09:37.81ID:K3IJhML30 >>401
> 何に使うかでそんなに変わるか?
亀レスでごめんなさい。
GUIを含むかどうかでちょと変わると思う。
WindowsならやはりVisualStuidoが便利だった。
Linux、UNIXならgcc,vi,makeの3種の神器かな?
> 何に使うかでそんなに変わるか?
亀レスでごめんなさい。
GUIを含むかどうかでちょと変わると思う。
WindowsならやはりVisualStuidoが便利だった。
Linux、UNIXならgcc,vi,makeの3種の神器かな?
842デフォルトの名無しさん (ワッチョイ ff28-wQSi)
2020/08/25(火) 11:52:50.75ID:c6c4SV8K0 for文の制御式にポインタが単独で使われているコードの意味が分かりません。
https://git.musl-libc.org/cgit/musl/tree/src/locale/catopen.c#n43
ここにある
const char *path, *p, *z;
path = getenv("NLSPATH");
for (p=path; *p; p=z) { // ← これ
...
}
こんな処理です。
繰り返しの際に実行する式にポインタを置くことで
どういう処理が行なわれているのか解説していただけないでしょうか。
どうかよろしくおねがいします。
https://git.musl-libc.org/cgit/musl/tree/src/locale/catopen.c#n43
ここにある
const char *path, *p, *z;
path = getenv("NLSPATH");
for (p=path; *p; p=z) { // ← これ
...
}
こんな処理です。
繰り返しの際に実行する式にポインタを置くことで
どういう処理が行なわれているのか解説していただけないでしょうか。
どうかよろしくおねがいします。
843デフォルトの名無しさん (エムゾネ FF9f-fHWV)
2020/08/25(火) 11:57:23.18ID:Zt9gBA2MF *p なら文字終端 '\0' チェックしてるだけじゃね
for (p=path; *p != '\0'; p=z) {
と一緒
for (p=path; *p != '\0'; p=z) {
と一緒
844デフォルトの名無しさん (ワッチョイ 1fbb-n+O8)
2020/08/25(火) 12:06:04.67ID:IYsRryaL0 p=zの方が気になる
845842 (ワッチョイ ff28-wQSi)
2020/08/25(火) 12:36:19.71ID:c6c4SV8K0846デフォルトの名無しさん (ワッチョイ 9fbd-8gnn)
2020/08/25(火) 12:36:38.95ID:N6/CJWHL0 >>842
*p は、その位置の文字が '¥0' じゃなければループ内に入る判定。
ようするに文字列の終端にたどり着くまでループするということ。
p=z の z は、ループ内で p から見た文字列の中の ':' がある位置の次が入るようになってる。
ようするに path を ':' 区切りにした断片を一つずつ処理してる。
*p は、その位置の文字が '¥0' じゃなければループ内に入る判定。
ようするに文字列の終端にたどり着くまでループするということ。
p=z の z は、ループ内で p から見た文字列の中の ':' がある位置の次が入るようになってる。
ようするに path を ':' 区切りにした断片を一つずつ処理してる。
847デフォルトの名無しさん (ワッチョイ 7f01-3yFl)
2020/08/25(火) 12:44:35.72ID:mY7DCxIU0 >>844
z = __strchrnul(p, ':'); で ':' 毎に切り出して処理して、次の項目に移動してるんでしょ
z = __strchrnul(p, ':'); で ':' 毎に切り出して処理して、次の項目に移動してるんでしょ
848デフォルトの名無しさん (ワッチョイ 1f7c-F02t)
2020/08/25(火) 12:48:06.50ID:lcyhmMWC0 strtok : ぼくの出番は・・・
849デフォルトの名無しさん (ワッチョイ 9f63-n+O8)
2020/08/25(火) 12:55:51.83ID:ch0Vj7Ea0 こういう2重ループは生理的に好きになれないw
850デフォルトの名無しさん (ワッチョイ ff28-wQSi)
2020/08/25(火) 13:24:37.63ID:c6c4SV8K0 >>848
たしかになぜstrtok()ではなくて独自関数を使うか気になりますね。
__strchrnul()はここで定義されていますが,
http://git.musl-libc.org/cgit/musl/tree/src/string/strchrnul.c
strtok()の仕様
https://pubs.opengroup.org/onlinepubs/9699919799/functions/strtok.html
を見ても,ほとんどインターフェースも同じに思えます。
(引数の型がちょっと違う?)
strtok()関数自体を実装しているならともかく
外部から使用するのにわざわざstrtok()と仕様がそっくりな
独自の関数を用いる理由が分からないですね。
たしかになぜstrtok()ではなくて独自関数を使うか気になりますね。
__strchrnul()はここで定義されていますが,
http://git.musl-libc.org/cgit/musl/tree/src/string/strchrnul.c
strtok()の仕様
https://pubs.opengroup.org/onlinepubs/9699919799/functions/strtok.html
を見ても,ほとんどインターフェースも同じに思えます。
(引数の型がちょっと違う?)
strtok()関数自体を実装しているならともかく
外部から使用するのにわざわざstrtok()と仕様がそっくりな
独自の関数を用いる理由が分からないですね。
851デフォルトの名無しさん (ワッチョイ 7f01-3yFl)
2020/08/25(火) 14:01:32.20ID:mY7DCxIU0852デフォルトの名無しさん (ワッチョイ 1fd4-YpYZ)
2020/08/25(火) 15:02:43.34ID:DOmxfygr0 再入可能じゃないからね
853デフォルトの名無しさん (ワッチョイ 7f7c-YpYZ)
2020/08/25(火) 15:06:17.67ID:fzTrphgL0 既存関数を使えばわざわざ文字列をループで処理する必要は無いと思えるけど
例えば昔から良くあるコマンドライン引数をチェックする場合などは
ループで処理するのが一般的かなと思われる
簡単なコードを書いてみたので確認してみるといいかも
https://paiza.io/projects/e/0d-LM04O2-C1g6xC2uXP5w
例えば昔から良くあるコマンドライン引数をチェックする場合などは
ループで処理するのが一般的かなと思われる
簡単なコードを書いてみたので確認してみるといいかも
https://paiza.io/projects/e/0d-LM04O2-C1g6xC2uXP5w
854デフォルトの名無しさん (ワッチョイ 1fd4-YpYZ)
2020/08/25(火) 15:08:24.49ID:DOmxfygr0 コマンドライン引数にstrtokは全く向かない
引用符使われただけでアウト
ASCIIコードしか想定していない
引用符使われただけでアウト
ASCIIコードしか想定していない
855デフォルトの名無しさん (ワッチョイ ff28-wQSi)
2020/08/25(火) 15:38:28.41ID:c6c4SV8K0 >>851
ありがとうございます。
なるほど,
https://www.jpcert.or.jp/sc-rules/c-str06-c.html
にも strtok() を不用意に扱わないようにという記述がありました。
だからわざわざ,strtok()に似ているが与件文字列を変更しない
っていう内部関数を利用していたんですね。
「区切り文字による分割」みたいな処理をする場合は,
strtok()の挙動を完全に理解した上で使うか,
自分で挙動を把握できる内部関数を作るかにするよう心掛けます。
(自分で1からC言語を書けるようになるのは
当分先のことになるとは思いますが)
ありがとうございます。
なるほど,
https://www.jpcert.or.jp/sc-rules/c-str06-c.html
にも strtok() を不用意に扱わないようにという記述がありました。
だからわざわざ,strtok()に似ているが与件文字列を変更しない
っていう内部関数を利用していたんですね。
「区切り文字による分割」みたいな処理をする場合は,
strtok()の挙動を完全に理解した上で使うか,
自分で挙動を把握できる内部関数を作るかにするよう心掛けます。
(自分で1からC言語を書けるようになるのは
当分先のことになるとは思いますが)
856デフォルトの名無しさん (ラクッペペ MM4f-N8Ih)
2020/08/25(火) 18:08:51.59ID:efL3nra7M ライブラリ関数内部で同じライブラリで公開してる別の関数を呼び出すのはエラー時に滅茶苦茶になりそうだから良くない
857デフォルトの名無しさん (ワッチョイ 9f01-Dag0)
2020/08/25(火) 19:42:36.86ID:KqJVwSUy0 へぇ __strchrnul だと非マッチ時 zがヌルポにならないようになってんのか
858デフォルトの名無しさん (ワッチョイ 6ed2-1etN)
2020/08/26(水) 07:47:13.52ID:EcgUuw1J0 文字列はS-JISのこと考えて自分で作るか
逆にunicodeで全部ライブラリに任せるかしてるわ。
逆にunicodeで全部ライブラリに任せるかしてるわ。
859デフォルトの名無しさん (ワッチョイ a5bb-xiBb)
2020/08/26(水) 07:57:09.94ID:68jGS2+/0 こないだユニコード文字列を扱うライブラリを作ったんだが、Poweshellから使うとうまく動作しないでやんの
Bashだとうまくいくからシェルの文字コードが原因かなぁって
Bashだとうまくいくからシェルの文字コードが原因かなぁって
860デフォルトの名無しさん (ワッチョイ 6991-3XxJ)
2020/08/28(金) 14:09:17.18ID:Rsi3PU970 Poweshell 相手 なら UTF16で試してみて
861デフォルトの名無しさん (ワッチョイ a5bb-xiBb)
2020/08/29(土) 18:11:22.84ID:uw2IISYA0862デフォルトの名無しさん (ワッチョイ 27d2-XrX+)
2020/09/05(土) 12:34:48.17ID:inRyx+ft0 一時期ソースファイルで使われる文字コードと
テキストコマンドで指定される文字コードで混乱してた。
テキストコマンドで指定される文字コードで混乱してた。
863デフォルトの名無しさん (ワッチョイ 675f-th+2)
2020/09/05(土) 14:24:19.26ID:D6IgUwp/0 ファイルシステムもコードページあれば良いのに
864デフォルトの名無しさん (ワッチョイ 5f2f-yCsQ)
2020/09/08(火) 19:54:58.87ID:XpL2+zA20 すみません
visualstudio2019で
scanfてうまく動かないて
書き込みありまさしたが
こちらは初心者です
visualstudio2019で
scanfてうまく動かないて
書き込みありまさしたが
こちらは初心者です
865デフォルトの名無しさん (ワッチョイ 27b7-XrX+)
2020/09/08(火) 20:04:29.03ID:oUJlYCUI0 何がうまくいかないの?
866デフォルトの名無しさん (ワッチョイ e7e6-dQ4P)
2020/09/08(火) 20:07:28.59ID:SzSjgAIn0 >>864
母国語でおk
母国語でおk
867デフォルトの名無しさん (ワッチョイ 0701-P8XZ)
2020/09/08(火) 20:33:38.44ID:h4K4tlm90 >>866
ماذا علي أن أفعل لتحسين عمل Scanf؟
ماذا علي أن أفعل لتحسين عمل Scanf؟
868デフォルトの名無しさん (ワッチョイ 5fa5-w/i8)
2020/09/08(火) 20:57:51.12ID:dd3/c9tT0 >>864
scanf_sを使うんだよ
scanf_sを使うんだよ
869デフォルトの名無しさん (ワッチョイ 27b7-XrX+)
2020/09/08(火) 21:00:35.32ID:oUJlYCUI0 自分が初心者だった頃を忘れて弱い者いじめするクズばっかり
870デフォルトの名無しさん (ワッチョイ 87e6-+pFZ)
2020/09/08(火) 21:38:18.70ID:L9CYXS2m0 ここの連中は初心者の時でもこんな愚かな質問しなかっただろうからな
871デフォルトの名無しさん (ワッチョイ 7f63-n8ne)
2020/09/08(火) 21:48:40.05ID:i07xiLbJ0 かまって欲しいだけだろう
872デフォルトの名無しさん (ワッチョイ 0701-P8XZ)
2020/09/08(火) 22:29:20.68ID:h4K4tlm90 よしよし かまってあげよう おいで〜
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 米大統領報道官「日本と強固な同盟維持、中国とも協力」 [少考さん★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★2 [蚤の市★]
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ [冬月記者★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ ★2 [蚤の市★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- 【悲報】維新の政治資金でガールズバー、高市首相「良いか悪いかは国民の皆さまが判断されること」 [115996789]
- 【マギレコ】VIPでマギアレコード&マギアエクセドラ【まどドラ】
- 中国人、ガチ超正論。「日本人がアイヌに対してやったことを『問題ない』とするなら、中国が日本人に同じことをしても文句ないだろう?」 [314039747]
- 【速報】俳優の三浦春馬さん、自宅で死亡 自殺とみられる←この衝撃を超える速報テロ、いまだない
- 衛生的に気持ち悪くて性風俗店行ったこと無いんだ
- 【悲報】タンパク質さん、寿命を縮めることが判明
