!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
C2x ドラフト
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2731.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言語なら俺に聞け 158
https://mevius.5ch.net/test/read.cgi/tech/1640401906/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
C言語なら俺に聞け 159
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワンミングク MMa2-RRwJ)
2022/08/04(木) 23:32:27.83ID:yWVViPyIM271デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/19(月) 16:49:03.30ID:zeLiCYh20 それにUTF-8にはバイトオーダーがありません
272デフォルトの名無しさん (ワッチョイ 5701-W3aP)
2022/09/19(月) 16:50:38.05ID:Z9ZARiSG0273デフォルトの名無しさん (ワッチョイ 5701-W3aP)
2022/09/19(月) 16:52:03.62ID:Z9ZARiSG0 BOMをつけないとセキュリティ上の問題がある。
274デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/19(月) 16:52:15.94ID:zeLiCYh20 付けたWebサイトをここで公開して下さい
楽しみにしています
楽しみにしています
275デフォルトの名無しさん (ブーイモ MMcf-xFG9)
2022/09/19(月) 17:25:06.78ID:UNULYZvbM すべてのUTF-8にBOMがついてたらSJISはもっと早く消えてくれたと思うんだよね
276デフォルトの名無しさん (ワッチョイ 5701-W3aP)
2022/09/19(月) 17:31:57.08ID:Z9ZARiSG0 この話題は、BOMをつけましょうということで、良いのでは?
277ハノン ◆QZaw55cn4c (US 0H7f-G1yF)
2022/09/19(月) 18:02:53.27ID:PpMrjNAJH278デフォルトの名無しさん (ワッチョイ 5701-W3aP)
2022/09/19(月) 18:05:47.85ID:Z9ZARiSG0 BOMを付けていない人を見かけたら、注意して差し上げましょう。
ということで、良いのでは?
ということで、良いのでは?
279デフォルトの名無しさん (スプッッ Sd3f-EKt7)
2022/09/19(月) 18:12:09.41ID:iQkZER0Ad テキストファイルを開いたとき最初の三文字がゴミかどうかいちいち判断するの?
2つのテキストファイルを結合するときゴミをひとつにまとめる処理するの?
BOMという考えが誤りなんだよ
2つのテキストファイルを結合するときゴミをひとつにまとめる処理するの?
BOMという考えが誤りなんだよ
280デフォルトの名無しさん (ワッチョイ 5701-W3aP)
2022/09/19(月) 18:14:42.87ID:Z9ZARiSG0 法令でBOMを義務付けるべきでは?
BOMが無かったら通報するみたいな。
BOMが無かったら通報するみたいな。
281デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/19(月) 18:15:00.74ID:zeLiCYh20 Windowsの一部アプリでBOMがないと動作不具合起こすんだよ
Officeとか、Officeとか、その辺
この辺への思いやりが必要な時は付けてあげると良い
Officeとか、Officeとか、その辺
この辺への思いやりが必要な時は付けてあげると良い
282デフォルトの名無しさん (US 0H7f-G1yF)
2022/09/19(月) 18:19:47.40ID:BENNO3a0H >>278
それに加えて BOM を無駄につけている人を見かけたら、注意して差し上げましょう、も追加してください。
それに加えて BOM を無駄につけている人を見かけたら、注意して差し上げましょう、も追加してください。
283デフォルトの名無しさん (US 0H7f-G1yF)
2022/09/19(月) 18:20:53.56ID:BENNO3a0H284はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 973e-E+l9)
2022/09/19(月) 18:22:38.11ID:npVSxydm0285デフォルトの名無しさん (US 0H7f-G1yF)
2022/09/19(月) 18:23:22.11ID:BENNO3a0H >>281
たしかに office とか office とか office とか office とかに思いやりを示す寛大な処置ということであれば、付けて差し上げることにやぶさかではないのですけれどもね
たしかに office とか office とか office とか office とかに思いやりを示す寛大な処置ということであれば、付けて差し上げることにやぶさかではないのですけれどもね
286デフォルトの名無しさん (ワッチョイ ffb0-okD4)
2022/09/19(月) 18:27:12.50ID:YVA4ZVOh0 >>277
後半に関して言えば、そのテキストがどのエンコードを用いているかが他の手段で示されているなら
BOMは用いるべきではないとされているからそれに従えばいい話だね。
「俺が扱うテキストは全部UTF-8に決まってるんだからBOMは要らない」という自己中心的な主張と
混同してくれなければいい。
後半に関して言えば、そのテキストがどのエンコードを用いているかが他の手段で示されているなら
BOMは用いるべきではないとされているからそれに従えばいい話だね。
「俺が扱うテキストは全部UTF-8に決まってるんだからBOMは要らない」という自己中心的な主張と
混同してくれなければいい。
287デフォルトの名無しさん (ワッチョイ 5701-W3aP)
2022/09/19(月) 18:28:42.31ID:Z9ZARiSG0 まあ私はどちらでも良いんですけれども。
(レイヤード・ストリームをつこてますので)
gccがBOMに対応したのだから、BOM付ける陣営の勝利では?
(レイヤード・ストリームをつこてますので)
gccがBOMに対応したのだから、BOM付ける陣営の勝利では?
288デフォルトの名無しさん (ワッチョイ 5701-W3aP)
2022/09/19(月) 18:33:34.93ID:Z9ZARiSG0 ところで明日は地下鉄が止まるかもしれないので、調べておいた方が良いですよ。
289デフォルトの名無しさん (ワッチョイ 5701-W3aP)
2022/09/19(月) 18:35:51.09ID:Z9ZARiSG0 わたくし思うのですが、BOMに対応しないソフトウェアを企画してしまう技術者って、もはや技術者で無いのでは?
ユーザーが必要としてるわけですからね。
ユーザーが必要としてるわけですからね。
290デフォルトの名無しさん (ワッチョイ 775f-3ts6)
2022/09/19(月) 19:59:29.61ID:x76VqF340 WindowsはBOMがあった方が判別しやすいが、LinuxやUNIXはBOMがあると余計なものが付いているという感じになる。
マルチバイト圏への配慮が足らなかったマイクロソフトが一番悪い。
だいたい2バイトで漢字がすべて収まると思ったアメリカ人に対して、早く日本人が漢字は何万字もあると教えなかったのが失敗だった。
マルチバイト圏への配慮が足らなかったマイクロソフトが一番悪い。
だいたい2バイトで漢字がすべて収まると思ったアメリカ人に対して、早く日本人が漢字は何万字もあると教えなかったのが失敗だった。
291デフォルトの名無しさん (スッププ Sdbf-UZdd)
2022/09/19(月) 20:35:04.98ID:EmjBwTYRd BOMキチガイども
292デフォルトの名無しさん (ワントンキン MM7f-bNpc)
2022/09/19(月) 20:42:51.60ID:F9okSTEiM MS-DOSの頃は、これで十分って思ってたからな。
293デフォルトの名無しさん (US 0H7f-G1yF)
2022/09/19(月) 21:05:32.45ID:BENNO3a0H294デフォルトの名無しさん (ワッチョイ ffb0-okD4)
2022/09/19(月) 22:08:36.69ID:YVA4ZVOh0 「俺が扱うテキストは全部UTF-8に決まってるんだからBOMは要らない」というのが自己中心的な主張だと言ったんだが?
こんな単純な日本語の文章すらまともに読解できない奴に間違ってるとか言われても困惑するわ。
こんな単純な日本語の文章すらまともに読解できない奴に間違ってるとか言われても困惑するわ。
295デフォルトの名無しさん (US 0H7f-G1yF)
2022/09/19(月) 22:24:33.90ID:BENNO3a0H >>294
同じことを繰り返しますが、
①過去、エンコードの違うテキストを各種取り扱っていたからといって、「テキストの内部に恣意的にエンコードを示すマークを入れる」などという自己中心的なことをした歴史はなかったのです。
特にそういうことをしたいときは、ソースコードにその言語のコメントでエンコードを示す、くらいの配慮をしていたものです
②UTF-8 でエンコードされている限り、そのコンテンツがアスキーコードのみで構成されているのならば、特にバイトオーダーコードは不要で、as is で使えるように、欧米諸国に配慮した設計です
特に②が重要で、バイトオーダーコードを要れずとも、C のソースコードは UTF-8 であれば普通にコンパイルできる、はず、なのに、なぜわざわざバイトオーダーコードを付加して既存の処理系がそのままでは使えなくなってしまったのか?
コンパイラは MS-VC だけではなく、gcc も clang も lsi-c (w)もあるというのに、既存のコンパイラの動作を妨害してまで、バイトオーダーコードを付加するエディター側の方が自己中心的といえるのではないでしょうか?
そしてエンコードを示すマークなどではないバイトオーダーマークをエンコード種を示すマークに乱用するしている二重の矛盾も指摘しなければなりますまい
私の言っていることがわかりますか?
同じことを繰り返しますが、
①過去、エンコードの違うテキストを各種取り扱っていたからといって、「テキストの内部に恣意的にエンコードを示すマークを入れる」などという自己中心的なことをした歴史はなかったのです。
特にそういうことをしたいときは、ソースコードにその言語のコメントでエンコードを示す、くらいの配慮をしていたものです
②UTF-8 でエンコードされている限り、そのコンテンツがアスキーコードのみで構成されているのならば、特にバイトオーダーコードは不要で、as is で使えるように、欧米諸国に配慮した設計です
特に②が重要で、バイトオーダーコードを要れずとも、C のソースコードは UTF-8 であれば普通にコンパイルできる、はず、なのに、なぜわざわざバイトオーダーコードを付加して既存の処理系がそのままでは使えなくなってしまったのか?
コンパイラは MS-VC だけではなく、gcc も clang も lsi-c (w)もあるというのに、既存のコンパイラの動作を妨害してまで、バイトオーダーコードを付加するエディター側の方が自己中心的といえるのではないでしょうか?
そしてエンコードを示すマークなどではないバイトオーダーマークをエンコード種を示すマークに乱用するしている二重の矛盾も指摘しなければなりますまい
私の言っていることがわかりますか?
296デフォルトの名無しさん (ワッチョイ 9fad-dwAj)
2022/09/19(月) 23:05:07.14ID:/08McGz80297はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 973e-E+l9)
2022/09/19(月) 23:10:53.08ID:npVSxydm0 >>290
エンコード切り替えの規格は ISO/IEC 2022 がある。
PC-9801 時代あたりにはマニュアルで KI/KO コードという名前で説明されていた。
ヨーロッパ言語も ISO/IEC 8859 として十種類以上の文字セットが定義されているんだ。
日本での事情以上に混在は深刻な問題であって、対処する規格は当然ある。
エンコード切り替えの規格は ISO/IEC 2022 がある。
PC-9801 時代あたりにはマニュアルで KI/KO コードという名前で説明されていた。
ヨーロッパ言語も ISO/IEC 8859 として十種類以上の文字セットが定義されているんだ。
日本での事情以上に混在は深刻な問題であって、対処する規格は当然ある。
298デフォルトの名無しさん (US 0H7f-G1yF)
2022/09/19(月) 23:18:33.90ID:a+e8LTLZH >>296
おっしゃるとおり、そこまでは、ただのアスキー7bit で記述するんですよ
大概は第一行目にエンコード種をアスキーで書くものでしたけれどもね
厳密っていうけれども、あなたのおっしゃる厳密の意味がよくわかりませんね
おっしゃるとおり、そこまでは、ただのアスキー7bit で記述するんですよ
大概は第一行目にエンコード種をアスキーで書くものでしたけれどもね
厳密っていうけれども、あなたのおっしゃる厳密の意味がよくわかりませんね
299デフォルトの名無しさん (US 0H7f-G1yF)
2022/09/19(月) 23:19:31.82ID:a+e8LTLZH >>297
英語が一番簡単で、ウムラウトとか苦労していたと思いますよ、ウムラウトは確か 7 ビット領域に侵食していたような気が
英語が一番簡単で、ウムラウトとか苦労していたと思いますよ、ウムラウトは確か 7 ビット領域に侵食していたような気が
300デフォルトの名無しさん (US 0H7f-G1yF)
2022/09/19(月) 23:23:44.77ID:a+e8LTLZH >>297
おっと、私のいっていたことが少し不正確でしたね、たしかに KI/KO は生 JIS にありましたね
おっと、私のいっていたことが少し不正確でしたね、たしかに KI/KO は生 JIS にありましたね
301はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 973e-E+l9)
2022/09/19(月) 23:40:42.70ID:npVSxydm0 自然言語なんて数千年単位の歴史的経緯の塊だ。 その文字も。
綺麗に整理しようとしたって元がグダグダなんだからどこかしらでグダグダになる。
そんでそのグダグダをひとつに寄せ集めたのが Unicode なんだぞ。
そりゃグダグダで当たり前だし、そういうもんだと思うしかしょうがないだろ。
そんでもって Unicode がかなり広まったといっても従来の文字コードが消滅したわけでもない。
https://xkcd.com/927/
綺麗に整理しようとしたって元がグダグダなんだからどこかしらでグダグダになる。
そんでそのグダグダをひとつに寄せ集めたのが Unicode なんだぞ。
そりゃグダグダで当たり前だし、そういうもんだと思うしかしょうがないだろ。
そんでもって Unicode がかなり広まったといっても従来の文字コードが消滅したわけでもない。
https://xkcd.com/927/
302デフォルトの名無しさん (US 0H7f-G1yF)
2022/09/19(月) 23:43:18.98ID:a+e8LTLZH >>240
チャイナ規格ですか‥‥(差別意識満々)
調べてみましたが基本的に4ビット固定長であり、UTF-8 を包含してはいないようですね、UTF-8 の上位規格というのはどういう根拠でそういっているのですか?
どっちかというと 現行中国漢字エンコード規格の上位規格でしょう
私の理解
・7 ビット圏は 1 バイト
・拡張部分は可変長ではなく 4 バイト固定
・現行の中国の漢字エンコード規格 GBK(シフトJIS と同じ仕組み)を包含するように第二・第四バイトの範囲を GBK と被らない範囲に制限している。
チャイナ規格ですか‥‥(差別意識満々)
調べてみましたが基本的に4ビット固定長であり、UTF-8 を包含してはいないようですね、UTF-8 の上位規格というのはどういう根拠でそういっているのですか?
どっちかというと 現行中国漢字エンコード規格の上位規格でしょう
私の理解
・7 ビット圏は 1 バイト
・拡張部分は可変長ではなく 4 バイト固定
・現行の中国の漢字エンコード規格 GBK(シフトJIS と同じ仕組み)を包含するように第二・第四バイトの範囲を GBK と被らない範囲に制限している。
303デフォルトの名無しさん (ワッチョイ 5701-W3aP)
2022/09/19(月) 23:48:55.05ID:Z9ZARiSG0304デフォルトの名無しさん (US 0H7f-G1yF)
2022/09/19(月) 23:52:42.86ID:A/Pc+E3NH >>301
How standards have been overproducted とか易しい英語にしてほしいなあ
How standards have been overproducted とか易しい英語にしてほしいなあ
305デフォルトの名無しさん (US 0H7f-G1yF)
2022/09/19(月) 23:55:05.42ID:A/Pc+E3NH306デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/19(月) 23:55:54.72ID:zeLiCYh20 EBCDIC なんていうコード体系もあるんだよな
これはASCIIよりも古い
このコードで動いていたPCもあった(今もあるかは知らない)
これはASCIIよりも古い
このコードで動いていたPCもあった(今もあるかは知らない)
307デフォルトの名無しさん (ワッチョイ 17c2-okD4)
2022/09/20(火) 05:35:11.57ID:JyAf+et+0 N5200か
308デフォルトの名無しさん (ワッチョイ ff46-B8bZ)
2022/09/20(火) 05:38:15.50ID:AtHbCf2+0309デフォルトの名無しさん (ワッチョイ ffb0-okD4)
2022/09/20(火) 07:29:23.63ID:4R7D1dED0310デフォルトの名無しさん (アウアウウー Sa5b-8eP5)
2022/09/20(火) 09:59:52.88ID:2fXkGtCja >>270
PHP+SJIS全盛の頃にBOMの代わりに「美乳」が使われてた時代があったな
PHP+SJIS全盛の頃にBOMの代わりに「美乳」が使われてた時代があったな
311デフォルトの名無しさん (アウアウウー Sa5b-8eP5)
2022/09/20(火) 10:02:30.30ID:2fXkGtCja312デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/20(火) 10:04:55.52ID:Sk0Tcp2N0 MSならやりかねない
313デフォルトの名無しさん (ブーイモ MMfb-hJeG)
2022/09/20(火) 10:08:20.39ID:x6uHKNFtM >>311
asciiなら不要だよ
asciiなら不要だよ
314デフォルトの名無しさん (アウアウウー Sa5b-8eP5)
2022/09/20(火) 10:19:31.19ID:2fXkGtCja >>313
BOM付けろ派はASCIIかどうかもBOM付いてないと判らないみたいだし
BOM付けろ派はASCIIかどうかもBOM付いてないと判らないみたいだし
315デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/20(火) 10:27:10.48ID:Sk0Tcp2N0 MSの事だから、UTF-16使いそう
316デフォルトの名無しさん (ワッチョイ 9f47-G1yF)
2022/09/20(火) 22:46:15.84ID:oGqR16NY0 >>309
>>>286で自己中心的と書いた内容と全然関係ない内容
>>286
>「俺が扱うテキストは全部UTF-8に決まってるんだからBOMは要らない」という自己中心的な主張と混同してくれなければいい。
まあ、活動家のなりきりをしているので、そういうスタンスをとっているけれども、本質的には
>>295
1. 過去、エンコードの違うテキストを各種取り扱っていたからといって、「テキストの内部に恣意的にエンコードを示すマークを入れる」などという自己中心的なことをした歴史はなかった
2. UTF-8 でエンコードされている限り、そのコンテンツがアスキーコードのみで構成されているのならば、特にバイトオーダーコードは不要で、as is で使えるように、欧米諸国に配慮した設計
が言いたいことですね
UTF-8 ならば通常は as is で使えるんですよ、特に C/C++ のコード(コメントは英語・これって普通でしょ?)をそのまま使えるのに、どこぞのエディターが勝手につけるバイトオーダーマークまで正当化する風潮に苛立ちを感じているんですよ
長いものに巻かれよ、みたいなみっともない風潮を正当化するあさましさにあきれ果てているのです
あなたがそうだ、とはいいませんけれどもね
>>>286で自己中心的と書いた内容と全然関係ない内容
>>286
>「俺が扱うテキストは全部UTF-8に決まってるんだからBOMは要らない」という自己中心的な主張と混同してくれなければいい。
まあ、活動家のなりきりをしているので、そういうスタンスをとっているけれども、本質的には
>>295
1. 過去、エンコードの違うテキストを各種取り扱っていたからといって、「テキストの内部に恣意的にエンコードを示すマークを入れる」などという自己中心的なことをした歴史はなかった
2. UTF-8 でエンコードされている限り、そのコンテンツがアスキーコードのみで構成されているのならば、特にバイトオーダーコードは不要で、as is で使えるように、欧米諸国に配慮した設計
が言いたいことですね
UTF-8 ならば通常は as is で使えるんですよ、特に C/C++ のコード(コメントは英語・これって普通でしょ?)をそのまま使えるのに、どこぞのエディターが勝手につけるバイトオーダーマークまで正当化する風潮に苛立ちを感じているんですよ
長いものに巻かれよ、みたいなみっともない風潮を正当化するあさましさにあきれ果てているのです
あなたがそうだ、とはいいませんけれどもね
317デフォルトの名無しさん (スッップ Sdbf-UZdd)
2022/09/20(火) 22:50:52.98ID:an1sf52Dd どこでも演説をおっぱじめるガキにいらだちを感じてる
318デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/20(火) 23:07:44.32ID:Sk0Tcp2N0 多国語が混在しても扱えるところが気に入ってる
319デフォルトの名無しさん (ワッチョイ d7b3-rZTD)
2022/09/21(水) 00:15:08.73ID:z4iK/HUS0 gdbについて質問いいですか?
ステップ実行でfopenを通過しようとすると
"iofopen.c: そのようなファイルやディレクトリはありません"
とメッセージがでて先に進めません。どうすれば回避できますか?
OS:Linux
ステップ実行でfopenを通過しようとすると
"iofopen.c: そのようなファイルやディレクトリはありません"
とメッセージがでて先に進めません。どうすれば回避できますか?
OS:Linux
320デフォルトの名無しさん (ワッチョイ d7b3-rZTD)
2022/09/21(水) 00:17:32.94ID:z4iK/HUS0 ちなみにソースは以下の感じです
fopenで開くファイルは実行ファイル(a.out)と同じ場所に置いてあります。
#include <stdio.h>
void main(void){
FILE *fp;
fp =fopen("aa.txt", "r");
fclose(fp);
}
fopenで開くファイルは実行ファイル(a.out)と同じ場所に置いてあります。
#include <stdio.h>
void main(void){
FILE *fp;
fp =fopen("aa.txt", "r");
fclose(fp);
}
321デフォルトの名無しさん (ワッチョイ 1710-W3aP)
2022/09/21(水) 00:45:37.65ID:itvuUNqP0322デフォルトの名無しさん (ワッチョイ d7b3-q6Lr)
2022/09/21(水) 06:00:40.75ID:z4iK/HUS0 >>321
サンクス
サンクス
323デフォルトの名無しさん (ワッチョイ 1f02-MXZj)
2022/09/21(水) 06:25:52.07ID:tW9j9RfF0 includeガードって割と使われてるように思いますが、エラい人の批評とかありません?
依存関係を把握しきれてないヤバい状態の発覚を先延ばしにするだけのハックだと個人的な経験から思うのですが…
依存関係を把握しきれてないヤバい状態の発覚を先延ばしにするだけのハックだと個人的な経験から思うのですが…
324デフォルトの名無しさん (スフッ Sdbf-MXZj)
2022/09/21(水) 06:39:05.65ID:6JiKBcvPd とりあえず各ソースファイルの実行部、なければinit_xxxみたいなエントリーポイント作って
#ifdef XXX perror("xxx loaded twice"); exit(XXX);
みたいの置いたりしてます
#ifdef XXX perror("xxx loaded twice"); exit(XXX);
みたいの置いたりしてます
325デフォルトの名無しさん (スフッ Sdbf-MXZj)
2022/09/21(水) 06:47:28.88ID:6JiKBcvPd init_xxxを呼び忘れると無意味なので、文法エラーで落とせたら良いと思うんですが、分かりやすいメッセージ吐いて落ちてくれる違法構文(あるいはそうするときの標準的なイディオム)あったら教えて欲しいです
326デフォルトの名無しさん (ワッチョイ 17c2-okD4)
2022/09/21(水) 07:18:22.65ID:sLC8V8J20 >>323
エロい人の批判ねえ。。。
#pragma onceなんか色んなコンパイラの中の人が真似してるけど?
依存関係を把握っていうけど、じゃあ
#include <stddef.h>
#include <stdio.h>
なんて書かされたいわけ?
ライブラリだって-lstdcじゃなく
fputc.o iobuf.o fprintf.o printf.oなんて書くべきだと思う?
何かを使いたいときの窓口を1つにまとめておくのは
作る側として行儀のいいことだと思うぞ
エロい人の批判ねえ。。。
#pragma onceなんか色んなコンパイラの中の人が真似してるけど?
依存関係を把握っていうけど、じゃあ
#include <stddef.h>
#include <stdio.h>
なんて書かされたいわけ?
ライブラリだって-lstdcじゃなく
fputc.o iobuf.o fprintf.o printf.oなんて書くべきだと思う?
何かを使いたいときの窓口を1つにまとめておくのは
作る側として行儀のいいことだと思うぞ
327デフォルトの名無しさん (スフッ Sdbf-MXZj)
2022/09/21(水) 07:47:36.87ID:6JiKBcvPd >>326
むしろグッドプラクティスとされてる感じですか、確かにシステムヘッダにも見掛けますね
標準ライブラリは使うものを共通ヘッダにまとめてますね
ライブラリとして公開する場合は当然慣習に従うべきだと思いますが、書いてる時には丁度必要十分でなく、余計なヘッダがあると何処に何があったか混乱したりしません?
コードを弄らずスタティックアナライザとか道具に頼った方がいいのかな
むしろグッドプラクティスとされてる感じですか、確かにシステムヘッダにも見掛けますね
標準ライブラリは使うものを共通ヘッダにまとめてますね
ライブラリとして公開する場合は当然慣習に従うべきだと思いますが、書いてる時には丁度必要十分でなく、余計なヘッダがあると何処に何があったか混乱したりしません?
コードを弄らずスタティックアナライザとか道具に頼った方がいいのかな
328はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 973e-E+l9)
2022/09/21(水) 09:18:02.72ID:tPUkcfIa0 >>323
ライブラリはそのライブラリの使用者に対して
インターフェイス部分だけを公開したいのが普通で、
細かい依存関係が見えてしまうのは悪い設計だろ。
でも C のヘッダファイルの仕組みは隠蔽しきれない部分が出てしまうので
そもそも C の言語としての仕組みが悪い。
C を使う以上は悪い部分ともつきあわないとしょうがないし、
インクルードガードは比較的マシな解決方法だと誰もが考えているからこそそうなってる。
C++ にはモジュールが導入されたけど今のところはヘッダファイルとも共存し続ける必要があるから
完全な移行にかかる時間は数十年単位かもしれんな……。
ライブラリはそのライブラリの使用者に対して
インターフェイス部分だけを公開したいのが普通で、
細かい依存関係が見えてしまうのは悪い設計だろ。
でも C のヘッダファイルの仕組みは隠蔽しきれない部分が出てしまうので
そもそも C の言語としての仕組みが悪い。
C を使う以上は悪い部分ともつきあわないとしょうがないし、
インクルードガードは比較的マシな解決方法だと誰もが考えているからこそそうなってる。
C++ にはモジュールが導入されたけど今のところはヘッダファイルとも共存し続ける必要があるから
完全な移行にかかる時間は数十年単位かもしれんな……。
329デフォルトの名無しさん (ワッチョイ 9fad-okD4)
2022/09/21(水) 09:58:34.67ID:hjFc1SVt0 新言語作った方が早いw
330デフォルトの名無しさん (アウアウウー Sa5b-8eP5)
2022/09/21(水) 18:18:19.49ID:E8IgYMeHa331デフォルトの名無しさん (アウアウウー Sa5b-8eP5)
2022/09/21(水) 18:19:32.68ID:E8IgYMeHa >>328
FILE * とかって結局使う方からしたら void * でも動くしな
FILE * とかって結局使う方からしたら void * でも動くしな
332デフォルトの名無しさん (アウアウウー Sa5b-8eP5)
2022/09/21(水) 18:21:06.66ID:E8IgYMeHa >>329
Nimがある
Nimがある
333デフォルトの名無しさん (ワッチョイ d7b3-rZTD)
2022/09/22(木) 19:42:13.93ID:6Jou56UH0 #include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <memory.h>
typedef struct {
int year;
int mon;
int mday;
int hour;
int min;
double high;
double open;
double close;
double low;
} CSV_T;
void f(CSV_T *csv){
CSV_T *work;
for(int i=1; i<1001; i++){ //★
work = realloc(csv, sizeof(CSV_T)*i);
if(work == NULL){
puts("error");
exit(0);
}
if(work != csv) {
puts("ココ通過でアウト"); //▲
csv = work;
}
}
#include <string.h>
#include <stdlib.h>
#include <memory.h>
typedef struct {
int year;
int mon;
int mday;
int hour;
int min;
double high;
double open;
double close;
double low;
} CSV_T;
void f(CSV_T *csv){
CSV_T *work;
for(int i=1; i<1001; i++){ //★
work = realloc(csv, sizeof(CSV_T)*i);
if(work == NULL){
puts("error");
exit(0);
}
if(work != csv) {
puts("ココ通過でアウト"); //▲
csv = work;
}
}
334デフォルトの名無しさん (ワッチョイ d7b3-rZTD)
2022/09/22(木) 19:42:52.92ID:6Jou56UH0 csv[0].year = 1;
csv[0].low = 1.1;
csv[998].year = 9;
csv[998].low = 9.9;
printf("%d %f\n", csv[0].year, csv[0].low);
printf("%d %f\n", csv[998].year, csv[998].low);
}
void main(void){
CSV_T *csv;
csv = realloc(NULL, 1);
f(csv);
printf("%d %f\n", csv[0].year, csv[0].low);
printf("%d %f\n", csv[998].year, csv[998].low);
free(csv);
}
csv[0].low = 1.1;
csv[998].year = 9;
csv[998].low = 9.9;
printf("%d %f\n", csv[0].year, csv[0].low);
printf("%d %f\n", csv[998].year, csv[998].low);
}
void main(void){
CSV_T *csv;
csv = realloc(NULL, 1);
f(csv);
printf("%d %f\n", csv[0].year, csv[0].low);
printf("%d %f\n", csv[998].year, csv[998].low);
free(csv);
}
335デフォルトの名無しさん (ワッチョイ d7b3-rZTD)
2022/09/22(木) 19:43:37.01ID:6Jou56UH0 ・やりたいこと
CSVファイルを1行読み込むごとに構造体のエリアをreallocで拡張して格納
元のソースをそのままアップするには長いのでファイルの読み込み部分を削除したソースが上のやつです
・悩んでいるところ
コメント★のとこのループが1000程度なら動きます。
しかし10000を超えるループにするとコメント▲部分を通過するようになり
mainのprintfが正しい値を表示しなくなります。
なぜ?
CSVファイルを1行読み込むごとに構造体のエリアをreallocで拡張して格納
元のソースをそのままアップするには長いのでファイルの読み込み部分を削除したソースが上のやつです
・悩んでいるところ
コメント★のとこのループが1000程度なら動きます。
しかし10000を超えるループにするとコメント▲部分を通過するようになり
mainのprintfが正しい値を表示しなくなります。
なぜ?
336デフォルトの名無しさん (ワッチョイ 9f7c-E+l9)
2022/09/22(木) 19:58:17.91ID:z6cxsZX20 領域拡張がそのままでは出来ずに新たな領域に指定サイズで取り直すからでは?
どっちにしてもそんなに細かくrealloc()するものでは無いし
ある程度の大きさで取っておいて足りなくなったらrealloc()するのが本来の使い方
どっちにしてもそんなに細かくrealloc()するものでは無いし
ある程度の大きさで取っておいて足りなくなったらrealloc()するのが本来の使い方
337デフォルトの名無しさん (ワッチョイ ff46-EKt7)
2022/09/22(木) 19:58:48.48ID:p2gwdjIg0 reallocが別のメモリを確保して返す場合
▲のほうを通ります
このときfの内部でcsvを変更しても
mainのcsvは変化しません。
返り値にするかfの引数をCSV_T**にするか
変更すればよいです。
▲のほうを通ります
このときfの内部でcsvを変更しても
mainのcsvは変化しません。
返り値にするかfの引数をCSV_T**にするか
変更すればよいです。
338デフォルトの名無しさん (ワッチョイ 775f-3ts6)
2022/09/22(木) 21:54:30.38ID:x7eBA3430 >>293
昔はデータ容量を節約する必要があったから、データ容量が増えることは避けたかっただけ。
昔はデータ容量を節約する必要があったから、データ容量が増えることは避けたかっただけ。
339デフォルトの名無しさん (ワッチョイ 775f-3ts6)
2022/09/22(木) 21:56:10.71ID:x7eBA3430 >>295
①や②を使っている時点で日本人の都合を世界に押し付けていることがわからないのか?
①や②を使っている時点で日本人の都合を世界に押し付けていることがわからないのか?
340デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/22(木) 22:34:09.45ID:4dXBB0gP0 丸数字はUnicodeに登録されてるから心配ないよ
㋿ですら存在するし
㋿ですら存在するし
341デフォルトの名無しさん (テテンテンテン MM8f-2Jl6)
2022/09/22(木) 23:15:55.13ID:9LVV18M9M >>293
そんなこと言ってたらUnicodeには肌色を指定する文字があって、これは通常表示されない
これらを組み合わせると家族絵文字はたった1文字を表示するのに最大で41byteになる
もはや文字を正しく表示する事は簡単じゃない
BOMの有無なんてかわいいもんだ
そんなこと言ってたらUnicodeには肌色を指定する文字があって、これは通常表示されない
これらを組み合わせると家族絵文字はたった1文字を表示するのに最大で41byteになる
もはや文字を正しく表示する事は簡単じゃない
BOMの有無なんてかわいいもんだ
342はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 973e-E+l9)
2022/09/22(木) 23:47:09.65ID:He0eupRY0 私が Unicode のグダグダさについて言いたいことは >>301 が全てなので繰り返しになるんだが
そもそも自然言語がグダグダなのが問題の根源。
文句があるなら自然言語を規格化して普及させてみせろや。
そもそも自然言語がグダグダなのが問題の根源。
文句があるなら自然言語を規格化して普及させてみせろや。
343デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/22(木) 23:50:49.90ID:4dXBB0gP0 人それぞれなんだが、
自分が一番困るのは
~
これの扱いでいつもトラブル
自分が一番困るのは
~
これの扱いでいつもトラブル
344デフォルトの名無しさん (テテンテンテン MM8f-2Jl6)
2022/09/23(金) 00:53:58.54ID:oded7icuM 「が」と「か゛」が混ざってる事もある(見た目じゃ判別付かない)から、先ずはUnicode正規化しないと、なぜか文字列が一致しないとかもある
345デフォルトの名無しさん (アウアウウー Sa5b-8eP5)
2022/09/23(金) 01:35:24.44ID:gD4It3Aba346デフォルトの名無しさん (アウアウウー Sa5b-8eP5)
2022/09/23(金) 01:37:21.11ID:gD4It3Aba ここと
work = realloc(*csv, sizeof(CSV_T)*i);
ここも
if(work != *csv) {
変更汁
work = realloc(*csv, sizeof(CSV_T)*i);
ここも
if(work != *csv) {
変更汁
347デフォルトの名無しさん (ワッチョイ 9f01-bNpc)
2022/09/23(金) 06:31:49.61ID:exFn1ITS0348デフォルトの名無しさん (ワッチョイ d710-E+l9)
2022/09/23(金) 08:25:09.61ID:wfJAcbE20 >339
日本の都合に合わせたOSを作ったらアメリカから(ry
日本の都合に合わせたOSを作ったらアメリカから(ry
349デフォルトの名無しさん (ワッチョイ 9fad-52V3)
2022/09/23(金) 08:38:34.03ID:JWInDr1o0 BOMはいるとかいらないとか
自分を中心に語っている間は自己中心的、なんじゃないですか?
BOMあったほうが良い環境と無いほうが良い環境があるなら、それに合わせて利用するでは?
自分を中心に語っている間は自己中心的、なんじゃないですか?
BOMあったほうが良い環境と無いほうが良い環境があるなら、それに合わせて利用するでは?
350デフォルトの名無しさん (ワッチョイ 9701-W3aP)
2022/09/23(金) 08:55:36.44ID:7gKq4Utr0351デフォルトの名無しさん (ワッチョイ d7b3-rZTD)
2022/09/23(金) 09:05:36.75ID:CJ5Vu8e/0 >>336-347
動きました。
指摘頂いた箇所を直してコンパイルすると、コンパイラが
error: ‘*csv’ is a pointer; did you mean to use ‘->’?
っと吐くので、コンパイルメッセージ通り
csv[0]->year = 1;
csv[0]->low = 1.1;
csv[998]->year = 9;
csv[998]->low = 9.9;
と修正したら Segmentation fault (コアダンプ) となるので随分悩みましたが
以下のようにすることで望む動作となりました。サンクスです。おわり。
csv[0][0].year = 1;
csv[0][0].low = 1.1;
csv[0][998].year = 9;
csv[0][998].low = 9.9;
printf("%d %f\n", csv[0][0].year, csv[0][0].low);
printf("%d %f\n", csv[0][998].year, csv[0][998].low);
動きました。
指摘頂いた箇所を直してコンパイルすると、コンパイラが
error: ‘*csv’ is a pointer; did you mean to use ‘->’?
っと吐くので、コンパイルメッセージ通り
csv[0]->year = 1;
csv[0]->low = 1.1;
csv[998]->year = 9;
csv[998]->low = 9.9;
と修正したら Segmentation fault (コアダンプ) となるので随分悩みましたが
以下のようにすることで望む動作となりました。サンクスです。おわり。
csv[0][0].year = 1;
csv[0][0].low = 1.1;
csv[0][998].year = 9;
csv[0][998].low = 9.9;
printf("%d %f\n", csv[0][0].year, csv[0][0].low);
printf("%d %f\n", csv[0][998].year, csv[0][998].low);
352デフォルトの名無しさん (スッププ Sdbf-UZdd)
2022/09/23(金) 10:00:54.82ID:N+YYHg9hd >>348
そんな幻覚を信じてる奴がC言語使うなw
そんな幻覚を信じてる奴がC言語使うなw
353デフォルトの名無しさん (ワッチョイ 9701-W3aP)
2022/09/23(金) 10:17:08.51ID:7gKq4Utr0 中国がやられていることを、以前は日本がやられていた。
354デフォルトの名無しさん (スッププ Sdbf-UZdd)
2022/09/23(金) 10:36:16.17ID:N+YYHg9hd 中国のはただのLINUXもどきだろw
355デフォルトの名無しさん (ワッチョイ 9701-W3aP)
2022/09/23(金) 10:43:48.77ID:7gKq4Utr0 アメリカは許さん。
いつかアメリカが弱くなった時、必ず仕返しをする。
いつかアメリカが弱くなった時、必ず仕返しをする。
356デフォルトの名無しさん (ワッチョイ b7bb-E+l9)
2022/09/23(金) 10:46:24.11ID:mieuEbaK0 アメリカはほんとジャイアンだよな
色々な国から恨み買ってると思うわ
色々な国から恨み買ってると思うわ
357デフォルトの名無しさん (スッププ Sdbf-UZdd)
2022/09/23(金) 11:04:10.31ID:N+YYHg9hd そういう下らない話はどっかの陰謀論スレでやれ
CもUNIXもパソコンもどこの国が作ったんだよw
CもUNIXもパソコンもどこの国が作ったんだよw
358デフォルトの名無しさん (ワッチョイ b7bb-E+l9)
2022/09/23(金) 11:14:08.38ID:mieuEbaK0 だから国産のCやUNIXが必要なんだよ
アメリカにずっと依存してたらいつか痛い目を見ると思うわ
アメリカにずっと依存してたらいつか痛い目を見ると思うわ
359デフォルトの名無しさん (ワッチョイ 17c2-okD4)
2022/09/23(金) 11:24:24.02ID:Ztvb6Y4W0 Cのどこに陰謀なんかあるんだよ
ちゃんと理解して使ってる人なら絶対にありえない妄想だな
いつまで経ってもHello worldの域を出られないウルトラ低脳だけだろそんなこと言ってるのは
ちゃんと理解して使ってる人なら絶対にありえない妄想だな
いつまで経ってもHello worldの域を出られないウルトラ低脳だけだろそんなこと言ってるのは
360デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/23(金) 12:04:08.03ID:d/Vr8qA70 ビジコンの小島社長が技術だけでなく、世界を目指していたら
今頃は世界を制覇して太ろうに
今頃は世界を制覇して太ろうに
361デフォルトの名無しさん (スププ Sdbf-rRHG)
2022/09/23(金) 13:05:01.09ID:hRyY5Ouqd >>351
そこまで csv[0] 多用するなら
引数を void f(CSV_T **pcsv) にして
関数内で CSV_T *csv = *pcsv; すると良い
最後に *pcsv = work; だけ気を付ける
そこまで csv[0] 多用するなら
引数を void f(CSV_T **pcsv) にして
関数内で CSV_T *csv = *pcsv; すると良い
最後に *pcsv = work; だけ気を付ける
362デフォルトの名無しさん (スッププ Sdbf-UZdd)
2022/09/23(金) 13:28:27.27ID:UtiZ09eAd363デフォルトの名無しさん (ワッチョイ d710-E+l9)
2022/09/23(金) 14:25:39.25ID:wfJAcbE20 世界初のCPUは(ry
364デフォルトの名無しさん (ワッチョイ ffb0-okD4)
2022/09/23(金) 14:59:32.72ID:4W75W0wl0 イギリス人のノイマンが考えてアメリカのEDVACに搭載されたのが最初だっけ
365デフォルトの名無しさん (ワッチョイ 9fad-okD4)
2022/09/23(金) 15:24:24.40ID:U+A60u3d0 ジョン・フォン・ノイマンはハンガリー出身のアメリカの数学者。
両親はハンガリーに移住したユダヤ系ドイツ人。
両親はハンガリーに移住したユダヤ系ドイツ人。
366デフォルトの名無しさん (ワッチョイ 9701-W3aP)
2022/09/23(金) 16:25:05.41ID:7gKq4Utr0367デフォルトの名無しさん (ワッチョイ 9fad-okD4)
2022/09/23(金) 17:04:19.95ID:U+A60u3d0 >>363
何を以てCPUと呼ぶかという定義の違いによってどれが世界初のCPUかが変わる。
何を以てCPUと呼ぶかという定義の違いによってどれが世界初のCPUかが変わる。
368デフォルトの名無しさん (テテンテンテン MM8f-2Jl6)
2022/09/23(金) 17:15:38.41ID:JPfPvbHpM ノイマンは原爆は地上100mで爆発させるのが最もダメージを与えられるという計算を一生懸命してた人
369デフォルトの名無しさん (ワッチョイ 9701-W3aP)
2022/09/23(金) 17:59:34.63ID:7gKq4Utr0 技術が政府を必要なくするという妄想を主軸に据えた改定アナーキズムを提唱します。
国を細分化し、一つの国の力を十分に小さくすれば、戦争は消え去ります。
それも改定アナーキズムの効果のひとつです。
国を細分化し、一つの国の力を十分に小さくすれば、戦争は消え去ります。
それも改定アナーキズムの効果のひとつです。
370デフォルトの名無しさん (ワッチョイ b7bb-E+l9)
2022/09/23(金) 18:46:47.28ID:mieuEbaK0■ このスレッドは過去ログ倉庫に格納されています
ニュース
- アメリカ、入国時に「日本人を含む外国人観光客の最大5年分のSNS履歴の提出」義務化へ 過去10年間に使用のメールアドレスや電話番号等も★2 [Hitzeschleier★]
- 立憲・小宮山議員、「牛乳=白い水」投稿を削除 批判殺到で「大変失礼申し上げました」 [少考さん★]
- 【中国外務省】日本への渡航自粛を再度呼びかけ 今度は「地震発生」を理由に [ぐれ★]
- 日本語が話せない「外国籍」の子が急増中、授業がストップ、教室から脱走も…先生にも大きな負担「日本語支援」追いつかず★3 [七波羅探題★]
- 内閣支持、微減59.9% 5割超が補正予算評価 時事通信世論調査 [どどん★]
- 【芸能】デパートで見つけたランドセルが衝撃価格! つまみ枝豆「どこかで規制しないと」に共感の声殺到 「全て同感」「高すぎます」★2 [冬月記者★]
- 愛国者「コピーという言葉は、文脈によって複数の意味を持ちます。これは事前通告とは言わない。」 [834922174]
- 【高市遺産】 ユネスコさん。日本の「匠の技」「屋台」「和紙」などを無形文化遺産に登録 🎉🎊 [485983549]
- 1時間後に退職を伝える😡
- 日本人のコメ離れが深刻、おまえらなんでコメ食わないんだ??? [974680522]
- 【画像】クリスマスケーキの予約の電話をしたんだけどすでに予約がいっぱいで断られちゃったよ…
- 自民党のヒゲ「トランプおやびんが中国に何も言ってくれない」 [834922174]
