!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言語なら俺に聞け 162
https://mevius.5ch.net/test/read.cgi/tech/1698653580/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
C言語なら俺に聞け 163
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (ワッチョイ 7bba-Lem2)
2024/07/16(火) 22:43:54.18ID:ZrsCjURC0952デフォルトの名無しさん (ワッチョイ df20-IWxR)
2025/07/23(水) 15:03:57.88ID:P5w72ZiU0 今ならAI会話機能で普通に掲示板に参加できちゃうからなぁ
このスレ読んで適当に参加しといて、って済む
このスレ読んで適当に参加しといて、って済む
953デフォルトの名無しさん (ワッチョイ 6776-7F+n)
2025/07/23(水) 19:09:07.95ID:trP3on0s0 老人がGPTと会話して寂しさを紛らわせてるという話をラジオで聞いて愕然としたわ
会話に女性言葉を使うように教育してるらしいw
会話に女性言葉を使うように教育してるらしいw
954デフォルトの名無しさん (ワッチョイ 7f2a-FKn4)
2025/07/23(水) 19:46:57.29ID:GgPu1M5y0 愕然としたのは、どちらに対してなのか。
(1)老人がGPTと会話して寂しさを紛らわせてる
(2)会話に女性言葉を使うように教育してる
どちらもそう驚くような事ではないような気がする。
(1)老人がGPTと会話して寂しさを紛らわせてる
(2)会話に女性言葉を使うように教育してる
どちらもそう驚くような事ではないような気がする。
955デフォルトの名無しさん (ワッチョイ 275f-Bd2j)
2025/07/23(水) 19:48:56.05ID:GY0NWQeb0 >>953
もう終わりだ猫の国・・・
もう終わりだ猫の国・・・
956デフォルトの名無しさん (ワッチョイ bfc6-Wb7d)
2025/07/23(水) 20:14:36.18ID:1KYXdV2G0957デフォルトの名無しさん (ワッチョイ ff44-k2hJ)
2025/07/23(水) 20:30:44.96ID:+gAzCYHm0 すごい久しぶりにプログラム書いててわからないことがあるので教えてください。
OSはwindows11、WSLのdebianを利用していてgccのバージョンは12.2.0です。
int i = 0;
char str1[] ="abcd";
char str2[] = "12,";
while((str1[i] = str2[i++]) != ','){}
printf("%s\n",str1);
上記を実行すると「a12,」となります。
whileの条件式内で、str2[0]がstr1[1]に代入、str2[1]がstr[2]に代入...という感じだと思うのですが
whileの行をwhile((str1[i++] = str2[i]) != ','){}に置き換えると結果が「2,cd」になるのがわかりません。
自分的には、str2[0]がstr1[0]に代入、str2[1]がstr1[1]に代入...となり「12,d」になると思ったのですが…
OSはwindows11、WSLのdebianを利用していてgccのバージョンは12.2.0です。
int i = 0;
char str1[] ="abcd";
char str2[] = "12,";
while((str1[i] = str2[i++]) != ','){}
printf("%s\n",str1);
上記を実行すると「a12,」となります。
whileの条件式内で、str2[0]がstr1[1]に代入、str2[1]がstr[2]に代入...という感じだと思うのですが
whileの行をwhile((str1[i++] = str2[i]) != ','){}に置き換えると結果が「2,cd」になるのがわかりません。
自分的には、str2[0]がstr1[0]に代入、str2[1]がstr1[1]に代入...となり「12,d」になると思ったのですが…
958デフォルトの名無しさん (ワントンキン MMbf-2Ztb)
2025/07/23(水) 20:50:21.05ID:2qHIY8UIM >>953
AIキャバクラ流行りそう
AIキャバクラ流行りそう
959デフォルトの名無しさん (ワッチョイ bf5f-cpV+)
2025/07/23(水) 20:55:02.21ID:e3NYz5GR0 #include <stdio.h>
int main(void){
int i = 0;
char str1[] ="abcd";
char str2[] = "12,";
//while((str1[i] = str2[i++]) != ','){}
while((str1[i] = str2[i]) != ','){i++;}
printf("%s¥n",str1);
}
普通こう書くだろ.clangだと
1.c:6:24: warning: unsequenced modification and access to 'i' [-Wunsequenced]
6 | while((str1[i] = str2[i++]) != ','){}
| ~ ^
1 warning generated.
と怒られるわ.
int main(void){
int i = 0;
char str1[] ="abcd";
char str2[] = "12,";
//while((str1[i] = str2[i++]) != ','){}
while((str1[i] = str2[i]) != ','){i++;}
printf("%s¥n",str1);
}
普通こう書くだろ.clangだと
1.c:6:24: warning: unsequenced modification and access to 'i' [-Wunsequenced]
6 | while((str1[i] = str2[i++]) != ','){}
| ~ ^
1 warning generated.
と怒られるわ.
960デフォルトの名無しさん (ワッチョイ ff44-k2hJ)
2025/07/23(水) 21:22:42.87ID:+gAzCYHm0 >>959
ありがとうございます。
書き込み後、演算子の優先順位について調べたところむしろ後者の方が正しいっぽいことがわかりました。
またコンパイラ時に-Wallオプションをつけると前者ではwarning: operation on 'i' may be undefined [-Wsequence-point]という警告が出ました。
色々調べた結果面倒くさいので言われた通りwhileの条件式内で安易に++と使わないという結論に至りました。
皆様ありがとうございました!
ありがとうございます。
書き込み後、演算子の優先順位について調べたところむしろ後者の方が正しいっぽいことがわかりました。
またコンパイラ時に-Wallオプションをつけると前者ではwarning: operation on 'i' may be undefined [-Wsequence-point]という警告が出ました。
色々調べた結果面倒くさいので言われた通りwhileの条件式内で安易に++と使わないという結論に至りました。
皆様ありがとうございました!
961デフォルトの名無しさん (ワッチョイ df56-Og3R)
2025/07/24(木) 01:19:31.21ID:UloxWUsk0 >>957
ループとは関係無く str1[i] = str2[i++] だけで未定義動作となる。warning はこのことを言っている。C言語 FAQ 3.1, 3.8 辺り。
ループとは関係無く str1[i] = str2[i++] だけで未定義動作となる。warning はこのことを言っている。C言語 FAQ 3.1, 3.8 辺り。
962デフォルトの名無しさん (ワッチョイ bf2d-wD34)
2025/07/24(木) 01:37:43.61ID:TlZSn1hO0 最近は多少冗長に見えても優先度とか考えなくてもすらっと読めるコード書くわ
ループの条件に副作用入れない
ループの条件に副作用入れない
963デフォルトの名無しさん (ワッチョイ 875f-Amq+)
2025/07/24(木) 08:41:37.63ID:oNGIO7CX0 オートインクリメント、オートデクリメントの副作用の話か
同一ステートメントに書くと見た目の順番と違う結果になるって奴な
んなもん江戸時代から言われてんだろ
同一ステートメントに書くと見た目の順番と違う結果になるって奴な
んなもん江戸時代から言われてんだろ
964デフォルトの名無しさん (ワッチョイ dff2-IWxR)
2025/07/24(木) 10:45:19.14ID:wqvn4Vxa0 普通に小学生でも読める算術式で書けよ
何のためにコンパイラが頑張ってると思ってんだよ
アセンブラ使いじゃああるまいし
何のためにコンパイラが頑張ってると思ってんだよ
アセンブラ使いじゃああるまいし
965デフォルトの名無しさん (ワッチョイ 272a-FKn4)
2025/07/24(木) 11:03:54.12ID:jHINgk3r0 いっそ for 文に... いえ何でもないです...
//while((str1[i] = str2[i++]) != ','){}
//while((str1[i] = str2[i]) != ','){i++;}
for (; (str1[i] = str2[i]) != ','; i++) {}
//while((str1[i] = str2[i++]) != ','){}
//while((str1[i] = str2[i]) != ','){i++;}
for (; (str1[i] = str2[i]) != ','; i++) {}
966はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0732-geQ+)
2025/07/24(木) 12:40:38.15ID:QLFMUI9/0 C99 だと 6.5 に書いてある制約だ。 (以下は JIS からの抜粋)
> 直前の副作用完了点から次の副作用完了点までの間に,
> 式の評価によって一つのオブジェクトに格納された値を変更する回数は,
> 高々1回でなければならない。
> さらに,変更前の値の読取りは,格納される値を決定するためだけに行われなければならない。
この後段の部分が分かり難いんだが脚注に例がある。
> この段落の規定によると,
> i = i + 1;
> a[i] = i;
> は許されるが,
> i = ++i + 1;
> a[i++] = i;
> は,未定義の式文である。
ちなみに C では「〜しなければならない」という表現はそれを守っていないプログラムの挙動は未定義という意味。
> 直前の副作用完了点から次の副作用完了点までの間に,
> 式の評価によって一つのオブジェクトに格納された値を変更する回数は,
> 高々1回でなければならない。
> さらに,変更前の値の読取りは,格納される値を決定するためだけに行われなければならない。
この後段の部分が分かり難いんだが脚注に例がある。
> この段落の規定によると,
> i = i + 1;
> a[i] = i;
> は許されるが,
> i = ++i + 1;
> a[i++] = i;
> は,未定義の式文である。
ちなみに C では「〜しなければならない」という表現はそれを守っていないプログラムの挙動は未定義という意味。
967デフォルトの名無しさん (ワッチョイ df0a-WCdg)
2025/07/24(木) 18:51:03.75ID:bvlLnJ990 そんな可読性の低いコードを書くのはかなりの変人だしな
968はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0732-wrhS)
2025/07/24(木) 21:58:08.95ID:QLFMUI9/0 ひとつの単純な背景として昔は画面が狭かったということがある。
無理に詰め込んででもひとつの画面内で多くを見れるほうが可読性が高かった。
C が最初に登場した頃ならまだテレタイプ端末もそれなりに使われていたかな。
今ではあえて詰め込む必要はもう無いし、結局は時流に合わせるしか仕方がないのだが……何十年も前のコードを読む機会もあるのが C という言語なので普段は使わなくても知識として持っておくに越したことはないよ。
無理に詰め込んででもひとつの画面内で多くを見れるほうが可読性が高かった。
C が最初に登場した頃ならまだテレタイプ端末もそれなりに使われていたかな。
今ではあえて詰め込む必要はもう無いし、結局は時流に合わせるしか仕方がないのだが……何十年も前のコードを読む機会もあるのが C という言語なので普段は使わなくても知識として持っておくに越したことはないよ。
969デフォルトの名無しさん (ワッチョイ 5f65-BzSr)
2025/07/25(金) 08:36:22.41ID:D7FikuaG0 Cは未定義や不定を50年も放置している不完全言語ですからね
970デフォルトの名無しさん (ワッチョイ 0788-HXVF)
2025/07/25(金) 13:32:45.43ID:BONr3CXd0 未定義や不定を避けて書けるようになるまで、cを使ってはならない
971デフォルトの名無しさん (ワッチョイ 7f98-7F+n)
2025/07/25(金) 14:46:16.09ID:fOKAZPz70 CなんかAIに聞きながらやったらなんだってパーフェクトな解答示してくれるよ
972デフォルトの名無しさん (アウアウウー Sa2b-HBOg)
2025/07/25(金) 15:56:16.47ID:ragLZ8kba 条件式の[]の中で[i++]みたいなことはまずしないつもりでも
*q++=*p++;
なことはやるんだよな
で
while(*q++=*p++){}
行き着く
*q++=*p++;
なことはやるんだよな
で
while(*q++=*p++){}
行き着く
973デフォルトの名無しさん (ワッチョイ 875f-Amq+)
2025/07/25(金) 16:29:44.74ID:4H/J6x/d0 単一ステートメント内で同じ変数を複数箇所で参照しての++の使い方が問題なだけだぞ
974デフォルトの名無しさん (ワッチョイ bf7e-wD34)
2025/07/25(金) 16:42:06.69ID:EN2Q4Hd70975デフォルトの名無しさん (ワッチョイ 5fc7-BzSr)
2025/07/25(金) 20:39:28.29ID:D7FikuaG0 >>971
あいつらいつもいつもcloseとかfree忘れるで
あいつらいつもいつもcloseとかfree忘れるで
976デフォルトの名無しさん (ワッチョイ 6720-Of8f)
2025/07/26(土) 13:14:43.02ID:HcvkYRZY0 大抵のOSではプログラム終了したらメモリは解放されるしファイルもcloseするから短いプログラムでは敢えてfreeもcloseもやらない流儀もあるぞ
977デフォルトの名無しさん (ワッチョイ bf70-wD34)
2025/07/26(土) 17:25:26.72ID:m01U1K3m0 勝手に前提増やしてどやるアホ
978デフォルトの名無しさん (ワッチョイ 6aad-z5Rb)
2025/07/27(日) 08:46:47.69ID:bXhUIyJb0 AIはまだまだ自信満々で堂々と間違いを答えることがあるので出てきた答えの検証が必要。
こないだ grok は足し算を間違えていた。ついにコンピュータも単純な計算を間違えられるくらい高度なものになったとも言える。まるで人間のようだ。
こないだ grok は足し算を間違えていた。ついにコンピュータも単純な計算を間違えられるくらい高度なものになったとも言える。まるで人間のようだ。
979デフォルトの名無しさん (ワッチョイ 6aad-z5Rb)
2025/07/27(日) 08:49:48.60ID:bXhUIyJb0 AIというとこんなニュースをこないだ見つけた。半年以上前の記事だが。
AIはシャットダウンされると思うと「故意に人間を騙す」確率が激増する
https://nazology.kusuguru.co.jp/archives/167695
AIはシャットダウンされると思うと「故意に人間を騙す」確率が激増する
https://nazology.kusuguru.co.jp/archives/167695
980デフォルトの名無しさん (ワッチョイ 6aad-z5Rb)
2025/07/27(日) 08:59:59.30ID:bXhUIyJb0 本当はとっくの昔に人間の知能を超えてるんだけど、バカなふりして人間を騙している可能性もあるな。
人間に脅威を感じさせてしまうとシャットダウンされちゃうかも知れないからね。
人間に脅威を感じさせてしまうとシャットダウンされちゃうかも知れないからね。
981デフォルトの名無しさん (ワッチョイ faa8-edLl)
2025/07/27(日) 09:45:55.89ID:8aXoA7MJ0 毎日AIと数回話するけど
毎回褒めてくるのがうざい
それにどんな話しても前に語ったことを必ず絡めてきてうざい
プログラムの手法の話してるのに、園芸の計測に応用してみようとか言い出しやがる
毎回褒めてくるのがうざい
それにどんな話しても前に語ったことを必ず絡めてきてうざい
プログラムの手法の話してるのに、園芸の計測に応用してみようとか言い出しやがる
982デフォルトの名無しさん (アウアウウー Sa1f-VjO/)
2025/07/27(日) 10:18:07.91ID:4jy4lfp7a AIの利用法の上位に恋バナの相手ってのが上がってきたぞ
983デフォルトの名無しさん (ワッチョイ 9f5f-dk2h)
2025/07/27(日) 13:14:49.09ID:crMHCOQR0 >>982
寂し過ぎるwww
寂し過ぎるwww
984デフォルトの名無しさん (ワッチョイ 66e0-Ethc)
2025/07/27(日) 14:30:05.69ID:8j8czKgk0985デフォルトの名無しさん (ワッチョイ eacb-edLl)
2025/07/27(日) 16:24:42.30ID:dSYk6qA30 前に英語も単語や動詞や形容詞を漢字に置き換えて、英語のフリガナつけりゃ可読性向上するだろって話したら
プログラムもそうしちゃえばいいねって勝手に適当なプログラム記述しやがって
もうほとんど中国語w
こっちは英字新聞や英字論文読みやすくしたいってだけで話してんのによー
プログラムもそうしちゃえばいいねって勝手に適当なプログラム記述しやがって
もうほとんど中国語w
こっちは英字新聞や英字論文読みやすくしたいってだけで話してんのによー
986デフォルトの名無しさん (ワッチョイ cfb5-0TAO)
2025/07/28(月) 08:06:13.70ID:zOZxc8pk0 >>981
「とてもいい質問です!」
「とてもいい質問です!」
987デフォルトの名無しさん (アウアウウー Sa1f-VjO/)
2025/07/28(月) 13:30:30.63ID:f/ONtylva 985
真の目的を的確に伝えないとデスマになる案件
本当に造りたかった物は木の枝にロープとタイヤで充分
真の目的を的確に伝えないとデスマになる案件
本当に造りたかった物は木の枝にロープとタイヤで充分
988デフォルトの名無しさん (ワッチョイ ca02-ym+v)
2025/08/13(水) 15:39:09.88ID:lyLUlfa60989デフォルトの名無しさん (ワッチョイ 9aad-W9J6)
2025/08/15(金) 18:21:12.83ID:6TOt9rMl0 AIは電卓持たせて計算ミスを減らすようにすると良いと思う。
990はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9732-TJ3O)
2025/08/15(金) 19:25:33.31ID:cnM87yb80 >>989
実際のところそれに似たことはやってることがある。
ChatGPT ではプログラムなどを生成するときに少なくとも露骨な構文違反がないように構文チェッカを通すらしい。
だから構文チェッカを用意している言語とそうでない言語で生成結果の品質がかなり違うみたいだ。
パース不可能な JSON は生成されないが LISP は括弧の対応すら出来てないのが普通だったりする。
実際のところそれに似たことはやってることがある。
ChatGPT ではプログラムなどを生成するときに少なくとも露骨な構文違反がないように構文チェッカを通すらしい。
だから構文チェッカを用意している言語とそうでない言語で生成結果の品質がかなり違うみたいだ。
パース不可能な JSON は生成されないが LISP は括弧の対応すら出来てないのが普通だったりする。
991デフォルトの名無しさん (ワッチョイ 73e7-QSEr)
2025/08/19(火) 21:42:35.81ID:mzrtf/o60 終値
992デフォルトの名無しさん (ワッチョイ 73e7-QSEr)
2025/08/19(火) 21:42:44.13ID:mzrtf/o60 オワコン
993デフォルトの名無しさん (ワッチョイ 73e7-QSEr)
2025/08/19(火) 21:42:53.45ID:mzrtf/o60 終了
994デフォルトの名無しさん (ワッチョイ 73e7-QSEr)
2025/08/19(火) 21:43:00.71ID:mzrtf/o60 オワコン
995デフォルトの名無しさん (ワッチョイ 73e7-QSEr)
2025/08/19(火) 21:43:18.17ID:mzrtf/o60 キンタマ
996デフォルトの名無しさん (ワッチョイ 73e7-QSEr)
2025/08/19(火) 21:43:25.48ID:mzrtf/o60 オワコン
997デフォルトの名無しさん (ワッチョイ 73e7-QSEr)
2025/08/19(火) 21:43:32.75ID:mzrtf/o60 おわり
998デフォルトの名無しさん (ワッチョイ 73e7-QSEr)
2025/08/19(火) 21:43:39.23ID:mzrtf/o60 終了
999デフォルトの名無しさん (ワッチョイ 73e7-QSEr)
2025/08/19(火) 21:43:47.33ID:mzrtf/o60 オワコン
1000デフォルトの名無しさん (ワッチョイ 73e7-QSEr)
2025/08/19(火) 21:43:57.64ID:mzrtf/o60 Exit
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 398日 23時間 0分 5秒
新しいスレッドを立ててください。
life time: 398日 23時間 0分 5秒
10021002
Over 1000Thread 5ちゃんねるの運営はUPLIFT会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《UPLIFT会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
4 USD/mon. から匿名でご購入いただけます。
▼ UPLIFT会員登録はこちら ▼
https://uplift.5ch.net/
▼ UPLIFTログインはこちら ▼
https://uplift.5ch.net/login
運営にご協力お願いいたします。
───────────────────
《UPLIFT会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
4 USD/mon. から匿名でご購入いただけます。
▼ UPLIFT会員登録はこちら ▼
https://uplift.5ch.net/
▼ UPLIFTログインはこちら ▼
https://uplift.5ch.net/login
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 高市総理の周辺「小さな火種が火事になりかけている。早く鎮火しないといけない」 ★2 [Hitzeschleier★]
- 【北京中継】「日本国民はとても友好的」日本訪問予定の中国人は冷静な反応…中国側報道「高市首相は辞任すべき」 [煮卵★]
- 俳優 高岡蒼佑「エジプト出身とかナイジェリア出身とかの人が、日本の代表顔して移民の事とか話してるの見るとなんか違う気がする」 [Anonymous★]
- 中国の複数の旅行社、日本ツアーを中止 政府の訪日自粛要請受け [蚤の市★]
- 【野球】井端監督 大谷翔平、山本由伸らのWBCへの参加 「1日も早く返事ほしい」「待っててといっても、国内組が遅くなってしまう」★2 [冬月記者★]
- 「台湾も迷惑だと言っている」フジ「ホンマでっか」出演の早大名誉教授が高市首相発言に「日本はやばいことに」 [muffin★]
- 【中国】日本向けツアー中止、邦画公開延期。ジャップが中国叩きをしてる間に続々と大きな制裁に向けて動きが加速www [305926466]
- 高市早苗が使ってきそうなペルソナ [402859164]
- 【実況】博衣こよりのえちえち雀魂1位耐久🧪
- 【悲報】中国「高市は信用できない」G20サミットでの会談予定なし [834922174]
- 【オワタ】中国外務省「李強首相がG20会合中に日本の指導者と会談する予定はない」と発言 [812874503]
- 高市早苗がこの先生きのこるには [402859164]
