探検


C言語なら俺に聞け 164

2025/07/23(水) 15:30:01.81ID:eCR5cXRr0
(新スレ立ての際上記コマンドを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言語なら俺に聞け 163
https://mevius.5ch.net/test/read.cgi/tech/1721137434/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2026/07/16(木) 12:22:29.33ID:tqJQMSog0
> 仕様準拠は主に(長期的な)生産性向上の為(=ソースコードの品質を上げる為)として、
> 生産性を上げる為には仕様内の差異を潰す(仕様を絞る)事をしないといけない。
> 逆に言うと、仕様準拠だが実装がバラけるような「ユルい」仕様では意味がない。

お前やっぱC書いたことないだろって感じのことばっかり言うよな

流石に明らかに変なところに突っ込まないのは逆に怪しいから突っ込むけども、
> 仕様準拠だが実装がバラけるような「ユルい」仕様では意味がない
申し訳ないが意味不明

仕様準拠なら実装が違っても問題ないのは前提なんだわ
それは「高級言語」というものの定義の話としてそうで、逆に、そうじゃなかったらアセンブリ直接書けって話にしかならんのね
ハードウェアを抽象化した以上、仕様で提供される機能の範囲で書くというのは君が散々Cより改良されてると言ってる諸言語でも同じ
2026/07/16(木) 12:23:52.40ID:AMrrXlFD0
>>661
> そもそもこの仕様を変更したとして、誰にも何らデメリット無いのだから、

新しい仕様に依存したコードが書かれる様なるとそれに対応しない処理系の使用は絶望的になるからデメリット大きい。
適当に同じ処理まとめるだとか処理の順番入れ替えるだとかの自由も奪うことになると最適化の自由度も今より下がる。
2026/07/16(木) 12:24:26.60ID:tqJQMSog0
>>658
> 生産性を上げる為には仕様内の差異を潰す(仕様を絞る)事をしないといけない
これはそもそも間違ったことを書いている
正しくは
> 生産性を上げる為には仕様内の差異を潰す(挙動を絞る)事をしないといけない
となる

で、なんでそんなことを必要とするのかと言えば、仕様に準拠しない書き方をしているからでしかない
仕様で保証されていない挙動を勝手に前提としてコードを書き、その通りにならない環境が出てくるからそういう作業が始まる
最初から仕様に定められた通りに解釈していれば、この無駄な作業は発生していない
2026/07/16(木) 12:26:17.55ID:tqJQMSog0
>>666
それなんだよな
もっとも、最初から未定義動作踏み抜くようなクソコードしか書かない奴に通じるかはわからんが
2026/07/16(木) 12:27:42.73ID:tqJQMSog0
>>657
マクロはC言語の仕様に含まれてるし、処理系定義もC言語の仕様に明記されてるんだけどなあ?
君の言ってる仕様って何の話?w
2026/07/16(木) 12:28:29.06ID:AMrrXlFD0
C言語は仕様を完全に理解し未定義動作を絶対に踏まないパーフェクト超人向けの言語として舵切ってるのでJavaScriptみたいな素人向け言語の方針になびいたりすることは今後もなかろう。
2026/07/16(木) 12:30:37.51ID:tqJQMSog0
>>658
> コンパイラ作成側が1mmも譲らず、あらゆる自由度を最適化余地の既得権益としてるからだが、
未定義動作の意味を理解していないからこんな妄想が出てくる
どんな言語でも仕様の範囲外をどう処理するかはコンパイラやランタイムの自由で、そういうコードは「書いてはいけない」というのは共通している
書いてはいけないコードを書いた結果壊れるのは当たり前で、コンパイラが悪いというのは的外れな主張だ
2026/07/16(木) 12:38:17.69ID:tqJQMSog0
>>670
> C言語は仕様を完全に理解し未定義動作を絶対に踏まないパーフェクト超人向けの言語
これはガチ
別に舵切ったわけじゃなくて最初(仕様が公開された時点)からそうなんだけどね
だから「できない奴は去れ」なんだよな
2026/07/16(木) 12:52:20.03ID:ydvs2Ppy0
>>666
資産はコードであって、コンパイラではない。
勿論、改修の手間も比べ物にならない。

> それに対応しない処理系の使用は絶望的になる
これまでのコードは全て動作するから問題ない。
コンパイラは改修すればいいだけ。

> 最適化の自由度も今より下がる
同上、要するにコードよりもコンパイラを優先する愚かな思考。
ここに自由度残してもバイナリの品質が上がることはほぼ期待できない。
なら、コードの品質を上げるべく、仕様を絞ったほうがいい。

>>670
おかしな選民思想を持たず、タダで出来る安全装置は付けるべきだろう。
2026/07/16(木) 16:00:50.92ID:Wb6p8Q0G6
>>673
> 資産はコードであって、コンパイラではない。
コードが資産なのにコードを動かせないコンパイラが支配的になると困るって話だろ
お前ホント日本語読めないよな
> コンパイラは改修すればいいだけ。
コンパイラも資産であるコードの一部であって、全部改修とか現実見てない奴しか言えないバカげた妄言の最たるもの

あと、まだ >>667 と >>671 で否定した
> コードの品質を上げるべく、仕様を絞ったほうがいい
とかいうバカげた主張を何の反省もなく繰り返してるんだな
バカの一つ覚えとはこのこと

> おかしな選民思想を持たず、タダで出来る安全装置は付けるべきだろう。
おかしな選民思想ではなく、ただの事実だよw
C言語は正しく書ける奴が正しく書くことを前提に仕様が決まっている
安全装置が欲しければRust書いてろって話
2026/07/16(木) 16:02:03.60ID:Wb6p8Q0G6
だから親切に最初からf93c-K2DKみたいな奴向けにRustはあるんだって言ってやってるのに、頭使えないからかバカにして見下してるせいで認められない
2026/07/16(木) 16:13:16.63ID:Wb6p8Q0G6
C言語は自分で仕様チェックしてその通り書ける奴のための言語
それができないならRustコンパイラに丁寧に教えてもらいなさいw
677デフォルトの名無しさん (ワッチョイ 89c0-176r)
垢版 |
2026/07/16(木) 17:30:07.71ID:LAo9fD1s0
>>659
ソードってPIPSのSORD?
2026/07/16(木) 18:08:57.80ID:fgqOLN+Y0
あそこは東芝が捕食した
2026/07/16(木) 18:57:04.27ID:ZwV5Ocxz0
最近はCで書いてAIにRUSTに書き直してもらってる
2026/07/16(木) 19:03:30.95ID:uqiKuVosp
>>679
なんでそんな無駄な事する?
最初からRustで書かせればいいのに
2026/07/16(木) 21:11:52.38ID:vcbnvdP8a
>>659
> (ただまあ、個人的にはRustではないな、と見てる。あれはゴミだ)

ゴミとまでは思わないけど
宣伝文句に対して力不足だと思う
俺も出始めのころから2017年?くらいまでは熱心に追いかけてたけど
なんかもう特にコメントするところもない言語って感じ
Scalaなんかも出始めのころ画期的に見えたけどこれももう何も言うことはない
682デフォルトの名無しさん (JP 0Hd2-Klls)
垢版 |
2026/07/16(木) 21:57:29.54ID:Y27OUNXyH
>>679
言語を変えるならjavaスクリプトからラストとかなら分かるけど、その例だとコード実行速度あんまり上がらなさそう
2026/07/16(木) 22:20:07.90ID:tqJQMSog0
>>681
別に宣伝文句に対しては十分だろ
Cと同等の速度もメモリ安全も実現している
「驚きと楽しさで満ち溢れた古くならない言語!」なんて誰も言ってない
2026/07/16(木) 22:20:43.74ID:tqJQMSog0
そもそも実用的なプログラミング言語に「驚きと楽しさで満ち溢れ」てもらっては困る
2026/07/16(木) 22:22:57.40ID:tqJQMSog0
> ただまあ、個人的にはRustではないな、と見てる。あれはゴミだ (>>659)
> おかしな選民思想を持たず、タダで出来る安全装置は付けるべきだろう (>>673)
こんなこと言ってる奴はシステムプログラミング言語に手出しちゃダメ
2026/07/16(木) 22:23:55.35ID:tqJQMSog0
安全にするためのルールにも文句を言う、でも安全じゃないのは欠陥だと喚く、要するに自分の忍耐も努力も足りないことを他人のせいにしているだけ
2026/07/16(木) 23:22:22.34ID:tqJQMSog0
>>682
安全性を向上させたいのでは?
もっとも、最初からRustで書いた方がいいとは思うけど
2026/07/17(金) 19:07:04.68ID:eJfcvx1B0
やっぱAnnex Kってゴミだわ
2026/07/17(金) 22:40:36.31ID:JPfZ12kA0
_s 関数使えたもんじゃないよな
690デフォルトの名無しさん (ワッチョイ 6108-UT5n)
垢版 |
2026/07/17(金) 22:55:21.97ID:SImBWJDs0
あれは失敗規格だから
2026/07/18(土) 13:25:30.49ID:BkyklCKZ0
エラー出たら勝手に落ちたり防ぎたかったら変なん渡さなきゃいけなかったりめんどくさすぎる
692デフォルトの名無しさん (ワッチョイ 8934-UT5n)
垢版 |
2026/07/18(土) 20:56:27.68ID:BkyklCKZ0
やっぱりMinGW使った方がいいな
2026/07/18(土) 20:56:42.79ID:BkyklCKZ0
あ、下げ忘れた
2026/07/19(日) 06:33:39.80ID:Frm9xG3ua
GNU/LinuxでGCCがいいよ
2026/07/19(日) 10:12:10.69ID:7xyOc8N5M
仮想ソフト使ってインストールしている
2026/07/20(月) 17:46:06.08ID:FTzidL2p0
>>694
OSは好きで選べるもんじゃないから、Linux上で開発しても結局最終的にはMinGWに頼ることにはなるよ
2026/07/20(月) 19:02:44.52ID:TtocmnrPM
最終OSは発注者が決める
2026/07/20(月) 20:07:24.83ID:XCZRRui30
クロス開発しても動作確認 (テスト) をしないわけにはいかないのだし、 Windows 用のソフトウェアを作るという前提なら Linux 上でやる意味はそんなにないな。
以前の Windows はパッケージマネージャが駄目だったから環境構築が面倒だったけど今は scoop とかがあるし。
2026/07/23(木) 13:24:55.11ID:pykcIHbI0
オレなんかが仮想環境利用するのは、
1台でサバクラ環境作れるからなんだわ
700デフォルトの名無しさん (ワッチョイ 7763-knxu)
垢版 |
2026/07/24(金) 05:10:49.53ID:taerOtS60
MinGWはWindowsでGCC使えていいよな
2026/07/26(日) 12:41:26.26ID:VyQRUqSH0
一応windowsで使えるgccはある
702デフォルトの名無しさん (ワッチョイ 126a-x+NG)
垢版 |
2026/07/27(月) 04:55:21.25ID:e++5CBjU0
wsl でやるのが楽
2026/07/27(月) 09:41:26.81ID:8CHRIz050
MinGW の Min は Minimal の Min

実際には autotools などのツールチェインやパッケージマネージャと連携しないと使えるライブラリのビルドや利用がやりづらいので Cygwin や Msys2 などの環境内で MinGW を入れたほうが良いと思う。
WSL でも良いけど MinGW のために WSL を入れるのだとしたらちょっと過剰かもしれない。
2026/07/27(月) 12:35:14.45ID:PNTs1cOJ0
Minimalistな、MSYSじゃねーんだからw
Minimal GNUじゃ表したい概念とちょっと違うだろうよ
705デフォルトの名無しさん (ワッチョイ 8667-+gKb)
垢版 |
2026/07/27(月) 12:48:11.63ID:oRGv7FaG0
Minimalist GNU for Windows
らしい
706デフォルトの名無しさん (スップ Sd52-UNRu)
垢版 |
2026/07/28(火) 15:57:03.29ID:HGwE9+Ced
>>703
間違えてた知識教えてもらえて良かったじゃん
見たらお礼の一言でもあってもいいかもね
2026/07/30(木) 13:39:05.46ID:yLT+MEzH0
お礼は物の方が良いぞ
ここに住所と氏名を書いておけ
708デフォルトの名無しさん (ワッチョイ e375-wiNW)
垢版 |
2026/07/30(木) 14:32:08.34ID:Jc6qJmGq0
>>706
掲示板にそういうのを求めても意味はない
709デフォルトの名無しさん (ワッチョイ 53b0-x+NG)
垢版 |
2026/07/30(木) 16:31:20.42ID:CgQTNK3f0
お札を送る
2026/07/30(木) 17:05:29.27ID:yLT+MEzH0
どこの神社が良いですか?
2026/07/30(木) 17:42:55.17ID:4lG5CXrP0
昔cygwinとかあったけどな
2026/07/30(木) 18:03:04.84ID:yLT+MEzH0
悪バグ退散!
713デフォルトの名無しさん (ワッチョイ e38f-wiNW)
垢版 |
2026/07/30(木) 21:20:21.35ID:Jc6qJmGq0
>>710
神社に行って参拝してはならない
714デフォルトの名無しさん (ワッチョイ 126a-x+NG)
垢版 |
2026/07/31(金) 16:28:40.30ID:MilBLIr/0
>>711
今もあるようだが
https://www.cygwin.com/
2026/08/01(土) 02:40:44.14ID:fT3Cj9Cj0
WSLは結局Linux仮想環境だからそこでビルドしたってそのままじゃWindows向けには動かせない
Linux側でクロスコンパイルするにしても、Windows側でコンパイルするにしても、MinGW-w64 UCRT64を使うのが王道
2026/08/01(土) 20:10:39.84ID:WJ2D9tE50
OS固有の機能を使ってないのであれば
Windowsでも動くんではないですか?
2026/08/01(土) 20:24:51.00ID:PAijeuDp0
そもそも実行ファイルフォーマット (をメモリに展開するローダの仕様) がOS固有なので……
Linux だと ELF で Windows は PE
2026/08/01(土) 21:29:20.93ID:WJ2D9tE50
それはそうですね
言葉が不足しました。
2026/08/02(日) 08:29:31.94ID:VpP1GNu10
DOS時代はハード固有の機能を使わければ(キーボードBIOS使わず標準入力関連コマンドを使う等)
同じ系列のCPU/OSの他ハード(PC-98/TOWNS/DOS/V)でも動くというのはあった。
720デフォルトの名無しさん (ワッチョイ ff6a-IV3f)
垢版 |
2026/08/02(日) 10:11:48.55ID:4pM5NiIU0
OSというのは元々そういう互換性を狙って作られたものだった
2026/08/02(日) 12:24:33.49ID:wd/chQhv0
UNIX 以降の OS はハードウェアの違いを吸収する仕組みがある程度はあるけど最初からそれを目的のひとつとしていたかと言うとちょっと疑問。
数十年前に雑誌 (おそらく UNIX USER だったと思う) の連載記事で読んだことがあるようなないような曖昧な記憶だから不確かだけど。
2026/08/02(日) 19:57:26.73ID:r6PbvvWa0
汎用機の世界でも、富士通がIBM互換を狙った理由はそれでしょう
723デフォルトの名無しさん (ワッチョイ cfa9-ZC/C)
垢版 |
2026/08/08(土) 07:51:37.48ID:tgeCoHLT0
5ch でズレないヘミ猫ない?
或いは誰か作ってくれない?

これしか見つからなかった。
http://kako.5ch.io/test/read.cgi/tech/1101615970/
  ヘ_ヘ
 ミ・・ ミ
 ( °)〜
2026/08/10(月) 10:47:56.84ID:YQMvMFmB0
奥さん優秀な方だよな
725デフォルトの名無しさん (ワッチョイ ca6a-a205)
垢版 |
2026/08/11(火) 04:41:54.97ID:HGIrT5e70
ヘ_ヘ
ミ・・ ミ
( ° )~

これでどうか?
726デフォルトの名無しさん (ワッチョイ ca6a-a205)
垢版 |
2026/08/11(火) 04:56:00.15ID:HGIrT5e70
 ヘ_ヘ
ミ・・ ミ
 ( ° )~

難しいな
727デフォルトの名無しさん (ワッチョイ ca6a-a205)
垢版 |
2026/08/11(火) 04:58:05.08ID:HGIrT5e70
 ヘ_ヘ
ミ・ ・ミ
 ( ° )~

うーん・・・
2026/08/11(火) 07:11:42.65ID:mx4kfv350
2ちゃんねるの AA はMS Pゴシックを前提にする習慣なので微調整が必要であればメモ帳でMS Pゴシックを設定して微調整すべし。
各ブラウジング環境のフォント次第なのでズレない方法というのは無い。
729デフォルトの名無しさん (アウアウウー Sa2f-a205)
垢版 |
2026/08/11(火) 12:49:50.22ID:ptuB6G5ta
質問者は
gccを使いたいのか
cygwinを使いたいのか
windowsを使いたいのか
はっきりさせるべき
2026/08/11(火) 17:03:31.82ID:8gMqyrhP0
OpenLDAPみたいなプログラムを作ってみたくて、はじめてのCを買ってきました。
何日位で作れそうですか?
731デフォルトの名無しさん (ワッチョイ dffb-DzFd)
垢版 |
2026/08/11(火) 17:38:38.39ID:+J6O4mZm0
半日
2026/08/11(火) 18:41:29.94ID:dw8FDprd0
作るのは簡単
動くかどうかは不明
2026/08/12(水) 08:45:34.52ID:VHBhB4BD0
>>730
本の内容から作るとすれば、標準入出力と構造体、制御構文、ファイル入出力を学んだら原型動作が作成可能かと。
何日で作れるかは読本ペースと理解度、追加機能とそのために必要な追加学習次第
734デフォルトの名無しさん (ワッチョイ 0fec-QY+j)
垢版 |
2026/08/12(水) 11:07:31.96ID:9FHMbNhA0
まずはポインタの習得が肝心だよ
2026/08/14(金) 19:08:29.19ID:psnt77tf0
ポインタの習得できたら、
次はなんですかね?
2026/08/14(金) 20:24:35.19ID:aAzkQlPJ0
たとえばポインタについて細部を学ぼうとしたらメモリ管理とも型システムとも強い関連性があって、それらを無視して理解することはできない。
つまりひとつを完全に習得してから次の機能を学ぶなんていうきちんとした順序はつけられない。
そこをどうにかして上手いことわかりやするために入門書は腐心してるのでとりあえず一旦は入門書を最後まで読んで理解することに努めたらいいと思う。
こんなところで聞くより入門書の著者や編者の努力を信じるべき。
どうしても理解できない箇所をピンポイントで尋ねるなら掲示板も良いだろうけど本の体系的な説明のほうが全体としては良い説明になってるはずだよ。
2026/08/14(金) 23:16:13.50ID:A9d+qFaE0
おすすめ「苦しんで覚えるC言語」
サイトもあるけど、やっぱり本じゃないとね
古い本だから今更新品の本を買う必要なし、アマゾンで中古本をポチればいいよ
2026/08/14(金) 23:45:48.71ID:psnt77tf0
電子書籍で良いのでは
2026/08/15(土) 01:05:25.19ID:AdrCUUhP0
> おすすめ「苦しんで覚えるC言語」

サイト見たけど間違い結構あるなw
740デフォルトの名無しさん (ワッチョイ 3316-Rd74)
垢版 |
2026/08/15(土) 01:39:47.95ID:3eHbAMFe0
Geminiのガイド付き学習でインタラクティブに学習できるよ
そういう時代
2026/08/15(土) 07:47:55.99ID:Wxt72Cnl0
質問が見当はずれだと回答もよくわからん。
Gemini に手伝ってもらうにしてもベースとしてはちょっとした入門書はあったほうが良い。
2026/08/15(土) 09:06:14.48ID:GGQ2s86t0
ちょっとした入門の、
範囲が知りたいんだが
2026/08/15(土) 10:55:07.00ID:AdrCUUhP0
> ちょっとした入門の、範囲

未定義動作を正確な知識により踏まなくなる程度
2026/08/15(土) 10:59:52.53ID:mirUALuA0
Z知能にCは無理
Rust知能にもCは無理
2026/08/15(土) 11:04:02.85ID:GGQ2s86t0
殆どの人はそれで十分だと思うよな
2026/08/15(土) 11:24:16.96ID:Wxt72Cnl0
私が入門したのは何十年も前の話だから……その頃の感覚で言われても困るだろう。
C に入門するより先に機械語をいじっていたタイプの学習ルートを経ていて、私の同世代は少なからずそんなものだが明らかに現代的な学習ルートではない。

そんで分かってしまうといまさら入門書を見て良し悪しの評価なんかできない。
説明に間違いがあれば指摘はできるけど分かり易さは別の話だし、方便として多少の不正確さを許容したほうが良い場合もあるし。
おそらく入門書は教育者が実際に教育に使いながらフィードバックを重ねたものが良いものになるんじゃないかと思う。
2026/08/15(土) 17:28:19.72ID:GGQ2s86t0
す自動変数
2026/08/15(土) 17:29:53.06ID:GGQ2s86t0
すまん
自動変数を一杯宣言し過ぎてスタック破壊した経験ってないですか?
2026/08/15(土) 18:09:54.17ID:mirUALuA0
>>746
> 教育者が実際に教育に使いながらフィードバックを重ねたもの
=大学の講義資料だろ
今ならStanfordやMITや東大からそこらの駅弁まで手に入る
2026/08/15(土) 18:13:40.05ID:mirUALuA0
>>748
コンパイル時に指定すればスタックサイズを増量できる
2026/08/15(土) 18:33:03.44ID:Wxt72Cnl0
>>750
Windows だとスタックの上限は実行ファイル内に格納されるパラメータだからコンパイル時の指定で変えられるけど現代的 OS の一般論としては OS の側の設定値として持っているのが普通だと思う。
少なくとも Linux や BSD だとそうなってる。
2026/08/15(土) 18:51:17.00ID:vxBg0KLF0
普通はヒープ使うからなぁ
2026/08/15(土) 18:57:49.45ID:PdMcshzj0
unix用のgccだとlinkerのオプションだったと思う。
ただ聞きたかったことはそう言うこたではなかったです。
754デフォルトの名無しさん (ワッチョイ b34e-wPbG)
垢版 |
2026/08/15(土) 19:06:09.15ID:mHgsoPfB0
ふん fixup overflow の呪いを受ければ良いんだ。 :-p
※開発中にこれを喰らうとデスマ確定のLINKエラーw
2026/08/15(土) 20:03:09.70ID:DGyWizKz0
>>748
スタック領域の理解がない頃に謎の不具合として闘っていた可能性はある
大きな配列をmainに定義するとなぜか動かないとか、しかしグローバル変数にするとなぜか動くとか
2026/08/15(土) 20:40:50.03ID:PdMcshzj0
>>755
さう、それです。
元々FORTRANで書かれていたプログラムを移植してました。
各ロジックの移植までは良かったんですが、
配列宣言が関数内に複数個、それぞれ要素数が数万個ありました。
最終的にヒープに取ることにしましたが、あまり納得はできなかったです。
2026/08/15(土) 23:19:14.61ID:mirUALuA0
>>756
それは移植戦略を間違ってる。
FORTRANなんてグローバル変数しかなく、
つまりローカル変数が無くて再帰も出来ない糞言語で、だからこそ廃れたわけだが、
C流のきちんとしたコードに直してやる必要が最初から無い。
まんま全部グローバルでも変数名が被らないのは元ソースが保証してるし、
Cのグローバルはファイル内スコープであり、externしなければ他ファイルからも見えないので、
ファイルを分けておけば他とも被らない。

ただまあ、それでも、スタックサイズを調整するのも一つの正しい方策だと思うけど。
実行時のフットプリントは同じだし。
ちな、FORTRANの移植時には多次元配列の格納順が違うからそこだけ注意な。
https://iifx.dev/ja/articles/457242272/%E9%85%8D%E5%88%97%E3%81%AE%E6%A0%BC%E7%B4%8D%E9%A0%86%E5%BA%8F%E3%81%8C%E6%8B%9B%E3%81%8F%E6%82%B2%E5%8A%87-c%E8%A8%80%E8%AA%9E%E3%81%A8fortran%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E3%82%AD%E3%83%A3%E3%83%83%E3%82%B7%E3%83%A5%E5%8A%B9%E7%8E%87%E3%81%A8%E6%9C%80%E9%81%A9%E5%8C%96%E3%81%AE%E6%88%A6%E3%81%84

>>753
> ただ聞きたかったことはそう言うこたではなかったです。
死ねよクソZ。
お前らは全て他責なのが駄目だ。
「FORTRANからの移植時に」とお前が最初から言えば回避出来た話だろ。
2026/08/15(土) 23:22:33.88ID:mirUALuA0
>>751
> 現代的 OS の一般論としては OS の側の設定値として持っているのが普通
Linuxではulimit -s で変えられるらしいが、どっちが「普通」かには異議ありだな。

そもそもそのプログラムがスタックを大量に消費することはプログラマしか知らない。
だからコンパイル時にマークしておく必要があり、その上で、
システム側で許容された値以下なら許可する、という方式が正しいだろ。
Linux方式だと、エラーになったらその都度対応してくれ、ただどれくらい必要なのかは知らん、というマヌケな事を強制する仕様ではないか。
exeに明記されてれば、少なくとも、静的に大量確保される場合は完全に対応できる。今回もそうだろ。
Windowsの仕様のほうが「普通」で「正しい」と俺は思うね。(よりマシな仕様)
2026/08/15(土) 23:43:09.22ID:PdMcshzj0
>>757
今のところ、科学技術関連のソフトウェア資産はFORTRANの方が多いし、
研究者が書くプログラムも殆どがFORTRANだよ
2026/08/15(土) 23:59:34.06ID:mirUALuA0
>>759
お前が頭おかしいのは分かった
2026/08/18(火) 11:51:13.26ID:9hHWpynz0
>>757
>Cのグローバルはファイル内スコープであり、externしなければ他ファイルからも見えないので、
ファイルを分けておけば他とも被らない。
ここで判断すればオケ
2026/08/18(火) 13:47:12.21ID:DGdHd5vj0
>>761
引用されるまで気にしなかったけど
ファイル内スコープ(内部結合)にしたければstaticを付けてください
staticを付けない広域変数はextern参照されなくても外部結合なので、複数のファイルで同名の定義を行うと多重定義となってリンクができない
2026/08/18(火) 14:11:12.85ID:6VzK0iZS0
> Cのグローバルはファイル内スコープであり、externしなければ他ファイルからも見えないので、

初期化子を書かない仮定義かなんかを誤解してる希ガス
2026/08/19(水) 19:13:07.84ID:n/MO8lqQ0
2000年頃にやったプロジェクトでC/C++対応ヘッダに
Cコンパイラでは
int c;

C++コンパイラでは
extern int c;

となるように書かれてたな。
2026/08/19(水) 19:27:44.40ID:qcCLYMYl0
>>764
Cの場合、そのヘッダーを複数Cソースでインクルードするのはまずくないですか?
レスを投稿する


ニューススポーツなんでも実況