C言語なら俺に聞け 164 (356レス)
上下前次1-新
1(2): (ワッチョイ 3301-UQbq) 2025/07/23(水)15:30 ID:eCR5cXRr0(1/4) AAS
(新スレ立ての際上記コマンドを2行書き込んでください)
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
外部リンク:paiza.io
外部リンク:ideone.com
外部リンク:codepad.org
C17
外部リンク[pdf]:www.open-std.org
C11
省13
257: sage (ワッチョイ e7b9-W5NQ) 02/08(日)18:47 ID:X17rBAzn0(5/6) AAS
そうだったか。
それなら最新のCを使うのもいいな。
258: はちみつ餃子◆8X2XSCHEME (ワッチョイ 2f35-WHm7) 02/08(日)20:34 ID:HUCbwVuC0(1) AAS
もともと C と C++ はつかず離れずを指向していたんだけど C が保守的すぎて乖離が大きくなっていったという事情がある。
C23 でその間を埋めるように大きめかつ非互換な改定が入って GCC ではすでに C23 がデフォルト (オプション指定しなければ C23 になる) なんだけど MSVC で使うのは時期尚早かもしれない。
処理系のデフォルトがおおよそ無難な選択だと思う。
259(1): (ワッチョイ e7b9-W5NQ) 02/08(日)20:40 ID:X17rBAzn0(6/6) AAS
そなたらはC99〜最新はどういう立ち位置でいる?
1.拒絶派
2.慎重派
3.条件によって二分する中立派
4.積極派
5.最新仕様を最大活用派
260: (ワッチョイ 4e35-oWkt) 02/08(日)22:57 ID:x9wGlHBM0(1) AAS
しょうもないキャラ作りすんな
答える気なくすわ
261: はちみつ餃子◆8X2XSCHEME (ワッチョイ fb32-9AE0) 02/09(月)08:41 ID:oKB0cnr50(1) AAS
>>259
先述の繰り返しになるが処理系のデフォルトが無難と考えている。
開発のインフラを作っている人たちの判断を信頼する。
GCC が C23 で Clang が C17 だからそのくらいが現在の相場だってことだ。
その上で特にプロジェクトの事情があるなら配慮する。
結果的に新しい機能を使わずに済んで C99 としてもコンパイル可能であるようなものを書くことはあるかもしれないけど C99 の機能を使わないということは無いので C89 は論外になるな。
262: (ワッチョイ c669-4h5I) 02/09(月)09:12 ID:XZkkTiMB0(1) AAS
あなたもわたしもCCG
263: (ワッチョイ b2f9-22yv) 02/09(月)09:31 ID:H1BUQ21N0(1) AAS
それはCGC
264: (ワッチョイ fff6-4kCU) 02/09(月)09:54 ID:tiXp1BFN0(1) AAS
>>255
.c と .c++ を共存させたいときに
.c を .cpp に名前変えるのはあまりにも筋が悪いと思う
>>253 や >>256 さんの言う様に
.c と .c++ を普通に混在したままリンクする方が良い
265: (スフッ Sd02-Vk33) 02/11(水)05:13 ID:QMIW0ukQd(1) AAS
AA省
266: (ワッチョイ 5f01-P7Fh) 02/11(水)07:30 ID:piVnUKvQ0(1) AAS
よっぽど頭にきちゃったんだね
267: (ワッチョイ 0610-xnUM) 02/11(水)11:14 ID:yCllJHNQ0(1/2) AAS
一緒に仕事したくないな
268: (ワッチョイ 62fd-LnBe) 02/11(水)19:27 ID:dYVZoeHv0(1) AAS
Turbo C使いの俺には死角はなかった
269: (ワッチョイ 0610-xnUM) 02/11(水)23:31 ID:yCllJHNQ0(2/2) AAS
懐かしい世界
270: (JP 0H22-VpFx) 02/13(金)13:25 ID:5s43JTa6H(1) AAS
明日は晴れるかな
外部リンク:ideone.com
271: (ワッチョイ ff10-zE5Q) 02/15(日)13:50 ID:OxykBfDr0(1) AAS
ポカポカな天気
272: (ワッチョイ 7f25-jhY7) 03/06(金)19:24 ID:xIu+t86J0(1) AAS
書き込みテスト
273: (JP 0H9f-gxvf) 03/07(土)03:21 ID:JBgvHmdsH(1) AAS
ioになったんか
274: (ワッチョイ 7fa9-7cSS) 03/07(土)19:54 ID:eNOqReUM0(1) AAS
sys/io.h のこと?
275: (ワッチョイ ee5a-H6EY) 03/14(土)17:54 ID:yRZkyjul0(1/2) AAS
外部リンク:gigazine.net
ホーア先生亡くなってしまったね.
276(2): (ワッチョイ bfc2-XSi/) 03/14(土)18:23 ID:SlICVWZ+0(1/3) AAS
「ソフトウェアを設計するには、2通りの方法がある。1つは、とてもシンプルに設計して、明らかに欠陥がないようにすること。もう1つは、とても複雑に設計して明らかな欠陥がないようにすることだ」
誰か説明して。前半はなんとなく分かるが。
277: (ワッチョイ 1a86-h/pM) 03/14(土)18:40 ID:1T7CwWYt0(1) AAS
説明も何もそのままじゃん
278: (ワッチョイ bfc2-XSi/) 03/14(土)18:44 ID:SlICVWZ+0(2/3) AAS
オラは凡人なので、複雑な設計と無欠陥を両立できません笑
279: (ラクッペペ MMe6-5lvg) 03/14(土)19:14 ID:6I30ZIkyM(1) AAS
「明らかじゃない欠陥」が噴出するのさ
280(1): (ワッチョイ ee5a-H6EY) 03/14(土)19:16 ID:yRZkyjul0(2/2) AAS
明らかな欠陥がないようにする,って書いてあるじゃん.
281: (ラクッペペ MMe6-5lvg) 03/14(土)19:28 ID:SshLSMzMM(1) AAS
>>280
俺に言ってるんだったら論理的思考力がプログラマレベルに達していないぞ
282: (ササクッテロラ Spb3-AjTm) 03/14(土)19:29 ID:2GHal+1fp(1) AAS
潜在的な欠陥とか無い様に全ての条件で確認すんだよ
283: (ラクッペペ MMe6-rKHk) 03/14(土)20:07 ID:qtK1wVLwM(1) AAS
> 明らかに欠陥がないようにする
部屋には一切物を置かず、ごきぶりが居ないことは見れば分かる
> 明らかな欠陥がないようにする
部屋を複雑に設計しゴキブリが侵入する余地を与えない
出入りする者、物においてもしっかりとしたチェックを行いゴキブリを連れ込まない
284: (ワッチョイ bfc2-XSi/) 03/14(土)21:02 ID:SlICVWZ+0(3/3) AAS
複雑なロジック設計して、
他の人には一体何をするためなのか
意味不明なプログラムなら
書いたことはある笑
285: はちみつ餃子◆8X2XSCHEME (ワッチョイ 234b-6+qa) 03/14(土)21:04 ID:NF0u1Pvr0(1/2) AAS
>>276
複雑なものを作るのに欠陥が無いようになんて出来ないことはわかるだろ。
だから残る選択肢はシンプルに作ることしかないんだ。
いわゆる反語、皮肉めいた言い方で茶化してるだけ。
286: (スップ Sd2a-Z+aU) 03/14(土)21:28 ID:Dj+Yn6DFd(1) AAS
おいおい大丈夫かよこのコテハン
ホーアを知らないで言ってんのか?
そーいうことじゃないよw
287: はちみつ餃子◆8X2XSCHEME (ワッチョイ 234b-6+qa) 03/14(土)22:10 ID:NF0u1Pvr0(2/2) AAS
外部リンク:dic.nicovideo.jp
288: (スップ Sddb-0zda) 03/15(日)08:26 ID:jsbn2nWad(1/2) AAS
ガチもんの人かヤバw
289: (スップ Sddb-0zda) 03/15(日)08:43 ID:jsbn2nWad(2/2) AAS
>>276
その書き方でもまあ分かるけど原文読んだ方がいいよ
明らか「に」欠点がないのと明らか「な」欠点がないは違う
包有関係考えれば分かるけど噛み砕いて言えば難しいバグがあるってこと
シンプルに作れば正しいかどうかは目で見て分かるが、複雑だとそれが出来ず正しいかどうか確かめたかったら例えば数学的に正しさを証明しないといけなくなったりする
複雑さは品質の証明にならないってこと、単純な設計をする困難さなんかを言ってる
もうちょい短くすれば要は複雑さは設計の失敗のサインだって意味の文章だよ
290(1): (アウアウウー Sab3-sFF2) 03/15(日)10:54 ID:qaLJXPfya(1) AAS
IQは日本語読解力に比例するらしいが正しいと思える瞬間な
291(1): (ワッチョイ 5725-dwnP) 03/15(日)11:31 ID:741O9PJi0(1) AAS
日本語読解力の問題なら、
プログラムの話題ではないな
292(1): (ワッチョイ b53d-0izT) 03/15(日)19:45 ID:DIIwvhyj0(1) AAS
>>290
ハーフリンガル問題の事だと思うが、勿論鶏と卵の関係であるにせよ、主たる因果関係は逆で、
IQ→国語力
だと思うがな。国語力→IQなら、文系馬鹿が最高に賢くなってしまうし。
だからって、最近のセンター試験の数学が国語化してるのは、関係各者の妥協の産物ではあるにせよ、間違いだと思うが。
>>291
プログラミングと言うよりは、エンジニアリング全般の話よね。
いわゆる「一方、ロシアは鉛筆を使った」でもあるし。
293(1): (ワッチョイ 5725-dwnP) 03/16(月)00:00 ID:24jtw6uy0(1) AAS
C言語の話題でもないし、
これ以上続けるなら
プログラム設計のスレがふさわしいよ
294: (ワッチョイ b54b-0izT) 03/16(月)07:15 ID:2xB1GT0x0(1/2) AAS
>>293
賛成だがそういう場合はリンクを貼るべき
少なくともム板マ板のどちらにもない
295(1): (ワッチョイ b593-ohi4) 03/16(月)09:26 ID:LCnHyhYd0(1) AAS
このコテハンの人、規格の引用みたいな誰でもできる機械的なことやってるうちはいいけど
ちょっと自分の意見言い出すととたんにトンチンカンっつーかズレたこと言い始めるよねw
296: (ワッチョイ b528-0izT) 03/16(月)13:21 ID:2xB1GT0x0(2/2) AAS
>>292訂正
✕ ハーフリンガル
○ セミリンガル
>>295
今回はお前の方が頓珍漢。
> 規格の引用みたいな誰でもできる機械的なこと
誰でも出来るわけではない。かなり詳しいのは確か。
文句があるならお前も参戦してどちらがより正確かを競うべき。(=ネットは衆人環視なのだから、衆人に役立つ方向に競え)
ゆとりZはすぐに人格ガーの方向に持っていくから、(=衆人にとってまるで役に立たないマウント取りに勤しむので)
SNS上で役に立つ議論が出来ず、彼ら世代だけでまともな議論場を確保できない。
省8
297: (ブーイモ MMf3-2zvD) 03/16(月)18:53 ID:fIEXpCafM(1) AAS
AI時代は国語力とか言うポストがバズったりしてるけど国語力って幅広すぎだよな
効率的なトークン生成スキルといったほうがいい
298(1): (ワッチョイ 4717-QfA5) 03/16(月)22:50 ID:ciRQJB3O0(1) AAS
論理的思考ができるかどうか、プログラムでなく文章を書かせてみる、ようなことはよく言われるね
299: (ワッチョイ 314e-fRLJ) 03/16(月)23:06 ID:OpaIgQRr0(1) AAS
IT土方なら文章でわかるかもな
300(1): (スップ Sd03-0zda) 03/17(火)09:33 ID:f405Oqv1d(1) AAS
292や296も変な文章に見えるけどなんかもうキリがないなw
誰か指摘してあげなよ
301: (ワッチョイ b586-0izT) 03/18(水)06:55 ID:kfgCJpmw0(1/7) AAS
>>300
ゆとりZキチガイは5ch止めろ。
というかね、ゆとりZ的精神的勝利法なんて何度目だ?過ぎて。
こいつら本当に進歩せず、幼稚なままだ。
日本語が出来ないお前には読めないのだろうが、
俺の文章は普通の知能な日本人には確実に通じるレベルだし、多分お前よりもだいぶましでもある。
自分で詳細に論理的説明も出来ず、また日本語が拙い事がバレるので、自分では指摘出来ないんだろ。
出来るつもりなら書けばいいだけ。お前が書かないとお前が書ける事の証明にはならない。
そしてその書いた内容が妥当なら、お前に同調する連中も現れ、お前の望む方向に流れるだろうさ。
これが本来の自由な議論場の有り様。5chはずっとこうしてきた。
省4
302: (ワッチョイ b586-0izT) 03/18(水)06:56 ID:kfgCJpmw0(2/7) AAS
まあ俺はこの手のメタ話は割と好きなので参戦してるが、
ついでにかねがねコミュ障だと感じてるお前らに対し、俺的流れの理解を説明しておくと、
ゆとりZ276: これ教えて
その他大勢: いやまんま過ぎて何が分からないのか分からん
(超絶豆腐メンタルなゆとりZにとっては285は十分に暴言であり攻撃だと受け止められた!!!)
ゆとりZ295: ムキー!!!285はぼくをこうげきしてきた!!!はんげきしてやる!!!トンチンカン!!!
俺296: いやお前の方が頓珍漢
ゆとりZ: 285をようごする296もきにいらない!!!こうげきしてやる!!!296もにほんごがおかしい!!!
(元々日本語の問題だと言われたので、
自分の日本語がおかしいのではなく、他人の日本語がおかしいとの他責思考により、
省1
303: (ワッチョイ b586-0izT) 03/18(水)06:56 ID:kfgCJpmw0(3/7) AAS
まあよくある馬鹿狂犬ゆとりZだ。
一向に論理的フェーズに突入しない。多分今後ともそうだろう。
そもそも言葉とはコミュニケーションの「手段」であり、「目的」ではないので、
通じてるかどうかが最大に重要であって、正しい言葉を、或いは上手い下手も、通じる確率を上げる方策でしかない。
(逆に言えば、通じてれば何でもいい。相手の方言にも、また、誤用にも、場合によっては合わせてもいい)
それで、「目的」の、通じた後に何を得るつもりなのか?が、無いのもこの馬鹿狂犬タイプの特徴。
噛みつく事が目的化してる。いやそうじゃねえだろと。
ゆとリンガル問題、とでも命名しようか。
日本語が出来ず、論理的思考力もない、ゆとりZによって引き起こされる問題。(なおゆとりZの大半が該当する)
拗らせた承認欲求と他責思考により、ハイセンシティブピープーとなっており、過度に過敏で、やたらと攻撃されたと見なし、
省7
304: (ワッチョイ b586-0izT) 03/18(水)06:57 ID:kfgCJpmw0(4/7) AAS
議論は、常に原点を念頭に置き、目的を達成する事を目指すべき。
再度言うが、仮に285や俺に多大な問題があったとしても、元の疑問の解決には繋がらないだろ。
そもそも276で、
276: 後半部分が分かりません。○○と字面からは読めますが、私は□□だと思うので、矛盾します。私は私が間違ってるとも思えません(キリッ
とでも言えば、ゆとりZ的にも気に入らない流れにはならなかったはず。
この辺も、他責思考で、何でもかんでも他人のせいにしてるから上達しない。
いやお前だけの努力でも完全回避出来たよねと。
ただまあ、このタイプが過半数だから、ゆとりZな場所ではどうやってもまともな議論なんて出来る訳無いのは分かる。
しかし5chでゆとりZ全開は邪魔でしかないので、俺は撲滅するべきだと思ってる。
(だからこうして賛同者を募るべく一々書いてる)
省8
305(1): (ワッチョイ b586-0izT) 03/18(水)07:12 ID:kfgCJpmw0(5/7) AAS
>>298
それも逆(十分条件)だからフィルタにしかならん(でもやらないよりましだが)
論理的思考が出来ない→論理的文章を書ける訳がない
論理的思考は出来るが論理的文章を書けない=ただのコミュ障 276も多分こっち
本来は論理能力は数学/物理で鍛えられるので、
昔の「最低限理系にプログラミングさせる」方針は概ね間違っていなかったが、
受験産業の結果、記憶力『だけ』で突破する受験特化型馬鹿が結構増えたのと、
そもそもプログラミング自体に数学/物理そのものは必要ないので、
「理系→プログラミング適正あり」のフィルタは迷走気味
とはいえ、「論理的文章を書ける→プログラミング適正あり」フィルタは、さらに酷いと思うけど
306: (ワッチョイ 314e-fRLJ) 03/18(水)08:40 ID:rmXkchhG0(1) AAS
すげー、このスレで一番論理的思考ができる人じゃん
307(1): (JP 0H63-sFF2) 03/18(水)10:16 ID:TZQeXjH7H(1) AAS
3行でまとめろ
308: (ワッチョイ 5725-dwnP) 03/18(水)11:15 ID:TdcdOneP0(1) AAS
昔は1行で書いてたな
プログラムの話だが
309: (ワッチョイ b5c2-0izT) 03/18(水)13:47 ID:kfgCJpmw0(6/7) AAS
>>307
俺ら世代での「BrokenEnglish」問題が、ゆとりZでは「Broken日本語」問題になった
で、俺は同様に、Brokenでもしゃべった方がマシ、と言ってる
そして、よりによって、一番高く評価してくれた人に噛み付くのは馬鹿すぎ
と、ふと思ったが、もしかしてお前ら、
上記の一行目だけで全てが瓦解し、一瞬で、長文内容と同程度の詳細度で理解可能だったか?
だとすると、俺がお前らを過小評価し過ぎてた事になる
もしお前らの大半が「一行目だけ」で付いてこれるなら、この議論速度で突っ走ってみても良い
(勿論この場合は、通じない馬鹿は全員放置で追加説明もしない)
310: (ワッチョイ b5c2-0izT) 03/18(水)13:52 ID:kfgCJpmw0(7/7) AAS
ちな、>>305訂正
× 十分条件
○ 必要条件
受験は大昔過ぎて素で間違えたわ
まあ、都合よく補完すれば読める範囲ではあるが
311: (ワッチョイ b545-jncY) 03/18(水)15:09 ID:vVWG3GDF0(1) AAS
地下室の手記
312(1): (ワッチョイ b5fb-ohi4) 03/18(水)15:31 ID:yN1oNisL0(1/2) AAS
292は比例の話をなぜか因果関係の話にしてんのがおかしいね
AがBに比例してるってことから言えるのはBもAに比例してるってことだけで因果関係がどうたらとか何も関係ない
数学的にはY=kXの時にX=(1/k)Yだから逆が言えるのはkが0じゃない時だけとかあんだろうがまあここでは関係ないわな
1行目からおかしいからその後も妙なことを長々言い続けるはめになってる
313: (ワッチョイ b5fb-ohi4) 03/18(水)15:35 ID:yN1oNisL0(2/2) AAS
296はなんで「今回は」なんて付けたんだろうなw
そんなものつけなくてもいいどころか、後段を見れば付けない方がいいのにこういうのがついてしまう
なんのかんの言ってもコテハンの事を普段どう思ってたのかがつい出ちゃってるのか、それとも自分の思ってることを言語化する能力が低いのか
どっちにしても奇妙な文章だよ
314(1): (アウアウウー Saf1-QfA5) 03/19(木)12:39 ID:O0X2x0/da(1) AAS
シフトJIS混じりの文字列を扱うには、charと unsigned charのどちらが良いですか?
315: (ササクッテロラ Spb5-QfA5) 03/19(木)12:48 ID:Qz08DmPxp(1) AAS
UTF16に固定しちまえ
316: (ワッチョイ 47ae-7LUQ) 03/19(木)13:49 ID:5jXM7mMO0(1) AAS
>>314
signedの方が良いことって何かあるかね?
317: (ワッチョイ b56a-L5FI) 03/19(木)14:45 ID:4hgHJHDE0(1) AAS
>>312
正解w
318: はちみつ餃子◆8X2XSCHEME (ワッチョイ dd46-lAjv) 03/19(木)15:05 ID:gt0RjN3b0(1) AAS
念のために補足しておくと、 char は signed char とは違う型として区別される。
319: (ワッチョイ 474b-QfA5) 03/19(木)16:01 ID:5HS3fMU40(1) AAS
unsignedだと比較がしやすいことはないですか?
320(1): (アウアウウー Saf1-QfA5) 03/19(木)16:02 ID:SacMtX4aa(1) AAS
charの符号の有無は未定義?のようですね
321: はちみつ餃子◆8X2XSCHEME (ワッチョイ b5f8-AYvS) 03/19(木)17:22 ID:UR+Iiml10(1/3) AAS
>>320
処理系定義ってやつ。
未規定の一種だが、処理系定義は処理系で決めてそれをドキュメントに書いておくことが求められる。
322(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ b5f8-AYvS) 03/19(木)17:50 ID:UR+Iiml10(2/3) AAS
Shift_JIS を含む文字列を使うにはたぶん unsigned char が好ましいことが多いと思う。
ただ、有効型に関するルールとして整数型をそれの符号付・符号無としてアクセスするのは許されるという特別扱いがある。
(読み替えは型変換とは異なるので注意。)
つまり必要に応じて同じ文字配列に対して char[] としてアクセスしても unsgined char[] としてアクセスしても構わないので必ずしも最初から決める必要はない。
一貫したほうが分かり易いとは思うんだけど strcpy とかの文字列系の基本的な関数は char で扱ってたりするから……
323(1): (ワッチョイ 47f7-AAAR) 03/19(木)21:35 ID:J1XY71+k0(1) AAS
>>322
>有効型に関するルールとして整数型をそれの符号付・符号無としてアクセスするのは許されるという特別扱いがある。
>(読み替えは型変換とは異なるので注意。)
規格の何処?
324(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ b5f8-AYvS) 03/19(木)21:49 ID:UR+Iiml10(3/3) AAS
>>323
C99 なら 6.5
> An object shall have its stored value accessed only by an lvalue expression that has one of the following types:
> (オブジェクトに格納された値に対するアクセスは,次のうちのいずれか一つの型をもつ左辺値によらなければならない)
> --------------------(中略)--------------------
> — type that is the signed or unsigned type corresponding to the effective type of the object
> (− オブジェクトの有効型に対応する符号付き型又は符号無し型)
※ 括弧内の日本語は JIS から対応箇所を抜粋
325: 323 (ワッチョイ 47f7-AAAR) 03/20(金)08:18 ID:dVsV0hme0(1) AAS
>>324
丁寧に ありがとう
326(1): (ワッチョイ 47c8-QfA5) 03/20(金)12:19 ID:b6NhfI2V0(1/2) AAS
算術的に扱わないなら符号はないほうがよいというのが僕の考えで
今回はじめて知ったことですが、charの符号の有無は処理系定義というところが話を曖昧にしてるのですかね
算術的に扱わない場合の文字に符号があることにも違和感があるし、wchar_tもunsigned shortだったので、unsigned charでいくことにします
327: (ワッチョイ 4747-QfA5) 03/20(金)12:24 ID:b6NhfI2V0(2/2) AAS
wchar_tを使っているわけではないです
文字を符号なしと扱うことを参考にするという意味です
328: (JP 0H63-sFF2) 03/20(金)13:06 ID:iXoBkJ/YH(1) AAS
>strcpy とかの文字列系の基本的な関数は char で扱ってたりする
符号の有無が原因だったかどうか記憶が曖昧だけど
警告が出まくってうざいときがある気がする
329: はちみつ餃子◆8X2XSCHEME (ワッチョイ dd67-lAjv) 03/20(金)13:14 ID:YhTPujH10(1) AAS
実行基本文字集合の要素は char に格納したときに非負で扱えることを言語の規格として保証してるから扱う文字がその範囲内なら char が符号付きかどうかに関係なく負数は出てこない。
逆に言えば負数になったら面倒くさいことがわかってるからこういう規格になってるんだと思う。
330: (ワッチョイ c9e4-QfA5) 03/20(金)17:08 ID:NagjbLQ80(1) AAS
ただしASCIIに限る
331: はちみつ餃子◆8X2XSCHEME (ワッチョイ b5f8-AYvS) 03/20(金)17:14 ID:9jqfZseO0(1) AAS
C の規格の上では「実行基本文字集合」として文字を提示しているがその文字集合がどのような文字コードで表現されるかは既定しない。
ASCII (またはそれと互換?) は保証されない。
もしもたとえば EBCDIC を採用しているような環境なら char は必然的に符号無しになるね。
332: (ワッチョイ b5d4-0izT) 03/20(金)23:20 ID:T171bv6P0(1) AAS
>>326
マヌケ
333: (ワッチョイ b5cd-2zvD) 03/21(土)00:45 ID:Tywu3RMI0(1) AAS
符号なしの罠を知ってるかはcの実力を測る試金石ではあるよな
334: (ワッチョイ bba9-2pC6) 03/21(土)10:45 ID:CPZyPnYr0(1) AAS
マ抜いてみたが1字しか変わらん。
$ diff 326.txt <(sed 's/ま//g' 326.txt)
7c7
< 算術的に扱わない場合の文字に符号があることにも違和感があるし、wchar_tもunsigned shortだったので、unsigned charでいくことにします
---
> 算術的に扱わない場合の文字に符号があることにも違和感があるし、wchar_tもunsigned shortだったので、unsigned charでいくことにしす
335(1): (ワッチョイ 5725-dwnP) 03/21(土)21:54 ID:J3vuIWx/0(1) AAS
文字種で集計するときに、算術的な処理できて便利です。
336: (アウアウウー Sab3-QfA5) 03/21(土)23:11 ID:tYP/a5awa(1/3) AAS
>>90
そりゃ、算術的に扱う場合も、ロジカルに扱う場合もあるでしょう
337: (アウアウウー Sab3-QfA5) 03/21(土)23:13 ID:tYP/a5awa(2/3) AAS
壮大にアンカミスったけど、直前のレスに対してでした
338: (アウアウウー Sab3-QfA5) 03/21(土)23:15 ID:tYP/a5awa(3/3) AAS
>>335 も僕に対する煽りではないかもね
失礼しました、ごめんなさい
339: (ワッチョイ 1701-75ES) 03/22(日)17:59 ID:2hKizJjM0(1/2) AAS
基本的に文字列を扱うならcharを使え
340: (アウアウウー Sac7-jHxu) 03/22(日)18:26 ID:3tG0rWHEa(1/2) AAS
tell me why
341: (ワッチョイ aba9-7xDj) 03/22(日)19:08 ID:M3MXuE5D0(1) AAS
輝美 (てるみ) にテルミー
342: (アウアウウー Sac7-jHxu) 03/22(日)19:32 ID:3tG0rWHEa(2/2) AAS
そこは照美
343: (ワッチョイ 1701-75ES) 03/22(日)21:43 ID:2hKizJjM0(2/2) AAS
標準ライブラリが引数をchar *で受けるのも規格のcharの扱いに曖昧さがあるのも同じ理由に因ってる
特に規格の方はこうすることでコンパイラの作者とユーザーの双方に利が出るよう意図的にこうしてる
わざとはっきりさせないようにするのはCの規格によくある「味を残してる部分」なんだから、お前は何も考えずcharを使え
344: はちみつ餃子◆8X2XSCHEME (ワッチョイ 0b13-Hcra) 03/22(日)22:46 ID:VeLWozt10(1) AAS
char が符号付きかどうかが処理系定義なのはアーキテクチャの都合に合わせられるようにするためだ。
(規格制定時にすでにどちらの処理系も存在したので追認したという消極的な理由もある。)
この場合はアーキテクチャに都合が悪いからといってやるべきことが変わるわけではないのだから曖昧なほうが良いなどという論に説得力は感じないな。
C11 で u8 プレフィクスを付けたとき (文字列を UTF-8 とするとき) に char で扱うルールにしたのは失敗だったと認めて C23 から char8_t 型を導入することになった経緯もある。
互換性を大事にする C で非互換な変更をするくらいには文字が負数になるのはろくでもないミスの元だとはっきりしてる。
345(1): (ワッチョイ fe3a-jHxu) 03/23(月)13:08 ID:wdN2pFMo0(1) AAS
strcmpの実装をみると、引数はconst char *で比較はconst char *でとするのが大概ですね
346: (アウアウウー Sac7-jHxu) 03/23(月)13:08 ID:Y2m4p/F8a(1) AAS
大概というか、いくつかみた中では漏れなく
347(1): (アウアウウー Sac7-jHxu) 03/23(月)13:25 ID:0ed5u03ca(1) AAS
>>345
比較はconst unsigned char *で、の間違いでした^_^;
348: (ササクッテロラ Spbb-jHxu) 03/23(月)13:32 ID:DGwKTx8fp(1) AAS
Cで文字列操作なんかバグの温床になるだけだから開発言語変えるか仕様変えろw
349: (ワッチョイ 4e25-7ZW8) 03/23(月)14:45 ID:5CbFmxEa0(1) AAS
おすすめの言語は何ですか?
350: はちみつ餃子◆8X2XSCHEME (ワッチョイ 97f8-bKl3) 03/23(月)14:59 ID:kZjJats90(1/2) AAS
Rust
351: はちみつ餃子◆8X2XSCHEME (ワッチョイ 97f8-bKl3) 03/23(月)17:13 ID:kZjJats90(2/2) AAS
>>347
それはそう。
比較関数では各文字は unsigned char として比較すると規格上明記されている。
352: (アウアウウー Sac7-jHxu) 03/23(月)18:00 ID:FDDLemSHa(1/2) AAS
規格書まで紐解かないとではなぁ…
MSのページだと、strcmpとマルチバイト用の_mbscmpが併記してあって、後者の引数は const unsigned char * なのも紛らわしい
後者はMS拡張だからそうできるのだろうけど
353: (アウアウウー Sac7-jHxu) 03/23(月)18:07 ID:FDDLemSHa(2/2) AAS
_mbscmpのシグニチャは最初の問いの答えだな…
354: はちみつ餃子◆8X2XSCHEME (ワッチョイ 0bb4-Hcra) 03/23(月)21:13 ID:nKsWqljT0(1) AAS
文字列リテラルを char の配列であることにした以上は標準の関数の型をそれと合わせるという判断は自然なものだと思うよ。
全体として見ると変な感じだけど個々に見ると妥当な (少なくとも仕方ない) ように見える。
355: (アウアウウー Sa05-moi/) 03/30(月)13:23 ID:ayfEzzLua(1) AAS
K&Rを引っ張り出して読んでみたけど、たしかにcharの符号の有無は機種によるとあり、比較の関数では、引数はunsigned char *の配列として扱われる、とありますね
一度は目を通したはずですが、すっかり忘れていました
というか、初学者のころにはその意味がよく理解できていなかったのだと思います
356: (ワッチョイ abaa-DZoT) 03/30(月)14:55 ID:ocsV6cqQ0(1) AAS
C23attributeの話このスレで見たことないんだけどみんな使ってます?
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.768s*