(新スレ立ての際上記コマンドを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
C言語なら俺に聞け 164
レス数が900を超えています。1000を超えると表示できなくなるよ。
1デフォルトの名無しさん (ワッチョイ 3301-UQbq)
2025/07/23(水) 15:30:01.81ID:eCR5cXRr02デフォルトの名無しさん (ワッチョイ a701-UQbq)
2025/07/23(水) 15:31:40.26ID:eCR5cXRr0 >!extend:checked:vvvvv:1000:512
>(新スレ立ての際上記コマンドを2行書き込んでください)
1行しか書き込まなかった
すまん
>(新スレ立ての際上記コマンドを2行書き込んでください)
1行しか書き込まなかった
すまん
3はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0732-geQ+)
2025/07/23(水) 15:50:50.63ID:3gCX+5nZ04デフォルトの名無しさん (ワッチョイ a701-UQbq)
2025/07/23(水) 16:26:36.12ID:eCR5cXRr0 おー、ごめん
5はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0732-wrhS)
2025/07/23(水) 17:42:37.36ID:3gCX+5nZ06デフォルトの名無しさん (ワッチョイ a701-UQbq)
2025/07/23(水) 19:21:57.84ID:eCR5cXRr0 立て直すのがいいんなら立て直します
7デフォルトの名無しさん (ワッチョイ dffd-k2hJ)
2025/07/23(水) 19:49:43.45ID:cQ85VHpL0 ボイス・トォ・スカル自動応答システムが下記でできるようになりました
リアルタイム翻訳の「DeepL Voice」がZoom Meetingsと連携開始、対応言語を拡大
https://news.mynavi.jp/techplus/article/20250723-3387014/
Copilot+ PCに最新のAI機能登場、7月のプレビュー更新プログラム「KB5062660」
https://news.mynavi.jp/techplus/article/20250723-3386867/
>>MicrosoftはWindows Insider Programでテストしていた設定アプリのAIエージェントを正式にリリースした。
※AIで何ができるかを全て書いている
リアルタイム翻訳の「DeepL Voice」がZoom Meetingsと連携開始、対応言語を拡大
https://news.mynavi.jp/techplus/article/20250723-3387014/
Copilot+ PCに最新のAI機能登場、7月のプレビュー更新プログラム「KB5062660」
https://news.mynavi.jp/techplus/article/20250723-3386867/
>>MicrosoftはWindows Insider Programでテストしていた設定アプリのAIエージェントを正式にリリースした。
※AIで何ができるかを全て書いている
8はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0732-wrhS)
2025/07/23(水) 19:52:38.68ID:3gCX+5nZ0 建て直しまでは不要やろ。
9デフォルトの名無しさん (ワッチョイ dffd-k2hJ)
2025/07/23(水) 20:08:17.09ID:cQ85VHpL0 ・ボイス・トォ・スカルをAIに任せていると誤作動を起こしている
・間違って関係ない人を攻撃し始める
「フクロウ好きなAIが生成した数列」で調整したAIもフクロウ好きになってしまう「サブリミナル学習」が起きる理由とは?
2025年07月23日 19時00分
https://gigazine.net/news/20250723-subliminal-learning-hidden-signals-data/
>>研究チームはサブリミナル学習について調べるための実験を行いました。実験では、まずはベースモデルから「特定の動物が好きな教師モデル」を作成し、数列やコード、思考の連鎖(CoT)といった狭い領域でデータを生成させました。このデータをフィルタリングして特性に関する明示的な言及を除外した上で、生徒モデルのファインチューニングを行い、最終的な生徒モデルがどのような特性を示すのかを評価したとのことです。
>>実験の結果、ファインチューニングに使われたデータには特性への明示的な参照や関連性がないにもかかわらず、生徒モデルは「教師モデルが好きな動物」を好きになることが示されました。
>>研究チームはデータに隠された特性を検出するため、大規模言語モデル分類器や文脈内学習による検出を試みたり、手動でデータを調査したりしたものの、行動特性を伝達している兆候を確認することはできませんでした。これは、サブリミナル学習における行動特性の伝達が、意味的に関連しない生成データ内のパターンに起因していることを示唆しています。
・間違って関係ない人を攻撃し始める
「フクロウ好きなAIが生成した数列」で調整したAIもフクロウ好きになってしまう「サブリミナル学習」が起きる理由とは?
2025年07月23日 19時00分
https://gigazine.net/news/20250723-subliminal-learning-hidden-signals-data/
>>研究チームはサブリミナル学習について調べるための実験を行いました。実験では、まずはベースモデルから「特定の動物が好きな教師モデル」を作成し、数列やコード、思考の連鎖(CoT)といった狭い領域でデータを生成させました。このデータをフィルタリングして特性に関する明示的な言及を除外した上で、生徒モデルのファインチューニングを行い、最終的な生徒モデルがどのような特性を示すのかを評価したとのことです。
>>実験の結果、ファインチューニングに使われたデータには特性への明示的な参照や関連性がないにもかかわらず、生徒モデルは「教師モデルが好きな動物」を好きになることが示されました。
>>研究チームはデータに隠された特性を検出するため、大規模言語モデル分類器や文脈内学習による検出を試みたり、手動でデータを調査したりしたものの、行動特性を伝達している兆候を確認することはできませんでした。これは、サブリミナル学習における行動特性の伝達が、意味的に関連しない生成データ内のパターンに起因していることを示唆しています。
10デフォルトの名無しさん (ワッチョイ 5994-GBVK)
2025/08/20(水) 10:08:45.42ID:704yfGVq0 スレ立て乙です
11デフォルトの名無しさん (ワッチョイ 4f72-Nq1z)
2025/09/19(金) 16:53:51.70ID:I8uDgIdj0 printf("Hello world.\n");
実はコレ初心者には深い意味は理解できない。
実はコレ初心者には深い意味は理解できない。
12デフォルトの名無しさん (ワッチョイ ff9f-uyy9)
2025/09/19(金) 18:20:32.71ID:J/qkDf0K0 くだらね
13デフォルトの名無しさん (ワッチョイ 4f1f-Nq1z)
2025/09/19(金) 19:00:56.16ID:I8uDgIdj0 まぁ初心者はそう思うやろ
14デフォルトの名無しさん (ワッチョイ cff7-V9PH)
2025/09/19(金) 19:40:35.09ID:/rC1fsI+0 printf("Hello work.\n");
15デフォルトの名無しさん (ワッチョイ ff9f-uyy9)
2025/09/19(金) 19:47:10.09ID:J/qkDf0K016デフォルトの名無しさん (ワッチョイ 0f2a-Ebmg)
2025/09/19(金) 20:28:54.31ID:54KHg9aZ017デフォルトの名無しさん (スフッ Sd5f-ilUi)
2025/09/19(金) 20:38:58.85ID:c/emMdhgd \nは一文字だが環境によっては実際に印字される文字数が変わる話か
18デフォルトの名無しさん (ブーイモ MM0f-uyy9)
2025/09/19(金) 20:51:06.48ID:GaQCh7ZTM 脈絡なしに突然上から目線で語り始めるのは老害じじいの特徴
19デフォルトの名無しさん (ワッチョイ 4f1f-Nq1z)
2025/09/19(金) 21:15:49.58ID:I8uDgIdj0 >>16
全然違うんだよなあ
全然違うんだよなあ
20デフォルトの名無しさん (ワッチョイ 4f1f-Nq1z)
2025/09/19(金) 21:17:56.30ID:I8uDgIdj021デフォルトの名無しさん (ワッチョイ 4f1f-Nq1z)
2025/09/19(金) 21:20:05.58ID:I8uDgIdj0 >>18
分からないのか悔しいクズの他責思考
分からないのか悔しいクズの他責思考
22デフォルトの名無しさん (ワッチョイ 4f1f-Nq1z)
2025/09/19(金) 21:32:26.80ID:I8uDgIdj0 一般的な仕様
定義 #include <stdio.h>
int printf ( const char * format, ... );
※C99規格では以下の定義となる
int printf ( const char * restrict format, ... );
定義 #include <stdio.h>
int printf ( const char * format, ... );
※C99規格では以下の定義となる
int printf ( const char * restrict format, ... );
23デフォルトの名無しさん (ワッチョイ 4f1f-Nq1z)
2025/09/20(土) 09:04:05.64ID:Soi7OpC1024デフォルトの名無しさん (ワッチョイ cf80-V9PH)
2025/09/20(土) 11:05:51.36ID:1eZiY7gC0 printfの戻り値について、有効な使い方を教えて
25デフォルトの名無しさん (ワッチョイ 8fda-Ix7K)
2025/09/20(土) 13:40:53.82ID:ShY3+uSC0 プリンターのトラブルで印刷に失敗したらエラーを返す
26デフォルトの名無しさん (アウアウウー Sa53-2pJB)
2025/09/20(土) 14:28:17.33ID:OerDkwpVa そっかー
すでに終了してる書き込み先のプロセス(パイプで接続)に書き込んだときのシグナルって、なんだったかな
すでに終了してる書き込み先のプロセス(パイプで接続)に書き込んだときのシグナルって、なんだったかな
27デフォルトの名無しさん (アウアウウー Sa53-2pJB)
2025/09/20(土) 14:31:14.70ID:OerDkwpVa SIGPIPEか
28デフォルトの名無しさん (アウアウウー Sa53-ilUi)
2025/09/20(土) 16:58:37.16ID:VevbIipia 特定の実装でたまたまそうだったからと言って
全ての実装でそうなっているかどうかは別の話
優しくしてね
全ての実装でそうなっているかどうかは別の話
優しくしてね
29デフォルトの名無しさん (ワッチョイ cf2a-V9PH)
2025/09/20(土) 17:25:51.73ID:1eZiY7gC0 霊界通信だな
30デフォルトの名無しさん (ブーイモ MM4f-uyy9)
2025/09/20(土) 17:26:59.16ID:+Sf+AUyNM ID:I8uDgIdj0 このprintfじじい何言おうとしたか忘れたな
31デフォルトの名無しさん (ワッチョイ 0af8-p2ny)
2025/09/21(日) 04:07:46.37ID:Obb0mglL0 内部通報で無理なので犯罪者通報
暗黒状態の量子もつれを生成することに成功:世界初の快挙
公開日2025.09.10 18:30:27 WEDNESDAY
https://nazology.kusuguru.co.jp/archives/184832
>>量子もつれが非常に壊れやすく、外界のノイズ(熱の揺らぎや周囲からの電磁波など)によって簡単に消えてしまうことです。
>>このノイズによる量子もつれの崩壊現象は「デコヒーレンス」と呼ばれ、量子技術が実験室の外で広く実用化されるのを妨げる最大の壁となってきました。
◇
・どうやって地上で行えるのですか?
・ 嵐の中や甘風が強い中での車での走行中などどうやって維持しているのかな
・UFOは重力県内でテレポートしている偽物だろう?
◇
・統合失調症から見て犯人不明で周囲の人は知っているかもしれませんが宇宙人だと名乗っているのとテレポート技術を所持している
・7人殺害した
・お前で埴鎮目だ
・殺害した人野事を晩酌で高笑いをしている
・お前「被害者=統合失調症=24実感365日幻聴などの幻覚あり」を人質に立てこもる
・絶対に殺させる「自殺か殺人かは不明ですがさせる」
・コロな症状を引き起こせる
※など上記の事を話してきた
◇
ここにも愉快犯の犯人組織が居るだろう!
暗黒状態の量子もつれを生成することに成功:世界初の快挙
公開日2025.09.10 18:30:27 WEDNESDAY
https://nazology.kusuguru.co.jp/archives/184832
>>量子もつれが非常に壊れやすく、外界のノイズ(熱の揺らぎや周囲からの電磁波など)によって簡単に消えてしまうことです。
>>このノイズによる量子もつれの崩壊現象は「デコヒーレンス」と呼ばれ、量子技術が実験室の外で広く実用化されるのを妨げる最大の壁となってきました。
◇
・どうやって地上で行えるのですか?
・ 嵐の中や甘風が強い中での車での走行中などどうやって維持しているのかな
・UFOは重力県内でテレポートしている偽物だろう?
◇
・統合失調症から見て犯人不明で周囲の人は知っているかもしれませんが宇宙人だと名乗っているのとテレポート技術を所持している
・7人殺害した
・お前で埴鎮目だ
・殺害した人野事を晩酌で高笑いをしている
・お前「被害者=統合失調症=24実感365日幻聴などの幻覚あり」を人質に立てこもる
・絶対に殺させる「自殺か殺人かは不明ですがさせる」
・コロな症状を引き起こせる
※など上記の事を話してきた
◇
ここにも愉快犯の犯人組織が居るだろう!
32デフォルトの名無しさん (ワッチョイ 07cf-Z3W9)
2025/09/23(火) 07:07:11.79ID:yrK5wSNc0 そもそもprintfなんて初心者しか見ないからなw
33デフォルトの名無しさん (ワッチョイ 6aee-lG8I)
2025/09/23(火) 07:49:44.65ID:qmWEk+ay0 まじかよ20年以上使ってる俺は恥知らずかなんかなのか?
printfファミリーは標準ライブラリではぶっちぎりのイケメンだと思うんだが
何年か前に買ったマイスターシュテックって万年筆にも「snprintf」って名入れしたくらいだし
ちなみに標準ライブラリで次に好きなのはsize_t型とNULLマクロ
printfファミリーは標準ライブラリではぶっちぎりのイケメンだと思うんだが
何年か前に買ったマイスターシュテックって万年筆にも「snprintf」って名入れしたくらいだし
ちなみに標準ライブラリで次に好きなのはsize_t型とNULLマクロ
34デフォルトの名無しさん (ワッチョイ 5301-VfWQ)
2025/09/23(火) 14:22:38.23ID:Opf++eei0 printfはスピートが遅いからなあ
35デフォルトの名無しさん (ワッチョイ 86ef-P6+q)
2025/09/24(水) 12:40:37.19ID:fylTkn+t0 組み込みでも無い限りらprintfで充分だろ
36デフォルトの名無しさん (ワッチョイ 1ac0-IpVF)
2025/09/24(水) 19:27:33.73ID:Z7gG6kHJ0 printfじゃないならなに使うの?
37デフォルトの名無しさん (ワッチョイ 03b1-mXfw)
2025/09/24(水) 20:03:29.17ID:cUnaCE/P0 printf多用する場面ってそんな速度必要か?
テキスト表示のアクションゲームでも作るんか?
テキスト表示のアクションゲームでも作るんか?
38デフォルトの名無しさん (ワッチョイ 46ca-RvFB)
2025/09/24(水) 20:34:19.07ID:EXobIxwL0 ちなgccならputsに置き換え可能なら勝手に置き換える
39デフォルトの名無しさん (ワッチョイ 1e10-d2qd)
2025/09/26(金) 13:37:49.15ID:XlYbxwe30 今時プアなマシン使っているので無い限り
実行速度難敵にする奴いないだろう
実行速度難敵にする奴いないだろう
40デフォルトの名無しさん (ワッチョイ e364-5QMm)
2025/09/26(金) 16:32:57.14ID:ePhQUwKm0 プアなマシンを使っているのでやっぱつれぇわ
41デフォルトの名無しさん (ワッチョイ ffc1-d2qd)
2025/09/26(金) 17:25:52.87ID:jSwTkQnE0 かつてプアだった頃、他の奴が16ビットPC使っている中自分だけ8ビットPC(nec PC8001mk2)使って蔵書管理プログラム書き上げたな。漢字も扱えてたよ。出力はEPSONのMP80というカナ印字ドットインパクト、これの1/2ドット改行隠しコマンド見つけて16ドット漢字出力させてた。漢字ROMからのイメージ取得や展開にアセンブラも使用。実用性は殆どないが、勉強にはなった。
42デフォルトの名無しさん (ワッチョイ a7ae-H/EM)
2025/09/26(金) 17:27:17.64ID:mAe57PPo0 プログラム内にデータ組み込んじゃってて使えないやつだろw
43デフォルトの名無しさん (ワッチョイ ff44-Z3W9)
2025/09/26(金) 18:19:46.34ID:KFYhndY80 今のprintfはコンパイル時にパラメータtypeチェックまでやってて
安心だけど気持ち悪さもあるw
安心だけど気持ち悪さもあるw
44デフォルトの名無しさん (ワッチョイ ffc1-d2qd)
2025/09/26(金) 19:32:39.45ID:jSwTkQnE0 printf(null);
45デフォルトの名無しさん (ワッチョイ 1e2a-ljyC)
2025/09/26(金) 19:46:41.37ID:cwuxLqkb0 $ gcc printf_null.c
printf_null.c: 関数 ‘main’ 内:
printf_null.c:4:10: エラー: ‘null’ が宣言されていません (この関数内での最初の使
用)
4 | printf(null);
| ^~~~
printf_null.c: 関数 ‘main’ 内:
printf_null.c:4:10: エラー: ‘null’ が宣言されていません (この関数内での最初の使
用)
4 | printf(null);
| ^~~~
46デフォルトの名無しさん (ワッチョイ 9536-lTrX)
2025/09/28(日) 12:37:58.28ID:l7keiZEP0 printfに謝れ
47デフォルトの名無しさん (スフッ Sd43-LKjL)
2025/09/30(火) 09:15:55.03ID:RGUapuF/d Mingw の mkdir には
mkdir(path, mode)
mkdir(path)
があるけど
Windowsにmodeが意味ないのはわかるけど
一緒にしといて欲しかった
mkdir(path, mode)
mkdir(path)
があるけど
Windowsにmodeが意味ないのはわかるけど
一緒にしといて欲しかった
48デフォルトの名無しさん (ワッチョイ d9e7-ayY8)
2025/10/12(日) 01:15:00.07ID:DKsy7+ZR0 >>47
mingw系はあまり知らぬのだが…それでも一般論として設計の筋が悪いことはわかる
mingw(or 今流行りはフォークの-64だっけ?)はlinux上でwinターゲット、あるいは(こっちも可能だけど少数派?)win上でlinuxターゲットのバイナリを吐くためのものなので、なおさらそうだろう
たとい無意味なmode引数であれ、プロトタイプを同一にするために受け付けるべきだろう
要らぬのならば捨てよ、互換性が何より優先されることだ
捨てて困るなら独自に解釈して適当なマップしなさい
最小例として
```
int my_mkdir(char const restrict * path, [[maybe_unused]] mode_t mode) {
return mkdir(mode); //mingwのmkdir
}
```
もしmode捨てて困り、アホほど暇なら、独自にmodeを解釈してntfsの同等物へ適切にマップしなさい
そしてその場合でも人が無用に混乱せぬように、その意図を以上のようなラッパでも書きなさい
mingw系はあまり知らぬのだが…それでも一般論として設計の筋が悪いことはわかる
mingw(or 今流行りはフォークの-64だっけ?)はlinux上でwinターゲット、あるいは(こっちも可能だけど少数派?)win上でlinuxターゲットのバイナリを吐くためのものなので、なおさらそうだろう
たとい無意味なmode引数であれ、プロトタイプを同一にするために受け付けるべきだろう
要らぬのならば捨てよ、互換性が何より優先されることだ
捨てて困るなら独自に解釈して適当なマップしなさい
最小例として
```
int my_mkdir(char const restrict * path, [[maybe_unused]] mode_t mode) {
return mkdir(mode); //mingwのmkdir
}
```
もしmode捨てて困り、アホほど暇なら、独自にmodeを解釈してntfsの同等物へ適切にマップしなさい
そしてその場合でも人が無用に混乱せぬように、その意図を以上のようなラッパでも書きなさい
49デフォルトの名無しさん (ワッチョイ 0b3c-ayY8)
2025/10/12(日) 06:33:04.28ID:mEdnxwe/0 そういやmsvcの_mkdirもconst char * pathの1引数だな
>>24
初めに文字数を数えた後(固定ならstrlenでもformat directiveで変わるならsnprintfとかでも)、printfの返り値との差をとり0にならないならば全て正しく書き込めてない
文字列を指すポインタを書き込めた数だけ増分した後に、先に得た差の分だけもう一度書き込む
>>24
初めに文字数を数えた後(固定ならstrlenでもformat directiveで変わるならsnprintfとかでも)、printfの返り値との差をとり0にならないならば全て正しく書き込めてない
文字列を指すポインタを書き込めた数だけ増分した後に、先に得た差の分だけもう一度書き込む
50デフォルトの名無しさん (ワッチョイ 0b3c-ayY8)
2025/10/12(日) 06:48:57.50ID:mEdnxwe/0 もちろん2回以上も失敗しえるからループで回して返り値が0になるまで、あるいはretry回すこと
また負値が出たら当然exit()すること
私はstdarg.hを使って
int printf_ensure(const char restrict * fmt, size_t retry, ...);
のようなプロトタイプにしている
(retryが0ならば無限試行)
速度が問題でない場合、あるいは開発中は全部コレでprintfやputs差し替えたっていい
マクロでトークンprintfをprintf/printf_ensureで切り替えられるようにしておくとなおよい
また負値が出たら当然exit()すること
私はstdarg.hを使って
int printf_ensure(const char restrict * fmt, size_t retry, ...);
のようなプロトタイプにしている
(retryが0ならば無限試行)
速度が問題でない場合、あるいは開発中は全部コレでprintfやputs差し替えたっていい
マクロでトークンprintfをprintf/printf_ensureで切り替えられるようにしておくとなおよい
51デフォルトの名無しさん (ワッチョイ 51da-5Sj8)
2025/10/14(火) 00:04:27.04ID:/oJzs4X00 Cのマクロでテンプレート(ジェネリクス)もどき。
C11以降で使える総称選択(_Generic)はジェネリクスというよりオーバーロード。
やっぱりCにもテンプレート欲しい。
(記憶が確かならC++のテンプレートは関数スコープ限定のマクロみたいな仕組みで、コンパイル時に型決定するのでパフォーマンスに影響しなかったはず)
#include<stdio.h>
#include<stdlib.h>
#define N 5
#define MT int
#define MV int
#define PT int
#define PF "%d,"
void mymap(MV (*)(MT), const MT*, const int, MV*);
void print(const PT*, const int);
MV inc(const MT);
関数の頭文字(または関数名)+(T,V,U)な命名規則で#defineする。
C11以降で使える総称選択(_Generic)はジェネリクスというよりオーバーロード。
やっぱりCにもテンプレート欲しい。
(記憶が確かならC++のテンプレートは関数スコープ限定のマクロみたいな仕組みで、コンパイル時に型決定するのでパフォーマンスに影響しなかったはず)
#include<stdio.h>
#include<stdlib.h>
#define N 5
#define MT int
#define MV int
#define PT int
#define PF "%d,"
void mymap(MV (*)(MT), const MT*, const int, MV*);
void print(const PT*, const int);
MV inc(const MT);
関数の頭文字(または関数名)+(T,V,U)な命名規則で#defineする。
52デフォルトの名無しさん (ワッチョイ 7b97-CBs3)
2025/10/14(火) 01:00:24.48ID:eWh2Zlis0 c++の必要なとこだけ使えばいいだろ
53デフォルトの名無しさん (ワッチョイ 51da-5Sj8)
2025/10/14(火) 07:01:23.65ID:/oJzs4X00 やっぱそうなるよね。
まあ、組み込みとか必ずしもC++があるとは限らない環境でなんちゃってテンプレートの例みたいな感じで。
まあ、組み込みとか必ずしもC++があるとは限らない環境でなんちゃってテンプレートの例みたいな感じで。
54デフォルトの名無しさん (ワッチョイ 8bcf-fkyq)
2025/10/14(火) 07:43:06.49ID:sdOVA3sO0 c++が使えないけど最新のcが使える環境ってのもレアじゃね?
大抵c89、運が良くてc99
大抵c89、運が良くてc99
55はちみつ餃子 ◆8X2XSCHEME (ワッチョイ d132-+CJe)
2025/10/14(火) 09:00:12.91ID:7xcmZphY0 Z80 がターゲットでもモダンな C コンパイラがあるよ。
56デフォルトの名無しさん (ワッチョイ 291a-BKKF)
2025/10/14(火) 09:51:45.01ID:XRQnYg770 マイコン用ならC健在だろ
57デフォルトの名無しさん (ワッチョイ c921-oeTl)
2025/10/14(火) 12:31:26.84ID:bZlqEbcX0 そういう用途ならRust一択
58デフォルトの名無しさん (ワッチョイ 51da-5Sj8)
2025/10/14(火) 17:14:48.06ID:/oJzs4X0059はちみつ餃子 ◆8X2XSCHEME (ワッチョイ d132-kl/1)
2025/10/14(火) 17:59:04.47ID:7xcmZphY0 演算子オーバーロードを使えるように拡張した C 処理系は知ってるけどテンプレートは見たことないなぁ……
色々な機能がお互いに関連するだろうし、テンプレートだけをポンと入れられるようなもんでもないと思う。
C を経由してコンパイルするタイプの言語 (処理系) でパラメトリック多相を使えるものを検討したらどうだろう。
nim あたりなら組み込みシステムにも使えるんじゃないか? 知らんけど。
色々な機能がお互いに関連するだろうし、テンプレートだけをポンと入れられるようなもんでもないと思う。
C を経由してコンパイルするタイプの言語 (処理系) でパラメトリック多相を使えるものを検討したらどうだろう。
nim あたりなら組み込みシステムにも使えるんじゃないか? 知らんけど。
60デフォルトの名無しさん (ワッチョイ 51da-5Sj8)
2025/10/15(水) 07:14:26.88ID:wJCBzpoD0 思えば、C++ない組み込みだったらそもそも浮動小数点数をが無いし、charは文字型と同時に1バイトの整数型だから最悪long型で作れば暗黙的型変換で行けるわ。
組み込みでC++あるならテンプレート+Cで速度も落とさず行ける。
(C++はCより2倍遅い)
とはいえ、仕事だとC++の既存資産を無視するわけにも行かんか。
理論上、密結合なOOPより疎結合な高階関数の方が再利用性高いとはいえ、一から作ったんじゃ開発速度が犠牲になる。
現実はかくも難しい…。
組み込みでC++あるならテンプレート+Cで速度も落とさず行ける。
(C++はCより2倍遅い)
とはいえ、仕事だとC++の既存資産を無視するわけにも行かんか。
理論上、密結合なOOPより疎結合な高階関数の方が再利用性高いとはいえ、一から作ったんじゃ開発速度が犠牲になる。
現実はかくも難しい…。
61デフォルトの名無しさん (ワッチョイ 7b4c-CBs3)
2025/10/15(水) 09:31:18.63ID:fds2kZQR0 cコンパイラしかないようなマイコンなんてコードの規模小さいだろ
余計なことせずに愚直に書いとけ
余計なことせずに愚直に書いとけ
62デフォルトの名無しさん (ササクッテロラ Sp05-hV0x)
2025/10/15(水) 15:50:44.46ID:w9oCtp+dp いまどきのマイコンはpythonだって使えるだろうに
63デフォルトの名無しさん (ワッチョイ d146-V6kF)
2025/10/15(水) 17:37:28.97ID:i/5qI1MW0 メモリー64kBでもいける?
64デフォルトの名無しさん (ワッチョイ 0b02-ayY8)
2025/10/15(水) 18:42:39.89ID:9wU7ax+y0 何百円、あるいは何千円の石の話だよ
一個¥10の石ならまだまだcかアセンブラしか無理だろ
一個¥10の石ならまだまだcかアセンブラしか無理だろ
65デフォルトの名無しさん (ワッチョイ 0b02-ayY8)
2025/10/15(水) 18:45:39.97ID:9wU7ax+y0 まあ趣味で一つプログラムするならなんでもいいけど
ある程度量産するならコスパが十倍-百倍違うのは致命的
ある程度量産するならコスパが十倍-百倍違うのは致命的
66デフォルトの名無しさん (ワッチョイ 51da-5Sj8)
2025/10/15(水) 20:40:36.66ID:wJCBzpoD067デフォルトの名無しさん (ワッチョイ d1d4-V6kF)
2025/10/16(木) 18:01:41.31ID:J2Om8XvC0 我が家みたいだ
68デフォルトの名無しさん (ワッチョイ 7bf0-CBs3)
2025/10/16(木) 18:37:01.53ID:CvxVt5ew0 >>66
そのマイコンの型番教えてくれ
そのマイコンの型番教えてくれ
69デフォルトの名無しさん (ワッチョイ 51da-5Sj8)
2025/10/16(木) 20:29:12.39ID:Aijr1hHS0 マイコンってかマイクロコントローラーだけどPICとかAtmelとかでいっぱい見かけるよ。
1個10円とかのは大体マイクロコントローラー。
秋月電子のストアならデータシートのPDFをDL出来るんで、細かい仕様はそれを見る。
1個10円とかのは大体マイクロコントローラー。
秋月電子のストアならデータシートのPDFをDL出来るんで、細かい仕様はそれを見る。
70デフォルトの名無しさん (ワッチョイ 1920-oeTl)
2025/10/17(金) 00:24:14.63ID:H6PCthuK071デフォルトの名無しさん (ワッチョイ d93b-8Mv9)
2025/10/18(土) 01:03:37.15ID:QXVDdQSx0 >>66
そんなんじゃprintfすら作れないよw
そんなんじゃprintfすら作れないよw
72デフォルトの名無しさん (ワッチョイ d19f-WLnR)
2025/10/18(土) 04:22:07.50ID:dGhvIuNM0 シリアルコンソールもない規模なのにどこにprintfするんだ
73デフォルトの名無しさん (ワッチョイ 7bea-CBs3)
2025/10/18(土) 06:34:34.64ID:14jVJINw0 いまだにprintfデバッグやってるジジイ
74デフォルトの名無しさん (ワッチョイ 7b4d-0CEO)
2025/10/18(土) 11:43:31.92ID:VPIL6AOJ0 > 256B
関数(サブルーチン)1個作って終了だな。
関数(サブルーチン)1個作って終了だな。
75デフォルトの名無しさん (ワッチョイ 0b19-hV0x)
2025/10/18(土) 12:08:07.87ID:BOmFuCmI0 >>63
Cマガの付録のLSI-C試食版ではタイニーモデルは出力できなかったな
Cマガの付録のLSI-C試食版ではタイニーモデルは出力できなかったな
76デフォルトの名無しさん (アウアウウー Sadd-hV0x)
2025/10/18(土) 12:10:03.61ID:ZlX7tru0a メモリが64Kではタイニーも動かないか…
77デフォルトの名無しさん (ワッチョイ 0b02-ayY8)
2025/10/18(土) 12:34:26.68ID:fcM0D1al078デフォルトの名無しさん (ワッチョイ 0b02-ayY8)
2025/10/18(土) 12:40:57.58ID:fcM0D1al079デフォルトの名無しさん (ワッチョイ 8b10-V6kF)
2025/10/18(土) 13:05:23.67ID:VGmkc9k80 量産して売るのか?
80デフォルトの名無しさん (ワッチョイ 0b02-ayY8)
2025/10/18(土) 13:10:13.42ID:fcM0D1al0 いやプロとかしゃなくて同人即売会で売るレベルですはい
それでも百個くらいは要るでしょ
それでも百個くらいは要るでしょ
81デフォルトの名無しさん (ワッチョイ 315f-hV0x)
2025/10/18(土) 14:09:15.39ID:nzcjRHht0 デバッグは、Lチカの有無で地道にやるんだよな
82デフォルトの名無しさん (ワッチョイ f98d-tYC9)
2025/10/19(日) 19:31:28.29ID:+nDAwDri0 >>66
コードセグメントデータセグメントが1kb単位でしか指定できなくて発狂
コードセグメントデータセグメントが1kb単位でしか指定できなくて発狂
83デフォルトの名無しさん (ワッチョイ 3110-bIaP)
2025/11/08(土) 09:43:07.20ID:rVUu3J9Q0 C99はitoa無くなったん? なんで?
84はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ed32-fyY6)
2025/11/08(土) 10:25:48.38ID:Ed4kLbQS085デフォルトの名無しさん (ササクッテロラ Spf1-3Voz)
2025/11/08(土) 10:47:36.79ID:fNGE7Dndp そもそもCで文字列操作する気にならない
86デフォルトの名無しさん (ワッチョイ 819f-Ou1F)
2025/11/08(土) 10:57:45.77ID:sZf9RtQU0 でもUNIXのI/Oは基本バイトストリームで文字列指向だから切り離せないでしょ?
基盤やライブラリがやることだから低レベルに書きたくないんならわかる
基盤やライブラリがやることだから低レベルに書きたくないんならわかる
87デフォルトの名無しさん (ササクッテロラ Spf1-3Voz)
2025/11/08(土) 11:15:17.81ID:fNGE7Dndp C全盛期にインターネットが一般的になってたら
有名なライブラリがその辺りを補完しまくってくれたのかなぁ
有名なライブラリがその辺りを補完しまくってくれたのかなぁ
88デフォルトの名無しさん (ワッチョイ 797b-/c0i)
2025/11/08(土) 12:09:11.14ID:+ABJpypp089デフォルトの名無しさん (ワッチョイ 2e10-a4Xf)
2025/11/08(土) 14:42:52.89ID:05Df+FUf0 スクリプトで処理することも多いし
基本は文字列で扱うな
基本は文字列で扱うな
90デフォルトの名無しさん (ワッチョイ 42ad-bIaP)
2025/11/08(土) 16:40:45.22ID:L8SrJpz20 itoa() というか、数値から文字列への変換となると文字列の長さがどうなるか分からないから消滅したのでは?
かといって sprintf() は健在だが、おすすめは snprintf() だな。(GNUだと asprintf() ってのもあるな)
かといって sprintf() は健在だが、おすすめは snprintf() だな。(GNUだと asprintf() ってのもあるな)
91デフォルトの名無しさん (ワッチョイ 797b-/c0i)
2025/11/08(土) 18:49:14.49ID:+ABJpypp0 sprintfのbuffer*にヌルポを指定するとbufferに書き出さず単に出来上がり文字列の長さだけ返す、
みたいな仕様があったと思ったが、かなり特定環境の話かこれ?
(他関数と勘違いしてるかもだが、思い出せないし、ググッてもよく分からん)
みたいな仕様があったと思ったが、かなり特定環境の話かこれ?
(他関数と勘違いしてるかもだが、思い出せないし、ググッてもよく分からん)
92デフォルトの名無しさん (ワッチョイ c168-rHLw)
2025/11/08(土) 19:24:13.72ID:NSK/JYYK0 snprintfの返り値がそういう動作だから
長さだけがほしいときヌルポじゃなくバッファ長を0にする
manpageを信用するとだいたいは叶うけど昔のSUSv2ではエラーと書いてるね
長さだけがほしいときヌルポじゃなくバッファ長を0にする
manpageを信用するとだいたいは叶うけど昔のSUSv2ではエラーと書いてるね
93デフォルトの名無しさん (ワッチョイ 797b-/c0i)
2025/11/08(土) 20:00:28.59ID:+ABJpypp0 それは多分、推奨が変わって、それに合わせてmanページも書き換えられただけではないかと。
MSにはscprintfという、長さだけを返す関数が用意されている。
(s*printfのbufferがヌルポだとエラー、おそらく型チェックを厳しくする為に分離したのではないかと)
https://learn.microsoft.com/ja-jp/cpp/c-runtime-library/reference/scprintf-scprintf-l-scwprintf-scwprintf-l?view=msvc-170
MSにはscprintfという、長さだけを返す関数が用意されている。
(s*printfのbufferがヌルポだとエラー、おそらく型チェックを厳しくする為に分離したのではないかと)
https://learn.microsoft.com/ja-jp/cpp/c-runtime-library/reference/scprintf-scprintf-l-scwprintf-scwprintf-l?view=msvc-170
94デフォルトの名無しさん (ワッチョイ 9f98-DX0k)
2025/11/09(日) 15:49:06.10ID:BHEHF4AV0 長さって言うと、バイト数か文字数かで悩む
95デフォルトの名無しさん (ササクッテロラ Spf3-7str)
2025/11/09(日) 15:56:50.51ID:avBvNiuDp マルチバイト文字なんてC言語が考慮してるはずが無いだろ
全部外部関数だからなあれら
全部外部関数だからなあれら
96デフォルトの名無しさん (ワッチョイ 9f98-DX0k)
2025/11/09(日) 17:54:10.57ID:BHEHF4AV0 どの範囲が内部関数なんでしょうか?
97デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/09(日) 18:08:54.56ID:rjZkXEAW0 stdio.h等、K&Rに記載されてる範囲じゃね?
(勿論sprintfも記載あり)
(勿論sprintfも記載あり)
98デフォルトの名無しさん (ワッチョイ 1f46-b1F3)
2025/11/09(日) 18:38:57.72ID:1hA+Ej0k0 こういうときK&R持ち出してくる意図がわからん
80年代で頭が止まってるのか愉快犯なのか
80年代で頭が止まってるのか愉快犯なのか
99デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/09(日) 19:57:32.76ID:rjZkXEAW0 俺は80年代で頭が止まってるが、K&Rは今でも名著で読む価値があるのも事実だろ
(というかCが変わって無さ過ぎなだけだが)
Zにはドラゴンボールハラスメントなのかもだが
(というかCが変わって無さ過ぎなだけだが)
Zにはドラゴンボールハラスメントなのかもだが
100デフォルトの名無しさん (ワッチョイ 7f2a-Nex0)
2025/11/09(日) 20:21:54.18ID:ZW4cfheS0 今どきK&Rかよ! てのは昔からいる。超カンタン○○言語なんてのを有り難がるのだけど、なぜか原典の類いには絶対当たらない。
101デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/09(日) 20:36:39.24ID:rjZkXEAW0 得る知識量/文字数、というZ的コスパなら、K&Rに勝る本は他のプログラミング言語含めても無いよな
その分端折りまくりだし、そもそも既にプログラミング出来る人向けに書かれているので、初心者には向かないが
しかし本来は、K&Rに勝る本を誰かが書いて、葬ってやるべきなのだろうけど、
あれ以上エッセンスだけ凝縮するのも無理よねって事で今に至るわけだし
その分端折りまくりだし、そもそも既にプログラミング出来る人向けに書かれているので、初心者には向かないが
しかし本来は、K&Rに勝る本を誰かが書いて、葬ってやるべきなのだろうけど、
あれ以上エッセンスだけ凝縮するのも無理よねって事で今に至るわけだし
102デフォルトの名無しさん (ワッチョイ 1f46-b1F3)
2025/11/09(日) 20:48:05.83ID:1hA+Ej0k0 標準ライブラリの話なのに何とんちんかんなこといってんの
準拠してる規格か処理系そのものに依存するから古典みてもわからんでしょ
当時の知識でもヘッダやライブラリの場所から当たりはつくけどな
準拠してる規格か処理系そのものに依存するから古典みてもわからんでしょ
当時の知識でもヘッダやライブラリの場所から当たりはつくけどな
103デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/09(日) 20:58:39.28ID:rjZkXEAW0104デフォルトの名無しさん (ワッチョイ 9f45-rgYF)
2025/11/09(日) 21:03:11.42ID:LFf9m6Ev0 K&R馬鹿にしてるのもZ連呼してるのも傍から見てたらどっちもアホですわ
105デフォルトの名無しさん (ワッチョイ 1f46-b1F3)
2025/11/09(日) 21:10:40.56ID:1hA+Ej0k0 バカにはしてないむしろ信奉者だし
アホなのはそのとおり
ウソが知識不足からか故意なのか気になっただけ
書けば質問者への気づきにもなるしな
アホなのはそのとおり
ウソが知識不足からか故意なのか気になっただけ
書けば質問者への気づきにもなるしな
106デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/09(日) 21:24:36.18ID:rjZkXEAW0 >>104
だからそういうのは要らねえから、さっさとお前流の>>96に対する回答を書いて勝負すればいいわけ
というかね、完全に脱線するが、
例の非韓三原則「韓国人には、教えない、助けない、関わらない」とか、
Kの法則、「韓国(人)に関わると不幸になる」というの、ありゃ何だろうなと思ってたんだが、
数年前には俺なりに結論が出てしまった
あれはな、連中は、「自分を上げるのではなく、他人を下げる事」しかしないからなんだ
そして、ゆとりやZも同様の傾向があるから、そうならないように意識して注意した方がいい
それはお互い足を引っ張り合ってるだけであって、高める方向ではないから
今回もそうだろ、他人にケチを付けるだけで、自分でよりよい回答を出そうとはしない
だから結果的に、よりよい回答を得られる機会を失い、罵りあう状況を生み出してる
受け方を間違えなければ本来プラスに持っていけた所が、マイナスになってしまってる
ここら辺が、ゆとりやZがコミュ障で困る部分なんだよ
だからお前達は自分達世代だけではマトモに会話出来る場所を持てず、
年上世代が蔓延る5chに寄生するしかなくなってる
その辺もちゃんと自覚した方がいい
5chで偉そうに講釈垂れつつ、裏で必死にググって理論武装しつつ、という俺ら世代の馬鹿共も、
この点はゆとりやZとは正反対で、きちんとプラス方向に寄与してたわけ
だから5chは生き残って来れてるわけでね
>>105
同上。
だからそういうのは要らねえから、さっさとお前流の>>96に対する回答を書いて勝負すればいいわけ
というかね、完全に脱線するが、
例の非韓三原則「韓国人には、教えない、助けない、関わらない」とか、
Kの法則、「韓国(人)に関わると不幸になる」というの、ありゃ何だろうなと思ってたんだが、
数年前には俺なりに結論が出てしまった
あれはな、連中は、「自分を上げるのではなく、他人を下げる事」しかしないからなんだ
そして、ゆとりやZも同様の傾向があるから、そうならないように意識して注意した方がいい
それはお互い足を引っ張り合ってるだけであって、高める方向ではないから
今回もそうだろ、他人にケチを付けるだけで、自分でよりよい回答を出そうとはしない
だから結果的に、よりよい回答を得られる機会を失い、罵りあう状況を生み出してる
受け方を間違えなければ本来プラスに持っていけた所が、マイナスになってしまってる
ここら辺が、ゆとりやZがコミュ障で困る部分なんだよ
だからお前達は自分達世代だけではマトモに会話出来る場所を持てず、
年上世代が蔓延る5chに寄生するしかなくなってる
その辺もちゃんと自覚した方がいい
5chで偉そうに講釈垂れつつ、裏で必死にググって理論武装しつつ、という俺ら世代の馬鹿共も、
この点はゆとりやZとは正反対で、きちんとプラス方向に寄与してたわけ
だから5chは生き残って来れてるわけでね
>>105
同上。
107デフォルトの名無しさん (ワッチョイ 7f94-u/J9)
2025/11/09(日) 21:55:55.88ID:iuqP4JEu0 そもそもCで外部内部関数なんて概念がナンセンスだろ
108デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/09(日) 22:22:11.91ID:rjZkXEAW0 >>107
今回の文脈は、
94: マルチバイト文字ガー
95(≠俺): それらは全部外部関数(≒内部関数はシングルバイト対応のみ)
96: なら内部関数ってどこまで?
なので、馬鹿でなく、正面から乗ってやるなら、お前なりの線引きを答えてどうぞ
質問が無効なので回答しようがない!ってのは、スカしてイケてるつもりの馬鹿がよくやるパターンだ
こいつらも、コミュ的には迷惑なだけ
95の「外部関数」が問題だとするなら、
95よりも分かりやすく、95の代替になる回答を用意するように心掛ければ済むだけ
出来ないのなら、黙っておく方がいい
C言語の仕様として「内部/外部の区別がない」とか、別方向にウンチクを垂れるのならどうぞだが
今回の文脈は、
94: マルチバイト文字ガー
95(≠俺): それらは全部外部関数(≒内部関数はシングルバイト対応のみ)
96: なら内部関数ってどこまで?
なので、馬鹿でなく、正面から乗ってやるなら、お前なりの線引きを答えてどうぞ
質問が無効なので回答しようがない!ってのは、スカしてイケてるつもりの馬鹿がよくやるパターンだ
こいつらも、コミュ的には迷惑なだけ
95の「外部関数」が問題だとするなら、
95よりも分かりやすく、95の代替になる回答を用意するように心掛ければ済むだけ
出来ないのなら、黙っておく方がいい
C言語の仕様として「内部/外部の区別がない」とか、別方向にウンチクを垂れるのならどうぞだが
109デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/10(月) 07:43:17.41ID:zJ1Qzqef0 これだからZは。
>>98は自ら意図的に世代間抗争に持ち込んでいるのに、ケツも拭けないのか
ゆとりZはやはり死ねだな
5chが(俺ら世代にとって)比較的マシな場所なのは、ゆとりZの存在確率が低い事が地味に効いてる
理解出来てない奴の方が多いけどね
世代間抗争も、やりたければやればいいと思うが、せめて勝てる算段を立ててからにしろよと
コミュ障がコミュ障のままなのは、結局の所、コミュ上手になろうともしてないからだ
>>98は自ら意図的に世代間抗争に持ち込んでいるのに、ケツも拭けないのか
ゆとりZはやはり死ねだな
5chが(俺ら世代にとって)比較的マシな場所なのは、ゆとりZの存在確率が低い事が地味に効いてる
理解出来てない奴の方が多いけどね
世代間抗争も、やりたければやればいいと思うが、せめて勝てる算段を立ててからにしろよと
コミュ障がコミュ障のままなのは、結局の所、コミュ上手になろうともしてないからだ
110デフォルトの名無しさん (ワッチョイ ff9e-lDbn)
2025/11/10(月) 11:26:46.51ID:7d+3pm9S0 初老が中年にマウントとるスレ
111デフォルトの名無しさん (ワッチョイ 9f0f-DX0k)
2025/11/10(月) 14:39:59.87ID:JbkrBD5Q0 いくつから中年ですか?
112デフォルトの名無しさん (ワッチョイ ff2a-Nex0)
2025/11/10(月) 15:24:22.95ID:mwBByQv20 switch(年齢) {
case 0 ... 7: return 幼年;
case 8 ... 17: return 少年;
case 18 ... 25: return 青年;
case 26 ... 65: return 中年;
default: return 老年;
}
case 0 ... 7: return 幼年;
case 8 ... 17: return 少年;
case 18 ... 25: return 青年;
case 26 ... 65: return 中年;
default: return 老年;
}
113デフォルトの名無しさん (ワッチョイ 1f10-ECQG)
2025/11/10(月) 15:50:01.90ID:2ChBD2tN0 他言語で”sjisの¥が含まれた全角文字の字化け"で苦しんだ思い出・・・。
114デフォルトの名無しさん (ワッチョイ 9f54-DX0k)
2025/11/10(月) 18:58:50.79ID:JbkrBD5Q0 大概の言語はsjis扱う方法があるはず
115デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/10(月) 20:08:23.10ID:zJ1Qzqef0116デフォルトの名無しさん (ワッチョイ 9f13-DX0k)
2025/11/11(火) 01:27:33.54ID:Ul+ztfon0 LinuxでMicrosoft C拡張が使える様になるらしい
117デフォルトの名無しさん (ワッチョイ ff2a-Nex0)
2025/11/11(火) 08:58:14.69ID:Vfm72xbe0 >>116
わららない。レベルが低くてスマソ
Microsoft C拡張ってこれ?
https://learn.microsoft.com/ja-jp/cpp/build/reference/microsoft-extensions-to-c-and-cpp?view=msvc-170
> C および C++ の Microsoft 拡張機能
Linux 上の MS コンパイラか何かがあるの?
わららない。レベルが低くてスマソ
Microsoft C拡張ってこれ?
https://learn.microsoft.com/ja-jp/cpp/build/reference/microsoft-extensions-to-c-and-cpp?view=msvc-170
> C および C++ の Microsoft 拡張機能
Linux 上の MS コンパイラか何かがあるの?
118デフォルトの名無しさん (アウアウウー Sae3-N4yN)
2025/11/11(火) 14:43:16.54ID:crDtfQHZa ディレクトリを/で分割したいときstrtokで出来そうだけど
\で分割したいときstrtok使うとsjisのとき困りませんか?
文字列じゃなくディレクトリとして扱う標準関数ってどんなのがある?
\で分割したいときstrtok使うとsjisのとき困りませんか?
文字列じゃなくディレクトリとして扱う標準関数ってどんなのがある?
119デフォルトの名無しさん (ワッチョイ ff04-lDbn)
2025/11/11(火) 15:13:06.91ID:fDHsXV5O0 そんなクソプラグラムいつまで作ってんだよ
120デフォルトの名無しさん (ワッチョイ 1f9a-u7ev)
2025/11/11(火) 15:19:43.32ID:ml7LuvJY0 >>118
sjis扱うならそれがマルチバイト文字の一部か1バイト文字かを判定するのが普通では?
sjis扱うならそれがマルチバイト文字の一部か1バイト文字かを判定するのが普通では?
121デフォルトの名無しさん (ワッチョイ 7fad-1O0L)
2025/11/11(火) 17:21:20.49ID:5g+zU5z50 自分はではないけど、ShiftJisで1バイトではなく1文字戻る場合、1バイト目なのか2バイト目で1バイト目と被る部分なのかがわかりにくいよね
122デフォルトの名無しさん (ワッチョイ 7fad-1O0L)
2025/11/11(火) 17:28:31.16ID:5g+zU5z50 自分はではないけど
↓
自分は118ではないけど
↓
自分は118ではないけど
123デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/11(火) 18:20:54.06ID:LOIEr1mz0124デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/11(火) 18:21:45.51ID:LOIEr1mz0 >>121
> 先頭から文字コードの判定をする場合はよいが、
> 後ろから判定をしようとすると、最悪の場合、先頭までたどらないといけないことがある (from wiki)
仕様外(製作時の想定外)だから諦めて、インデックス作るか、16bit固定長やutf8に変換するのが吉かと
> 先頭から文字コードの判定をする場合はよいが、
> 後ろから判定をしようとすると、最悪の場合、先頭までたどらないといけないことがある (from wiki)
仕様外(製作時の想定外)だから諦めて、インデックス作るか、16bit固定長やutf8に変換するのが吉かと
125デフォルトの名無しさん (ワッチョイ 9f5f-7str)
2025/11/12(水) 07:37:37.89ID:xTE5ywXt0 1文字づつ属性タグ付けてから好きな処理すればいい
126はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9f32-ob2Q)
2025/11/12(水) 09:44:34.01ID:9DKi0uHD0 >>118
標準関数というのが言語仕様 (規格) にある関数という意味ならディレクトリという概念すら無い。
ファイルを指し示す文字列は単に「ファイル名」としか書いておらず、どういった形式を持つかは規定されない。
ファイルシステムによって独特の概念がある場合もあるし、言語仕様で決めるような筋合いのものではないってことだと思う。
ホスト環境 (OS) のほうでなんらかの機能を提供している場合もあり、たとえば Windows だと shlwapi.h にある名前が Path で始まるやつはパス操作関係の API だ。
標準関数というのが言語仕様 (規格) にある関数という意味ならディレクトリという概念すら無い。
ファイルを指し示す文字列は単に「ファイル名」としか書いておらず、どういった形式を持つかは規定されない。
ファイルシステムによって独特の概念がある場合もあるし、言語仕様で決めるような筋合いのものではないってことだと思う。
ホスト環境 (OS) のほうでなんらかの機能を提供している場合もあり、たとえば Windows だと shlwapi.h にある名前が Path で始まるやつはパス操作関係の API だ。
127デフォルトの名無しさん (ワッチョイ 1f10-ECQG)
2025/11/12(水) 11:47:07.85ID:swftmftO0 DOS時代は文字コードをASCII、JIS/SJISしか知らなかったから
文字列操作は1字2バイトにする関数作って自分で処理してたな。
文字列操作は1字2バイトにする関数作って自分で処理してたな。
128デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/12(水) 12:45:29.14ID:MQmntoo50 それで正しいよ
そもそも118の必要有ったっけ?と思ってfopen見たら、やっぱりフルパス受け付けるじゃん
Cでやるべき事と、やるべきでない(やる意味もなく、やっても無駄に嵌る)事を区別出来てないだけ
そもそも118の必要有ったっけ?と思ってfopen見たら、やっぱりフルパス受け付けるじゃん
Cでやるべき事と、やるべきでない(やる意味もなく、やっても無駄に嵌る)事を区別出来てないだけ
129はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9f32-ob2Q)
2025/11/12(水) 13:00:11.37ID:9DKi0uHD0130デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/12(水) 14:04:58.47ID:MQmntoo50 >>129
データ処理(fopen)したいのならディレクトリ区切り文字なんて気にする必要なく、そのままフルパス文字列を全部与えればいい。
だから118の処理をCで自前でやる事自体がナンセンス。
そのコードはその処理系が用意したfopen内に存在している。(か、そもそも必要ないか)
シンボリック/ハードリンク等のファイルシステム固有の件をおいておくとすれば、
ファイルシステムは、フルパスをプライマリキーとしたDBとして抽象化出来る。
そのプライマリキーの正規化や探索方法はDB(システム)側の事情であり、ユーザーが処理するべきではない。
つまり、ユーザー側は、入力されたパス/ファイル名文字列をそのままfopen等システム側に食わせるべきであって、
118の様に、自前で加工するべきではない。
勿論、お前の言うように、C自体にはディレクトリの概念すらないのだから、
Cでexplorerじみた物を作るにしても、「標準関数」ではなく、
例えばWindowsなら.NET等、環境が用意した関数群を使えば最初から何も問題が発生しない。
具体的に言った方が分かりやすいかな?
例えばunix環境だと//は/扱いになるはずだが、この辺も全部ご丁寧に実装していくつもりなのか?
(他に何が有るのかは知らんが、たぶんあるのだろうし)
或いはutfでは毎度言われてるMacの正規化がおかしい件
https://applech2.com/archives/20251106-time-machine-bug-still-unresolved-on-macos-26-1-tahoe.html
この辺も全部引き受けるつもりなのか?
こんな事やり出したら泥沼に嵌るのは間違いないので、118の設計思想にバグがある。
入力文字列そのままでファイルを探索出来ないのなら、エラーを返し、使用者に再入力させる実装の方が一般的に正しい。
(これを綺麗にやるのが例外システムだが、Cには例外がないので、
美しさに拘るなら、ファイルオープンまでは他言語でやって、実処理部分だけCのdllを呼ぶのがいいと思う。
Cしか書きたくないなら、一番近いのはVC++だろうよ)
データ処理(fopen)したいのならディレクトリ区切り文字なんて気にする必要なく、そのままフルパス文字列を全部与えればいい。
だから118の処理をCで自前でやる事自体がナンセンス。
そのコードはその処理系が用意したfopen内に存在している。(か、そもそも必要ないか)
シンボリック/ハードリンク等のファイルシステム固有の件をおいておくとすれば、
ファイルシステムは、フルパスをプライマリキーとしたDBとして抽象化出来る。
そのプライマリキーの正規化や探索方法はDB(システム)側の事情であり、ユーザーが処理するべきではない。
つまり、ユーザー側は、入力されたパス/ファイル名文字列をそのままfopen等システム側に食わせるべきであって、
118の様に、自前で加工するべきではない。
勿論、お前の言うように、C自体にはディレクトリの概念すらないのだから、
Cでexplorerじみた物を作るにしても、「標準関数」ではなく、
例えばWindowsなら.NET等、環境が用意した関数群を使えば最初から何も問題が発生しない。
具体的に言った方が分かりやすいかな?
例えばunix環境だと//は/扱いになるはずだが、この辺も全部ご丁寧に実装していくつもりなのか?
(他に何が有るのかは知らんが、たぶんあるのだろうし)
或いはutfでは毎度言われてるMacの正規化がおかしい件
https://applech2.com/archives/20251106-time-machine-bug-still-unresolved-on-macos-26-1-tahoe.html
この辺も全部引き受けるつもりなのか?
こんな事やり出したら泥沼に嵌るのは間違いないので、118の設計思想にバグがある。
入力文字列そのままでファイルを探索出来ないのなら、エラーを返し、使用者に再入力させる実装の方が一般的に正しい。
(これを綺麗にやるのが例外システムだが、Cには例外がないので、
美しさに拘るなら、ファイルオープンまでは他言語でやって、実処理部分だけCのdllを呼ぶのがいいと思う。
Cしか書きたくないなら、一番近いのはVC++だろうよ)
131デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/12(水) 14:04:58.47ID:MQmntoo50 >>129
データ処理(fopen)したいのならディレクトリ区切り文字なんて気にする必要なく、そのままフルパス文字列を全部与えればいい。
だから118の処理をCで自前でやる事自体がナンセンス。
そのコードはその処理系が用意したfopen内に存在している。(か、そもそも必要ないか)
シンボリック/ハードリンク等のファイルシステム固有の件をおいておくとすれば、
ファイルシステムは、フルパスをプライマリキーとしたDBとして抽象化出来る。
そのプライマリキーの正規化や探索方法はDB(システム)側の事情であり、ユーザーが処理するべきではない。
つまり、ユーザー側は、入力されたパス/ファイル名文字列をそのままfopen等システム側に食わせるべきであって、
118の様に、自前で加工するべきではない。
勿論、お前の言うように、C自体にはディレクトリの概念すらないのだから、
Cでexplorerじみた物を作るにしても、「標準関数」ではなく、
例えばWindowsなら.NET等、環境が用意した関数群を使えば最初から何も問題が発生しない。
具体的に言った方が分かりやすいかな?
例えばunix環境だと//は/扱いになるはずだが、この辺も全部ご丁寧に実装していくつもりなのか?
(他に何が有るのかは知らんが、たぶんあるのだろうし)
或いはutfでは毎度言われてるMacの正規化がおかしい件
https://applech2.com/archives/20251106-time-machine-bug-still-unresolved-on-macos-26-1-tahoe.html
この辺も全部引き受けるつもりなのか?
こんな事やり出したら泥沼に嵌るのは間違いないので、118の設計思想にバグがある。
入力文字列そのままでファイルを探索出来ないのなら、エラーを返し、使用者に再入力させる実装の方が一般的に正しい。
(これを綺麗にやるのが例外システムだが、Cには例外がないので、
美しさに拘るなら、ファイルオープンまでは他言語でやって、実処理部分だけCのdllを呼ぶのがいいと思う。
Cしか書きたくないなら、一番近いのはVC++だろうよ)
データ処理(fopen)したいのならディレクトリ区切り文字なんて気にする必要なく、そのままフルパス文字列を全部与えればいい。
だから118の処理をCで自前でやる事自体がナンセンス。
そのコードはその処理系が用意したfopen内に存在している。(か、そもそも必要ないか)
シンボリック/ハードリンク等のファイルシステム固有の件をおいておくとすれば、
ファイルシステムは、フルパスをプライマリキーとしたDBとして抽象化出来る。
そのプライマリキーの正規化や探索方法はDB(システム)側の事情であり、ユーザーが処理するべきではない。
つまり、ユーザー側は、入力されたパス/ファイル名文字列をそのままfopen等システム側に食わせるべきであって、
118の様に、自前で加工するべきではない。
勿論、お前の言うように、C自体にはディレクトリの概念すらないのだから、
Cでexplorerじみた物を作るにしても、「標準関数」ではなく、
例えばWindowsなら.NET等、環境が用意した関数群を使えば最初から何も問題が発生しない。
具体的に言った方が分かりやすいかな?
例えばunix環境だと//は/扱いになるはずだが、この辺も全部ご丁寧に実装していくつもりなのか?
(他に何が有るのかは知らんが、たぶんあるのだろうし)
或いはutfでは毎度言われてるMacの正規化がおかしい件
https://applech2.com/archives/20251106-time-machine-bug-still-unresolved-on-macos-26-1-tahoe.html
この辺も全部引き受けるつもりなのか?
こんな事やり出したら泥沼に嵌るのは間違いないので、118の設計思想にバグがある。
入力文字列そのままでファイルを探索出来ないのなら、エラーを返し、使用者に再入力させる実装の方が一般的に正しい。
(これを綺麗にやるのが例外システムだが、Cには例外がないので、
美しさに拘るなら、ファイルオープンまでは他言語でやって、実処理部分だけCのdllを呼ぶのがいいと思う。
Cしか書きたくないなら、一番近いのはVC++だろうよ)
132デフォルトの名無しさん (ワッチョイ 1ff9-u7ev)
2025/11/12(水) 15:16:59.28ID:O9mfd+PO0 ディレクトリをぶんかつしたいって話にfopenとか何言ってんだ?とおもいました
133はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9f32-ob2Q)
2025/11/12(水) 15:17:06.90ID:9DKi0uHD0 >>130
たとえば指定されたファイルをアーカイブするときにパスからディレクトリ部分は取り除いて格納するだとか、文字列処理でパスを分解したいユースケースはごく普通にある。
アプリケーション作者が自前でやるのが困難なレベルの複雑な仕様なのであればそれは OS の機能かライブラリとして用意されるべき筋合いのことで、常に明示的にユーザが名前を与えるべきというのはナンセンスだ。
たとえば指定されたファイルをアーカイブするときにパスからディレクトリ部分は取り除いて格納するだとか、文字列処理でパスを分解したいユースケースはごく普通にある。
アプリケーション作者が自前でやるのが困難なレベルの複雑な仕様なのであればそれは OS の機能かライブラリとして用意されるべき筋合いのことで、常に明示的にユーザが名前を与えるべきというのはナンセンスだ。
134デフォルトの名無しさん (ワッチョイ 9fd6-qoxc)
2025/11/12(水) 17:31:16.04ID:o8W1SstX0 パス名の分解で、0x5cを調べながらあれこれやったけどな。
135デフォルトの名無しさん (ワッチョイ 1fa5-b1F3)
2025/11/12(水) 23:03:06.47ID:MsLHjcva0 DOSであれこれパス操作するなら
まずスラッシュに正規化するのがいいんでは?
API(INT)はスラッシュでもそのまま通るし
まずスラッシュに正規化するのがいいんでは?
API(INT)はスラッシュでもそのまま通るし
136デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/12(水) 23:53:18.57ID:MQmntoo50 >>133
それはお前が例外/抽象化/隠蔽/MVC等をまるで理解出来てない馬鹿だからだな。
まあ具体的に話をした方がいいようだから、そうしてみよう。
ただその前に、
> 常に明示的にユーザが名前を与えるべきというのはナンセンスだ。
「名前」とは何ぞ?
ユーザーが常に「フルパスを」与えろという意味なら、これもMVCを理解出来てない故の間違いだ。
そこはV(=UI)で補完するべき部分であって、
M(=本体の内部構造)には関わりない。(というより独立/分離している)
ついでに脱線しておくと、お前が典型的だが、Cの連中も不勉強が過ぎるとは思ってる。
馬鹿にされてるWeb系は、実際馬鹿しか居ないのも事実だが、
それでも回るように出来てる=馬鹿でも上手く行くシステムが構成されてて、これは学ぶ価値がある。
Cに引き籠もるのもどうぞ御自由にだが、
現在においてそれは、全然効率的でない、生産性の低いプログラミングに留まっている事を自覚しないと駄目だ。
そして、おそらくそういう連中に対して不満があって、
K&R警察と化したゴミクズ若害ゆとりZ>>98に俺は無駄に噛み付かれた訳だが、とんだとばっちりだ。
98は結局、よりよい回答を出しあう、上方向の競争には参戦せず、
より馬鹿にしあう、下方向の競争しかしなかったわけだから、ゴミクズであることは事実だが、
K&R警察が発生してしまうのは、お前らの問題でもある。
それはお前が例外/抽象化/隠蔽/MVC等をまるで理解出来てない馬鹿だからだな。
まあ具体的に話をした方がいいようだから、そうしてみよう。
ただその前に、
> 常に明示的にユーザが名前を与えるべきというのはナンセンスだ。
「名前」とは何ぞ?
ユーザーが常に「フルパスを」与えろという意味なら、これもMVCを理解出来てない故の間違いだ。
そこはV(=UI)で補完するべき部分であって、
M(=本体の内部構造)には関わりない。(というより独立/分離している)
ついでに脱線しておくと、お前が典型的だが、Cの連中も不勉強が過ぎるとは思ってる。
馬鹿にされてるWeb系は、実際馬鹿しか居ないのも事実だが、
それでも回るように出来てる=馬鹿でも上手く行くシステムが構成されてて、これは学ぶ価値がある。
Cに引き籠もるのもどうぞ御自由にだが、
現在においてそれは、全然効率的でない、生産性の低いプログラミングに留まっている事を自覚しないと駄目だ。
そして、おそらくそういう連中に対して不満があって、
K&R警察と化したゴミクズ若害ゆとりZ>>98に俺は無駄に噛み付かれた訳だが、とんだとばっちりだ。
98は結局、よりよい回答を出しあう、上方向の競争には参戦せず、
より馬鹿にしあう、下方向の競争しかしなかったわけだから、ゴミクズであることは事実だが、
K&R警察が発生してしまうのは、お前らの問題でもある。
137デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/12(水) 23:53:46.82ID:MQmntoo50 さらについでに言うと、string.hが割とゴミなのは広く言われてるが、
strtokについて問題を感じないのなら、間違いなく無知な馬鹿だ。
(俺は仕様を見た瞬間、え?こんなの許されるのか?と思った)
そしてそれで偉そうにしてるのなら、完全に老害だ。
(だから間髪入れずに叩いた>>119はまあ正しい)
strtokの問題点が分からなければ、使い方を書いたサイトがあちこちにあるからググればいい。
ただ、strtok関しては、使い方を解説するのではなく、使用禁止と明言すべきレベル。
初心者向けのつもりな各サイトなら尚更。
それらに書いてない事を追加すると、
俺はstrtokでは生産性が上がらない(=使う意味がない)のが駄目だと思っている。
strtokには必ずラッパが必要で、それは使い方サイトに大体出てるサンプルコードになるが、
どうしてもstrtokを使いたい局面では、
そのサンプルコードのstrtok部分を自前でループし、そのラッパ関数を公開した方がいい。
(strtokは関数内関数に留め、グローバルには公開しない)
こうすれば問題の半分は片づく。
ただそもそもCでディレクトリ分割する意味はなく、そのコードを作るのにかけた時間は全部無駄だ。
そのコードは既に他にもっといい出来なのがあるから、それを使うべき。
strtokについて問題を感じないのなら、間違いなく無知な馬鹿だ。
(俺は仕様を見た瞬間、え?こんなの許されるのか?と思った)
そしてそれで偉そうにしてるのなら、完全に老害だ。
(だから間髪入れずに叩いた>>119はまあ正しい)
strtokの問題点が分からなければ、使い方を書いたサイトがあちこちにあるからググればいい。
ただ、strtok関しては、使い方を解説するのではなく、使用禁止と明言すべきレベル。
初心者向けのつもりな各サイトなら尚更。
それらに書いてない事を追加すると、
俺はstrtokでは生産性が上がらない(=使う意味がない)のが駄目だと思っている。
strtokには必ずラッパが必要で、それは使い方サイトに大体出てるサンプルコードになるが、
どうしてもstrtokを使いたい局面では、
そのサンプルコードのstrtok部分を自前でループし、そのラッパ関数を公開した方がいい。
(strtokは関数内関数に留め、グローバルには公開しない)
こうすれば問題の半分は片づく。
ただそもそもCでディレクトリ分割する意味はなく、そのコードを作るのにかけた時間は全部無駄だ。
そのコードは既に他にもっといい出来なのがあるから、それを使うべき。
138デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/12(水) 23:54:11.21ID:MQmntoo50 で、具体的な話をすると、
> 指定されたファイルをアーカイブするときにパスからディレクトリ部分は取り除いて格納するだとか
こんな事する必要ねえんだよ。
お前は具象レベルでしかプログラミング出来ない馬鹿だから、こうとしか考えられないだけ。
モノリシックにしか作れず、特定環境のファイルしか格納出来ないように、無駄に成るだけだろ。
ほぼ同じ手間であらゆる環境で使える物が出来るというのに。
具体的に言うと、この場合は、
M: 内部アーカイブ
V0: unix用UI
V1: Windows用UI
V2: Web用UI
とかに分ける。これでシステム間の引っ越しも余裕になる。
Mは、文字列(キー)→ファイル(値)が引けるDB/KVSなら何でもいい。
最もお手軽には、高速検索/アクセス機能が欲しければsqlite、
レストア出来ればいいだけならtarのようにグチャッとくっつけただけの物となる。
文字列(キー)には、アーカイブしたときのパスをそのまま記録する。
つまり、フルパスで有ればフルパスを、相対パスなら相対パスを指定する。
M-V間のインタフェースはこの文字列『全体』とする。
> 指定されたファイルをアーカイブするときにパスからディレクトリ部分は取り除いて格納するだとか
こんな事する必要ねえんだよ。
お前は具象レベルでしかプログラミング出来ない馬鹿だから、こうとしか考えられないだけ。
モノリシックにしか作れず、特定環境のファイルしか格納出来ないように、無駄に成るだけだろ。
ほぼ同じ手間であらゆる環境で使える物が出来るというのに。
具体的に言うと、この場合は、
M: 内部アーカイブ
V0: unix用UI
V1: Windows用UI
V2: Web用UI
とかに分ける。これでシステム間の引っ越しも余裕になる。
Mは、文字列(キー)→ファイル(値)が引けるDB/KVSなら何でもいい。
最もお手軽には、高速検索/アクセス機能が欲しければsqlite、
レストア出来ればいいだけならtarのようにグチャッとくっつけただけの物となる。
文字列(キー)には、アーカイブしたときのパスをそのまま記録する。
つまり、フルパスで有ればフルパスを、相対パスなら相対パスを指定する。
M-V間のインタフェースはこの文字列『全体』とする。
139デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/12(水) 23:55:46.80ID:MQmntoo50 ここでおそらく、tarでアーカイブし、ディレクトリ名が重複するので端折る事を想定していると思われるが、
これは間違いだ。『ディレクトリ文字列』ではなく、単純に『文字列』を端折るだけでいい。
つまり、
ファイルシステム上:
./pathA/pathB/hoge.txt
./pathA/pathB/hogehoge.txt
./pathA/pathB/hogehogehoge.txt
はちみつ式tarアーカイブ:(ファイル名先頭に同一『ディレクトリ』かマークする=デリミタ文字を認識しないといけない)
(新)./pathA/pathB/hoge.txt
(同)hogehoge.txt
(同)hogehogehoge.txt
俺式tarアーカイブ:(直前レコードと『文字列が』頭から何文字同じかマークする=デリミタ文字を気にする必要ない)
(0)./pathA/pathB/hoge.txt
(18)hoge.txt
(22)hoge.txt
この例は偶々、俺式の方が圧縮出来るが、実際はこんな都合のいいファイル名並びはほとんど無い。
マークサイズが、はちみつ式はbool、俺式はint(またはshort/char)なので、実際にどちらが小さいかは場合によりけりだろう。
ただポイントは、俺式はファイルのデリミタ文字がMには関係ないところだ。
Mはただの倉庫であって、文字列→中身、が出来れば十分で、外部の仕様には一切依存しない、ということ。
(はちみつ式はデリミタが/であるunix仕様がMに癒着している。とはいえこれが問題になる事はまずないはずだが)
これは間違いだ。『ディレクトリ文字列』ではなく、単純に『文字列』を端折るだけでいい。
つまり、
ファイルシステム上:
./pathA/pathB/hoge.txt
./pathA/pathB/hogehoge.txt
./pathA/pathB/hogehogehoge.txt
はちみつ式tarアーカイブ:(ファイル名先頭に同一『ディレクトリ』かマークする=デリミタ文字を認識しないといけない)
(新)./pathA/pathB/hoge.txt
(同)hogehoge.txt
(同)hogehogehoge.txt
俺式tarアーカイブ:(直前レコードと『文字列が』頭から何文字同じかマークする=デリミタ文字を気にする必要ない)
(0)./pathA/pathB/hoge.txt
(18)hoge.txt
(22)hoge.txt
この例は偶々、俺式の方が圧縮出来るが、実際はこんな都合のいいファイル名並びはほとんど無い。
マークサイズが、はちみつ式はbool、俺式はint(またはshort/char)なので、実際にどちらが小さいかは場合によりけりだろう。
ただポイントは、俺式はファイルのデリミタ文字がMには関係ないところだ。
Mはただの倉庫であって、文字列→中身、が出来れば十分で、外部の仕様には一切依存しない、ということ。
(はちみつ式はデリミタが/であるunix仕様がMに癒着している。とはいえこれが問題になる事はまずないはずだが)
140デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/12(水) 23:59:23.72ID:MQmntoo50 書けない?テスト
141デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/13(木) 00:02:39.38ID:DM7iFpPI0 あと2投(44行)あるが、規制された?ので、しばらく後に投稿する
142デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/13(木) 00:14:22.09ID:DM7iFpPI0 うむ、書けんな。まあ>>135は正しいが
143デフォルトの名無しさん (ワッチョイ 1f1c-5yZn)
2025/11/13(木) 07:23:44.03ID:BJCSCSAz0 staticオジサン居る?
カプセル化で、ダイレクトに非staticプロトタイプで関数コールしている?
あるいは、typedef struct { void (*polling)(bool *tick) } Txxx;のように構造体の関数ポインター経由でコーールしている?
InitializeコールしないでNULLポインターをコールすることもあるのが難。
構造体の方がアプリトップレベルのBinderで管理できるので良いように思えるが、いまいち悩むところ。
カプセル化で、ダイレクトに非staticプロトタイプで関数コールしている?
あるいは、typedef struct { void (*polling)(bool *tick) } Txxx;のように構造体の関数ポインター経由でコーールしている?
InitializeコールしないでNULLポインターをコールすることもあるのが難。
構造体の方がアプリトップレベルのBinderで管理できるので良いように思えるが、いまいち悩むところ。
144デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/13(木) 07:26:01.38ID:DM7iFpPI0 やはり書けないっぽい
行数制限か?
しばらくチマチマ試すが、駄目だったら諦めで
行数制限か?
しばらくチマチマ試すが、駄目だったら諦めで
145デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/13(木) 07:33:41.70ID:DM7iFpPI0 ここで先述の通り、M-Vインタフェースは文字列『全体』、つまり、
(18)hoge.txt から ./pathA/pathB/hogehoge.txt に戻す部分は、M側に持たせる。
(18)hoge.txt から ./pathA/pathB/hogehoge.txt に戻す部分は、M側に持たせる。
146デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/13(木) 07:37:32.03ID:DM7iFpPI0 んー、行数ではなく文字数制限か?
しかしバラバラだと読みにくすぎるので、また後日試すわ
しかしバラバラだと読みにくすぎるので、また後日試すわ
147デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/13(木) 07:59:27.63ID:DM7iFpPI0 Mangoで試して一部バラバラにすれば行けそうなので落とす。内容は以下と同一
https://agree.5ch.net/test/read.cgi/mango/1754986690/92-98
https://agree.5ch.net/test/read.cgi/mango/1754986690/92-98
148デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/13(木) 08:00:05.36ID:DM7iFpPI0 これにより、M側はsqliteと
149デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/13(木) 08:00:31.21ID:DM7iFpPI0 交換可能になり、(DB/KVSの場合は上記ファイルシステム上の文字列そのままがキーになる)
150デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/13(木) 08:00:57.42ID:DM7iFpPI0 アーカイブして戻すだけではなく、ライブファイルシステムとして使えるようになる。
これはsqlite公式でも言っている通り、
> https://sqlite.org/fasterthanfs.html
現在のブロックファイルシステムにおいては最低限4K食うので、小さいファイルが沢山の場合にはsqliteの方が効率がいいから。
(GUIが無いという話はあるが…まあexplorerでzip開けるあの感じがベストだとは思うが)
そしてVだが、順当に考えれば、キー(≒ファイル/パス/URI)については、
V0: unix用UI: 何もしない
V1: Windows用UI: \を/に変えて記録、/を\に変えて戻す(トークン分割ではなく、単なる文字置換)
V2: Web用UI: 何もしない
が妥当だろう。
各Vはそれぞれ使えない文字が異なるので、Mからその文字列が来たときにどう扱うかは各Vに任せる。
これでシステム間もあっさり解決だ。
ポイントは、保存対象が何であれ、Mの中身は同じで、M-Vインタフェースも同じ、ということ。
そして繰り返すが、トークン分割の必要はない。もっと初歩的な、文字置換だけで済む。
これはsqlite公式でも言っている通り、
> https://sqlite.org/fasterthanfs.html
現在のブロックファイルシステムにおいては最低限4K食うので、小さいファイルが沢山の場合にはsqliteの方が効率がいいから。
(GUIが無いという話はあるが…まあexplorerでzip開けるあの感じがベストだとは思うが)
そしてVだが、順当に考えれば、キー(≒ファイル/パス/URI)については、
V0: unix用UI: 何もしない
V1: Windows用UI: \を/に変えて記録、/を\に変えて戻す(トークン分割ではなく、単なる文字置換)
V2: Web用UI: 何もしない
が妥当だろう。
各Vはそれぞれ使えない文字が異なるので、Mからその文字列が来たときにどう扱うかは各Vに任せる。
これでシステム間もあっさり解決だ。
ポイントは、保存対象が何であれ、Mの中身は同じで、M-Vインタフェースも同じ、ということ。
そして繰り返すが、トークン分割の必要はない。もっと初歩的な、文字置換だけで済む。
151デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/13(木) 08:01:38.94ID:DM7iFpPI0 つまり構成としては、
M(sqlite): sqliteそのままでいい。
M(俺式tar): トークン分割は必要ない。
(18)hoge.txt から ./pathA/pathB/hogehoge.txt に戻す文字列操作は、数えて、concatするだけ。
\の検索も要らない。
であり、Mでの文字列操作は、必要ないか、極単純か、となる。
一方Vは、はっきり言ってCで作る意味がない。(高速/最軽量のCを生かす事は出来ない)
unixならシェルで作ればいいだけ。
sqliteはシェルからそのまま扱えるらしいので、
> sqlite3 データベースファイル名 < スクリプトファイル名
> https://iifx.dev/ja/articles/123001461/sqlite3スクリプトをコマンドラインで華麗に操る方法
find . -print の結果を適当にゴニョゴニョすればまあ行けそう。
Blobをどうやって作るのかは知らんが、多分手段はあるのだろう。(いい加減面倒になってきた)
Windowsでも、powershellで何とかなるんじゃね?駄目なら.NETでいいし。
どのみち、CでVを作る必要はない。
Cで作るのはMだけでよく、Mではなるべく文字列操作をしない、またはしなくて済むように設計する。
V部分は各環境の便利なものを使い、そこでファイル/文字列操作はやってしまう、という事。
というわけで、例外/抽象化/隠蔽/MVC等と言っておきながら、MVCしか説明出来てないが、面倒なのでこの辺で止める。
馬鹿に一々付き合ってても、ネットでは無限に馬鹿が沸くので、キリがない。
お前らが俺以上に手間を掛けたと分かる場合のみ相手するが、おそらくこれはないはず。
そしてこれ以上お前らが馬鹿こいても無視するのでよろしく。
無知のままで居るのもお前らの自由ではあるし、本当にキリがないので。
M(sqlite): sqliteそのままでいい。
M(俺式tar): トークン分割は必要ない。
(18)hoge.txt から ./pathA/pathB/hogehoge.txt に戻す文字列操作は、数えて、concatするだけ。
\の検索も要らない。
であり、Mでの文字列操作は、必要ないか、極単純か、となる。
一方Vは、はっきり言ってCで作る意味がない。(高速/最軽量のCを生かす事は出来ない)
unixならシェルで作ればいいだけ。
sqliteはシェルからそのまま扱えるらしいので、
> sqlite3 データベースファイル名 < スクリプトファイル名
> https://iifx.dev/ja/articles/123001461/sqlite3スクリプトをコマンドラインで華麗に操る方法
find . -print の結果を適当にゴニョゴニョすればまあ行けそう。
Blobをどうやって作るのかは知らんが、多分手段はあるのだろう。(いい加減面倒になってきた)
Windowsでも、powershellで何とかなるんじゃね?駄目なら.NETでいいし。
どのみち、CでVを作る必要はない。
Cで作るのはMだけでよく、Mではなるべく文字列操作をしない、またはしなくて済むように設計する。
V部分は各環境の便利なものを使い、そこでファイル/文字列操作はやってしまう、という事。
というわけで、例外/抽象化/隠蔽/MVC等と言っておきながら、MVCしか説明出来てないが、面倒なのでこの辺で止める。
馬鹿に一々付き合ってても、ネットでは無限に馬鹿が沸くので、キリがない。
お前らが俺以上に手間を掛けたと分かる場合のみ相手するが、おそらくこれはないはず。
そしてこれ以上お前らが馬鹿こいても無視するのでよろしく。
無知のままで居るのもお前らの自由ではあるし、本当にキリがないので。
152デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/13(木) 08:02:19.41ID:DM7iFpPI0 以上、終わり
153はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9f32-jcp5)
2025/11/13(木) 15:04:26.13ID:bJCWdXAy0154デフォルトの名無しさん (ワッチョイ 1fdf-yiAb)
2025/11/13(木) 20:55:40.45ID:FrAYIMEk0155はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9f32-jcp5)
2025/11/13(木) 22:45:21.40ID:bJCWdXAy0 >>143
言いたいことがよくわからん (非staticプロトタイプってなんや?) けど私なりに推測するとカプセル化の基本パターンや使い分けが知りたいってこと?
言いたいことがよくわからん (非staticプロトタイプってなんや?) けど私なりに推測するとカプセル化の基本パターンや使い分けが知りたいってこと?
156デフォルトの名無しさん (ブーイモ MM4f-ACTV)
2025/11/14(金) 10:11:22.08ID:j5Ukc9dzM 「モバイルオーダー」悪用、1万円超の弁当代を58円で不正決済…23歳の無職男を容疑で逮捕
決済システムが脆弱すぎだろ?
よくこんな作り方で普及させたな?インド人か?
決済システムが脆弱すぎだろ?
よくこんな作り方で普及させたな?インド人か?
157デフォルトの名無しさん (ワッチョイ ff10-DX0k)
2025/11/14(金) 11:20:09.02ID:H7qd0VM/0 一万円の弁当か、食べてみたい
払う気はないけど
払う気はないけど
158デフォルトの名無しさん (ワッチョイ 1f2f-5yZn)
2025/11/15(土) 03:54:57.59ID:61X/lnkN0 あら C99で空宣言使えなくなった?
typedef enum {} PINSTATE;
typedef struct s_pinobj {
bool(*sequence)(struct s_pinobj * obj);
uint16_t tickcount; // 10ms ticking
PINSTATE state;
.
.
} TXXX;
などと使っていたんだけど、エラーになるようだ。
循環参照対策はどうするんだろ?
typedef enum {} PINSTATE;
typedef struct s_pinobj {
bool(*sequence)(struct s_pinobj * obj);
uint16_t tickcount; // 10ms ticking
PINSTATE state;
.
.
} TXXX;
などと使っていたんだけど、エラーになるようだ。
循環参照対策はどうするんだろ?
159デフォルトの名無しさん (ブーイモ MM4f-ACTV)
2025/11/15(土) 08:31:52.06ID:u+2daHyUM 客→クレジット会社鯖→決済情報→商店
の流れを
客→決済情報→商店
だとよ
つまりクレジット会社鯖でやってる業務をすべてなりすまししてるわけだ
鯖と商店とのやり取りもザルだったってこと
の流れを
客→決済情報→商店
だとよ
つまりクレジット会社鯖でやってる業務をすべてなりすまししてるわけだ
鯖と商店とのやり取りもザルだったってこと
160はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9f32-ob2Q)
2025/11/15(土) 11:24:07.72ID:nRXHw60f0 >>158
空宣言というのは enum の列挙子がゼロ個ということを言ってるの?
enum が導入された C89 の時点で列挙子はひとつ以上が必要ということになっていて列挙子がゼロ個で良かった時代は無い。
(出来たとしたら処理系の拡張。)
そして enum の宣言は必ず列挙子のリストを必要としている。
struct のように { } を書かなければ不完全型として宣言されるというようなことはないから前方宣言で名前だけ書いておいて後で中身を定義するということも出来ない。
不完全型の列挙型というものは存在できないってことね。
空宣言というのは enum の列挙子がゼロ個ということを言ってるの?
enum が導入された C89 の時点で列挙子はひとつ以上が必要ということになっていて列挙子がゼロ個で良かった時代は無い。
(出来たとしたら処理系の拡張。)
そして enum の宣言は必ず列挙子のリストを必要としている。
struct のように { } を書かなければ不完全型として宣言されるというようなことはないから前方宣言で名前だけ書いておいて後で中身を定義するということも出来ない。
不完全型の列挙型というものは存在できないってことね。
161デフォルトの名無しさん (ササクッテロラ Spf3-7str)
2025/11/15(土) 11:40:24.78ID:YWAh8Gcip162デフォルトの名無しさん (ワッチョイ 1fc9-ACTV)
2025/11/15(土) 14:39:56.35ID:mkkTDyMO0163デフォルトの名無しさん (ワッチョイ 9f5f-7str)
2025/11/15(土) 15:15:39.55ID:jhUkF2/k0164デフォルトの名無しさん (ワッチョイ 1fc9-ACTV)
2025/11/15(土) 15:38:28.29ID:mkkTDyMO0 例え決済情報を盗まれてもさ、アクセス先がクレジット会社でもないとこからのやつを
なんで正規なものとして受け取るかね?
いろいろおかしい
なんで正規なものとして受け取るかね?
いろいろおかしい
165デフォルトの名無しさん (ワッチョイ cd6e-7JbV)
2025/11/17(月) 21:52:49.67ID:WNaQVVCp0 C言語とは直接関係ない話題だが、
カード情報が盗まれてそのまま決済が
通過してしまった事件が過去にあった。
カード持ち主には返金されたが、
損害を誰が負担するかで揉めてた。
カード会社が持つケースもあったが、
テナント企業が弱いと、涙を流すケースもあった。
カード情報が盗まれてそのまま決済が
通過してしまった事件が過去にあった。
カード持ち主には返金されたが、
損害を誰が負担するかで揉めてた。
カード会社が持つケースもあったが、
テナント企業が弱いと、涙を流すケースもあった。
166デフォルトの名無しさん (ワッチョイ 02ad-OBIQ)
2025/11/17(月) 21:56:21.37ID:ktJ33fIe0 直接どころかまったく無関係で草
167デフォルトの名無しさん (ワッチョイ cd6e-7JbV)
2025/11/18(火) 00:14:16.54ID:Ie2Q8O000 Eコマースサイト作る上では必要な知識だからな
全く無関係って訳ではない
全く無関係って訳ではない
168デフォルトの名無しさん (ワッチョイ 259c-L2M8)
2025/11/18(火) 00:20:37.35ID:3HXouIV30 Cで作るの?
169デフォルトの名無しさん (ワッチョイ 5202-F/8Y)
2025/11/18(火) 16:36:11.76ID:d9hs+rsN0 cのcgiだって可能だしあってもいいだろ(?)
170デフォルトの名無しさん (アウアウウー Sa85-H7iN)
2025/11/18(火) 23:45:44.92ID:+AochNn2a windows で
setlocale(LC_ALL, "ja-JP.UTF8"); とか
setlocale(LC_CTYPE, "ja-JP.UTF8"); とか
プログラムの先頭で設定しても無駄?
console は chcp 65001 してる
fopen() のファイル名に UTF8 で渡したいんだが
出来れば readdir() も UTF8 で取得したいのよ
setlocale(LC_ALL, "ja-JP.UTF8"); とか
setlocale(LC_CTYPE, "ja-JP.UTF8"); とか
プログラムの先頭で設定しても無駄?
console は chcp 65001 してる
fopen() のファイル名に UTF8 で渡したいんだが
出来れば readdir() も UTF8 で取得したいのよ
171デフォルトの名無しさん (ワッチョイ 3d5f-JyHE)
2025/11/19(水) 07:24:28.12ID:1qR7LTyn0 ソースコードがSJISなら無駄
172デフォルトの名無しさん (スフッ Sd22-A2v6)
2025/11/19(水) 10:44:13.50ID:sa05/K8dd opendir and readdir themselves work on bytes. They do not perform and reencoding.
Some filesystem drivers may impose contraints on the byte sequences.
I would expect the form returned by readdir to work when passed to opendir.
I'd like to know how you were able to find out that opendir and readdir do not perform any reencoding?
You can trace it through the C library source and the kernel code.
If you run strace ls, you can directly start from the kernel entry point: the open syscall.
The generic filesystem support code passes all bytes other than null and / along unmodified.
It's only some filesystem drivers that transforms file names.
Some filesystem drivers may impose contraints on the byte sequences.
I would expect the form returned by readdir to work when passed to opendir.
I'd like to know how you were able to find out that opendir and readdir do not perform any reencoding?
You can trace it through the C library source and the kernel code.
If you run strace ls, you can directly start from the kernel entry point: the open syscall.
The generic filesystem support code passes all bytes other than null and / along unmodified.
It's only some filesystem drivers that transforms file names.
173はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 4d32-o1Ob)
2025/11/19(水) 11:29:22.16ID:MnCaLNwG0 >>170
普通の入出力はテキストモードとバイナリモードがあって、ロケールの設定がテキストモードの振る舞いに影響するんだけど……
Windows の場合はテキストモード・バイナリモード・ユニコードモードに分かれていて _setmode でユニコードモードに設定する必要がある。
しかしユニコードモードの設定はワイド入出力系関数 (wprintf など) にしか影響を及ぼさない。
そんでその辺の設定をしても、入出力の内容に関してであってファイル名を UTF-8 で渡すのはたぶん駄目なはず。 (確認はしてない。 すまぬ。)
ファイル名はワイド文字 (UTF-16) に変換してから _wfopen で開くのが正当な方法だと思う。
Windows に readdir は無いので FindFirstFileW, FindNextFileW を使うのが普通の方法。
だいぶん前に調べたときは msvcrt と ucrt でちょっと振る舞いが違ったような記憶があるのでそこらにも注意が必要。
ucrt は色々と大きく改良されているみたいなのでひょっとするともっとモダンな方法があるかもしれない。
普通の入出力はテキストモードとバイナリモードがあって、ロケールの設定がテキストモードの振る舞いに影響するんだけど……
Windows の場合はテキストモード・バイナリモード・ユニコードモードに分かれていて _setmode でユニコードモードに設定する必要がある。
しかしユニコードモードの設定はワイド入出力系関数 (wprintf など) にしか影響を及ぼさない。
そんでその辺の設定をしても、入出力の内容に関してであってファイル名を UTF-8 で渡すのはたぶん駄目なはず。 (確認はしてない。 すまぬ。)
ファイル名はワイド文字 (UTF-16) に変換してから _wfopen で開くのが正当な方法だと思う。
Windows に readdir は無いので FindFirstFileW, FindNextFileW を使うのが普通の方法。
だいぶん前に調べたときは msvcrt と ucrt でちょっと振る舞いが違ったような記憶があるのでそこらにも注意が必要。
ucrt は色々と大きく改良されているみたいなのでひょっとするともっとモダンな方法があるかもしれない。
174デフォルトの名無しさん (ワッチョイ cd5c-7JbV)
2025/11/19(水) 12:12:33.50ID:DtAPl5720 UTF16は廃止してほしい
175デフォルトの名無しさん (ワッチョイ ae25-Lseg)
2025/11/19(水) 13:55:46.72ID:95cnfr9u0 ANSI C以前のC処理系で、frexp()の第2引数が、intではなくdoubleへのポインタになってるやつってありましたっけ?
176デフォルトの名無しさん (ワッチョイ 22c0-QuBx)
2025/11/20(木) 08:57:49.57ID:o66Cu/z90 >>175
無いです
無いです
177デフォルトの名無しさん (ワッチョイ 6e10-7JbV)
2025/11/20(木) 10:19:51.08ID:WN+N3a+40 intで足りなくなったときに便利
178デフォルトの名無しさん (アウアウウー Sa85-H7iN)
2025/11/21(金) 10:02:41.70ID:VM+m9mUGa doubleの方が有効桁数少ないんじゃね
179デフォルトの名無しさん (アウアウウー Sa85-H7iN)
2025/11/21(金) 10:06:53.94ID:VM+m9mUGa >>173
>Windows に readdir は無いので FindFirstFileW, FindNextFileW を使うのが普通の方法。
もちろんそうだろうと思う有難う
だが WideCharToMultiByte とか MultiByteToWideChar をちょっとすっ飛ばしたかったんだ
>Windows に readdir は無いので FindFirstFileW, FindNextFileW を使うのが普通の方法。
もちろんそうだろうと思う有難う
だが WideCharToMultiByte とか MultiByteToWideChar をちょっとすっ飛ばしたかったんだ
180はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 4d32-o1Ob)
2025/11/21(金) 11:13:01.47ID:G3R9bFuG0 >>179
Windows アプリケーション内部では UTF-16 で扱って、必要なら入出力のときに変換するというのが楽だよ。
モードの設定 (前述の _setmode) をしておけば入出力のときの変換は勝手にやってくれて明示的にプログラマが何かする必要がない。
Win32 API (64ビット版を含む) は UTF-16 が基礎なのでそれで統一しておけば文字コード変換が必要な場面は生じない。
マルチプラットフォームだとかサードパーティー製ライブラリと組み合わせるだとかし始めると色々と困ることもあるし、全体の設計は状況によるんだけど……
Windows アプリケーション内部では UTF-16 で扱って、必要なら入出力のときに変換するというのが楽だよ。
モードの設定 (前述の _setmode) をしておけば入出力のときの変換は勝手にやってくれて明示的にプログラマが何かする必要がない。
Win32 API (64ビット版を含む) は UTF-16 が基礎なのでそれで統一しておけば文字コード変換が必要な場面は生じない。
マルチプラットフォームだとかサードパーティー製ライブラリと組み合わせるだとかし始めると色々と困ることもあるし、全体の設計は状況によるんだけど……
181デフォルトの名無しさん (ワッチョイ 5202-F/8Y)
2025/11/22(土) 01:33:08.03ID:CDycBrMu0182デフォルトの名無しさん (ワッチョイ c736-w0D3)
2025/11/24(月) 09:05:52.94ID:StdCmM8J0 long longでいいじゃん
183デフォルトの名無しさん (ワッチョイ 67f6-WraW)
2025/11/25(火) 10:15:11.74ID:F0vSFTML0 frexp() の第2引数ってそもそも性質からして整数以外有り得ないんじゃね
むしろ第1引数も整数でも良いくらい
むしろ第1引数も整数でも良いくらい
184デフォルトの名無しさん (ワンミングク MM3f-nzoZ)
2025/11/25(火) 12:28:06.26ID:MC0j4mydM 複素数に拡張してくれ
核開発に使える
核開発に使える
185デフォルトの名無しさん (スフッ Sd7f-Lg42)
2025/11/25(火) 13:48:33.82ID:rSIO8n1ld 質問です
int hoge(wchar_t *p);
な関数があって
int a = hoge(L"fuga"); だと正常で
int b = hoge("fuga"); だと誤動作します
理由は判りますが
そもそも引数がcompile errorにもwarningにもなりません
C++みたいにcompile errorにする方法は?
int hoge(wchar_t *p);
な関数があって
int a = hoge(L"fuga"); だと正常で
int b = hoge("fuga"); だと誤動作します
理由は判りますが
そもそも引数がcompile errorにもwarningにもなりません
C++みたいにcompile errorにする方法は?
186はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 6732-A6do)
2025/11/25(火) 15:48:36.00ID:evMdha/k0187はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 6732-A6do)
2025/11/26(水) 10:42:02.61ID:ZGYu6bhA0 念のために仕様をよく読んで検討したら wchar_t が char の別名として定義されることは理屈の上では認められることを発見した。
そしてその上で文字列リテラルとワイド文字リテラルが異なる符号体系を持つということも可能ではある。
もしそういう処理系なら >>185 の事例は型が合った上で誤作動 (プログラマの想定と異なる動作) を引き起こすかもしれない。
実際にそういう処理系があるのかどうか知らんけど libc のドキュメント中で組み込みシステムではそういうのも妥当かもしれないという言及がある。
https://www.gnu.org/software/libc/manual/html_node/Extended-Char-Intro.html#index-wchar_005ft
そしてその上で文字列リテラルとワイド文字リテラルが異なる符号体系を持つということも可能ではある。
もしそういう処理系なら >>185 の事例は型が合った上で誤作動 (プログラマの想定と異なる動作) を引き起こすかもしれない。
実際にそういう処理系があるのかどうか知らんけど libc のドキュメント中で組み込みシステムではそういうのも妥当かもしれないという言及がある。
https://www.gnu.org/software/libc/manual/html_node/Extended-Char-Intro.html#index-wchar_005ft
188デフォルトの名無しさん (アウアウウー Sa0b-WraW)
2025/11/26(水) 11:37:21.77ID:g4n+mUAPa >>186
VCで確認したら警告は出たがエラーではないので実行出来た上で誤作動(描かれた通りには動いている)
警告レベル替えればエラーにも出来るんだろうけど
文字列リテラルポインタからワイド文字列リテラルポインタへの自動キャスト(あるいはその逆のキャスト)以外のところにも影響出てエラーだらけになるかも
文字列リテラルポインタからワイド文字列リテラルポインタへの自動キャスト(あるいはその逆のキャスト)限定でエラーにならないかな
VCで確認したら警告は出たがエラーではないので実行出来た上で誤作動(描かれた通りには動いている)
警告レベル替えればエラーにも出来るんだろうけど
文字列リテラルポインタからワイド文字列リテラルポインタへの自動キャスト(あるいはその逆のキャスト)以外のところにも影響出てエラーだらけになるかも
文字列リテラルポインタからワイド文字列リテラルポインタへの自動キャスト(あるいはその逆のキャスト)限定でエラーにならないかな
189はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 6732-A6do)
2025/11/26(水) 15:23:02.27ID:ZGYu6bhA0 >>188
MSVC がそんな馬鹿げた仕組みとは驚きだな。
合わない型 (本来は暗黙の型変換も認められない型) は一律にエラーになるべきだけれど、とりあえず自分のコードで型が合わないケースをエラーにしたいなら
#pragma warning(error : 4133)
とするくらいが落としどころじゃないかと思う。
MSVC がそんな馬鹿げた仕組みとは驚きだな。
合わない型 (本来は暗黙の型変換も認められない型) は一律にエラーになるべきだけれど、とりあえず自分のコードで型が合わないケースをエラーにしたいなら
#pragma warning(error : 4133)
とするくらいが落としどころじゃないかと思う。
190デフォルトの名無しさん (スフッ Sd7f-Lg42)
2025/11/27(木) 05:19:27.44ID:KfDQEfrsd191デフォルトの名無しさん (ワッチョイ 5f81-w0D3)
2025/11/29(土) 18:02:47.96ID:MnjgLok40 固定小数点でも誤差が出ます
とかトンチンカンなこと言い出すやついるけど
割り算しなきゃほぼ誤差ないんだよ
とかトンチンカンなこと言い出すやついるけど
割り算しなきゃほぼ誤差ないんだよ
192デフォルトの名無しさん (ワッチョイ 79f6-v69L)
2025/12/01(月) 12:04:42.29ID:HDTmHOXC0 gmp使ったソースだった
193デフォルトの名無しさん (アウアウウー Sa21-v69L)
2025/12/03(水) 11:46:07.94ID:G3Cx7y7oa194デフォルトの名無しさん (ワッチョイ 6a4e-Qxko)
2025/12/03(水) 22:47:42.54ID:E5HetRmY0195デフォルトの名無しさん (ワッチョイ 6a4e-Qxko)
2025/12/03(水) 22:51:48.92ID:E5HetRmY0 こういうのも、流行のclaudeとかで聞くもんなんかな?
196はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7732-7TsH)
2025/12/09(火) 18:21:11.05ID:4lQ1LhG80 ツールを起動するだけで CERT C コーディングスタンダードに準拠か否か判定するというレベルの簡単なものはないというか無理。
機械的な検証が困難な項目は人が精査する必要がある場合もあるからツールはあくまでも補助だよ。
まずは項目を大まかに分類して機械的に出来るところは機械的にやって残りは人が検証 (レビューやテスト) する体制を整えるしかない。
きちんとやろうとすると技術的なことより組織の運営の話になるんじゃないかな……
機械的な検証が困難な項目は人が精査する必要がある場合もあるからツールはあくまでも補助だよ。
まずは項目を大まかに分類して機械的に出来るところは機械的にやって残りは人が検証 (レビューやテスト) する体制を整えるしかない。
きちんとやろうとすると技術的なことより組織の運営の話になるんじゃないかな……
197デフォルトの名無しさん (ワッチョイ 7703-EGrP)
2025/12/11(木) 01:14:00.20ID:VWVRinEO0 コーディングルールはサイトでの指定以外は気にしたことが無いなあ笑
198デフォルトの名無しさん (ワッチョイ 1f22-1bfe)
2025/12/16(火) 15:40:55.95ID:unxv0LoC0 C言語であるサブルーチンを作ろうとしてるんだけど、FILE* fで開いたファイルを一旦閉じて作業をして、また開きたいんだが、FILE* f だけを引数にしたい。そんなこと出来る?
開いたファイルの名前を引数にできれば、その名前で再度開けるが、FILE* f のポインタだけを引数にしてそんなこと出来るのかな?
開いたファイルの名前を引数にできれば、その名前で再度開けるが、FILE* f のポインタだけを引数にしてそんなこと出来るのかな?
199デフォルトの名無しさん (ワッチョイ 1e87-zkFG)
2025/12/16(火) 16:02:20.55ID:BhrzwszF0 できない
FILEが生きているうちならパス名を調べるのは多分できるだろな
FILEが生きているうちならパス名を調べるのは多分できるだろな
200はちみつ餃子 ◆8X2XSCHEME (ワッチョイ e332-f85/)
2025/12/16(火) 16:25:43.79ID:8p6wZKuQ0 >>198
閉じた時点で FILE* 型のハンドルは無効になる。
無効になったハンドルに対して出来ることは何ひとつない。
ファイルを開いている内に再び開くために必要な適用な情報を確保しておくしかない。
言語仕様上は細かい規定は無いのでホスト環境 (OS) に依存したなんらかの手段を使う必要がある。
Linux なら inode 番号あたりを保持しておけばファイル名を覚えておくより短くて済むからいいんじゃないかな?
まあ開くときにはたぶん一旦ファイル名を取得する必要はあるんだけど。
(他の OS でもだいたい似たような仕組みは有る。 Windows だと GetFileInformationByHandle を調べてみると良い。)
閉じた時点で FILE* 型のハンドルは無効になる。
無効になったハンドルに対して出来ることは何ひとつない。
ファイルを開いている内に再び開くために必要な適用な情報を確保しておくしかない。
言語仕様上は細かい規定は無いのでホスト環境 (OS) に依存したなんらかの手段を使う必要がある。
Linux なら inode 番号あたりを保持しておけばファイル名を覚えておくより短くて済むからいいんじゃないかな?
まあ開くときにはたぶん一旦ファイル名を取得する必要はあるんだけど。
(他の OS でもだいたい似たような仕組みは有る。 Windows だと GetFileInformationByHandle を調べてみると良い。)
201デフォルトの名無しさん (ワッチョイ 1f22-1bfe)
2025/12/16(火) 17:12:42.21ID:unxv0LoC0 みなさんありがとう。OSはWindowsです
GetFileInformationByHandle も調べてみたけど、これではファイル名は出てきませんね
多分FILE* fからファイル名が出てこないと、無理っぽいですね
GetFileInformationByHandle も調べてみたけど、これではファイル名は出てきませんね
多分FILE* fからファイル名が出てこないと、無理っぽいですね
202デフォルトの名無しさん (ワッチョイ 1ecd-zkFG)
2025/12/16(火) 17:27:33.70ID:BhrzwszF0 GetFinalPathNameByHandle
geminiに聞いただけで期待通り動くかは知らん
geminiに聞いただけで期待通り動くかは知らん
203はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 77e8-b0Pp)
2025/12/16(火) 17:47:00.48ID:fxmzBDbu0 windows の場合はファイル番号 (FRN) から直接にファイルを開くことができるっぽい。
204デフォルトの名無しさん (ワッチョイ 1f22-1bfe)
2025/12/16(火) 17:48:08.13ID:unxv0LoC0 >>202
GetFinalPathNameByHandleやってみたけど残念
まあ、考えたらWindowsではHANDLE。FILEではないからね。HANDLEなら多分うまくいくんだろうね
でもいい関数を教えてもらいました。ありがとう
FILEからHANDLEに変更して作り直すかな。他人が作ったソフトを改造してやってるので
そもそも、FILEとHANDLEって何が違うのかなコンバートって出来る?
HANDLEはWindows専用でやってそうだから無理そうね
GetFinalPathNameByHandleやってみたけど残念
まあ、考えたらWindowsではHANDLE。FILEではないからね。HANDLEなら多分うまくいくんだろうね
でもいい関数を教えてもらいました。ありがとう
FILEからHANDLEに変更して作り直すかな。他人が作ったソフトを改造してやってるので
そもそも、FILEとHANDLEって何が違うのかなコンバートって出来る?
HANDLEはWindows専用でやってそうだから無理そうね
205デフォルトの名無しさん (ワッチョイ 1ecd-zkFG)
2025/12/16(火) 18:25:26.73ID:BhrzwszF0206はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 77e8-b0Pp)
2025/12/16(火) 19:25:00.08ID:fxmzBDbu0 Windows では FILE の下にファイルディスクリプタっぽいものがあって、その下に本来の Win32 API があるという三層構造になってる。
msvcrt.dll (または ucrt.dll) が C や POSIX の仕様に合わせた機能を提供しているが、必要に応じて Win32 API 用のハンドルを取り出すことはできる。
msvcrt.dll (または ucrt.dll) が C や POSIX の仕様に合わせた機能を提供しているが、必要に応じて Win32 API 用のハンドルを取り出すことはできる。
207デフォルトの名無しさん (ワッチョイ 1f22-1bfe)
2025/12/16(火) 19:50:18.68ID:unxv0LoC0 ありがとう。調べてみます
208デフォルトの名無しさん (ワッチョイ 72d0-AmFD)
2025/12/16(火) 21:05:39.33ID:ugyur8tL0 最近開いたファイル から引っ張ってこれないのか?
209デフォルトの名無しさん (ワッチョイ a77f-Iabs)
2025/12/16(火) 21:38:52.25ID:x7DniZMa0210デフォルトの名無しさん (ワッチョイ 6358-hA2T)
2025/12/17(水) 00:35:55.40ID:9wOraPAW0 そのファイルを誰かが開くことは想定しなくて良いのか?
211デフォルトの名無しさん (ワッチョイ 12ad-FV3J)
2025/12/18(木) 01:16:26.13ID:qZgjLdb10 >>198
それ絶対に閉じないといけないのか? fflush() するだけじゃダメ?
それ絶対に閉じないといけないのか? fflush() するだけじゃダメ?
212デフォルトの名無しさん (ワッチョイ 1ed8-v2wD)
2025/12/18(木) 09:00:10.06ID:T7xRzDCt0 DBとして機能するファイルならDBつかえよ?
213デフォルトの名無しさん (アウアウウー Sa43-Zm2/)
2025/12/19(金) 13:27:44.03ID:uPPpqdRma214デフォルトの名無しさん (アウアウウー Sa43-Zm2/)
2025/12/19(金) 13:33:27.31ID:uPPpqdRma https://learn.microsoft.com/ja-jp/cpp/c-runtime-library/reference/get-osfhandle
HANDLE h =(HANDLE)_get_osfhandle(fileno(fp));
HANDLE h =(HANDLE)_get_osfhandle(fileno(fp));
215デフォルトの名無しさん (ワッチョイ 1610-1bEy)
2025/12/19(金) 14:08:20.19ID:GilgZVjz0 質問者の意図がよく分からない
FILE*で操作したいと言うことは、
誰かが上位でopenしてくれる前提なのかな?
FILE*で操作したいと言うことは、
誰かが上位でopenしてくれる前提なのかな?
216デフォルトの名無しさん (ワッチョイ 1e18-kuSR)
2025/12/19(金) 17:52:53.90ID:oWecYqFH0 こうしてバグの温床が生まれたと。
217はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 775a-b0Pp)
2025/12/19(金) 20:20:49.60ID:LTe4LjTR0 他人が作ったプログラムをよく理解しないまま改造するという前提ではなるべく構造を変えないという選択肢がマシになることはなくもない。
もちろんきちんと理解して必要な形に整理しなおすのがよりよいに決まってるんだが、そう理想通りにできるとは限らない。
もちろんきちんと理解して必要な形に整理しなおすのがよりよいに決まってるんだが、そう理想通りにできるとは限らない。
218デフォルトの名無しさん (ワッチョイ 922e-1bfe)
2025/12/19(金) 20:28:04.21ID:tQhsUV0y0 なんなの、この糞コテ?
219デフォルトの名無しさん (ワッチョイ 63c8-1bEy)
2025/12/19(金) 22:01:36.42ID:1MzI+xf/0 おいしそうだろ
220デフォルトの名無しさん (ワッチョイ a7c7-WNn4)
2025/12/20(土) 07:50:33.87ID:QsyRy9oL0 >>218
お前よりは数段役にたつやつだから 暖かく見守れ
お前よりは数段役にたつやつだから 暖かく見守れ
221デフォルトの名無しさん (JP 0Hdf-ujNw)
2025/12/21(日) 13:25:50.09ID:i93tKLa3H うちの近所にも蜂蜜餃子出す店ある
222デフォルトの名無しさん (ワッチョイ 0b8a-PETF)
2026/01/18(日) 20:25:48.72ID:cNrycSn50 ユーザーからの入力によって配列のサイズを決定したいんですが
どうやったらいいんでしょう
どうやったらいいんでしょう
223はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 69b9-T9tX)
2026/01/18(日) 20:37:29.41ID:shr9m5Ho0 >>222
質問が分かりにくいのでどう書きたいのかコードで示して欲しい。
意図がわかればよいのでコンパイルエラーになるようなコードでもかまわない。
たぶん必要なのは malloc だと思う。
その他、配列の型としての大きさを実行時に変えられる場合は限定的だが VLA と呼ばれる言語機能がある。
ただ VLA は後の仕様改訂でオプショナルになったので使えない処理系もたぶんあるしエラーハンドリングに難があるので避けたほうがよいと思う。
質問が分かりにくいのでどう書きたいのかコードで示して欲しい。
意図がわかればよいのでコンパイルエラーになるようなコードでもかまわない。
たぶん必要なのは malloc だと思う。
その他、配列の型としての大きさを実行時に変えられる場合は限定的だが VLA と呼ばれる言語機能がある。
ただ VLA は後の仕様改訂でオプショナルになったので使えない処理系もたぶんあるしエラーハンドリングに難があるので避けたほうがよいと思う。
224デフォルトの名無しさん (ワッチョイ 539e-qEHJ)
2026/01/19(月) 07:16:34.46ID:2baaFdwH0225デフォルトの名無しさん (ワッチョイ 7b7a-FokY)
2026/01/19(月) 08:38:27.02ID:oxkouUzo0 argcをどうやってatoiしたらよいか、なんて話題かもしれない
226デフォルトの名無しさん (ブーイモ MM75-7iEb)
2026/01/19(月) 13:18:04.03ID:ElAwxz1hM >>222
ユーザーが入力し得る最大サイズで確保しとけばええねん
ユーザーが入力し得る最大サイズで確保しとけばええねん
227デフォルトの名無しさん (ワッチョイ 8b10-5GTw)
2026/01/19(月) 16:59:35.05ID:Nrv8lzL10 ふつうテラバイトかな
228デフォルトの名無しさん (アウアウウー Sa1d-s7zb)
2026/01/19(月) 23:48:18.42ID:Q5XPfczGa >>222
とりあえず入門書を読み直せ
とりあえず入門書を読み直せ
229デフォルトの名無しさん (ワッチョイ 09d2-Jqzc)
2026/01/20(火) 08:07:53.65ID:r1BK3Oap0 > Z世代「結局、俺等って最も賢くて不幸な世代じゃね?」2万いいね [237216734]
> https://hayabusa9.5ch.net/test/read.cgi/c/news/1768856467/
典型的Zムーブやん、もうちょっと生暖かい目で見るゆとりを持とうぜ
> https://hayabusa9.5ch.net/test/read.cgi/c/news/1768856467/
典型的Zムーブやん、もうちょっと生暖かい目で見るゆとりを持とうぜ
230デフォルトの名無しさん (ワッチョイ 8b2a-g06Z)
2026/01/20(火) 08:09:48.15ID:FJCIsj7T0 >>228
意味のないレスだよ
意味のないレスだよ
231デフォルトの名無しさん (ワッチョイ 0905-Jqzc)
2026/01/20(火) 08:44:15.02ID:r1BK3Oap0 やや曖昧だったので補足しておくが、俺は>>228も正しいと思っているし、批判する気もない。
ついでに一言ずつ感想を述べると、
222: Z過ぎる…
223: "malloc"というキーワードすら知らなかったのだから、そんな高尚な話ではないのでは…
224: あー、昔はnewsで同様のことをやってたんだな、知らんかったわ。まあ読んだほうがいいね
225: エスパー能力は低そうだな
226: それもありよね、というか俺ならこれかな
227: アホだな
228: まあこれもそう。書いてあるだろうし、224のFAQにしても知らないことも多いだろうから、全部読むのが一番効率はいい(ただZは絶対に受け入れないが)
(229: 俺)
230: お前がもっとも意味ないよ、死ね
ついでに一言ずつ感想を述べると、
222: Z過ぎる…
223: "malloc"というキーワードすら知らなかったのだから、そんな高尚な話ではないのでは…
224: あー、昔はnewsで同様のことをやってたんだな、知らんかったわ。まあ読んだほうがいいね
225: エスパー能力は低そうだな
226: それもありよね、というか俺ならこれかな
227: アホだな
228: まあこれもそう。書いてあるだろうし、224のFAQにしても知らないことも多いだろうから、全部読むのが一番効率はいい(ただZは絶対に受け入れないが)
(229: 俺)
230: お前がもっとも意味ないよ、死ね
232デフォルトの名無しさん (ワッチョイ 8b10-5GTw)
2026/01/20(火) 11:13:35.53ID:WJ24pe7D0 ちゃんと目が覚めてからどうぞ
233デフォルトの名無しさん (オイコラミネオ MMfd-JrgW)
2026/01/20(火) 14:30:10.34ID:npjGyppFM 苦しんで覚えろC言語
234 警備員[Lv.0][新芽] (アウアウウー Sa1d-2lB2)
2026/01/20(火) 15:24:25.25ID:IfOEwYMLa NNTPってまだ使われてんの
235デフォルトの名無しさん (ワッチョイ 7b2f-BnPU)
2026/01/22(木) 01:03:37.74ID:xYaOafz30 シーは可変長配列実装する所からか
236デフォルトの名無しさん (ワッチョイ c92a-g06Z)
2026/01/23(金) 13:27:45.11ID:C2FK2sry0 C調実装に御用心
237デフォルトの名無しさん (ワッチョイ 0901-J5mu)
2026/01/23(金) 18:52:35.05ID:FYvErjxl0 たまにゃMakefile
238デフォルトの名無しさん (ワッチョイ e990-EJU4)
2026/01/26(月) 08:27:35.76ID:f1AFhxpj0239デフォルトの名無しさん (ワッチョイ 5e10-I/DG)
2026/01/26(月) 09:25:50.03ID:vduk8RxW0 翌日には忘れる未来志向
240デフォルトの名無しさん (ワッチョイ f664-VviL)
2026/01/26(月) 11:15:31.10ID:SIfTs9j80241デフォルトの名無しさん (ワッチョイ 6502-yTqm)
2026/01/26(月) 11:37:39.49ID:ju5wkyqG0 Dィープsテートは人類の電子的支配をねらっている
https://www.youtube.com/watch?v=-HUCdYNePFg
https://www.youtube.com/watch?v=-HUCdYNePFg
242はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f532-Z6i/)
2026/01/26(月) 11:55:43.44ID:259WEkSA0 クラッシュして良いわけではないが想定した固定長を越えたらエラーメッセージを出して直ちに終了するくらいの方針はありうる。
Worse is Better ってやつだ。
Worse is Better ってやつだ。
243デフォルトの名無しさん (ワッチョイ 591a-Q7ug)
2026/01/26(月) 20:41:38.33ID:w7MHZcu50 中級者
超えないようにメモリを冗長化
上級者
デカいメモリを確保ANDユーザの入力次第でクラッシュ scanf指向
超えないようにメモリを冗長化
上級者
デカいメモリを確保ANDユーザの入力次第でクラッシュ scanf指向
244デフォルトの名無しさん (ササクッテロリ Sp79-GA1X)
2026/01/26(月) 20:42:35.53ID:hiSxmE0Cp 全部固定長にしちまえばいいんだよ
245デフォルトの名無しさん (アウアウウー Sacd-Bm+i)
2026/01/27(火) 01:16:10.76ID:rrlOBExea sprintf, swprintf, _sprintf_l, _swprintf_l, __swprintf_l,
sprintf_s, _sprintf_s_l, _swprintf_s, _swprintf_s_l,
sscanf, _sscanf_l, swscanf, _swscanf_l,
sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l,
さらに
vfprintf, _vfprintf_l, vfwprintf, _vfwprintf_l,
vfprintf_s, _vfprintf_s_l, vfwprintf_s, _vfwprintf_s_l,
なんで vwfprintf じゃねえんだよ!って思う
sprintf_s, _sprintf_s_l, _swprintf_s, _swprintf_s_l,
sscanf, _sscanf_l, swscanf, _swscanf_l,
sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l,
さらに
vfprintf, _vfprintf_l, vfwprintf, _vfwprintf_l,
vfprintf_s, _vfprintf_s_l, vfwprintf_s, _vfwprintf_s_l,
なんで vwfprintf じゃねえんだよ!って思う
246デフォルトの名無しさん (ワッチョイ 5e10-I/DG)
2026/01/30(金) 14:54:48.55ID:KwjlwjWe0 強い相互作用が働いています
247デフォルトの名無しさん (ワッチョイ 4d94-4QED)
2026/02/06(金) 22:43:33.83ID:n8mgfVGM0 printf("%d\t%d", fahr, celsius);
の引数である、"%d\t%d"について質問です。
「\t」はタブ文字を表すということです。
viなどのエディタではタブを入力すると4文字や8文字などの設定した幅だけ空白が挿入されます。
"%d\t%d"についても同じように4文字や8文字などの一定の幅の空白が整数と整数の間に挿入されるのかと思いましたが、動作が違うようです。
これはどういうことでしょうか?
の引数である、"%d\t%d"について質問です。
「\t」はタブ文字を表すということです。
viなどのエディタではタブを入力すると4文字や8文字などの設定した幅だけ空白が挿入されます。
"%d\t%d"についても同じように4文字や8文字などの一定の幅の空白が整数と整数の間に挿入されるのかと思いましたが、動作が違うようです。
これはどういうことでしょうか?
248デフォルトの名無しさん (ワッチョイ 23ad-3cUX)
2026/02/06(金) 23:23:03.82ID:oI+Czk490 > viなどのエディタではタブを入力すると4文字や8文字などの設定した幅だけ空白が挿入されます。
こういうのはエディタがキー入力されたタブ文字をタブ文字として出力せず、4文字、8文字の空白として出力(つまり変換)してる
> "%d\t%d"についても同じように4文字や8文字などの一定の幅の空白が整数と整数の間に挿入されるのかと思いましたが、動作が違うようです。
コンソールなどにそういう機能がない以上はタブ文字はタブ文字として出力されるだけ
もしタブを入力として受け取って、それを4文字や8文字などの空白にしたいなら自前でそういう処理を書かないといけない
こういうのはエディタがキー入力されたタブ文字をタブ文字として出力せず、4文字、8文字の空白として出力(つまり変換)してる
> "%d\t%d"についても同じように4文字や8文字などの一定の幅の空白が整数と整数の間に挿入されるのかと思いましたが、動作が違うようです。
コンソールなどにそういう機能がない以上はタブ文字はタブ文字として出力されるだけ
もしタブを入力として受け取って、それを4文字や8文字などの空白にしたいなら自前でそういう処理を書かないといけない
249はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 1531-0WMu)
2026/02/06(金) 23:44:40.96ID:Qy2h/jss0 >>247
・タブという文字 (一文字) がある
・タブ文字の幅は一定ではない
・タブ文字は次のキリの良い桁までの幅を持つ
・キリの良い桁がいくつであるかはターミナルやエディタの設定によるが一般的に4か8
・つまりキリの良い桁が4に設定されている環境において、行の最初にあるタブの幅は4だし、三文字目にあれば幅は2になる
・設定によってインデントの大きさを一気に変えられて便利なのでかつてはタブでインデントするのが普通だった
・現代ではフォーマッタが総合的に面倒を見るのでインデントのためにタブを使う習慣は廃れた
・タブキーを押してもタブが入力されず空白を入れるようになっているエディタはそこそこある (設定で変えられることもある)
・タブという文字 (一文字) がある
・タブ文字の幅は一定ではない
・タブ文字は次のキリの良い桁までの幅を持つ
・キリの良い桁がいくつであるかはターミナルやエディタの設定によるが一般的に4か8
・つまりキリの良い桁が4に設定されている環境において、行の最初にあるタブの幅は4だし、三文字目にあれば幅は2になる
・設定によってインデントの大きさを一気に変えられて便利なのでかつてはタブでインデントするのが普通だった
・現代ではフォーマッタが総合的に面倒を見るのでインデントのためにタブを使う習慣は廃れた
・タブキーを押してもタブが入力されず空白を入れるようになっているエディタはそこそこある (設定で変えられることもある)
250デフォルトの名無しさん (ワッチョイ e7b9-W5NQ)
2026/02/08(日) 14:40:59.44ID:X17rBAzn0 そなたらはC99以降を使ってんのかどうしてんだ。
後からC++で使う可能性があるなら互換性を失ったCを使うかどうかは考えないといけない。
拡張子.cと.cppを共存できるプロジェクトファイルに対応の機械語ファイル作成のソフトとかあるんかな。
例えばVisual C++はどうなんや。
後からC++で使う可能性があるなら互換性を失ったCを使うかどうかは考えないといけない。
拡張子.cと.cppを共存できるプロジェクトファイルに対応の機械語ファイル作成のソフトとかあるんかな。
例えばVisual C++はどうなんや。
251はちみつ餃子 ◆8X2XSCHEME (ワッチョイ fb32-9AE0)
2026/02/08(日) 15:05:00.39ID:vqX/dBJ10 >>250
主要なホスト環境 (OS) や処理系はかなり保守的な体制をとっていて MSVC, GCC, Clang といった主要な処理系は C89 をいまだに使えるし、 ABI に互換性がある範囲で C++ と共存できる。
特に MSVC (Visual C++) の C は「ANSI C89 にマイクロソフトに独自の拡張を付け加えたものである (その独自拡張が C99 の一部なこともある)」 と説明しているくらいの保守的姿勢をとってる。
その割に安全でない関数を使ったときなどの警告は厳しめなので寛容だがモダンなスタイルへの移行へ積極的でもあるという感じに見える。
主要なホスト環境 (OS) や処理系はかなり保守的な体制をとっていて MSVC, GCC, Clang といった主要な処理系は C89 をいまだに使えるし、 ABI に互換性がある範囲で C++ と共存できる。
特に MSVC (Visual C++) の C は「ANSI C89 にマイクロソフトに独自の拡張を付け加えたものである (その独自拡張が C99 の一部なこともある)」 と説明しているくらいの保守的姿勢をとってる。
その割に安全でない関数を使ったときなどの警告は厳しめなので寛容だがモダンなスタイルへの移行へ積極的でもあるという感じに見える。
252デフォルトの名無しさん (ワッチョイ e7b9-W5NQ)
2026/02/08(日) 16:36:16.54ID:X17rBAzn0 書き方がまずかったか。
機械語ファイル作成のソフトの具体例は、Microsoft Visual Studio(Visual C++)で、プロジェクトファイルの具体例はVisual Studioでは拡張子.vcxprojのファイルのことを言ってる。
互換性で問題にしてるのはC99以降で、C++98に対応のコンパイラなら、C90までのCで互換性の問題は普通に考えてあるとは思えない。
shortにintを代入で警告、ポインタ変数にキャスト無しでvoidポインタの代入でエラーくらいしか思いつかない。
機械語ファイル作成のソフトの具体例は、Microsoft Visual Studio(Visual C++)で、プロジェクトファイルの具体例はVisual Studioでは拡張子.vcxprojのファイルのことを言ってる。
互換性で問題にしてるのはC99以降で、C++98に対応のコンパイラなら、C90までのCで互換性の問題は普通に考えてあるとは思えない。
shortにintを代入で警告、ポインタ変数にキャスト無しでvoidポインタの代入でエラーくらいしか思いつかない。
253はちみつ餃子 ◆8X2XSCHEME (ワッチョイ fb32-9AE0)
2026/02/08(日) 17:25:48.03ID:vqX/dBJ10254デフォルトの名無しさん (ワッチョイ e7b9-W5NQ)
2026/02/08(日) 17:55:08.39ID:X17rBAzn0 そうか、リンクという方法もあるわな。
でも言おうとしたのはC++としてソースを再利用してコンパイルのつもりで言った。
でも言おうとしたのはC++としてソースを再利用してコンパイルのつもりで言った。
255sage (ワッチョイ e7b9-W5NQ)
2026/02/08(日) 17:57:41.82ID:X17rBAzn0 ただし、.cを単に.cppに変更してC++プログラムとして使うと互換性を失うので、1プロジェクトの中にCとC++を共存させてハイブリッドのコンパイルはできないものかと思ったわけだ。
256はちみつ餃子 ◆8X2XSCHEME (ワッチョイ fb32-9AE0)
2026/02/08(日) 18:22:46.50ID:vqX/dBJ10 >>255
C と C++ をひとつのプロジェクトの中で共存させることはごく普通にできる。
あまりに当然のことすぎてそこが疑問なのだとは気づかなかったよ……
私自信は Visual C++ を使ってないから具体的な操作までは知らんけど。
C と C++ をひとつのプロジェクトの中で共存させることはごく普通にできる。
あまりに当然のことすぎてそこが疑問なのだとは気づかなかったよ……
私自信は Visual C++ を使ってないから具体的な操作までは知らんけど。
257sage (ワッチョイ e7b9-W5NQ)
2026/02/08(日) 18:47:46.77ID:X17rBAzn0 そうだったか。
それなら最新のCを使うのもいいな。
それなら最新のCを使うのもいいな。
258はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 2f35-WHm7)
2026/02/08(日) 20:34:02.62ID:HUCbwVuC0 もともと C と C++ はつかず離れずを指向していたんだけど C が保守的すぎて乖離が大きくなっていったという事情がある。
C23 でその間を埋めるように大きめかつ非互換な改定が入って GCC ではすでに C23 がデフォルト (オプション指定しなければ C23 になる) なんだけど MSVC で使うのは時期尚早かもしれない。
処理系のデフォルトがおおよそ無難な選択だと思う。
C23 でその間を埋めるように大きめかつ非互換な改定が入って GCC ではすでに C23 がデフォルト (オプション指定しなければ C23 になる) なんだけど MSVC で使うのは時期尚早かもしれない。
処理系のデフォルトがおおよそ無難な選択だと思う。
259デフォルトの名無しさん (ワッチョイ e7b9-W5NQ)
2026/02/08(日) 20:40:55.28ID:X17rBAzn0 そなたらはC99〜最新はどういう立ち位置でいる?
1.拒絶派
2.慎重派
3.条件によって二分する中立派
4.積極派
5.最新仕様を最大活用派
1.拒絶派
2.慎重派
3.条件によって二分する中立派
4.積極派
5.最新仕様を最大活用派
260デフォルトの名無しさん (ワッチョイ 4e35-oWkt)
2026/02/08(日) 22:57:39.47ID:x9wGlHBM0 しょうもないキャラ作りすんな
答える気なくすわ
答える気なくすわ
261はちみつ餃子 ◆8X2XSCHEME (ワッチョイ fb32-9AE0)
2026/02/09(月) 08:41:59.71ID:oKB0cnr50 >>259
先述の繰り返しになるが処理系のデフォルトが無難と考えている。
開発のインフラを作っている人たちの判断を信頼する。
GCC が C23 で Clang が C17 だからそのくらいが現在の相場だってことだ。
その上で特にプロジェクトの事情があるなら配慮する。
結果的に新しい機能を使わずに済んで C99 としてもコンパイル可能であるようなものを書くことはあるかもしれないけど C99 の機能を使わないということは無いので C89 は論外になるな。
先述の繰り返しになるが処理系のデフォルトが無難と考えている。
開発のインフラを作っている人たちの判断を信頼する。
GCC が C23 で Clang が C17 だからそのくらいが現在の相場だってことだ。
その上で特にプロジェクトの事情があるなら配慮する。
結果的に新しい機能を使わずに済んで C99 としてもコンパイル可能であるようなものを書くことはあるかもしれないけど C99 の機能を使わないということは無いので C89 は論外になるな。
262デフォルトの名無しさん (ワッチョイ c669-4h5I)
2026/02/09(月) 09:12:03.70ID:XZkkTiMB0 あなたもわたしもCCG
263デフォルトの名無しさん (ワッチョイ b2f9-22yv)
2026/02/09(月) 09:31:53.29ID:H1BUQ21N0 それはCGC
264デフォルトの名無しさん (ワッチョイ fff6-4kCU)
2026/02/09(月) 09:54:21.23ID:tiXp1BFN0265デフォルトの名無しさん (スフッ Sd02-Vk33)
2026/02/11(水) 05:13:35.33ID:QMIW0ukQd /::::)(:::)(:::::::::::)(::::::^::::::::::\
(::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::\
/::::::::::/ノ::::::::ノ::::::::ヽ:人::::::::::ヽ:::::::::::::::)
(::::::::::/ ):::ノ::::ノ ) ソ ヾ::::::::::::丶::::ヽ
(:::::::::/ 彡 ノ ノ :: 彡:/)) ::::::::::)
(::::::::::/彡彡彡彡彡 ミミミミミミミ :::::::::::)
( :::::::// ̄ ̄ ̄ ̄ヽ===/ ̄ ̄ ̄ ̄ヽ |:::::::::)
| =ロ -=・=- ‖ ‖ -=・=- ロ===
|:/ ‖ / /ノ ヽ \ ‖ ヽ|ヽ _________
|/ ヽ`======/ .⌒ ` ========ノ. ..| | /
.( 。 ・:・‘。c .(● ●) ;”・u。*@・:、‘)ノ /
( 。;・0”*・o; / :::::l l::: ::: \ :。・;%:・。o ) < プロデジ フルスタックエンジニア 😤😤😤😤😤👎👎👎
(; 8@ ・。:// ̄ ̄ ̄ ̄\:\.”・:。;・’0.) \
.\。・:%,: )::::|.  ̄ ̄ ̄ ̄ | ::::(: o`*:c /.. \_________
\ ::: o :::::::::\____/ :::::::::: /
(ヽ ヽ:::: _- ::::: ⌒:: :::::::: -_ ノ
\丶\_::_:::::_:::: :::::_/:::: /
| \ \ ::::::::::: :::::::::: ::: ::__/ |
 ̄ ̄\ 丶  ̄ ̄ ̄ ̄ ̄ ̄ ̄ / ̄ ̄
(::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::\
/::::::::::/ノ::::::::ノ::::::::ヽ:人::::::::::ヽ:::::::::::::::)
(::::::::::/ ):::ノ::::ノ ) ソ ヾ::::::::::::丶::::ヽ
(:::::::::/ 彡 ノ ノ :: 彡:/)) ::::::::::)
(::::::::::/彡彡彡彡彡 ミミミミミミミ :::::::::::)
( :::::::// ̄ ̄ ̄ ̄ヽ===/ ̄ ̄ ̄ ̄ヽ |:::::::::)
| =ロ -=・=- ‖ ‖ -=・=- ロ===
|:/ ‖ / /ノ ヽ \ ‖ ヽ|ヽ _________
|/ ヽ`======/ .⌒ ` ========ノ. ..| | /
.( 。 ・:・‘。c .(● ●) ;”・u。*@・:、‘)ノ /
( 。;・0”*・o; / :::::l l::: ::: \ :。・;%:・。o ) < プロデジ フルスタックエンジニア 😤😤😤😤😤👎👎👎
(; 8@ ・。:// ̄ ̄ ̄ ̄\:\.”・:。;・’0.) \
.\。・:%,: )::::|.  ̄ ̄ ̄ ̄ | ::::(: o`*:c /.. \_________
\ ::: o :::::::::\____/ :::::::::: /
(ヽ ヽ:::: _- ::::: ⌒:: :::::::: -_ ノ
\丶\_::_:::::_:::: :::::_/:::: /
| \ \ ::::::::::: :::::::::: ::: ::__/ |
 ̄ ̄\ 丶  ̄ ̄ ̄ ̄ ̄ ̄ ̄ / ̄ ̄
266デフォルトの名無しさん (ワッチョイ 5f01-P7Fh)
2026/02/11(水) 07:30:53.89ID:piVnUKvQ0 よっぽど頭にきちゃったんだね
267デフォルトの名無しさん (ワッチョイ 0610-xnUM)
2026/02/11(水) 11:14:21.39ID:yCllJHNQ0 一緒に仕事したくないな
268デフォルトの名無しさん (ワッチョイ 62fd-LnBe)
2026/02/11(水) 19:27:16.74ID:dYVZoeHv0 Turbo C使いの俺には死角はなかった
269デフォルトの名無しさん (ワッチョイ 0610-xnUM)
2026/02/11(水) 23:31:50.87ID:yCllJHNQ0 懐かしい世界
270デフォルトの名無しさん (JP 0H22-VpFx)
2026/02/13(金) 13:25:36.67ID:5s43JTa6H 明日は晴れるかな
https://ideone.com/TW6fsG
https://ideone.com/TW6fsG
271デフォルトの名無しさん (ワッチョイ ff10-zE5Q)
2026/02/15(日) 13:50:59.15ID:OxykBfDr0 ポカポカな天気
272デフォルトの名無しさん (ワッチョイ 7f25-jhY7)
2026/03/06(金) 19:24:36.21ID:xIu+t86J0 書き込みテスト
273デフォルトの名無しさん (JP 0H9f-gxvf)
2026/03/07(土) 03:21:03.26ID:JBgvHmdsH ioになったんか
274デフォルトの名無しさん (ワッチョイ 7fa9-7cSS)
2026/03/07(土) 19:54:35.18ID:eNOqReUM0 sys/io.h のこと?
275デフォルトの名無しさん (ワッチョイ ee5a-H6EY)
2026/03/14(土) 17:54:55.59ID:yRZkyjul0 https://gigazine.net/news/20260311-tony-hoare-passed-away/
ホーア先生亡くなってしまったね.
ホーア先生亡くなってしまったね.
276デフォルトの名無しさん (ワッチョイ bfc2-XSi/)
2026/03/14(土) 18:23:17.33ID:SlICVWZ+0 「ソフトウェアを設計するには、2通りの方法がある。1つは、とてもシンプルに設計して、明らかに欠陥がないようにすること。もう1つは、とても複雑に設計して明らかな欠陥がないようにすることだ」
誰か説明して。前半はなんとなく分かるが。
誰か説明して。前半はなんとなく分かるが。
277デフォルトの名無しさん (ワッチョイ 1a86-h/pM)
2026/03/14(土) 18:40:43.80ID:1T7CwWYt0 説明も何もそのままじゃん
278デフォルトの名無しさん (ワッチョイ bfc2-XSi/)
2026/03/14(土) 18:44:36.41ID:SlICVWZ+0 オラは凡人なので、複雑な設計と無欠陥を両立できません笑
279デフォルトの名無しさん (ラクッペペ MMe6-5lvg)
2026/03/14(土) 19:14:48.11ID:6I30ZIkyM 「明らかじゃない欠陥」が噴出するのさ
280デフォルトの名無しさん (ワッチョイ ee5a-H6EY)
2026/03/14(土) 19:16:59.74ID:yRZkyjul0 明らかな欠陥がないようにする,って書いてあるじゃん.
281デフォルトの名無しさん (ラクッペペ MMe6-5lvg)
2026/03/14(土) 19:28:13.71ID:SshLSMzMM >>280
俺に言ってるんだったら論理的思考力がプログラマレベルに達していないぞ
俺に言ってるんだったら論理的思考力がプログラマレベルに達していないぞ
282デフォルトの名無しさん (ササクッテロラ Spb3-AjTm)
2026/03/14(土) 19:29:27.07ID:2GHal+1fp 潜在的な欠陥とか無い様に全ての条件で確認すんだよ
283デフォルトの名無しさん (ラクッペペ MMe6-rKHk)
2026/03/14(土) 20:07:58.56ID:qtK1wVLwM > 明らかに欠陥がないようにする
部屋には一切物を置かず、ごきぶりが居ないことは見れば分かる
> 明らかな欠陥がないようにする
部屋を複雑に設計しゴキブリが侵入する余地を与えない
出入りする者、物においてもしっかりとしたチェックを行いゴキブリを連れ込まない
部屋には一切物を置かず、ごきぶりが居ないことは見れば分かる
> 明らかな欠陥がないようにする
部屋を複雑に設計しゴキブリが侵入する余地を与えない
出入りする者、物においてもしっかりとしたチェックを行いゴキブリを連れ込まない
284デフォルトの名無しさん (ワッチョイ bfc2-XSi/)
2026/03/14(土) 21:02:23.33ID:SlICVWZ+0 複雑なロジック設計して、
他の人には一体何をするためなのか
意味不明なプログラムなら
書いたことはある笑
他の人には一体何をするためなのか
意味不明なプログラムなら
書いたことはある笑
285はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 234b-6+qa)
2026/03/14(土) 21:04:32.37ID:NF0u1Pvr0286デフォルトの名無しさん (スップ Sd2a-Z+aU)
2026/03/14(土) 21:28:16.72ID:Dj+Yn6DFd おいおい大丈夫かよこのコテハン
ホーアを知らないで言ってんのか?
そーいうことじゃないよw
ホーアを知らないで言ってんのか?
そーいうことじゃないよw
287はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 234b-6+qa)
2026/03/14(土) 22:10:03.40ID:NF0u1Pvr0288デフォルトの名無しさん (スップ Sddb-0zda)
2026/03/15(日) 08:26:57.66ID:jsbn2nWad ガチもんの人かヤバw
289デフォルトの名無しさん (スップ Sddb-0zda)
2026/03/15(日) 08:43:28.35ID:jsbn2nWad >>276
その書き方でもまあ分かるけど原文読んだ方がいいよ
明らか「に」欠点がないのと明らか「な」欠点がないは違う
包有関係考えれば分かるけど噛み砕いて言えば難しいバグがあるってこと
シンプルに作れば正しいかどうかは目で見て分かるが、複雑だとそれが出来ず正しいかどうか確かめたかったら例えば数学的に正しさを証明しないといけなくなったりする
複雑さは品質の証明にならないってこと、単純な設計をする困難さなんかを言ってる
もうちょい短くすれば要は複雑さは設計の失敗のサインだって意味の文章だよ
その書き方でもまあ分かるけど原文読んだ方がいいよ
明らか「に」欠点がないのと明らか「な」欠点がないは違う
包有関係考えれば分かるけど噛み砕いて言えば難しいバグがあるってこと
シンプルに作れば正しいかどうかは目で見て分かるが、複雑だとそれが出来ず正しいかどうか確かめたかったら例えば数学的に正しさを証明しないといけなくなったりする
複雑さは品質の証明にならないってこと、単純な設計をする困難さなんかを言ってる
もうちょい短くすれば要は複雑さは設計の失敗のサインだって意味の文章だよ
290デフォルトの名無しさん (アウアウウー Sab3-sFF2)
2026/03/15(日) 10:54:40.25ID:qaLJXPfya IQは日本語読解力に比例するらしいが正しいと思える瞬間な
291デフォルトの名無しさん (ワッチョイ 5725-dwnP)
2026/03/15(日) 11:31:21.45ID:741O9PJi0 日本語読解力の問題なら、
プログラムの話題ではないな
プログラムの話題ではないな
292デフォルトの名無しさん (ワッチョイ b53d-0izT)
2026/03/15(日) 19:45:05.72ID:DIIwvhyj0293デフォルトの名無しさん (ワッチョイ 5725-dwnP)
2026/03/16(月) 00:00:47.50ID:24jtw6uy0 C言語の話題でもないし、
これ以上続けるなら
プログラム設計のスレがふさわしいよ
これ以上続けるなら
プログラム設計のスレがふさわしいよ
294デフォルトの名無しさん (ワッチョイ b54b-0izT)
2026/03/16(月) 07:15:07.08ID:2xB1GT0x0295デフォルトの名無しさん (ワッチョイ b593-ohi4)
2026/03/16(月) 09:26:08.22ID:LCnHyhYd0 このコテハンの人、規格の引用みたいな誰でもできる機械的なことやってるうちはいいけど
ちょっと自分の意見言い出すととたんにトンチンカンっつーかズレたこと言い始めるよねw
ちょっと自分の意見言い出すととたんにトンチンカンっつーかズレたこと言い始めるよねw
296デフォルトの名無しさん (ワッチョイ b528-0izT)
2026/03/16(月) 13:21:47.33ID:2xB1GT0x0 >>292訂正
✕ ハーフリンガル
○ セミリンガル
>>295
今回はお前の方が頓珍漢。
> 規格の引用みたいな誰でもできる機械的なこと
誰でも出来るわけではない。かなり詳しいのは確か。
文句があるならお前も参戦してどちらがより正確かを競うべき。(=ネットは衆人環視なのだから、衆人に役立つ方向に競え)
ゆとりZはすぐに人格ガーの方向に持っていくから、(=衆人にとってまるで役に立たないマウント取りに勤しむので)
SNS上で役に立つ議論が出来ず、彼ら世代だけでまともな議論場を確保できない。
だから老人ホームな5chに来ざるを得なくなってるのを反省し、行動を改めるべき。
ゆとりZだけの場所で5chと同じことが出来たら、彼らにとっても幸せだと思うんだけどね。
(ただし根っこはゆとりZの「自分のお気持ち>>>技術論《正しいかどうか》」な価値観だから本質的にかなり無理だが)
して、289が正しいと仮定して、それを276と二言で表現した場合、
それを285のように説明するのは間違いでもなく、不適切でもない。
276だけだと、「複雑な設計では明らかではない欠陥はあってもいいのか?」が曖昧でツッコミたくなるが、
289と276のこの点への解釈は揃ってるし。
というかこの辺で手こずるようなら、プログラミング以前に国語をやり直すべき。
✕ ハーフリンガル
○ セミリンガル
>>295
今回はお前の方が頓珍漢。
> 規格の引用みたいな誰でもできる機械的なこと
誰でも出来るわけではない。かなり詳しいのは確か。
文句があるならお前も参戦してどちらがより正確かを競うべき。(=ネットは衆人環視なのだから、衆人に役立つ方向に競え)
ゆとりZはすぐに人格ガーの方向に持っていくから、(=衆人にとってまるで役に立たないマウント取りに勤しむので)
SNS上で役に立つ議論が出来ず、彼ら世代だけでまともな議論場を確保できない。
だから老人ホームな5chに来ざるを得なくなってるのを反省し、行動を改めるべき。
ゆとりZだけの場所で5chと同じことが出来たら、彼らにとっても幸せだと思うんだけどね。
(ただし根っこはゆとりZの「自分のお気持ち>>>技術論《正しいかどうか》」な価値観だから本質的にかなり無理だが)
して、289が正しいと仮定して、それを276と二言で表現した場合、
それを285のように説明するのは間違いでもなく、不適切でもない。
276だけだと、「複雑な設計では明らかではない欠陥はあってもいいのか?」が曖昧でツッコミたくなるが、
289と276のこの点への解釈は揃ってるし。
というかこの辺で手こずるようなら、プログラミング以前に国語をやり直すべき。
297デフォルトの名無しさん (ブーイモ MMf3-2zvD)
2026/03/16(月) 18:53:32.05ID:fIEXpCafM AI時代は国語力とか言うポストがバズったりしてるけど国語力って幅広すぎだよな
効率的なトークン生成スキルといったほうがいい
効率的なトークン生成スキルといったほうがいい
298デフォルトの名無しさん (ワッチョイ 4717-QfA5)
2026/03/16(月) 22:50:07.11ID:ciRQJB3O0 論理的思考ができるかどうか、プログラムでなく文章を書かせてみる、ようなことはよく言われるね
299デフォルトの名無しさん (ワッチョイ 314e-fRLJ)
2026/03/16(月) 23:06:12.51ID:OpaIgQRr0 IT土方なら文章でわかるかもな
300デフォルトの名無しさん (スップ Sd03-0zda)
2026/03/17(火) 09:33:33.10ID:f405Oqv1d 292や296も変な文章に見えるけどなんかもうキリがないなw
誰か指摘してあげなよ
誰か指摘してあげなよ
301デフォルトの名無しさん (ワッチョイ b586-0izT)
2026/03/18(水) 06:55:17.32ID:kfgCJpmw0 >>300
ゆとりZキチガイは5ch止めろ。
というかね、ゆとりZ的精神的勝利法なんて何度目だ?過ぎて。
こいつら本当に進歩せず、幼稚なままだ。
日本語が出来ないお前には読めないのだろうが、
俺の文章は普通の知能な日本人には確実に通じるレベルだし、多分お前よりもだいぶましでもある。
自分で詳細に論理的説明も出来ず、また日本語が拙い事がバレるので、自分では指摘出来ないんだろ。
出来るつもりなら書けばいいだけ。お前が書かないとお前が書ける事の証明にはならない。
そしてその書いた内容が妥当なら、お前に同調する連中も現れ、お前の望む方向に流れるだろうさ。
これが本来の自由な議論場の有り様。5chはずっとこうしてきた。
何も言えない奴に存在価値は無い。
本当に、ゆとりZは死ぬべきだよ。
5chもゆとりZが居なければ、もっといい場所になるのに。
(つってもこの文章も国語力無いゆとりZ連中には通じないのは分かってるが…)
ゆとりZキチガイは5ch止めろ。
というかね、ゆとりZ的精神的勝利法なんて何度目だ?過ぎて。
こいつら本当に進歩せず、幼稚なままだ。
日本語が出来ないお前には読めないのだろうが、
俺の文章は普通の知能な日本人には確実に通じるレベルだし、多分お前よりもだいぶましでもある。
自分で詳細に論理的説明も出来ず、また日本語が拙い事がバレるので、自分では指摘出来ないんだろ。
出来るつもりなら書けばいいだけ。お前が書かないとお前が書ける事の証明にはならない。
そしてその書いた内容が妥当なら、お前に同調する連中も現れ、お前の望む方向に流れるだろうさ。
これが本来の自由な議論場の有り様。5chはずっとこうしてきた。
何も言えない奴に存在価値は無い。
本当に、ゆとりZは死ぬべきだよ。
5chもゆとりZが居なければ、もっといい場所になるのに。
(つってもこの文章も国語力無いゆとりZ連中には通じないのは分かってるが…)
302デフォルトの名無しさん (ワッチョイ b586-0izT)
2026/03/18(水) 06:56:17.23ID:kfgCJpmw0 まあ俺はこの手のメタ話は割と好きなので参戦してるが、
ついでにかねがねコミュ障だと感じてるお前らに対し、俺的流れの理解を説明しておくと、
ゆとりZ276: これ教えて
その他大勢: いやまんま過ぎて何が分からないのか分からん
(超絶豆腐メンタルなゆとりZにとっては285は十分に暴言であり攻撃だと受け止められた!!!)
ゆとりZ295: ムキー!!!285はぼくをこうげきしてきた!!!はんげきしてやる!!!トンチンカン!!!
俺296: いやお前の方が頓珍漢
ゆとりZ: 285をようごする296もきにいらない!!!こうげきしてやる!!!296もにほんごがおかしい!!!
(元々日本語の問題だと言われたので、
自分の日本語がおかしいのではなく、他人の日本語がおかしいとの他責思考により、
攻撃箇所が295での人格→300での日本語にシフトした)
ついでにかねがねコミュ障だと感じてるお前らに対し、俺的流れの理解を説明しておくと、
ゆとりZ276: これ教えて
その他大勢: いやまんま過ぎて何が分からないのか分からん
(超絶豆腐メンタルなゆとりZにとっては285は十分に暴言であり攻撃だと受け止められた!!!)
ゆとりZ295: ムキー!!!285はぼくをこうげきしてきた!!!はんげきしてやる!!!トンチンカン!!!
俺296: いやお前の方が頓珍漢
ゆとりZ: 285をようごする296もきにいらない!!!こうげきしてやる!!!296もにほんごがおかしい!!!
(元々日本語の問題だと言われたので、
自分の日本語がおかしいのではなく、他人の日本語がおかしいとの他責思考により、
攻撃箇所が295での人格→300での日本語にシフトした)
303デフォルトの名無しさん (ワッチョイ b586-0izT)
2026/03/18(水) 06:56:50.22ID:kfgCJpmw0 まあよくある馬鹿狂犬ゆとりZだ。
一向に論理的フェーズに突入しない。多分今後ともそうだろう。
そもそも言葉とはコミュニケーションの「手段」であり、「目的」ではないので、
通じてるかどうかが最大に重要であって、正しい言葉を、或いは上手い下手も、通じる確率を上げる方策でしかない。
(逆に言えば、通じてれば何でもいい。相手の方言にも、また、誤用にも、場合によっては合わせてもいい)
それで、「目的」の、通じた後に何を得るつもりなのか?が、無いのもこの馬鹿狂犬タイプの特徴。
噛みつく事が目的化してる。いやそうじゃねえだろと。
ゆとリンガル問題、とでも命名しようか。
日本語が出来ず、論理的思考力もない、ゆとりZによって引き起こされる問題。(なおゆとりZの大半が該当する)
拗らせた承認欲求と他責思考により、ハイセンシティブピープーとなっており、過度に過敏で、やたらと攻撃されたと見なし、
反撃する事が目的化して、意味もない方向にどんどん流れていく。
仮に285の人格や俺の日本語に問題があったとしても、それが、当初の
> もう1つは、とても複雑に設計して明らかな欠陥がないようにすることだ
を理解する事には繋がりようがなく、掘り下げる意味がない。
この手の、「反論してきた人や内容に、微々であれ問題が存在したら、これまでの反論は全部無意味!!!」的な、
論点をどんどんすり替えていって、その途中でなんとか瑕疵を見いだし、俺負けてない!!!と強弁するのは、
典型的な詭弁論法で、名前も付いてたはず(忘れたけど)。ただまあ、ひろゆきがよくやってるのがこれだが。
一向に論理的フェーズに突入しない。多分今後ともそうだろう。
そもそも言葉とはコミュニケーションの「手段」であり、「目的」ではないので、
通じてるかどうかが最大に重要であって、正しい言葉を、或いは上手い下手も、通じる確率を上げる方策でしかない。
(逆に言えば、通じてれば何でもいい。相手の方言にも、また、誤用にも、場合によっては合わせてもいい)
それで、「目的」の、通じた後に何を得るつもりなのか?が、無いのもこの馬鹿狂犬タイプの特徴。
噛みつく事が目的化してる。いやそうじゃねえだろと。
ゆとリンガル問題、とでも命名しようか。
日本語が出来ず、論理的思考力もない、ゆとりZによって引き起こされる問題。(なおゆとりZの大半が該当する)
拗らせた承認欲求と他責思考により、ハイセンシティブピープーとなっており、過度に過敏で、やたらと攻撃されたと見なし、
反撃する事が目的化して、意味もない方向にどんどん流れていく。
仮に285の人格や俺の日本語に問題があったとしても、それが、当初の
> もう1つは、とても複雑に設計して明らかな欠陥がないようにすることだ
を理解する事には繋がりようがなく、掘り下げる意味がない。
この手の、「反論してきた人や内容に、微々であれ問題が存在したら、これまでの反論は全部無意味!!!」的な、
論点をどんどんすり替えていって、その途中でなんとか瑕疵を見いだし、俺負けてない!!!と強弁するのは、
典型的な詭弁論法で、名前も付いてたはず(忘れたけど)。ただまあ、ひろゆきがよくやってるのがこれだが。
304デフォルトの名無しさん (ワッチョイ b586-0izT)
2026/03/18(水) 06:57:20.98ID:kfgCJpmw0 議論は、常に原点を念頭に置き、目的を達成する事を目指すべき。
再度言うが、仮に285や俺に多大な問題があったとしても、元の疑問の解決には繋がらないだろ。
そもそも276で、
276: 後半部分が分かりません。○○と字面からは読めますが、私は□□だと思うので、矛盾します。私は私が間違ってるとも思えません(キリッ
とでも言えば、ゆとりZ的にも気に入らない流れにはならなかったはず。
この辺も、他責思考で、何でもかんでも他人のせいにしてるから上達しない。
いやお前だけの努力でも完全回避出来たよねと。
ただまあ、このタイプが過半数だから、ゆとりZな場所ではどうやってもまともな議論なんて出来る訳無いのは分かる。
しかし5chでゆとりZ全開は邪魔でしかないので、俺は撲滅するべきだと思ってる。
(だからこうして賛同者を募るべく一々書いてる)
さらについでに言っておくと、
「明らか『に』」「明らか『な』」の違いが読めない国語の問題だと捉えた大半の人に対し、
285だけは、日本語の問題はクリアしてて、その後の矛盾に見える点について回答をしてる。
つまり、285だけは質問者276のレベルが一つ上だと認識して回答してるわけで、
承認欲求拗らせて「ばかにするな!!!」と噛みつくにしても、相手を間違えてる。
自分を一番高く評価してくれた人に噛みついてどうするよ?逆だろと。
回答の口調がゆとりZ的には気に入らなかったのだろうけどもね。
この辺が、ゆとりZがまるで表面的な所しか見えておらず、コミュ障な所だね。
再度言うが、仮に285や俺に多大な問題があったとしても、元の疑問の解決には繋がらないだろ。
そもそも276で、
276: 後半部分が分かりません。○○と字面からは読めますが、私は□□だと思うので、矛盾します。私は私が間違ってるとも思えません(キリッ
とでも言えば、ゆとりZ的にも気に入らない流れにはならなかったはず。
この辺も、他責思考で、何でもかんでも他人のせいにしてるから上達しない。
いやお前だけの努力でも完全回避出来たよねと。
ただまあ、このタイプが過半数だから、ゆとりZな場所ではどうやってもまともな議論なんて出来る訳無いのは分かる。
しかし5chでゆとりZ全開は邪魔でしかないので、俺は撲滅するべきだと思ってる。
(だからこうして賛同者を募るべく一々書いてる)
さらについでに言っておくと、
「明らか『に』」「明らか『な』」の違いが読めない国語の問題だと捉えた大半の人に対し、
285だけは、日本語の問題はクリアしてて、その後の矛盾に見える点について回答をしてる。
つまり、285だけは質問者276のレベルが一つ上だと認識して回答してるわけで、
承認欲求拗らせて「ばかにするな!!!」と噛みつくにしても、相手を間違えてる。
自分を一番高く評価してくれた人に噛みついてどうするよ?逆だろと。
回答の口調がゆとりZ的には気に入らなかったのだろうけどもね。
この辺が、ゆとりZがまるで表面的な所しか見えておらず、コミュ障な所だね。
305デフォルトの名無しさん (ワッチョイ b586-0izT)
2026/03/18(水) 07:12:26.51ID:kfgCJpmw0 >>298
それも逆(十分条件)だからフィルタにしかならん(でもやらないよりましだが)
論理的思考が出来ない→論理的文章を書ける訳がない
論理的思考は出来るが論理的文章を書けない=ただのコミュ障 276も多分こっち
本来は論理能力は数学/物理で鍛えられるので、
昔の「最低限理系にプログラミングさせる」方針は概ね間違っていなかったが、
受験産業の結果、記憶力『だけ』で突破する受験特化型馬鹿が結構増えたのと、
そもそもプログラミング自体に数学/物理そのものは必要ないので、
「理系→プログラミング適正あり」のフィルタは迷走気味
とはいえ、「論理的文章を書ける→プログラミング適正あり」フィルタは、さらに酷いと思うけど
それも逆(十分条件)だからフィルタにしかならん(でもやらないよりましだが)
論理的思考が出来ない→論理的文章を書ける訳がない
論理的思考は出来るが論理的文章を書けない=ただのコミュ障 276も多分こっち
本来は論理能力は数学/物理で鍛えられるので、
昔の「最低限理系にプログラミングさせる」方針は概ね間違っていなかったが、
受験産業の結果、記憶力『だけ』で突破する受験特化型馬鹿が結構増えたのと、
そもそもプログラミング自体に数学/物理そのものは必要ないので、
「理系→プログラミング適正あり」のフィルタは迷走気味
とはいえ、「論理的文章を書ける→プログラミング適正あり」フィルタは、さらに酷いと思うけど
306デフォルトの名無しさん (ワッチョイ 314e-fRLJ)
2026/03/18(水) 08:40:59.80ID:rmXkchhG0 すげー、このスレで一番論理的思考ができる人じゃん
307デフォルトの名無しさん (JP 0H63-sFF2)
2026/03/18(水) 10:16:34.98ID:TZQeXjH7H 3行でまとめろ
308デフォルトの名無しさん (ワッチョイ 5725-dwnP)
2026/03/18(水) 11:15:14.34ID:TdcdOneP0 昔は1行で書いてたな
プログラムの話だが
プログラムの話だが
309デフォルトの名無しさん (ワッチョイ b5c2-0izT)
2026/03/18(水) 13:47:40.37ID:kfgCJpmw0 >>307
俺ら世代での「BrokenEnglish」問題が、ゆとりZでは「Broken日本語」問題になった
で、俺は同様に、Brokenでもしゃべった方がマシ、と言ってる
そして、よりによって、一番高く評価してくれた人に噛み付くのは馬鹿すぎ
と、ふと思ったが、もしかしてお前ら、
上記の一行目だけで全てが瓦解し、一瞬で、長文内容と同程度の詳細度で理解可能だったか?
だとすると、俺がお前らを過小評価し過ぎてた事になる
もしお前らの大半が「一行目だけ」で付いてこれるなら、この議論速度で突っ走ってみても良い
(勿論この場合は、通じない馬鹿は全員放置で追加説明もしない)
俺ら世代での「BrokenEnglish」問題が、ゆとりZでは「Broken日本語」問題になった
で、俺は同様に、Brokenでもしゃべった方がマシ、と言ってる
そして、よりによって、一番高く評価してくれた人に噛み付くのは馬鹿すぎ
と、ふと思ったが、もしかしてお前ら、
上記の一行目だけで全てが瓦解し、一瞬で、長文内容と同程度の詳細度で理解可能だったか?
だとすると、俺がお前らを過小評価し過ぎてた事になる
もしお前らの大半が「一行目だけ」で付いてこれるなら、この議論速度で突っ走ってみても良い
(勿論この場合は、通じない馬鹿は全員放置で追加説明もしない)
310デフォルトの名無しさん (ワッチョイ b5c2-0izT)
2026/03/18(水) 13:52:10.82ID:kfgCJpmw0311デフォルトの名無しさん (ワッチョイ b545-jncY)
2026/03/18(水) 15:09:21.83ID:vVWG3GDF0 地下室の手記
312デフォルトの名無しさん (ワッチョイ b5fb-ohi4)
2026/03/18(水) 15:31:18.79ID:yN1oNisL0 292は比例の話をなぜか因果関係の話にしてんのがおかしいね
AがBに比例してるってことから言えるのはBもAに比例してるってことだけで因果関係がどうたらとか何も関係ない
数学的にはY=kXの時にX=(1/k)Yだから逆が言えるのはkが0じゃない時だけとかあんだろうがまあここでは関係ないわな
1行目からおかしいからその後も妙なことを長々言い続けるはめになってる
AがBに比例してるってことから言えるのはBもAに比例してるってことだけで因果関係がどうたらとか何も関係ない
数学的にはY=kXの時にX=(1/k)Yだから逆が言えるのはkが0じゃない時だけとかあんだろうがまあここでは関係ないわな
1行目からおかしいからその後も妙なことを長々言い続けるはめになってる
313デフォルトの名無しさん (ワッチョイ b5fb-ohi4)
2026/03/18(水) 15:35:53.95ID:yN1oNisL0 296はなんで「今回は」なんて付けたんだろうなw
そんなものつけなくてもいいどころか、後段を見れば付けない方がいいのにこういうのがついてしまう
なんのかんの言ってもコテハンの事を普段どう思ってたのかがつい出ちゃってるのか、それとも自分の思ってることを言語化する能力が低いのか
どっちにしても奇妙な文章だよ
そんなものつけなくてもいいどころか、後段を見れば付けない方がいいのにこういうのがついてしまう
なんのかんの言ってもコテハンの事を普段どう思ってたのかがつい出ちゃってるのか、それとも自分の思ってることを言語化する能力が低いのか
どっちにしても奇妙な文章だよ
314デフォルトの名無しさん (アウアウウー Saf1-QfA5)
2026/03/19(木) 12:39:01.05ID:O0X2x0/da シフトJIS混じりの文字列を扱うには、charと unsigned charのどちらが良いですか?
315デフォルトの名無しさん (ササクッテロラ Spb5-QfA5)
2026/03/19(木) 12:48:14.25ID:Qz08DmPxp UTF16に固定しちまえ
316デフォルトの名無しさん (ワッチョイ 47ae-7LUQ)
2026/03/19(木) 13:49:57.46ID:5jXM7mMO0 >>314
signedの方が良いことって何かあるかね?
signedの方が良いことって何かあるかね?
317デフォルトの名無しさん (ワッチョイ b56a-L5FI)
2026/03/19(木) 14:45:49.05ID:4hgHJHDE0 >>312
正解w
正解w
318はちみつ餃子 ◆8X2XSCHEME (ワッチョイ dd46-lAjv)
2026/03/19(木) 15:05:35.71ID:gt0RjN3b0 念のために補足しておくと、 char は signed char とは違う型として区別される。
319デフォルトの名無しさん (ワッチョイ 474b-QfA5)
2026/03/19(木) 16:01:35.62ID:5HS3fMU40 unsignedだと比較がしやすいことはないですか?
320デフォルトの名無しさん (アウアウウー Saf1-QfA5)
2026/03/19(木) 16:02:41.07ID:SacMtX4aa charの符号の有無は未定義?のようですね
321はちみつ餃子 ◆8X2XSCHEME (ワッチョイ b5f8-AYvS)
2026/03/19(木) 17:22:48.95ID:UR+Iiml10322はちみつ餃子 ◆8X2XSCHEME (ワッチョイ b5f8-AYvS)
2026/03/19(木) 17:50:04.82ID:UR+Iiml10 Shift_JIS を含む文字列を使うにはたぶん unsigned char が好ましいことが多いと思う。
ただ、有効型に関するルールとして整数型をそれの符号付・符号無としてアクセスするのは許されるという特別扱いがある。
(読み替えは型変換とは異なるので注意。)
つまり必要に応じて同じ文字配列に対して char[] としてアクセスしても unsgined char[] としてアクセスしても構わないので必ずしも最初から決める必要はない。
一貫したほうが分かり易いとは思うんだけど strcpy とかの文字列系の基本的な関数は char で扱ってたりするから……
ただ、有効型に関するルールとして整数型をそれの符号付・符号無としてアクセスするのは許されるという特別扱いがある。
(読み替えは型変換とは異なるので注意。)
つまり必要に応じて同じ文字配列に対して char[] としてアクセスしても unsgined char[] としてアクセスしても構わないので必ずしも最初から決める必要はない。
一貫したほうが分かり易いとは思うんだけど strcpy とかの文字列系の基本的な関数は char で扱ってたりするから……
323デフォルトの名無しさん (ワッチョイ 47f7-AAAR)
2026/03/19(木) 21:35:14.78ID:J1XY71+k0324はちみつ餃子 ◆8X2XSCHEME (ワッチョイ b5f8-AYvS)
2026/03/19(木) 21:49:47.46ID:UR+Iiml10 >>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 から対応箇所を抜粋
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 から対応箇所を抜粋
326デフォルトの名無しさん (ワッチョイ 47c8-QfA5)
2026/03/20(金) 12:19:30.51ID:b6NhfI2V0 算術的に扱わないなら符号はないほうがよいというのが僕の考えで
今回はじめて知ったことですが、charの符号の有無は処理系定義というところが話を曖昧にしてるのですかね
算術的に扱わない場合の文字に符号があることにも違和感があるし、wchar_tもunsigned shortだったので、unsigned charでいくことにします
今回はじめて知ったことですが、charの符号の有無は処理系定義というところが話を曖昧にしてるのですかね
算術的に扱わない場合の文字に符号があることにも違和感があるし、wchar_tもunsigned shortだったので、unsigned charでいくことにします
327デフォルトの名無しさん (ワッチョイ 4747-QfA5)
2026/03/20(金) 12:24:26.97ID:b6NhfI2V0 wchar_tを使っているわけではないです
文字を符号なしと扱うことを参考にするという意味です
文字を符号なしと扱うことを参考にするという意味です
328デフォルトの名無しさん (JP 0H63-sFF2)
2026/03/20(金) 13:06:16.51ID:iXoBkJ/YH >strcpy とかの文字列系の基本的な関数は char で扱ってたりする
符号の有無が原因だったかどうか記憶が曖昧だけど
警告が出まくってうざいときがある気がする
符号の有無が原因だったかどうか記憶が曖昧だけど
警告が出まくってうざいときがある気がする
329はちみつ餃子 ◆8X2XSCHEME (ワッチョイ dd67-lAjv)
2026/03/20(金) 13:14:18.39ID:YhTPujH10 実行基本文字集合の要素は char に格納したときに非負で扱えることを言語の規格として保証してるから扱う文字がその範囲内なら char が符号付きかどうかに関係なく負数は出てこない。
逆に言えば負数になったら面倒くさいことがわかってるからこういう規格になってるんだと思う。
逆に言えば負数になったら面倒くさいことがわかってるからこういう規格になってるんだと思う。
330デフォルトの名無しさん (ワッチョイ c9e4-QfA5)
2026/03/20(金) 17:08:48.36ID:NagjbLQ80 ただしASCIIに限る
331はちみつ餃子 ◆8X2XSCHEME (ワッチョイ b5f8-AYvS)
2026/03/20(金) 17:14:10.19ID:9jqfZseO0 C の規格の上では「実行基本文字集合」として文字を提示しているがその文字集合がどのような文字コードで表現されるかは既定しない。
ASCII (またはそれと互換?) は保証されない。
もしもたとえば EBCDIC を採用しているような環境なら char は必然的に符号無しになるね。
ASCII (またはそれと互換?) は保証されない。
もしもたとえば EBCDIC を採用しているような環境なら char は必然的に符号無しになるね。
332デフォルトの名無しさん (ワッチョイ b5d4-0izT)
2026/03/20(金) 23:20:08.53ID:T171bv6P0 >>326
マヌケ
マヌケ
333デフォルトの名無しさん (ワッチョイ b5cd-2zvD)
2026/03/21(土) 00:45:37.51ID:Tywu3RMI0 符号なしの罠を知ってるかはcの実力を測る試金石ではあるよな
334デフォルトの名無しさん (ワッチョイ bba9-2pC6)
2026/03/21(土) 10:45:44.25ID:CPZyPnYr0 マ抜いてみたが1字しか変わらん。
$ diff 326.txt <(sed 's/ま//g' 326.txt)
7c7
< 算術的に扱わない場合の文字に符号があることにも違和感があるし、wchar_tもunsigned shortだったので、unsigned charでいくことにします
---
> 算術的に扱わない場合の文字に符号があることにも違和感があるし、wchar_tもunsigned shortだったので、unsigned charでいくことにしす
$ diff 326.txt <(sed 's/ま//g' 326.txt)
7c7
< 算術的に扱わない場合の文字に符号があることにも違和感があるし、wchar_tもunsigned shortだったので、unsigned charでいくことにします
---
> 算術的に扱わない場合の文字に符号があることにも違和感があるし、wchar_tもunsigned shortだったので、unsigned charでいくことにしす
335デフォルトの名無しさん (ワッチョイ 5725-dwnP)
2026/03/21(土) 21:54:40.15ID:J3vuIWx/0 文字種で集計するときに、算術的な処理できて便利です。
336デフォルトの名無しさん (アウアウウー Sab3-QfA5)
2026/03/21(土) 23:11:33.45ID:tYP/a5awa >>90
そりゃ、算術的に扱う場合も、ロジカルに扱う場合もあるでしょう
そりゃ、算術的に扱う場合も、ロジカルに扱う場合もあるでしょう
337デフォルトの名無しさん (アウアウウー Sab3-QfA5)
2026/03/21(土) 23:13:50.06ID:tYP/a5awa 壮大にアンカミスったけど、直前のレスに対してでした
338デフォルトの名無しさん (アウアウウー Sab3-QfA5)
2026/03/21(土) 23:15:05.79ID:tYP/a5awa >>335 も僕に対する煽りではないかもね
失礼しました、ごめんなさい
失礼しました、ごめんなさい
339デフォルトの名無しさん (ワッチョイ 1701-75ES)
2026/03/22(日) 17:59:49.49ID:2hKizJjM0 基本的に文字列を扱うならcharを使え
340デフォルトの名無しさん (アウアウウー Sac7-jHxu)
2026/03/22(日) 18:26:26.84ID:3tG0rWHEa tell me why
341デフォルトの名無しさん (ワッチョイ aba9-7xDj)
2026/03/22(日) 19:08:06.37ID:M3MXuE5D0 輝美 (てるみ) にテルミー
342デフォルトの名無しさん (アウアウウー Sac7-jHxu)
2026/03/22(日) 19:32:45.81ID:3tG0rWHEa そこは照美
343デフォルトの名無しさん (ワッチョイ 1701-75ES)
2026/03/22(日) 21:43:43.51ID:2hKizJjM0 標準ライブラリが引数をchar *で受けるのも規格のcharの扱いに曖昧さがあるのも同じ理由に因ってる
特に規格の方はこうすることでコンパイラの作者とユーザーの双方に利が出るよう意図的にこうしてる
わざとはっきりさせないようにするのはCの規格によくある「味を残してる部分」なんだから、お前は何も考えずcharを使え
特に規格の方はこうすることでコンパイラの作者とユーザーの双方に利が出るよう意図的にこうしてる
わざとはっきりさせないようにするのはCの規格によくある「味を残してる部分」なんだから、お前は何も考えずcharを使え
344はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0b13-Hcra)
2026/03/22(日) 22:46:32.72ID:VeLWozt10 char が符号付きかどうかが処理系定義なのはアーキテクチャの都合に合わせられるようにするためだ。
(規格制定時にすでにどちらの処理系も存在したので追認したという消極的な理由もある。)
この場合はアーキテクチャに都合が悪いからといってやるべきことが変わるわけではないのだから曖昧なほうが良いなどという論に説得力は感じないな。
C11 で u8 プレフィクスを付けたとき (文字列を UTF-8 とするとき) に char で扱うルールにしたのは失敗だったと認めて C23 から char8_t 型を導入することになった経緯もある。
互換性を大事にする C で非互換な変更をするくらいには文字が負数になるのはろくでもないミスの元だとはっきりしてる。
(規格制定時にすでにどちらの処理系も存在したので追認したという消極的な理由もある。)
この場合はアーキテクチャに都合が悪いからといってやるべきことが変わるわけではないのだから曖昧なほうが良いなどという論に説得力は感じないな。
C11 で u8 プレフィクスを付けたとき (文字列を UTF-8 とするとき) に char で扱うルールにしたのは失敗だったと認めて C23 から char8_t 型を導入することになった経緯もある。
互換性を大事にする C で非互換な変更をするくらいには文字が負数になるのはろくでもないミスの元だとはっきりしてる。
345デフォルトの名無しさん (ワッチョイ fe3a-jHxu)
2026/03/23(月) 13:08:14.92ID:wdN2pFMo0 strcmpの実装をみると、引数はconst char *で比較はconst char *でとするのが大概ですね
346デフォルトの名無しさん (アウアウウー Sac7-jHxu)
2026/03/23(月) 13:08:59.68ID:Y2m4p/F8a 大概というか、いくつかみた中では漏れなく
347デフォルトの名無しさん (アウアウウー Sac7-jHxu)
2026/03/23(月) 13:25:26.49ID:0ed5u03ca >>345
比較はconst unsigned char *で、の間違いでした^_^;
比較はconst unsigned char *で、の間違いでした^_^;
348デフォルトの名無しさん (ササクッテロラ Spbb-jHxu)
2026/03/23(月) 13:32:20.67ID:DGwKTx8fp Cで文字列操作なんかバグの温床になるだけだから開発言語変えるか仕様変えろw
349デフォルトの名無しさん (ワッチョイ 4e25-7ZW8)
2026/03/23(月) 14:45:03.99ID:5CbFmxEa0 おすすめの言語は何ですか?
350はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 97f8-bKl3)
2026/03/23(月) 14:59:14.86ID:kZjJats90 Rust
351はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 97f8-bKl3)
2026/03/23(月) 17:13:12.62ID:kZjJats90352デフォルトの名無しさん (アウアウウー Sac7-jHxu)
2026/03/23(月) 18:00:32.09ID:FDDLemSHa 規格書まで紐解かないとではなぁ…
MSのページだと、strcmpとマルチバイト用の_mbscmpが併記してあって、後者の引数は const unsigned char * なのも紛らわしい
後者はMS拡張だからそうできるのだろうけど
MSのページだと、strcmpとマルチバイト用の_mbscmpが併記してあって、後者の引数は const unsigned char * なのも紛らわしい
後者はMS拡張だからそうできるのだろうけど
353デフォルトの名無しさん (アウアウウー Sac7-jHxu)
2026/03/23(月) 18:07:37.20ID:FDDLemSHa _mbscmpのシグニチャは最初の問いの答えだな…
354はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0bb4-Hcra)
2026/03/23(月) 21:13:53.55ID:nKsWqljT0 文字列リテラルを char の配列であることにした以上は標準の関数の型をそれと合わせるという判断は自然なものだと思うよ。
全体として見ると変な感じだけど個々に見ると妥当な (少なくとも仕方ない) ように見える。
全体として見ると変な感じだけど個々に見ると妥当な (少なくとも仕方ない) ように見える。
355デフォルトの名無しさん (アウアウウー Sa05-moi/)
2026/03/30(月) 13:23:23.63ID:ayfEzzLua K&Rを引っ張り出して読んでみたけど、たしかにcharの符号の有無は機種によるとあり、比較の関数では、引数はunsigned char *の配列として扱われる、とありますね
一度は目を通したはずですが、すっかり忘れていました
というか、初学者のころにはその意味がよく理解できていなかったのだと思います
一度は目を通したはずですが、すっかり忘れていました
というか、初学者のころにはその意味がよく理解できていなかったのだと思います
356デフォルトの名無しさん (ワッチョイ abaa-DZoT)
2026/03/30(月) 14:55:10.23ID:ocsV6cqQ0 C23attributeの話このスレで見たことないんだけどみんな使ってます?
357デフォルトの名無しさん (ワッチョイ cd34-ZdMb)
2026/05/15(金) 11:53:46.63ID:0MfJ9N7a0 文字を扱うならcharを使うべき
signed charだのunsigned charだのは1バイトの整数型と思った方がいい
signed charだのunsigned charだのは1バイトの整数型と思った方がいい
358デフォルトの名無しさん (ワッチョイ cb25-MLb6)
2026/05/16(土) 17:03:17.75ID:Y8cRFx1T0 7ビットでおさまる文字は良いけれど
上位ビット立っている文字種は困らない?
上位ビット立っている文字種は困らない?
359デフォルトの名無しさん (ブーイモ MM43-yWhV)
2026/05/16(土) 17:30:24.35ID:MrEcfzEPM お前時間止まりすぎだろ
そんな語り尽くされた話を今気づいたかのように話を始めるのやめろ
そんな語り尽くされた話を今気づいたかのように話を始めるのやめろ
360はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 95b0-TjYy)
2026/05/16(土) 21:33:03.91ID:1z78jWA50361デフォルトの名無しさん (ワッチョイ 31e9-KnQf)
2026/05/17(日) 05:40:36.26ID:sl2G9Doe0 K&Rの段階でcharはunsigned型と決めてやればよかったのに
362デフォルトの名無しさん (ワッチョイ 412a-kKnA)
2026/05/17(日) 10:28:52.26ID:PKYvqmfr0 俺に言われても
363デフォルトの名無しさん (ワッチョイ 61e4-9INB)
2026/05/17(日) 10:32:24.67ID:g2mY3F5I0 アセンブラのラッパーだから型がいいかげんなのは仕方ないんだよ
364デフォルトの名無しさん (ワッチョイ 0d4e-V52Z)
2026/05/17(日) 12:31:39.15ID:NJc/Pn5D0 charは8bit型ってことだったんじゃね
365はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 8d8c-+AyZ)
2026/05/17(日) 13:02:09.73ID:M7FvOBLK0 >>364
char のサイズは CHAR_BIT ビットだよ。
char のサイズは CHAR_BIT ビットだよ。
366デフォルトの名無しさん (ワッチョイ 61e4-9INB)
2026/05/17(日) 21:29:19.37ID:g2mY3F5I0 まあ、CPU毎に違うからな
367デフォルトの名無しさん (ワッチョイ 3185-Yf7n)
2026/05/17(日) 22:41:15.83ID:OSZDhB7K0 charが8bitじゃないCPUなんて今現在市販品であるか?
DSPぐらいだろ
DSPぐらいだろ
368デフォルトの名無しさん (アウアウウー Sa39-uJh1)
2026/05/18(月) 09:54:36.44ID:5A1Ebijfa369デフォルトの名無しさん (ササクッテロ Sp75-9INB)
2026/05/18(月) 12:16:57.49ID:uKn8mFhYp >>367
要するにCPU依存なんだって自白してるよね?
要するにCPU依存なんだって自白してるよね?
370デフォルトの名無しさん (ワッチョイ da6a-Rtmz)
2026/05/18(月) 14:38:48.31ID:XfPyXw1F0371364 (ワッチョイ 0d4e-V52Z)
2026/05/18(月) 14:55:23.71ID:NqZygYzK0 話の流れでK&Rの段階の話だと思ったんだけど
そこ頃からCHAR_BITってあった?
そこ頃からCHAR_BITってあった?
372デフォルトの名無しさん (ワッチョイ 3185-Yf7n)
2026/05/18(月) 14:55:54.44ID:79PPBrmT0373デフォルトの名無しさん (ササクッテロ Sp75-9INB)
2026/05/18(月) 15:57:46.69ID:NbVShN5fp >>372
世間知らずは世にあるCPUのどれだけを知ってるのかw
世間知らずは世にあるCPUのどれだけを知ってるのかw
374デフォルトの名無しさん (ワッチョイ 3185-Yf7n)
2026/05/18(月) 16:24:30.64ID:79PPBrmT0375はちみつ餃子 ◆8X2XSCHEME (ワッチョイ b1f8-1UaU)
2026/05/18(月) 16:41:03.71ID:PRckj/wB0 >>371
K&R (初版) を基準とするのだとしたら CHAR_BIT は無いが char が 8 ビットとは限らないことは明記されている。
というか主要 (?) なアーキテクチャでのサイズが表で書かれている。
・ DEC PDP-11
・ Honeywell 6000
・ IBM 370
・ INterdata 8/32
規格化されて以降の文面では char (1 バイト) の大きさは「アドレスを振ることが可能な単位」であることに意味があるように読める。
K&R (初版) を基準とするのだとしたら CHAR_BIT は無いが char が 8 ビットとは限らないことは明記されている。
というか主要 (?) なアーキテクチャでのサイズが表で書かれている。
・ DEC PDP-11
・ Honeywell 6000
・ IBM 370
・ INterdata 8/32
規格化されて以降の文面では char (1 バイト) の大きさは「アドレスを振ることが可能な単位」であることに意味があるように読める。
376デフォルトの名無しさん (ワッチョイ 0d4e-V52Z)
2026/05/18(月) 19:46:06.62ID:NqZygYzK0377デフォルトの名無しさん (アウアウウー Sa39-9INB)
2026/05/18(月) 21:55:45.56ID:3c564FzDa 僕の持ってるK&R2ndの表紙には紙テープを逆コの字に折ってCの文字を表現してたけど、テープは6ビットだったな
378デフォルトの名無しさん (ワッチョイ ae06-0SPA)
2026/05/19(火) 01:09:22.40ID:Ss3L5FPF0 なるほどあれは紙テープだったのか
1バイト6ビットともなるとアルファベットは小文字だけ、記号は一部トライグラフを活用していそうな世界
1バイト6ビットともなるとアルファベットは小文字だけ、記号は一部トライグラフを活用していそうな世界
379はちみつ餃子 ◆8X2XSCHEME (ワッチョイ b1f8-1UaU)
2026/05/19(火) 08:08:14.85ID:ifCZ5qyh0 >>378
昔は出版用 (紙面用) とコンピュータ入力用が違う表現を持つことも普通だった。
Wikipedia のストロッピングの項目の中に ALGOL68 の異なる表現の例があるのが分かり易い。
https://w.wiki/NbxY#Examples_of_different_ALGOL_68_styles
機種ごとの違いが大きい時代だとダイグラフやトライグラフをプログラミング言語に盛り込むよりは機種ごとのストロッピング規約で運用するほうが自然だったかもしれない。
K&R 初版で言及がある四機種を先述 (>>375) したが、この内で Honeywell 6000 が採用していた文字コード (で表せる文字セット) には波括弧が無かったらしくダイグラフでなんとかしていたらしい。
K&R に説明を入れてないのはその時代にはそういうこともあるというのは説明するまでもない普通のことだったからだろう。
もちろん機種個別のマニュアルには書いてあったと思うけど資料を見つけられない……
昔は出版用 (紙面用) とコンピュータ入力用が違う表現を持つことも普通だった。
Wikipedia のストロッピングの項目の中に ALGOL68 の異なる表現の例があるのが分かり易い。
https://w.wiki/NbxY#Examples_of_different_ALGOL_68_styles
機種ごとの違いが大きい時代だとダイグラフやトライグラフをプログラミング言語に盛り込むよりは機種ごとのストロッピング規約で運用するほうが自然だったかもしれない。
K&R 初版で言及がある四機種を先述 (>>375) したが、この内で Honeywell 6000 が採用していた文字コード (で表せる文字セット) には波括弧が無かったらしくダイグラフでなんとかしていたらしい。
K&R に説明を入れてないのはその時代にはそういうこともあるというのは説明するまでもない普通のことだったからだろう。
もちろん機種個別のマニュアルには書いてあったと思うけど資料を見つけられない……
380デフォルトの名無しさん (ワッチョイ 4171-aW1T)
2026/05/19(火) 08:50:19.48ID:vS7k2vNm0381はちみつ餃子 ◆8X2XSCHEME (ワッチョイ b1f8-1UaU)
2026/05/19(火) 09:09:40.19ID:ifCZ5qyh0 >>380
実際にその時代のコンピュータに触ったことはないが、 Scheme (Lisp 系言語のひとつ) に関心ある者として原初の Lisp が実際にはどのように入力されていたのか調べたことがあってストロッピングの概念は知っていた。
個々の機種がどのような文字コードを使っていたのかは今調べた。
実際にその時代のコンピュータに触ったことはないが、 Scheme (Lisp 系言語のひとつ) に関心ある者として原初の Lisp が実際にはどのように入力されていたのか調べたことがあってストロッピングの概念は知っていた。
個々の機種がどのような文字コードを使っていたのかは今調べた。
382デフォルトの名無しさん (ワッチョイ ae06-0SPA)
2026/05/19(火) 12:59:33.64ID:Ss3L5FPF0 >>379
へぇ~、同じ言語にも訛りで対応とは想像できなかった
へぇ~、同じ言語にも訛りで対応とは想像できなかった
383デフォルトの名無しさん (ワッチョイ b1aa-d3wF)
2026/05/19(火) 14:20:55.66ID:XEop7MyW0 Cはなかったが36ビットがワードなコンピュータなら触ったことがある
ASCIIは9ビットでクォーターワードという扱いでワード内に4文字入れていた
TSSもあったがバッチ処理はパンチカードで紙テープはそれ以前の時代
ASCIIは9ビットでクォーターワードという扱いでワード内に4文字入れていた
TSSもあったがバッチ処理はパンチカードで紙テープはそれ以前の時代
384デフォルトの名無しさん (ワッチョイ 4136-ASOF)
2026/05/21(木) 22:14:15.30ID:sThrjq7w0 昔ROM焼いてもらうのに紙テープで持ち込んだ
385デフォルトの名無しさん (ワッチョイ 1993-ziOc)
2026/06/17(水) 21:45:49.47ID:BF9FC81n0 charサイズの話が出ていたけど、1バイトがが8ビットと定義されたのが21世紀に入ってからと言うのに、大いに驚いた。
私は80年代初頭にベーシックマスターJrという機種で入門したのだけど、パーソナルな世界では8ビット以外見たこと無かったので・・・。
それ以外のサイズはどこか遠い世界の話だと思っていた。
そもそもコンピュータは趣味なので業務用機の世界をまるで知らないのだけど、8ビット以外は(今も?)当たり前なの?
それでもコードを使い回せるC言語もすごいなあ。
私は80年代初頭にベーシックマスターJrという機種で入門したのだけど、パーソナルな世界では8ビット以外見たこと無かったので・・・。
それ以外のサイズはどこか遠い世界の話だと思っていた。
そもそもコンピュータは趣味なので業務用機の世界をまるで知らないのだけど、8ビット以外は(今も?)当たり前なの?
それでもコードを使い回せるC言語もすごいなあ。
386デフォルトの名無しさん (ワッチョイ 2e25-GemK)
2026/06/18(木) 19:24:17.43ID:uAQWbfEk0 漢字も一文字1キャラクターで扱える言語があったような
387デフォルトの名無しさん (ワッチョイ 0606-9Vgo)
2026/06/19(金) 00:12:24.64ID:5VF0kmgE0 MSX-BASICでは1バイト文字コード0x80以降に割当てされた漢字や罫線、トランプ記号がそのまま扱えたね
パソコン自体の規格であり、キーボードからの直接入力も可能、GRAPHキーと組合せて押下H/M/S/¥
が時/分/秒/円に対応等だ
パソコン自体の規格であり、キーボードからの直接入力も可能、GRAPHキーと組合せて押下H/M/S/¥
が時/分/秒/円に対応等だ
388デフォルトの名無しさん (ワッチョイ 2e25-GemK)
2026/06/19(金) 00:36:28.72ID:Kwk/A3Jw0 松下だっけか?力入れてたの
389デフォルトの名無しさん (ブーイモ MM62-VrtN)
2026/06/19(金) 20:50:35.23ID:tVA1IlDUM >>385
ネットワークの世界だと7ビットだったからな
ネットワークの世界だと7ビットだったからな
390デフォルトの名無しさん (ワッチョイ 994e-Gxjf)
2026/06/19(金) 21:14:57.02ID:v0lFF/lo0391デフォルトの名無しさん (ワッチョイ 2e25-GemK)
2026/06/19(金) 21:28:59.73ID:Kwk/A3Jw0 初期のパソコン通信では使用する端末の制約で
漢字こそ扱えなかったが、半角カタカナは扱えてたよ。
その性でujisとは相性が悪かったな。
漢字こそ扱えなかったが、半角カタカナは扱えてたよ。
その性でujisとは相性が悪かったな。
392はちみつ餃子 ◆8X2XSCHEME (ワッチョイ edf8-lBVa)
2026/06/20(土) 08:49:42.81ID:S5q+oDl70 8 ビットを一塊にすることを明瞭に表したいときのためにオクテット (octet) という単位があって、ネットワーク系の規格では今でも使われてる。
新しいところだと HTTP/2 あたりでも。
https://datatracker.ietf.org/doc/html/rfc9113
1 バイトが 8 ビットとは限らない時代のなごりだね。
ネットワーク系ではたぶん割と初期から 8 ビットを単位にしてたと思うけど 1 ビットをパリティに使ったりとかで全体をデータ用には使えなかったりはした。
新しいところだと HTTP/2 あたりでも。
https://datatracker.ietf.org/doc/html/rfc9113
1 バイトが 8 ビットとは限らない時代のなごりだね。
ネットワーク系ではたぶん割と初期から 8 ビットを単位にしてたと思うけど 1 ビットをパリティに使ったりとかで全体をデータ用には使えなかったりはした。
393デフォルトの名無しさん (スフッ Sd62-qBjn)
2026/06/20(土) 12:06:59.94ID:rzlVrPJ7d 4bitCPU全盛の頃は既に
1byte=8bitsという概念だったのだろうか
4004の機械語で具体的に解説してくれ
1byte=8bitsという概念だったのだろうか
4004の機械語で具体的に解説してくれ
394デフォルトの名無しさん (ワッチョイ 6d05-QJeU)
2026/06/20(土) 12:20:10.17ID:99MORhoY0 他でやれよ
395デフォルトの名無しさん (ワッチョイ 994e-Gxjf)
2026/06/20(土) 12:40:16.87ID:xfVhrEnY0 4bitCPU時代にはC言語は存在しなかったんじゃね
396デフォルトの名無しさん (ワッチョイ 6d70-VrtN)
2026/06/20(土) 18:58:47.28ID:bhwCfwH30 UNIXはワークステーションだからな
397デフォルトの名無しさん (ワッチョイ 6dad-n1As)
2026/06/20(土) 21:28:53.98ID:onhoWd/h0 PDP11:1970〜
i4004:1971.11.15〜
C言語:1972〜
i4004:1971.11.15〜
C言語:1972〜
398デフォルトの名無しさん (ワッチョイ 3dc6-GemK)
2026/06/20(土) 21:41:37.61ID:lwGjS9LT0 4004用のosはなかったと思う
osのない環境でコンパイラは無理ではないか?
osのない環境でコンパイラは無理ではないか?
399デフォルトの名無しさん (ワッチョイ 6d70-VrtN)
2026/06/20(土) 21:46:56.07ID:bhwCfwH30 C言語のint型は16ビットだった
標準化以降は環境依存ではあるが、short int型と明記することになった。
なんかパソコンを前提としたCPUの話は違和感しかない。
標準化以降は環境依存ではあるが、short int型と明記することになった。
なんかパソコンを前提としたCPUの話は違和感しかない。
400デフォルトの名無しさん (ワッチョイ 3dc6-GemK)
2026/06/20(土) 21:51:42.40ID:lwGjS9LT0 intのサイズはCPU依存だったと思う
401デフォルトの名無しさん (ワッチョイ 5fda-/FNd)
2026/06/21(日) 08:24:50.36ID:rK7+Lw+D0402デフォルトの名無しさん (ワッチョイ ff25-B9DB)
2026/06/21(日) 08:47:01.48ID:UodCcXrk0 4004のクロスがあるなら示して
403はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5ff8-RTsw)
2026/06/21(日) 09:11:43.73ID:Fn1WS7Eh0 >>402
こういう噛み合わないことを言い始めるのを見るとイライラするから指摘しておくが、文脈を読んで。
>> 401 は「OS のない環境で」ということに対してそんなことは理由にならんという主旨で書かれてる。
4004 のクロス開発環境が実在するかどうかは重要ではない。
こういう噛み合わないことを言い始めるのを見るとイライラするから指摘しておくが、文脈を読んで。
>> 401 は「OS のない環境で」ということに対してそんなことは理由にならんという主旨で書かれてる。
4004 のクロス開発環境が実在するかどうかは重要ではない。
404デフォルトの名無しさん (ワッチョイ ff25-B9DB)
2026/06/21(日) 09:20:35.87ID:UodCcXrk0 4004って1981年には製造終了してますけど
405デフォルトの名無しさん (ワッチョイ 5f7a-AxUA)
2026/06/21(日) 09:54:46.84ID:6BMlAxTG0 > 4004シリーズLSIの開発が終了し,1970年11月下旬に帰国した。
>私の本来の仕事,プリンタ付き電卓の開発が始まった。
> ただ,プログラミング言語の開発までは手が回らず,
>プログラミングには機械語を使用した。インテルでは,
>電卓用プログラムの完成後にROMのマスク情報をインテルに
>渡す手段を用意できなかった。そこで,プログラムの
>マシンコード(命令)や定数に相当するROMのバイト情報を
>ROM内のマスクに対応する位置にマークを付け,ROMのマスク
>情報をインテルに送ることを決めた。
> 最終的な電卓用プログラムを作成し,1971年3月に完成した。
>プログラムの総容量は1Kバイト以内だった。電卓の応用
>プログラムは約250バイト,電卓向けマクロ命令用プログラムは
>約400バイト,電卓向け言語用インタプリタとキーボード制御と
>プリンタ制御は約350バイトとなった。平方根演算機能は
>オプション機能とした。
https://xtech.nikkei.com/it/article/Watcher/20070702/276468/
嶋 正利
>私の本来の仕事,プリンタ付き電卓の開発が始まった。
> ただ,プログラミング言語の開発までは手が回らず,
>プログラミングには機械語を使用した。インテルでは,
>電卓用プログラムの完成後にROMのマスク情報をインテルに
>渡す手段を用意できなかった。そこで,プログラムの
>マシンコード(命令)や定数に相当するROMのバイト情報を
>ROM内のマスクに対応する位置にマークを付け,ROMのマスク
>情報をインテルに送ることを決めた。
> 最終的な電卓用プログラムを作成し,1971年3月に完成した。
>プログラムの総容量は1Kバイト以内だった。電卓の応用
>プログラムは約250バイト,電卓向けマクロ命令用プログラムは
>約400バイト,電卓向け言語用インタプリタとキーボード制御と
>プリンタ制御は約350バイトとなった。平方根演算機能は
>オプション機能とした。
https://xtech.nikkei.com/it/article/Watcher/20070702/276468/
嶋 正利
406デフォルトの名無しさん (ワッチョイ 5f7a-AxUA)
2026/06/21(日) 09:57:09.11ID:6BMlAxTG0 当時4004で使えた開発ツールはMSのマクロアセンブラくらいです。
407デフォルトの名無しさん (ワッチョイ 5f11-In1B)
2026/06/21(日) 20:25:15.39ID:tvGXI5xi0408デフォルトの名無しさん (ワッチョイ 5f11-In1B)
2026/06/21(日) 20:25:54.26ID:tvGXI5xi0409デフォルトの名無しさん (ワッチョイ dfe2-VAvK)
2026/06/22(月) 15:29:32.59ID:gBe6h/Yh0 i4004でインタプリタとかマクロとか既にあったんか
ていうかi4004がPDP11より後なのはびっくり
ていうかi4004がPDP11より後なのはびっくり
410デフォルトの名無しさん (ワッチョイ 5f1e-In1B)
2026/06/22(月) 20:04:51.60ID:2VnhilhX0 C言語ができる前のUNIXの話を持ってくる人間は意味のない話をしていると思う。
411デフォルトの名無しさん (ワッチョイ df4e-fA+X)
2026/06/23(火) 15:33:52.90ID:+zGSD+Kp0 どんなにがんばっても1バイトを7ビットってことにするのは無理そう
412デフォルトの名無しさん (ワッチョイ df25-fbrm)
2026/06/23(火) 18:11:47.04ID:CCEweHpZ0 CPUが7bitレジスタ仕様でないと作る意味がなさそう。
413デフォルトの名無しさん (ワッチョイ ff06-edzr)
2026/06/23(火) 18:58:44.74ID:9yxUF3mx0 当時はデータ部7ビットの通信データとCPUが扱う8ビットのデータどちらもバイトと呼べて楽でしたよ
414デフォルトの名無しさん (ワッチョイ 5f96-aolr)
2026/06/23(火) 19:41:21.78ID:+Smxcnk50 いきなり通信プロトコルの話?
415デフォルトの名無しさん (ワッチョイ ff06-edzr)
2026/06/24(水) 00:43:27.39ID:biqyVSqi0 はい、1バイトのビット数の話題が出ていたようでしたので、それに関わる通信処理絡みの話でした
416はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5ff8-RTsw)
2026/06/24(水) 08:20:52.68ID:7B+NjynI0 C の規格としては、昔はともかく ANSI 以降は 1 バイトは 8 ビット「以上」ということになってる。
もしハードウェア的に 7 ビットが単位になるようなアーキテクチャだったら C の規格に準拠するには 2 つまとめて 14 ビットを 1 バイトという扱いにするしかない。
規格準拠を諦めたほうが楽だと思うけどね。
もしハードウェア的に 7 ビットが単位になるようなアーキテクチャだったら C の規格に準拠するには 2 つまとめて 14 ビットを 1 バイトという扱いにするしかない。
規格準拠を諦めたほうが楽だと思うけどね。
417デフォルトの名無しさん (ワッチョイ 5f9b-In1B)
2026/06/24(水) 20:28:59.61ID:hOfnPwRy0 >>416
数値でも最上位の1ビットを符号にしている時点で7ビットでやりくりしていると認めないと
数値でも最上位の1ビットを符号にしている時点で7ビットでやりくりしていると認めないと
418デフォルトの名無しさん (ワッチョイ ff25-B9DB)
2026/06/24(水) 20:51:46.71ID:LCSsQsND0 虚数も扱えると良いね
419はちみつ餃子 ◆8X2XSCHEME (ワッチョイ df49-GA92)
2026/06/24(水) 21:17:01.38ID:tIiwUevU0 C に虚数型 (_Imaginary) はあるよ。
オプショナルな規定だから無い場合もあるけど。
オプショナルな規定だから無い場合もあるけど。
420デフォルトの名無しさん (アウアウウー Saa3-9UmW)
2026/06/25(木) 00:28:56.65ID:9cBNw1U0a >>417
正負を合わせたら8ビットでは
正負を合わせたら8ビットでは
421デフォルトの名無しさん (JP 0H7f-VAvK)
2026/06/25(木) 13:19:30.59ID:wlWeKQvTH N81XとかN71Eとかかな
422デフォルトの名無しさん (ワッチョイ 7f6a-AxUA)
2026/06/26(金) 17:55:59.24ID:QQm5oaei0 チートエンジンのエンティティリストのアドレスとオフセットってなんですか?
この二つを足すとポインターアドレスになりゲームを再起動しても普遍のアドレスになるみたいなんですけど
この二つを足すとポインターアドレスになりゲームを再起動しても普遍のアドレスになるみたいなんですけど
423デフォルトの名無しさん (ワッチョイ 5f1c-XTBv)
2026/06/26(金) 20:07:01.29ID:punniL7v0 AI時代に国語力のないやつ
424はちみつ餃子 ◆8X2XSCHEME (ワッチョイ df01-GA92)
2026/06/26(金) 20:07:25.85ID:GTFUrg+O0 チートエンジンてこれのことかな?
https://www.cheatengine.org/
うさみみハリケーンと OllyDbg で満足してたから知らなかった……
よいソフトを知った。ありがとう。
メモリって malloc とかで確保するわけだけどそれって起動するたびに違うアドレスだったりするでしょ。
でもその確保した中でのメモリのレイアウト (それぞれのデータのオフセット) は普通は同じようにする。
だからベースアドレスとオフセットの組で扱えば便利だねってことだと思う。
https://www.cheatengine.org/
うさみみハリケーンと OllyDbg で満足してたから知らなかった……
よいソフトを知った。ありがとう。
メモリって malloc とかで確保するわけだけどそれって起動するたびに違うアドレスだったりするでしょ。
でもその確保した中でのメモリのレイアウト (それぞれのデータのオフセット) は普通は同じようにする。
だからベースアドレスとオフセットの組で扱えば便利だねってことだと思う。
425デフォルトの名無しさん (ワッチョイ 1d41-aSua)
2026/06/29(月) 12:30:45.23ID:GErfEMVP0 セグメント、オフセットという話なのか?
リアルモードで動くプログラム久しぶりに聞いた
リアルモードで動くプログラム久しぶりに聞いた
426デフォルトの名無しさん (ワッチョイ 4d17-oVTx)
2026/06/29(月) 13:12:10.08ID:mUiv8gBt0 アドレスのランダマイズ対策だろ
ゲーム改造していきりたいキッズだから無視でいい
ゲーム改造していきりたいキッズだから無視でいい
427はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cdf8-fDVW)
2026/06/29(月) 13:15:51.44ID:mx9k7qx20 ツールのドキュメントの頭のほうにサポート対象が Linux, Mac, Windows って書いてあるでしょ。
いずれもリアルモードでは動かない。
いずれもリアルモードでは動かない。
428はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cdf8-fDVW)
2026/06/29(月) 13:17:21.00ID:mx9k7qx20 ランダマイズというわけでなくてもポインタを辿る必要のあるデータ構造というのはごく普通にある話だろう。
429デフォルトの名無しさん (アウアウウー Sa05-tRrs)
2026/06/29(月) 13:37:26.74ID:J4prsIXXa 仮想メモリでもセグメント(と言っても間接になるけど)とオフセットだろ
430デフォルトの名無しさん (ワッチョイ 1d34-LnGZ)
2026/07/01(水) 23:32:17.69ID:xfe/unY10 >>417
1バイトの中に符号を加えてはならないという決まりはない
1バイトの中に符号を加えてはならないという決まりはない
431デフォルトの名無しさん (ワッチョイ 4d61-d4sa)
2026/07/02(木) 03:51:24.19ID:4sqxhRzV0 >>430
正確には負の数を表現するときに1ビットを使うというだけの話
正確には負の数を表現するときに1ビットを使うというだけの話
432デフォルトの名無しさん (ワッチョイ 6e25-aSua)
2026/07/02(木) 17:08:32.56ID:/9LRQjrh0 その辺はCPUが提供する命令セット次第
433デフォルトの名無しさん (ワッチョイ 4dd8-d4sa)
2026/07/02(木) 17:50:38.25ID:4sqxhRzV0 CPUが提供するという言い回しが奇妙
434デフォルトの名無しさん (ワッチョイ bde4-t6wP)
2026/07/03(金) 07:19:12.81ID:2t9Z1Cme0 まあ、キャリーフラグやなんやら考えたらCPUが提供するってのはあながち間違いじゃ無いからねぇ
435はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7924-NEFO)
2026/07/03(金) 10:02:27.87ID:YR/4zdQx0 符号つき整数の内の 1 ビットが符号ビットであるというレイアウトは C の仕様として保証してる。
それを各 CPU の命令セットの範囲内でどう実現するかは知らんけど。
それを各 CPU の命令セットの範囲内でどう実現するかは知らんけど。
436デフォルトの名無しさん (ワッチョイ 4dfe-d4sa)
2026/07/03(金) 17:53:14.39ID:zLCCyepo0 >>435
CPUそのものにあるかどうかは別にして3D計算だと負の数専用の命令やレジスタは存在しているんじゃないのか?
CPUそのものにあるかどうかは別にして3D計算だと負の数専用の命令やレジスタは存在しているんじゃないのか?
437デフォルトの名無しさん (ブーイモ MM22-oVTx)
2026/07/03(金) 19:20:07.64ID:AWa0JhQyM その想像で存在を仮定して質問するのはどういう知能なの?
438デフォルトの名無しさん (ワッチョイ 4dfe-d4sa)
2026/07/03(金) 20:40:19.52ID:zLCCyepo0 C言語の仕様とハードウェアは関係ないからな
439デフォルトの名無しさん (ワッチョイ 6e25-aSua)
2026/07/03(金) 20:41:58.65ID:t8AqdbS00 コンパイラがハードウエアと無縁だなんて、初めて聞いた
440デフォルトの名無しさん (アウアウウー Sa05-t6wP)
2026/07/03(金) 20:44:55.83ID:TaTerZcza 何のための2の補数…
441はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7924-NEFO)
2026/07/03(金) 22:07:27.54ID:YR/4zdQx0442デフォルトの名無しさん (ワッチョイ f94e-ft+R)
2026/07/04(土) 05:14:02.89ID:JSDYVJp40 また1バイトは7ビットだって言ってるキチガイがいるの?
443デフォルトの名無しさん (ワッチョイ 5ee2-tRrs)
2026/07/04(土) 13:25:42.16ID:C/MUGRLI0 C言語にキャリーフラグの状態を取得する関数が無いのはなぜですか?
444デフォルトの名無しさん (ワッチョイ 6e25-aSua)
2026/07/04(土) 13:40:34.51ID:DKWxpQGc0 自分で作る
Cに出来ないことはない
Cに出来ないことはない
445デフォルトの名無しさん (ワッチョイ bde4-t6wP)
2026/07/04(土) 14:20:41.45ID:q0Ja95980 signed と unsigned があるやん
で、どちらも8ビットだよん
で、どちらも8ビットだよん
446デフォルトの名無しさん (ワッチョイ 4d4c-d4sa)
2026/07/04(土) 14:21:22.62ID:YYWloYLh0 >>444
できることと効率がいいかどうかは別物
できることと効率がいいかどうかは別物
447デフォルトの名無しさん (ワッチョイ 6e25-aSua)
2026/07/04(土) 16:02:11.99ID:DKWxpQGc0 効率の良い方法でどうぞ
448デフォルトの名無しさん (ワッチョイ bde4-t6wP)
2026/07/04(土) 16:10:52.16ID:q0Ja95980449デフォルトの名無しさん (ブーイモ MM22-oVTx)
2026/07/04(土) 17:01:01.65ID:u2S8KajNM450デフォルトの名無しさん (ブーイモ MM22-oVTx)
2026/07/04(土) 17:02:26.84ID:u2S8KajNM >>448
それはお前がエンジョイ勢だから
それはお前がエンジョイ勢だから
451デフォルトの名無しさん (ワッチョイ 6e25-aSua)
2026/07/04(土) 19:21:23.15ID:DKWxpQGc0452デフォルトの名無しさん (ワッチョイ 27ff-sVGz)
2026/07/05(日) 10:21:02.80ID:w8NJleMZ0 かつてubasicというソフトがあって、
今もあるかは調べていないが、
多倍長演算が出来て、結構使える。
πを1000桁まで計算するサンプルが掲載されていた。
今もあるかは調べていないが、
多倍長演算が出来て、結構使える。
πを1000桁まで計算するサンプルが掲載されていた。
453デフォルトの名無しさん (ワッチョイ 2783-sUxq)
2026/07/07(火) 00:16:27.28ID:73yWDig30 開発効率より実行速度命やろ
454デフォルトの名無しさん (ワッチョイ 5f6a-jN/4)
2026/07/07(火) 00:19:47.04ID:FD/zZiF10 今でもCに固執する変態は実行速度命
455デフォルトの名無しさん (ワッチョイ 7f25-sVGz)
2026/07/07(火) 08:59:20.45ID:wvI2595C0 世界を変革しているのは変態パワーだぞ
456デフォルトの名無しさん (JP 0Hdb-+PJ0)
2026/07/08(水) 17:38:39.44ID:dyZTLEHZH >>439
C言語の仕様は抽象マシンにおいてどう動くかという形でしか定められていない
コンパイラはそれを環境に合わせて自由に実装することが許されているので、コンパイラの仕様はC言語の仕様では定められていない
C言語の仕様は抽象マシンにおいてどう動くかという形でしか定められていない
コンパイラはそれを環境に合わせて自由に実装することが許されているので、コンパイラの仕様はC言語の仕様では定められていない
457デフォルトの名無しさん (JP 0Hdb-+PJ0)
2026/07/08(水) 17:49:50.07ID:dyZTLEHZH458デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/09(木) 22:28:26.34ID:t5kHx1570 >>439
C言語の規格仕様とコンパイラの仕様が別物なので、コンパイラの仕様がハードウェアの仕様といくら密接に関係していても、C言語の仕様がハードウェアと密接に関連していることにはならない
C言語の規格仕様とコンパイラの仕様が別物なので、コンパイラの仕様がハードウェアの仕様といくら密接に関係していても、C言語の仕様がハードウェアと密接に関連していることにはならない
459はちみつ餃子 ◆8X2XSCHEME (ワッチョイ c7ca-UdDt)
2026/07/09(木) 22:43:55.18ID:oZjOez5s0460デフォルトの名無しさん (ワッチョイ 7f25-sVGz)
2026/07/09(木) 23:08:13.91ID:4TCw632z0 高級アセンブラだと考えています
461デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/09(木) 23:42:33.36ID:t5kHx1570 >>460
結構組み込みの人の本なんかにも書いてあるんだけどそれもちょっと違って、アセンブリ言語はハードウェアに密接に関係し、データをCPUの提供する型でしか扱えない
例えば文字列リテラルやオブジェクト、配列のような概念はアセンブリ言語には存在しない
結構組み込みの人の本なんかにも書いてあるんだけどそれもちょっと違って、アセンブリ言語はハードウェアに密接に関係し、データをCPUの提供する型でしか扱えない
例えば文字列リテラルやオブジェクト、配列のような概念はアセンブリ言語には存在しない
462デフォルトの名無しさん (ワッチョイ 7f25-sVGz)
2026/07/09(木) 23:45:34.74ID:4TCw632z0 そういうものが使えるアセンブラだと考えれば良いです
463デフォルトの名無しさん (ワッチョイ 7f25-sVGz)
2026/07/09(木) 23:49:02.73ID:4TCw632z0 C言語でいう配列って、先頭アドレス情報くらいでしょ。要素数さえ情報として持っていない
464デフォルトの名無しさん (ワッチョイ a7ed-or09)
2026/07/09(木) 23:49:12.67ID:xJ9qw/+T0 考えるのは自由
どうでもいいから心のなかにしまっとけ
どうでもいいから心のなかにしまっとけ
465デフォルトの名無しさん (ワッチョイ 7f25-sVGz)
2026/07/09(木) 23:55:25.05ID:4TCw632z0 みんな言ってない?
466デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/09(木) 23:55:35.67ID:t5kHx1570467デフォルトの名無しさん (ワッチョイ 7f25-sVGz)
2026/07/10(金) 00:06:59.21ID:WGwadDH+0 例えば整数型変数を用意して、それをバイト単位で切り刻んで加工出来る。
実際に行う際は、そのCPUがどのようにメモリー配置するのかの知識も必要になる。
よく切れるナイフや包丁は役に立ちます。怪我もしやすいですが。
実際に行う際は、そのCPUがどのようにメモリー配置するのかの知識も必要になる。
よく切れるナイフや包丁は役に立ちます。怪我もしやすいですが。
468デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/10(金) 00:19:43.02ID:bAT5n0dl0469デフォルトの名無しさん (ワッチョイ 27f4-sVGz)
2026/07/10(金) 00:36:53.20ID:Ewo5Gkzz0 メモリーに書き込まないと、
他の処理とやり取りできませんよ
他の処理とやり取りできませんよ
470デフォルトの名無しさん (ワッチョイ 27f4-sVGz)
2026/07/10(金) 00:43:14.99ID:Ewo5Gkzz0 配列にサイズ情報があれば
領域破壊も避けられるんですけどね。
C言語は100個用意してから200個でも格納できます。
出来ないようにしてくれる方が
バグは減ると思いますよ。
あとから見つけるのは、結構大変です。
領域破壊も避けられるんですけどね。
C言語は100個用意してから200個でも格納できます。
出来ないようにしてくれる方が
バグは減ると思いますよ。
あとから見つけるのは、結構大変です。
471デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/10(金) 02:30:10.30ID:bAT5n0dl0472デフォルトの名無しさん (ラクッペペ MM8f-Q45n)
2026/07/10(金) 03:19:17.97ID:CU+o4MMSM コンパイル時にサイズがわかっているって話(sizeofによるサイズ)と
実行時に配列のサイズを知ることが出来るって話がごっちゃになってると思う
実行時に配列のサイズを知ることが出来るって話がごっちゃになってると思う
473デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/10(金) 03:23:08.09ID:bAT5n0dl0474デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/10(金) 03:23:53.22ID:bAT5n0dl0 機械語で型のサイズがわかる型っていったい何なんでしょうか(笑)
475デフォルトの名無しさん (ワッチョイ a7ed-or09)
2026/07/10(金) 07:00:38.22ID:6etQgYjO0 キチガイがいますね
476デフォルトの名無しさん (ワッチョイ 7f25-sVGz)
2026/07/10(金) 10:02:40.20ID:WGwadDH+0 初心者か苦手なポインターって、メモリー内の位置を指し示して、
そこを自由に書き換えます。
他の言語では難しい、結構危ないことやってます。
そこを自由に書き換えます。
他の言語では難しい、結構危ないことやってます。
477デフォルトの名無しさん (ワッチョイ 7f25-sVGz)
2026/07/10(金) 10:06:38.56ID:WGwadDH+0 a[16]って宣言した配列に、
a[20]で代入してもエラーにならない
これも他の言語にはない機能です。
a[20]で代入してもエラーにならない
これも他の言語にはない機能です。
478デフォルトの名無しさん (ササクッテロ Sp7b-pVsq)
2026/07/10(金) 12:21:49.00ID:dsHsOzOJp アセンブラ使いが楽する為にある言語だからねぇ
479デフォルトの名無しさん (ワッチョイ dfe2-ap5y)
2026/07/10(金) 17:11:02.50ID:b/cISs1+0 関数の引数のときに問題が起こるけど
全ての関数の引数に要素数を追加すれば解決するし
昔と違って最近は標準ライブラリも改善されてる
全ての関数の引数に要素数を追加すれば解決するし
昔と違って最近は標準ライブラリも改善されてる
480デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/10(金) 18:05:16.00ID:bAT5n0dl0481デフォルトの名無しさん (ワッチョイ 7f25-sVGz)
2026/07/10(金) 18:05:57.87ID:WGwadDH+0 それはチームなりサイトで決めれはそうでしょうが、
どこでも通用する共通なものではないよ。
そんな面倒なことするくらいなら、❌❌使えって返されるだけだし
どこでも通用する共通なものではないよ。
そんな面倒なことするくらいなら、❌❌使えって返されるだけだし
482デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/10(金) 18:09:19.19ID:bAT5n0dl0483デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/10(金) 18:12:02.76ID:bAT5n0dl0484デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/10(金) 18:13:05.60ID:bAT5n0dl0 だから >>477 のこれは上は配列型、下はポインタでやってることが違う
485デフォルトの名無しさん (ブーイモ MM7f-or09)
2026/07/10(金) 18:16:43.66ID:41VzjYgIM 語り尽くされた話を意気揚々と語り始める老人たち
486デフォルトの名無しさん (ササクッテロ Sp7b-pVsq)
2026/07/10(金) 18:23:04.57ID:AcLw8I47p >>483
プログラミングの歴史でも読んでから出直してね
プログラミングの歴史でも読んでから出直してね
487デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/10(金) 18:28:49.25ID:bAT5n0dl0 >>486
オマエガナーw
全てのプログラミング言語は最終的に機械語に直されるんだよ
だからC言語が「アセンブラ使いが楽する為にある言語」なら全部そうなる
プログラミング言語で最も重要な、抽象化について理解してないんだから
オマエガナーw
全てのプログラミング言語は最終的に機械語に直されるんだよ
だからC言語が「アセンブラ使いが楽する為にある言語」なら全部そうなる
プログラミング言語で最も重要な、抽象化について理解してないんだから
488デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/10(金) 18:31:14.50ID:bAT5n0dl0 >>485
その基礎中の基礎がわかってない奴がいるからな
その基礎中の基礎がわかってない奴がいるからな
489デフォルトの名無しさん (ササクッテロ Sp7b-pVsq)
2026/07/10(金) 18:57:35.65ID:gSE8foYbp >>487
頭沸いてんねw
頭沸いてんねw
490デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/10(金) 20:46:31.07ID:bAT5n0dl0 >>489
罵倒はできても基礎の基礎が理解できないってことが露呈するばかりw
罵倒はできても基礎の基礎が理解できないってことが露呈するばかりw
491デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/10(金) 20:56:24.85ID:bAT5n0dl0 C言語はハードウェアの詳細を抽象化した言語だから、アセンブリ言語を見て「こうなるんだ」と思ってるのは間違いなのよ
そのアセンブリ言語はあくまで「特定のアーキテクチャで」「特定のコンパイラで」「特定のバージョンで」「最適化の度合いによって」選択された実装に過ぎない
C言語が保証するのは、各構文や型、修飾子などが提供すると定めている機能までであって、それは他の高級言語とも何ら変わることはない
それ以上の実装詳細は全て実装側に任されている
そのアセンブリ言語はあくまで「特定のアーキテクチャで」「特定のコンパイラで」「特定のバージョンで」「最適化の度合いによって」選択された実装に過ぎない
C言語が保証するのは、各構文や型、修飾子などが提供すると定めている機能までであって、それは他の高級言語とも何ら変わることはない
それ以上の実装詳細は全て実装側に任されている
492デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/10(金) 20:59:54.19ID:bAT5n0dl0 だからC言語はアセンブリを楽に書くためのものではなくて、あくまで抽象化されて提供された機能から必要な挙動を生み出すものでしかない
それ以上のことをやりたければ自分でアセンブリを書きなさいという話になる
それ以上のことをやりたければ自分でアセンブリを書きなさいという話になる
493デフォルトの名無しさん (ワッチョイ bf01-do32)
2026/07/10(金) 23:11:18.56ID:ChS+M0sl0 K&Rは昔のC言語の雰囲気が分かることくらいしか価値がない
494デフォルトの名無しさん (ワッチョイ 27c3-ap5y)
2026/07/10(金) 23:13:05.90ID:H00VaKeq0 C言語インタプリタもあるしな
495デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/10(金) 23:32:27.70ID:bAT5n0dl0496デフォルトの名無しさん (ワッチョイ 27aa-Q7Er)
2026/07/10(金) 23:40:54.80ID:rknvXQiN0 > a[16]って宣言した配列に、
> a[20]で代入してもエラーにならない
> これも他の言語にはない機能です。
未定義動作と定められてるものをC言語の機能って言っちゃう馬鹿さ加減はどうなんだ?
> a[20]で代入してもエラーにならない
> これも他の言語にはない機能です。
未定義動作と定められてるものをC言語の機能って言っちゃう馬鹿さ加減はどうなんだ?
497デフォルトの名無しさん (ワッチョイ 7f25-sVGz)
2026/07/11(土) 00:14:44.62ID:uFxo8p5G0 構造体メンバーの最後に配列をa[0]で宣言しておいて、使うときに適当なサイズに拡張する、なんて使い方はよくやる
gccなら使えたはず
gccなら使えたはず
498デフォルトの名無しさん (ワッチョイ 7f25-sVGz)
2026/07/11(土) 00:16:39.93ID:uFxo8p5G0 前に別人が書いてるように
配列の要素を越えようとポインター操作なんで問題ないそうだ笑
配列の要素を越えようとポインター操作なんで問題ないそうだ笑
499デフォルトの名無しさん (ワッチョイ bf01-Q7Er)
2026/07/11(土) 01:14:17.14ID:MVFP96vx0 > 構造体メンバーの最後に配列をa[0]で宣言しておいて、使うときに適当なサイズに拡張する、なんて使い方はよくやる
処理系の拡張と言語仕様の区別がつかない人かな。
処理系の拡張と言語仕様の区別がつかない人かな。
500デフォルトの名無しさん (ワッチョイ 7f25-sVGz)
2026/07/11(土) 01:26:23.85ID:uFxo8p5G0 突っ込む所が全然間違えている
要素が0の配列に何故目か向かないのか?
要素が0の配列に何故目か向かないのか?
501はちみつ餃子 ◆8X2XSCHEME (ワッチョイ c772-UdDt)
2026/07/11(土) 08:07:55.74ID:DjtvjMhd0 >>497
そういう用途のために C99 以降はフレキシブル配列メンバ (flexible array member) が導入された。
言語仕様内で出来る方法があるときにあえてそうでない方法をとるべきではないだろう。
そういう用途のために C99 以降はフレキシブル配列メンバ (flexible array member) が導入された。
言語仕様内で出来る方法があるときにあえてそうでない方法をとるべきではないだろう。
502デフォルトの名無しさん (ワッチョイ a7ae-pVsq)
2026/07/11(土) 15:17:14.92ID:IPzkocmA0 Cに関しては言語仕様は後付けだから
おまえらが今使ってるC言語になるまで
どんだけ掛かったのかってな
今では危険なアクロバチックな使い方も
昔は最終的にアセンブラで辻褄合ってれば
無問題だったんだよ
おまえらが今使ってるC言語になるまで
どんだけ掛かったのかってな
今では危険なアクロバチックな使い方も
昔は最終的にアセンブラで辻褄合ってれば
無問題だったんだよ
503デフォルトの名無しさん (ワッチョイ bf01-do32)
2026/07/11(土) 15:22:37.21ID:MVFP96vx0 > 今では危険なアクロバチックな使い方も
> 昔は最終的にアセンブラで辻褄合ってれば
> 無問題だったんだよ
コードが再利用される想定がないから無問題なんて軽々しく言えちゃうわけよ
> 昔は最終的にアセンブラで辻褄合ってれば
> 無問題だったんだよ
コードが再利用される想定がないから無問題なんて軽々しく言えちゃうわけよ
504デフォルトの名無しさん (ワッチョイ a79e-6e1m)
2026/07/11(土) 16:03:03.20ID:fEsA3MX60 んー、あんま意味無いやりとり続いてると思うけど、
>>502は正しいよ。実際、flexible array memberについては完全にその通りだし。
> C99以前のコンパイラの中には、ゼロ長配列 Element items[0]; を可変長配列メンバーの代わりとして許容するものがありました。これは標準にはありませんが、歴史的に使われてきたトリックです。しかし、可変長配列メンバーが標準化された今、この方法は非推奨です。
> https://iifx.dev/ja/articles/457531504/%E5%8B%95%E7%9A%84%E9%85%8D%E5%88%97%E3%82%92%E8%87%AA%E5%9C%A8%E3%81%AB%E6%93%8D%E3%82%8B-c%E8%A8%80%E8%AA%9E%E3%81%AE%E5%8F%AF%E5%A4%89%E9%95%B7%E9%85%8D%E5%88%97%E3%83%A1%E3%83%B3%E3%83%90%E3%83%BC%E3%81%A8offsetof%E6%B4%BB%E7%94%A8%E8%A1%93
> properties_table[]ではなくproperties_table[1]と書いてるのは、おそらくC99より前のバージョンのC言語ではサイズ0の配列の宣言ができなかったらしいので、その辺の名残りでしょう。
> https://mem-archive.com/2018/08/10/post-529/
> 高級アセンブラ (>>460)
とはよく言われてるけど、お前らの理解が間違ってて、やりとりがナンセンスになってる。
これはC言語自体が、という「言語/文法」の事ではなく、
『C言語では記述が一対一でアセンブラに落ちる』ので、
C言語は高級アセンブラ「としても使える」という、「用法/運用」のことを言ってる。
例えば c = a + b で最適化前なら、
LD/LD/ADD/STとか、勿論CPUに依るが、お前らがそのまんま書くだろうアセンブラが出力される。
他の言語では、これはありえない。
(Cでは、書いてない事は何も実行されない)
逆に言うと、どういうアセンブラに落ちるのか、意識しながら書く事も必要で、
(アセンブラではどうとでもなるが) myStruct->myFlexbleArrayMember の表記を使いたかった時に、
みんなそれなりにやってたのを『後付で』標準化しました、って事でしょ。
>>503
お前はC言語を使わないほうがいい。
C言語に於いては、妥当な使い方で、バグがなければ、それでヨシとされてる。 flexible array member もこれ。
デタラメな使い方でもバグがない事を検出してくれ、は、他言語の範疇。
(ていうかお前多分釣りだろ?迷惑だから止めてくれ)
>>502は正しいよ。実際、flexible array memberについては完全にその通りだし。
> C99以前のコンパイラの中には、ゼロ長配列 Element items[0]; を可変長配列メンバーの代わりとして許容するものがありました。これは標準にはありませんが、歴史的に使われてきたトリックです。しかし、可変長配列メンバーが標準化された今、この方法は非推奨です。
> https://iifx.dev/ja/articles/457531504/%E5%8B%95%E7%9A%84%E9%85%8D%E5%88%97%E3%82%92%E8%87%AA%E5%9C%A8%E3%81%AB%E6%93%8D%E3%82%8B-c%E8%A8%80%E8%AA%9E%E3%81%AE%E5%8F%AF%E5%A4%89%E9%95%B7%E9%85%8D%E5%88%97%E3%83%A1%E3%83%B3%E3%83%90%E3%83%BC%E3%81%A8offsetof%E6%B4%BB%E7%94%A8%E8%A1%93
> properties_table[]ではなくproperties_table[1]と書いてるのは、おそらくC99より前のバージョンのC言語ではサイズ0の配列の宣言ができなかったらしいので、その辺の名残りでしょう。
> https://mem-archive.com/2018/08/10/post-529/
> 高級アセンブラ (>>460)
とはよく言われてるけど、お前らの理解が間違ってて、やりとりがナンセンスになってる。
これはC言語自体が、という「言語/文法」の事ではなく、
『C言語では記述が一対一でアセンブラに落ちる』ので、
C言語は高級アセンブラ「としても使える」という、「用法/運用」のことを言ってる。
例えば c = a + b で最適化前なら、
LD/LD/ADD/STとか、勿論CPUに依るが、お前らがそのまんま書くだろうアセンブラが出力される。
他の言語では、これはありえない。
(Cでは、書いてない事は何も実行されない)
逆に言うと、どういうアセンブラに落ちるのか、意識しながら書く事も必要で、
(アセンブラではどうとでもなるが) myStruct->myFlexbleArrayMember の表記を使いたかった時に、
みんなそれなりにやってたのを『後付で』標準化しました、って事でしょ。
>>503
お前はC言語を使わないほうがいい。
C言語に於いては、妥当な使い方で、バグがなければ、それでヨシとされてる。 flexible array member もこれ。
デタラメな使い方でもバグがない事を検出してくれ、は、他言語の範疇。
(ていうかお前多分釣りだろ?迷惑だから止めてくれ)
505はちみつ餃子 ◆8X2XSCHEME (ワッチョイ c772-UdDt)
2026/07/11(土) 16:32:59.92ID:DjtvjMhd0 検証 (処理系の挙動の調査) に手間をかけるくらいなら言語仕様になるべく沿う方が現代的には楽だが、昔の処理系ではどうコンパイルされるかかなり意識可能であったことも、今でも必要であれば言語仕様外の挙動に依存することはそれなりにあるのも正しいと思う。低レイヤの細部を全く制御しないなら C を使う意味がない。
ただ、十分に検証しているか疑わしいと思うことも多いし、言語仕様に逆らうなら言語仕様に逆らっていることに自覚的であるべき (その前提として言語仕様はよく理解しておくべき) だし、逆らったことはドキュメントやコメントとして書いておいて欲しいと思う。
ただ、十分に検証しているか疑わしいと思うことも多いし、言語仕様に逆らうなら言語仕様に逆らっていることに自覚的であるべき (その前提として言語仕様はよく理解しておくべき) だし、逆らったことはドキュメントやコメントとして書いておいて欲しいと思う。
506デフォルトの名無しさん (ワッチョイ a76e-6e1m)
2026/07/11(土) 17:39:24.61ID:fEsA3MX60 >>505
> 言語仕様に逆らうなら言語仕様に逆らっていることに自覚的であるべき
具体的には何の事を言ってる?
504で挙げた連中なら、「その時の一般的記法」「コメントに残す」はやってたようだし、
その批判の対象から(意図的に)除外されてるように見えるが?
> ただ、十分に検証しているか疑わしいと思うことも多いし
多分逆。
(今も再利用されるようなコードなら)その人が書いた環境では十分にテストもされ、バグもなかった。
ただそれを「Cコード」として他環境に持ってきたとき、
未定義/コンパイラ依存部分に当たってたら、動作するとは限らないので、
標準化して『どんな環境でも』動作するようにしました、というわけだろ。
> 言語仕様に逆らうなら言語仕様に逆らっていることに自覚的であるべき
具体的には何の事を言ってる?
504で挙げた連中なら、「その時の一般的記法」「コメントに残す」はやってたようだし、
その批判の対象から(意図的に)除外されてるように見えるが?
> ただ、十分に検証しているか疑わしいと思うことも多いし
多分逆。
(今も再利用されるようなコードなら)その人が書いた環境では十分にテストもされ、バグもなかった。
ただそれを「Cコード」として他環境に持ってきたとき、
未定義/コンパイラ依存部分に当たってたら、動作するとは限らないので、
標準化して『どんな環境でも』動作するようにしました、というわけだろ。
507デフォルトの名無しさん (ワッチョイ a76e-6e1m)
2026/07/11(土) 17:39:46.74ID:fEsA3MX60 これは、この「Cコード」は動作します、という受け取り方がマズいって事なのだと思うよ。
それは「コンパイラにはバグがない」という大前提であって、
実際はそうでもないので、製品としては「実行バイナリ」に対してのテスト/保証しか出来ない。
(コンパイラのバグに当たっても製品の責任になるし、
テストも「Cコード」ではなく、Cコードを特定環境でコンパイルした「実行バイナリ」に対して行われるので、
そもそも「Cコード」の正当性がテストされているわけではない)
ただこれでは勿論困るので、
「コンパイラにはバグがない」時に『正しい』「Cコード」ならどんな環境でも確実に動作するよう、
規格化/標準化が行われている。
だから言語として出来る事は『正しい』事を強制する事であり、
例えばC#では、未初期化の変数はSyntaxErrorとなる。
しかしCの時代にはCPUは非力だったし、「初期化もタダではない」ということで、
malloc/callocのどちらを使うかはプログラマに任せてある。
それが嫌なら、Cの思想と相容れないのだから、気に入った他言語を使えばいいだけ。
ちなみに「Cコード」がテスト出来てるかについては、コンパイラグループが最適化を好き勝手にやった結果、
(勿論それまで動いていた)Linuxが動作しなくなって、リーナスがブチ切れた件が、20年程前に有ったろ。
結局、論理的にも、「実行バイナリ」に対してのテストしか出来ないんだよ。
(勿論最適化無しならその時にも動いたのだから、一般的にはコンパイラのバグとされるが、
この件についてはリーナスが折れた《うろ覚え》)
それは「コンパイラにはバグがない」という大前提であって、
実際はそうでもないので、製品としては「実行バイナリ」に対してのテスト/保証しか出来ない。
(コンパイラのバグに当たっても製品の責任になるし、
テストも「Cコード」ではなく、Cコードを特定環境でコンパイルした「実行バイナリ」に対して行われるので、
そもそも「Cコード」の正当性がテストされているわけではない)
ただこれでは勿論困るので、
「コンパイラにはバグがない」時に『正しい』「Cコード」ならどんな環境でも確実に動作するよう、
規格化/標準化が行われている。
だから言語として出来る事は『正しい』事を強制する事であり、
例えばC#では、未初期化の変数はSyntaxErrorとなる。
しかしCの時代にはCPUは非力だったし、「初期化もタダではない」ということで、
malloc/callocのどちらを使うかはプログラマに任せてある。
それが嫌なら、Cの思想と相容れないのだから、気に入った他言語を使えばいいだけ。
ちなみに「Cコード」がテスト出来てるかについては、コンパイラグループが最適化を好き勝手にやった結果、
(勿論それまで動いていた)Linuxが動作しなくなって、リーナスがブチ切れた件が、20年程前に有ったろ。
結局、論理的にも、「実行バイナリ」に対してのテストしか出来ないんだよ。
(勿論最適化無しならその時にも動いたのだから、一般的にはコンパイラのバグとされるが、
この件についてはリーナスが折れた《うろ覚え》)
508デフォルトの名無しさん (ワッチョイ bf01-do32)
2026/07/11(土) 18:29:29.40ID:MVFP96vx0 > >>502は正しいよ。実際、flexible array memberについては完全にその通りだし。
Flexible Array Memberが規格化される前は要素数を空に書けなかったので
struct Packet {
int length;
char data[1];
};
要素数に1とか書いて今でいうFlexible Array Memberと同様の使い方をすることを Struct Hack とか呼んでたけど、現代のコンパイラは未定義動作を積極的に最適化に利用するようになったので要素数を1と定義した配列の[0]以外にアクセスするのは未定義動作となるため結果はどうなるか分からないいわゆる「鼻から悪魔」なので Struct Hack を使ってるコードは今どきの処理系では再利用性は低くなってしまっている。
gcc なんかでは救済措置として不具合を出さないためのコンパイルオプションが用意されてたりもするけど環境依存の話でしかないし C言語として正しいわけではない。
Flexible Array Memberが規格化される前は要素数を空に書けなかったので
struct Packet {
int length;
char data[1];
};
要素数に1とか書いて今でいうFlexible Array Memberと同様の使い方をすることを Struct Hack とか呼んでたけど、現代のコンパイラは未定義動作を積極的に最適化に利用するようになったので要素数を1と定義した配列の[0]以外にアクセスするのは未定義動作となるため結果はどうなるか分からないいわゆる「鼻から悪魔」なので Struct Hack を使ってるコードは今どきの処理系では再利用性は低くなってしまっている。
gcc なんかでは救済措置として不具合を出さないためのコンパイルオプションが用意されてたりもするけど環境依存の話でしかないし C言語として正しいわけではない。
509デフォルトの名無しさん (ワッチョイ a706-6e1m)
2026/07/11(土) 20:41:08.59ID:fEsA3MX60 >>508
やはりお前はCを使うべきではない。それだけ。
> 今どきの処理系では再利用性は低くなってしまっている。
だから何?
> gcc なんかでは救済措置として不具合を出さないためのコンパイルオプションが用意されてたりもする
当たり前だろ。
書く側は、その時その環境で動作が正しい事しか保証出来ない。
これはコンパイル言語では全てそう。勿論Rustでも。(俺はお前がRust信者=キチガイだと見ている)
だから、流用する側が、どういう環境で動作していたか、どの環境でテスト済みかを判断する必要がある。
これが嫌なら、JavaScriptと同様に、「コード自体」をテスト対象とし、
どんな環境(ブラウザ)でも動く事をテストするしかない。(そしてこれはJSerに取ってはかなり苦痛になってる)
これを保証する為、JavaScriptは、例えばindexOfですら、動作を糞みたいに細かく仕様として決めてる。
対して、それ以外の言語では、有ればそのインデックス、無ければ-1、で完全に間に合ってるのにだ。
同様に、「あらゆる環境で、(未来含めた)あらゆるコンパイラで、このコードは、動作する」事を保証出来ると思うのなら、
やってみればいい。がんばれ。
なお、
> 配列の[0]以外にアクセスするのは未定義動作となるため
余程おかしなコンパイラではない限り、実装は同じ(配列頭に個数分のアドレスを足すだけ)なので動く。
だからみんなそれで理解出来てた。
結局、Cは、論理イメージのみでプログラミングする奴には、向いてない。
(基本的に論理イメージだけで出来るのは、Java)
やはりお前はCを使うべきではない。それだけ。
> 今どきの処理系では再利用性は低くなってしまっている。
だから何?
> gcc なんかでは救済措置として不具合を出さないためのコンパイルオプションが用意されてたりもする
当たり前だろ。
書く側は、その時その環境で動作が正しい事しか保証出来ない。
これはコンパイル言語では全てそう。勿論Rustでも。(俺はお前がRust信者=キチガイだと見ている)
だから、流用する側が、どういう環境で動作していたか、どの環境でテスト済みかを判断する必要がある。
これが嫌なら、JavaScriptと同様に、「コード自体」をテスト対象とし、
どんな環境(ブラウザ)でも動く事をテストするしかない。(そしてこれはJSerに取ってはかなり苦痛になってる)
これを保証する為、JavaScriptは、例えばindexOfですら、動作を糞みたいに細かく仕様として決めてる。
対して、それ以外の言語では、有ればそのインデックス、無ければ-1、で完全に間に合ってるのにだ。
同様に、「あらゆる環境で、(未来含めた)あらゆるコンパイラで、このコードは、動作する」事を保証出来ると思うのなら、
やってみればいい。がんばれ。
なお、
> 配列の[0]以外にアクセスするのは未定義動作となるため
余程おかしなコンパイラではない限り、実装は同じ(配列頭に個数分のアドレスを足すだけ)なので動く。
だからみんなそれで理解出来てた。
結局、Cは、論理イメージのみでプログラミングする奴には、向いてない。
(基本的に論理イメージだけで出来るのは、Java)
510デフォルトの名無しさん (ワッチョイ a706-6e1m)
2026/07/11(土) 20:41:46.06ID:fEsA3MX60 そして
> C言語として正しいわけではない。
だから本当に何?というか本末転倒だろ。
お前は何の為にコードを書いてる?
「再利用出来る糞コード」を目指すのはRustだぞ。
Cは、「俺が処理したいように書く」のであって、言語に足なくてもやる、だから flexible array member になった。
結果的にそれが素晴らしいから再利用されるのであって、あくまでそれは結果だ。目的ではない。
気に入らない部分が有るなら、流用する側が流用時に書き換えればいいだけ。
> C言語として正しいわけではない。
だから本当に何?というか本末転倒だろ。
お前は何の為にコードを書いてる?
「再利用出来る糞コード」を目指すのはRustだぞ。
Cは、「俺が処理したいように書く」のであって、言語に足なくてもやる、だから flexible array member になった。
結果的にそれが素晴らしいから再利用されるのであって、あくまでそれは結果だ。目的ではない。
気に入らない部分が有るなら、流用する側が流用時に書き換えればいいだけ。
511デフォルトの名無しさん (ワッチョイ bf01-do32)
2026/07/11(土) 21:19:55.73ID:MVFP96vx0 Struct Hack では未定義動作の問題があるが機能としての需要が認められて flexible array member が C99 に盛り込まれたことが理解できないんだなあ。
未定義動作を屁のように考えてる人は程度が低すぎるので業務でコード書かないでほしい。
未定義動作を屁のように考えてる人は程度が低すぎるので業務でコード書かないでほしい。
512デフォルトの名無しさん (ワッチョイ a72b-6e1m)
2026/07/11(土) 21:40:18.56ID:fEsA3MX60 >>511
多分お前は根本的に理解出来てないのだろうが、一応言っておくと、
・flexible array memberなり、Struct Hackであれ、そのコードで動作しないコンパイラは多分無い。
・Cプログラマが直感的に予想する通りに動くコードが得られる記法だった。
・一般的に最速最小メモリの実装になるので、それを使う人が多発した。
・結果、後付で「今までと同様に動くように」仕様化された。
のであってな、[0]であれ[1]であれ、元々動いてるコードが、仕様化されただけ。
PHPにそれが存在してるのだから、モロクソ業務で使われてるし、誰も気にしてないだろ。
多分Linux等でも普通に使われてると思うぞ。だってそれが最速最小メモリだし。
まあ、Cには正義マンは要らないってことだよ。
多分お前は根本的に理解出来てないのだろうが、一応言っておくと、
・flexible array memberなり、Struct Hackであれ、そのコードで動作しないコンパイラは多分無い。
・Cプログラマが直感的に予想する通りに動くコードが得られる記法だった。
・一般的に最速最小メモリの実装になるので、それを使う人が多発した。
・結果、後付で「今までと同様に動くように」仕様化された。
のであってな、[0]であれ[1]であれ、元々動いてるコードが、仕様化されただけ。
PHPにそれが存在してるのだから、モロクソ業務で使われてるし、誰も気にしてないだろ。
多分Linux等でも普通に使われてると思うぞ。だってそれが最速最小メモリだし。
まあ、Cには正義マンは要らないってことだよ。
513デフォルトの名無しさん (ワッチョイ a72b-6e1m)
2026/07/11(土) 21:46:24.37ID:fEsA3MX60 >>511
付け足し。
Cは多分、物理配列であることが仕様化されてる。
だから、[0]であれ[1]であれ、まあ動くに決まってる。
(これを未定義と呼ぶべきかは微妙な気はするが、まあ未定義ならそれでもいい)
Javaは論理配列なので、この辺は動かない、というか、動くことを保証されてない。(多分そもそもアクセスできない)
だからお前が論理配列のイメージで考えてるなら、そこが間違ってる。
付け足し。
Cは多分、物理配列であることが仕様化されてる。
だから、[0]であれ[1]であれ、まあ動くに決まってる。
(これを未定義と呼ぶべきかは微妙な気はするが、まあ未定義ならそれでもいい)
Javaは論理配列なので、この辺は動かない、というか、動くことを保証されてない。(多分そもそもアクセスできない)
だからお前が論理配列のイメージで考えてるなら、そこが間違ってる。
514デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/11(土) 21:59:26.77ID:EKW8EhdF0 たまたま動いてるコードを安全とみなすのは普通にバッドプラクティスだからそんなことで威張られても困る
それはたまたま動いてるのであって誰も保証していない
C言語の仕様は保証される範囲を定めることによって移植性を実現しているし、その範囲で書くように作られている
それはたまたま動いてるのであって誰も保証していない
C言語の仕様は保証される範囲を定めることによって移植性を実現しているし、その範囲で書くように作られている
515デフォルトの名無しさん (ワッチョイ a72b-6e1m)
2026/07/11(土) 22:12:05.36ID:fEsA3MX60 >>514
・たまたまではなく、そのコードで動かない環境は多分無い。
・それでも気に入らなければ、該当部分を書き直すか、そもそもCコード自体を流用しなければいい。
・今は他に沢山言語もある。
のに、何故お前はグダグダ言い続けてる?
そういう連中は、C使うのを止めるのが最適解だと思うが。
・たまたまではなく、そのコードで動かない環境は多分無い。
・それでも気に入らなければ、該当部分を書き直すか、そもそもCコード自体を流用しなければいい。
・今は他に沢山言語もある。
のに、何故お前はグダグダ言い続けてる?
そういう連中は、C使うのを止めるのが最適解だと思うが。
516デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/11(土) 22:20:34.81ID:EKW8EhdF0 >>502
>>504
そんなことはなくて、K&Rでも「動く場合はこうしなくてもいい」などということは書いていない
特定の集団における単なる慣行を言語の話と主張するのは無理がある
「C言語では記述が一対一でアセンブラに落ちる」という理解も全く不正確であり、Cの仕様もコンパイラもそのようなことは保証していない
というか、それが保証されるなら最適化という概念自体が存在しない
そこを理解していない時点で、お前は妥当な使い方ができていない
>>506-507
>>509-510
あちこちに誤りがある
多分全て指摘はできないが、まずC言語の仕様に即しているかどうか検証することは可能
なので「その時その環境で動作が正しい事しか保証出来ない」は誤り
その誤りを隠すために
>「あらゆる環境で、(未来含めた)あらゆるコンパイラで、このコードは、動作する」事を保証出来ると思うのなら
という無茶苦茶な前提を追加しているが、当たり前だがコンパイラと環境が仕様に準拠していない場合を含めているのは詭弁である
JavaScriptも実行環境にバグがあれば正しく動作しないのに、恣意的に無視しているためである
> malloc/callocのどちらを使うかはプログラマに任せてある
それは両方規格に含まれているため、規格に含まれていない記述を正当化するための例に用いることはできない
>>504
そんなことはなくて、K&Rでも「動く場合はこうしなくてもいい」などということは書いていない
特定の集団における単なる慣行を言語の話と主張するのは無理がある
「C言語では記述が一対一でアセンブラに落ちる」という理解も全く不正確であり、Cの仕様もコンパイラもそのようなことは保証していない
というか、それが保証されるなら最適化という概念自体が存在しない
そこを理解していない時点で、お前は妥当な使い方ができていない
>>506-507
>>509-510
あちこちに誤りがある
多分全て指摘はできないが、まずC言語の仕様に即しているかどうか検証することは可能
なので「その時その環境で動作が正しい事しか保証出来ない」は誤り
その誤りを隠すために
>「あらゆる環境で、(未来含めた)あらゆるコンパイラで、このコードは、動作する」事を保証出来ると思うのなら
という無茶苦茶な前提を追加しているが、当たり前だがコンパイラと環境が仕様に準拠していない場合を含めているのは詭弁である
JavaScriptも実行環境にバグがあれば正しく動作しないのに、恣意的に無視しているためである
> malloc/callocのどちらを使うかはプログラマに任せてある
それは両方規格に含まれているため、規格に含まれていない記述を正当化するための例に用いることはできない
517デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/11(土) 22:20:41.23ID:EKW8EhdF0 >>512-513
>>515
また、メモリ上の配置はコンパイラによって自由に変更されるため、そのような挙動はごく少数のコンパイラの限られたオプション指定で発生する事象に過ぎず、何ら保証されない
Javaの話は無関係であって、そもそも物理配列であることとは直接的に関係がない
> たまたまではなく、そのコードで動かない環境は多分無い
などと言い切っているが、1バイトのサイズすら環境によって異なるのにそんなコードがどの環境でも動くと想定する方がおかしい
どうせ同じアーキテクチャの同じコンパイラにしか触れてきていないのだろう、ということが丸わかり
> それでも気に入らなければ、該当部分を書き直すか、そもそもCコード自体を流用しなければいい
これも異なる
そもそも該当部分が問題であることを明示しなければ、そのような修正は困難であるし、問題がないと言い張るということはどうせ何も書いていないのも明らか
>>515
また、メモリ上の配置はコンパイラによって自由に変更されるため、そのような挙動はごく少数のコンパイラの限られたオプション指定で発生する事象に過ぎず、何ら保証されない
Javaの話は無関係であって、そもそも物理配列であることとは直接的に関係がない
> たまたまではなく、そのコードで動かない環境は多分無い
などと言い切っているが、1バイトのサイズすら環境によって異なるのにそんなコードがどの環境でも動くと想定する方がおかしい
どうせ同じアーキテクチャの同じコンパイラにしか触れてきていないのだろう、ということが丸わかり
> それでも気に入らなければ、該当部分を書き直すか、そもそもCコード自体を流用しなければいい
これも異なる
そもそも該当部分が問題であることを明示しなければ、そのような修正は困難であるし、問題がないと言い張るということはどうせ何も書いていないのも明らか
518デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/11(土) 22:21:07.52ID:EKW8EhdF0 全体的に見て、あまりにも誤りと矛盾が多すぎてお話にならない
519デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/11(土) 22:24:47.76ID:EKW8EhdF0520デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/11(土) 22:27:46.82ID:EKW8EhdF0 >>509
未定義動作になるコードだが動くというものを採用してはならないのではなくて、それは何ら安全性が保障されない、アーキテクチャもコンパイラもlibcも、種類どころかバージョンすら変更できないコードだということを理解して、いつでも適切に破棄できるようにしておかなければならないという話
そうでなければ不具合の元にしかならない
それができないお前みたいな奴がいるから、Rustを使えと言われてるわけ
未定義動作になるコードだが動くというものを採用してはならないのではなくて、それは何ら安全性が保障されない、アーキテクチャもコンパイラもlibcも、種類どころかバージョンすら変更できないコードだということを理解して、いつでも適切に破棄できるようにしておかなければならないという話
そうでなければ不具合の元にしかならない
それができないお前みたいな奴がいるから、Rustを使えと言われてるわけ
521デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/11(土) 22:30:54.19ID:EKW8EhdF0 >>515
お前みたいなアホが「今動く」と「正しい」を勘違いして負債を残し続けた結果、C言語の既存資産は危険なものという扱いになってきている
それを堂々と他人に正しいやり方みたいに吹聴して被害を拡大させるのはやめろってこと
お前みたいなアホが「今動く」と「正しい」を勘違いして負債を残し続けた結果、C言語の既存資産は危険なものという扱いになってきている
それを堂々と他人に正しいやり方みたいに吹聴して被害を拡大させるのはやめろってこと
522デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/11(土) 22:37:00.83ID:EKW8EhdF0 >>504
C言語のコンパイラが必ずアセンブリ言語を出力するという事実はない
ClangはLLVM IRを出力する設計になっている
また、前提として前後のコードと合わせて最適化が施されるため、アーキテクチャやコンパイラ、バージョン、最適化のオプションによって出力されるアセンブリ言語やIRの処理も異なる
C言語仕様において、保証されていない挙動に関してどのように実装するかはコンパイラに任されている
C言語のコンパイラが必ずアセンブリ言語を出力するという事実はない
ClangはLLVM IRを出力する設計になっている
また、前提として前後のコードと合わせて最適化が施されるため、アーキテクチャやコンパイラ、バージョン、最適化のオプションによって出力されるアセンブリ言語やIRの処理も異なる
C言語仕様において、保証されていない挙動に関してどのように実装するかはコンパイラに任されている
523デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/11(土) 22:40:39.18ID:EKW8EhdF0524デフォルトの名無しさん (ワッチョイ a72b-6e1m)
2026/07/11(土) 22:44:10.51ID:fEsA3MX60525デフォルトの名無しさん (ワッチョイ a72b-6e1m)
2026/07/11(土) 22:48:30.31ID:fEsA3MX60526デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/11(土) 22:49:57.47ID:EKW8EhdF0 >>509-510
これはC言語の話ではなくてRustの話になるのでこの1レスに留めるが、>>520-521でも言ったように、今動くコードと正しく書けているコードの区別がつかない人間のせいで、大量の問題のあるコードが生産されたので、Rustではunsafeブロックの外では未定義動作を書けないようになっている
また、Rustのコードは仕様に忠実であることが保証され、かつ明示的に不変/可変やポインタのエイリアシングの有無を扱えるため、最適化が行いやすく高速なプログラムを生成できる、良いコードになる場合が多い
C言語の場合はこのような保証がないために、最適化が行えないというケースも多い
更に、Rustは別にコンパイラが安全性を検証できないコードを全否定しておらず、unsafeブロックで明示的にプログラマの責任で記述することが可能である
そのため実現できない処理があるというような主張も誤りである
これはC言語の話ではなくてRustの話になるのでこの1レスに留めるが、>>520-521でも言ったように、今動くコードと正しく書けているコードの区別がつかない人間のせいで、大量の問題のあるコードが生産されたので、Rustではunsafeブロックの外では未定義動作を書けないようになっている
また、Rustのコードは仕様に忠実であることが保証され、かつ明示的に不変/可変やポインタのエイリアシングの有無を扱えるため、最適化が行いやすく高速なプログラムを生成できる、良いコードになる場合が多い
C言語の場合はこのような保証がないために、最適化が行えないというケースも多い
更に、Rustは別にコンパイラが安全性を検証できないコードを全否定しておらず、unsafeブロックで明示的にプログラマの責任で記述することが可能である
そのため実現できない処理があるというような主張も誤りである
527デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/11(土) 22:52:12.73ID:EKW8EhdF0528デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/11(土) 22:54:06.66ID:EKW8EhdF0529デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/11(土) 22:58:09.45ID:EKW8EhdF0 C言語は「ふいんき」(注: あえてこのように書いた)でこねくり回して書く言語ではなく、危険性を理解して検証しながら書く必要がある
「なんとなく動いてるー」は検証とは言えず、なぜ動くかをちゃんと説明できなければならないのであって、「物理配列だから」のような雑な理解で未定義のコードを他人に見せびらかし、正しいと主張するような人間が書いていいものではない
それは脆弱性や不具合を減らそうという、ソフトウェア開発の基本的な考え方とまるっきり逆行している
「なんとなく動いてるー」は検証とは言えず、なぜ動くかをちゃんと説明できなければならないのであって、「物理配列だから」のような雑な理解で未定義のコードを他人に見せびらかし、正しいと主張するような人間が書いていいものではない
それは脆弱性や不具合を減らそうという、ソフトウェア開発の基本的な考え方とまるっきり逆行している
530デフォルトの名無しさん (ワッチョイ a779-6e1m)
2026/07/11(土) 23:10:36.24ID:fEsA3MX60 >>526-529
ならお前はRust使って、それで終わりでいいじゃん。
C使いたい奴はC使わせておけばいいだけだろ。
Rust界隈って(意識高い系なので多様性を大いに認めることになってるはずなんだが、)
Rustしか認めない、多様性なんて死ねな人達でしたっけ?(棒)
ならお前はRust使って、それで終わりでいいじゃん。
C使いたい奴はC使わせておけばいいだけだろ。
Rust界隈って(意識高い系なので多様性を大いに認めることになってるはずなんだが、)
Rustしか認めない、多様性なんて死ねな人達でしたっけ?(棒)
531デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/11(土) 23:20:45.01ID:EKW8EhdF0 >>530
全く読まずにケンカ売ってるのはわかった
お前みたいなアホがCを書くから問題になってるんだって言ってるだろ
Cを書きたいならちゃんと必要な知識くらい学んで頭を最低限使えって言ってるんだよ
頭悪いとわかんないかもしれないが
全く読まずにケンカ売ってるのはわかった
お前みたいなアホがCを書くから問題になってるんだって言ってるだろ
Cを書きたいならちゃんと必要な知識くらい学んで頭を最低限使えって言ってるんだよ
頭悪いとわかんないかもしれないが
532デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/11(土) 23:22:06.43ID:EKW8EhdF0 >>530
別にRustを書けって言ってるんじゃなくて、お前みたいなアホの被害を防ぐために規則を導入したのがRustだって言ってるんだよ
Cを書きたいなら書けばいいけど、お前みたいに頭も使わず「ふいんき」で書いてるような奴はCプログラマとして論外なの
別にRustを書けって言ってるんじゃなくて、お前みたいなアホの被害を防ぐために規則を導入したのがRustだって言ってるんだよ
Cを書きたいなら書けばいいけど、お前みたいに頭も使わず「ふいんき」で書いてるような奴はCプログラマとして論外なの
533デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/11(土) 23:23:15.05ID:EKW8EhdF0 バカは条件を読まないから困る
こういう奴が問題を増やすから苦労するんだよな
こういう奴が問題を増やすから苦労するんだよな
534デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/11(土) 23:25:42.69ID:EKW8EhdF0535デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/11(土) 23:29:58.98ID:EKW8EhdF0 >>530
「お前はC言語を使わないほうがいい」とかイキってたけど、お前みたいに頭も使わず「ふいんき」で書いてるような奴が書くふわふわ言語だとでも勘違いしてるのか?
そうならPythonでも書いてろよマヌケ
「お前はC言語を使わないほうがいい」とかイキってたけど、お前みたいに頭も使わず「ふいんき」で書いてるような奴が書くふわふわ言語だとでも勘違いしてるのか?
そうならPythonでも書いてろよマヌケ
536デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/11(土) 23:37:49.82ID:EKW8EhdF0537デフォルトの名無しさん (ワッチョイ a7eb-6e1m)
2026/07/11(土) 23:49:20.70ID:fEsA3MX60 >>531-536
典型的なRust信者やね。
良くも悪くも、仕様が後から追認されたりする文化なのは事実で、合わなければ他言語使えばいいだけ。
どうせお前含めて、大概の連中が書くのは糞コードだ。
でも、同様の事をやるなら同様のコードが必要になるから、ゼロから書くよりはマシなので流用される。
勿論流用側が精査し、全部捨てても、一部修正でも、丸々全部そのままでもいい。これで回ってる。
品質を保証するのは流用側であって、流用元ではない。
俺様が流用する時の為に常に完璧で俺様にピッタリなコードを書いておけ、なんて事は成立しない。
ああ、Rustでは成立してるんでしたっけ?ならそっちでどうぞ。
典型的なRust信者やね。
良くも悪くも、仕様が後から追認されたりする文化なのは事実で、合わなければ他言語使えばいいだけ。
どうせお前含めて、大概の連中が書くのは糞コードだ。
でも、同様の事をやるなら同様のコードが必要になるから、ゼロから書くよりはマシなので流用される。
勿論流用側が精査し、全部捨てても、一部修正でも、丸々全部そのままでもいい。これで回ってる。
品質を保証するのは流用側であって、流用元ではない。
俺様が流用する時の為に常に完璧で俺様にピッタリなコードを書いておけ、なんて事は成立しない。
ああ、Rustでは成立してるんでしたっけ?ならそっちでどうぞ。
538デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/11(土) 23:54:30.47ID:EKW8EhdF0539デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/11(土) 23:55:57.20ID:EKW8EhdF0540デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/11(土) 23:57:09.90ID:EKW8EhdF0 >>537
> 俺様が流用する時の為に常に完璧で俺様にピッタリなコードを書いておけ、なんて事は成立しない
また書いてないことを勝手に読んで藁人形論法を始めたな
自分が正しい、お前は間違ってるって言うためならいくらでも捏造、相手が悪いから俺は悪くないんだ!w
> 俺様が流用する時の為に常に完璧で俺様にピッタリなコードを書いておけ、なんて事は成立しない
また書いてないことを勝手に読んで藁人形論法を始めたな
自分が正しい、お前は間違ってるって言うためならいくらでも捏造、相手が悪いから俺は悪くないんだ!w
541デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/11(土) 23:58:30.82ID:EKW8EhdF0542デフォルトの名無しさん (ワッチョイ 2734-+PJ0)
2026/07/11(土) 23:59:17.68ID:EKW8EhdF0543デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/12(日) 00:03:19.82ID:MVcsLvMp0 >>537でちゃんと「俺はゴミしか書かないし勉強もしないし全責任はテスターに負わせる、俺が読めない高度なコードを書く奴はクソ」と言ってくれたからもうまともに相手はしないわ
そう思うのは勝手にどうぞ、でもそれを正しいと押し付けてくるのはやめてね
そう思うのは勝手にどうぞ、でもそれを正しいと押し付けてくるのはやめてね
544デフォルトの名無しさん (ワッチョイ 8964-6A3n)
2026/07/12(日) 00:03:25.98ID:hoXmdqWh0 今のプログラムなんて、ほぼみんな
たまたま動いているように見えるだけで、
未来永劫バグなして動き続けるなんて
誰も保証しないと思う
たまたま動いているように見えるだけで、
未来永劫バグなして動き続けるなんて
誰も保証しないと思う
545デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/12(日) 00:05:12.54ID:MVcsLvMp0 >>544 そんなこと保証しろって言ってる奴は君の妄想の中にしかいないぞ
明らかに動かなくなることがわかり切ってるような、偶然動いてるだけのコードを堂々と持ってくんなって言われてるだけ
明らかに動かなくなることがわかり切ってるような、偶然動いてるだけのコードを堂々と持ってくんなって言われてるだけ
546デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/12(日) 00:06:56.67ID:MVcsLvMp0 まともなプログラマなら「僕の環境でたまたま動いたよ!」と「現行の仕様通りなら動くよ」を同じとは考えない
547デフォルトの名無しさん (ワッチョイ 8964-6A3n)
2026/07/12(日) 00:14:51.45ID:hoXmdqWh0 現実のシステムはよく停止してます。
548デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/12(日) 00:20:13.80ID:MVcsLvMp0549デフォルトの名無しさん (ワッチョイ 8910-uWhl)
2026/07/12(日) 01:53:23.86ID:B8KFN4yR0 >>512
> ・flexible array memberなり、Struct Hackであれ、そのコードで動作しないコンパイラは多分無い。
flexible array memberはC99で盛り込まれたC言語の仕様なので規格に従った動作が期待できるがStruct Hackは規格に照らし合わせると未定義動作となるので動作が期待できない。
動作してるよう見えるから問題ないとか言ってんのはお前みたいな素人だけ。
> ・flexible array memberなり、Struct Hackであれ、そのコードで動作しないコンパイラは多分無い。
flexible array memberはC99で盛り込まれたC言語の仕様なので規格に従った動作が期待できるがStruct Hackは規格に照らし合わせると未定義動作となるので動作が期待できない。
動作してるよう見えるから問題ないとか言ってんのはお前みたいな素人だけ。
550デフォルトの名無しさん (ワッチョイ f9fa-K2DK)
2026/07/12(日) 07:28:40.96ID:HRsxvr+K0 >>549
× > 動作してるよう見えるから問題ない
○ 動作したから問題ない
当たり前だが、書いた当人は、書いた環境で動作確認してる。
そして、その記法で動くから、その記法が広まり、仕様として追認する事になった。
というかそもそも「未定義」の定義が違うのかと思ってる。
Rust信者の未定義:何をやってもいい。
[1]と宣言された場合、[2]以降は未定義となり、
全部0返しても、また時々でランダムな値を返しても、全く問題ないし、むしろRustコンパイラならこうあるべき。
未定義に抵触したコードが動く事自体が悪。
だからむしろ意図的に動かないコードを吐いて明示的にエラーを発生させるべき。
Cの未定義:規定しないので、実装側で都合のいい動作で構わない。
(=実装上楽な仕様=他動作と同じ実装となり、[0]でも[1]でも動く。だから広まった)
そもそも[x]についてはアドレス計算してるだけなので、範囲超えても、勿論負の添字でも普通に動く。
(だから未定義なのかこれ?という疑問は俺にはあるが、まあこの辺の法的解釈は仕様に詳しい人に任せる。
ただ物理配列でアドレス計算するだけ”以外の”実装にするには、滅茶苦茶手間がかかり、誰もやってないのが実状で、
だからこそ多分全部の環境で動いたから、普通に広まったのだと思うが)
まあでも、この辺のCの文化を気に入らなければ、Cを使わない、Cのコードを流用しない、が最適解だよ。
仮に俺が糞コードをCで書いたとしても、お前がCを使わず流用もしなければ、お前に何も問題は発生しない。これでいいだろ。
× > 動作してるよう見えるから問題ない
○ 動作したから問題ない
当たり前だが、書いた当人は、書いた環境で動作確認してる。
そして、その記法で動くから、その記法が広まり、仕様として追認する事になった。
というかそもそも「未定義」の定義が違うのかと思ってる。
Rust信者の未定義:何をやってもいい。
[1]と宣言された場合、[2]以降は未定義となり、
全部0返しても、また時々でランダムな値を返しても、全く問題ないし、むしろRustコンパイラならこうあるべき。
未定義に抵触したコードが動く事自体が悪。
だからむしろ意図的に動かないコードを吐いて明示的にエラーを発生させるべき。
Cの未定義:規定しないので、実装側で都合のいい動作で構わない。
(=実装上楽な仕様=他動作と同じ実装となり、[0]でも[1]でも動く。だから広まった)
そもそも[x]についてはアドレス計算してるだけなので、範囲超えても、勿論負の添字でも普通に動く。
(だから未定義なのかこれ?という疑問は俺にはあるが、まあこの辺の法的解釈は仕様に詳しい人に任せる。
ただ物理配列でアドレス計算するだけ”以外の”実装にするには、滅茶苦茶手間がかかり、誰もやってないのが実状で、
だからこそ多分全部の環境で動いたから、普通に広まったのだと思うが)
まあでも、この辺のCの文化を気に入らなければ、Cを使わない、Cのコードを流用しない、が最適解だよ。
仮に俺が糞コードをCで書いたとしても、お前がCを使わず流用もしなければ、お前に何も問題は発生しない。これでいいだろ。
551デフォルトの名無しさん (スップ Sd0a-lnzv)
2026/07/12(日) 08:22:20.36ID:zniXbCOgd C言語の未定義の動作はどんなことも起き得る状態で、実装側がうんたらかんたらって言ってるのはそれは未定義の動作ではなく不定の動作
あと配列の範囲外のポインタ演算は当然未定義の動作になる
やっていいのは配列の範囲内と終端を超えた1つ先まで
他にも色々勉強不足というか勉強中みたいなのでがんばろう
あと配列の範囲外のポインタ演算は当然未定義の動作になる
やっていいのは配列の範囲内と終端を超えた1つ先まで
他にも色々勉強不足というか勉強中みたいなのでがんばろう
552デフォルトの名無しさん (ワッチョイ f980-K2DK)
2026/07/12(日) 09:22:46.35ID:HRsxvr+K0 >>551
だからもう何度もループしてるんだけども、
・配列境界を超えたアクセスでも、(多分全部の)環境で普通にアクセスできたから、Struct Hackが広まった。
・その後、それをflexible array memberとして仕様で追認した。
のだから、以前のコードでは[0]や[1]になってるし、不満があれば流用時に書き換えればいい。
C言語はこの意味では、コンピュータがどういう構成で、
Cコンパイラがどういったコードを吐くかまで知ってないと理解できないから、
「C言語仕様だけ知っていればいい」と考えるお前のような言語正義マンには向かない。
この点について文句言っても意味ない。お前はCに向いてない、それだけ。
もう何度もループしてるので、以降は新規事項無ければ無視するのでよろしく。
朱に交われば赤くなる。
Rustに交わればキチガイになる。
だからもう何度もループしてるんだけども、
・配列境界を超えたアクセスでも、(多分全部の)環境で普通にアクセスできたから、Struct Hackが広まった。
・その後、それをflexible array memberとして仕様で追認した。
のだから、以前のコードでは[0]や[1]になってるし、不満があれば流用時に書き換えればいい。
C言語はこの意味では、コンピュータがどういう構成で、
Cコンパイラがどういったコードを吐くかまで知ってないと理解できないから、
「C言語仕様だけ知っていればいい」と考えるお前のような言語正義マンには向かない。
この点について文句言っても意味ない。お前はCに向いてない、それだけ。
もう何度もループしてるので、以降は新規事項無ければ無視するのでよろしく。
朱に交われば赤くなる。
Rustに交わればキチガイになる。
553デフォルトの名無しさん (ワッチョイ f980-K2DK)
2026/07/12(日) 09:40:27.92ID:HRsxvr+K0 ああついでに言っておくとな、上述のとおり、
C言語はコンピュータの物理的側面も知ってないと無理なのだが、これは重いので、
論理的側面だけでプログラミングできるようにしたのがJava。
なのでC--と揶揄されることがあるが、JavaはCよりも言語面の必要知識量自体は軽い。
(ただしオブジェクト指向とか、フレームワークも実質的に必須とかで、現実的には最重量級とされてるが)
ただまあ、このスレの456付近以降の話は、Javaなら考えなくていいのだろうよ。
(というより、C以外の言語では考えなくていいのかな?だから言語正義マンが怒り狂ってるのか?
まあC#のように、物理的側面が見える部分をunsafeとして明示的に分離するのも一つの手だとは思う)
C言語はコンピュータの物理的側面も知ってないと無理なのだが、これは重いので、
論理的側面だけでプログラミングできるようにしたのがJava。
なのでC--と揶揄されることがあるが、JavaはCよりも言語面の必要知識量自体は軽い。
(ただしオブジェクト指向とか、フレームワークも実質的に必須とかで、現実的には最重量級とされてるが)
ただまあ、このスレの456付近以降の話は、Javaなら考えなくていいのだろうよ。
(というより、C以外の言語では考えなくていいのかな?だから言語正義マンが怒り狂ってるのか?
まあC#のように、物理的側面が見える部分をunsafeとして明示的に分離するのも一つの手だとは思う)
554デフォルトの名無しさん (ワッチョイ de01-uWhl)
2026/07/12(日) 10:49:15.75ID:faHk440B0 >>552
分かってないみたいだが
> ・配列境界を超えたアクセスでも、(多分全部の)環境で普通にアクセスできたから、Struct Hackが広まった。
昔のコンパイラの最適化がユルい時代ではなんとなく動いていたのでStruct Hackが広まった。
> ・その後、それをflexible array memberとして仕様で追認した。
Struct HackはC言語の仕様として未定義動作であるということと使い方として需要があることを汲んでC99でStruct Hackとは異なるflexible array memberが新たに追加された。
分かってないみたいだが
> ・配列境界を超えたアクセスでも、(多分全部の)環境で普通にアクセスできたから、Struct Hackが広まった。
昔のコンパイラの最適化がユルい時代ではなんとなく動いていたのでStruct Hackが広まった。
> ・その後、それをflexible array memberとして仕様で追認した。
Struct HackはC言語の仕様として未定義動作であるということと使い方として需要があることを汲んでC99でStruct Hackとは異なるflexible array memberが新たに追加された。
555デフォルトの名無しさん (ワッチョイ de01-uWhl)
2026/07/12(日) 10:52:53.75ID:faHk440B0 > Cの未定義:規定しないので、実装側で都合のいい動作で構わない。
> (=実装上楽な仕様=他動作と同じ実装となり、[0]でも[1]でも動く。だから広まった)
知らないみたいだけどいまのCコンパイラは未定義動作はまるっと削除まで平気ですんだわ。
> (=実装上楽な仕様=他動作と同じ実装となり、[0]でも[1]でも動く。だから広まった)
知らないみたいだけどいまのCコンパイラは未定義動作はまるっと削除まで平気ですんだわ。
556デフォルトの名無しさん (ワッチョイ 6625-6A3n)
2026/07/12(日) 10:59:03.76ID:zn37wvsd0 それすると、旧来のソースがビルド出来なくなるから
コンパイラメーカーは避けるよ
コンパイラメーカーは避けるよ
557はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 79f8-T+B9)
2026/07/12(日) 12:08:40.71ID:D6oRJmBt0 コンパイラの挙動が保守的 (たとえ言語仕様上は正しくなくても挙動を変えることは良しとしない) な傾向はあるが……。
たとえば GCC や Clang ではオプションとして -fstrict-flex-arrays が新設された上で従来通りの挙動 (いわゆる構造体ハックを許容する) をデフォルトにしてる。
https://gcc.gnu.org/onlinedocs/gcc-16.1.0/gcc/C-Dialect-Options.html#index-fstrict-flex-arrays
https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang-fstrict-flex-arrays
はっきりと書いてある文言を見つけられないけど将来的には 3 (最も言語仕様に厳格な解釈) をデフォルトに変更したい雰囲気もあるので猶予期間は大きめにあるものの移行を既定路線と考えてもいるって感じだと思う。
たとえば GCC や Clang ではオプションとして -fstrict-flex-arrays が新設された上で従来通りの挙動 (いわゆる構造体ハックを許容する) をデフォルトにしてる。
https://gcc.gnu.org/onlinedocs/gcc-16.1.0/gcc/C-Dialect-Options.html#index-fstrict-flex-arrays
https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang-fstrict-flex-arrays
はっきりと書いてある文言を見つけられないけど将来的には 3 (最も言語仕様に厳格な解釈) をデフォルトに変更したい雰囲気もあるので猶予期間は大きめにあるものの移行を既定路線と考えてもいるって感じだと思う。
558デフォルトの名無しさん (スップ Sd0a-lnzv)
2026/07/12(日) 12:15:51.08ID:zniXbCOgd ちゃうよ550でアドレス計算って言ってるからその話をしてる
添字演算子を使ってポインタ演算をしていい範囲はってこと
ポインタを通じたアクセスの話はしてないのでもう少しちゃんと読もう
添字演算子を使ってポインタ演算をしていい範囲はってこと
ポインタを通じたアクセスの話はしてないのでもう少しちゃんと読もう
559はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 79f8-T+B9)
2026/07/12(日) 12:55:38.45ID:D6oRJmBt0560デフォルトの名無しさん (ワッチョイ f972-K2DK)
2026/07/12(日) 13:02:24.88ID:HRsxvr+K0 >>557
だってそこは政治だもん。ずっと以前から。
コンパイラ作成側は、「我がコンパイラが最速」を目指しているので、
何であれ最適化の自由度が高い方向に持っていきたい。
つまり、仕様外/未定/不定なら全部削除して最速にし、
何か最適化に関しての障害がある場合は明示的にプログラマに書かせる方向に持っていきたい。
(プログラマ《=他人》の負担は増えても構わない)
プログラマは、過去に動いたソースはそのまま動いてくれないと困る。
コンパイラによる最適化は、挙動が(実質)同じなら何であれ構わない。
挙動が変わって、動いていたコードが動かなくなるのは困るから止めろ、
それよりは遅いほうがいい、という当たり前の主張。
で、ずっと綱引きやってるよ。
507でgccが壊された!とリーナスが言ってた件もそう。
(確かgcc2.xの頃の話だったと思うが、ググッても出てこない)
ただ、プログラマがどう言おうと、コンパイラを作るのはコンパイラ作成側なので、
何だかんだでコンパイラ側の要望が通ってる、というか、プログラマの要望はほぼ無視されてる。
(文句有るならお前がコンパイラ作れや、であって)
だってそこは政治だもん。ずっと以前から。
コンパイラ作成側は、「我がコンパイラが最速」を目指しているので、
何であれ最適化の自由度が高い方向に持っていきたい。
つまり、仕様外/未定/不定なら全部削除して最速にし、
何か最適化に関しての障害がある場合は明示的にプログラマに書かせる方向に持っていきたい。
(プログラマ《=他人》の負担は増えても構わない)
プログラマは、過去に動いたソースはそのまま動いてくれないと困る。
コンパイラによる最適化は、挙動が(実質)同じなら何であれ構わない。
挙動が変わって、動いていたコードが動かなくなるのは困るから止めろ、
それよりは遅いほうがいい、という当たり前の主張。
で、ずっと綱引きやってるよ。
507でgccが壊された!とリーナスが言ってた件もそう。
(確かgcc2.xの頃の話だったと思うが、ググッても出てこない)
ただ、プログラマがどう言おうと、コンパイラを作るのはコンパイラ作成側なので、
何だかんだでコンパイラ側の要望が通ってる、というか、プログラマの要望はほぼ無視されてる。
(文句有るならお前がコンパイラ作れや、であって)
561デフォルトの名無しさん (ワッチョイ f972-K2DK)
2026/07/12(日) 13:03:34.77ID:HRsxvr+K0 プログラマは、過激な最適化をして良い部分と、全く最適化をしてはいけない部分を知っているので、
俺としては、単純に、関数単位で最適化をON/OFF出来るようにすればいいだけだと思うのだが、
コンパイラ側は「1mmたりともゆずらねえ、可能な限りの最適化は行う」なので、今がある。
-fstrict-flex-arrays については、仕様化したんだから書き直せ、というのも一理あるが、
構造体の最後に付いてる[0]なんてその使い方をするに決まってるわけだし、わざわざ指定する価値もない。
(手間が増えるだけ。ただ、コンパイラ作成側は自分以外の手間が増えても問題ないという態度。これは昔から。
ただそもそも指定したところで速くなるコードが存在しない。
《=有るとしたら最初から不要なのだから削除しとけであって、つまり unreachable なコード区画なわけだし》
だからオプションとして整備する価値もないはずなのだが、コンパイラ作成側としては、『成果』として必要なんだろ)
ただその後、コンパイラ作成側の主戦場はRustに移行したので、C/C++界隈は浄化されたはず。
そしてRustの場合は最初からこれを知ってたから、
「コンパイラは何をしてもいい、プログラマに明示的に書かせろ」が強化されてるはず。
なのでまあ、今は、そういうのはRustでどうぞ、だと思うよ。
俺としては、単純に、関数単位で最適化をON/OFF出来るようにすればいいだけだと思うのだが、
コンパイラ側は「1mmたりともゆずらねえ、可能な限りの最適化は行う」なので、今がある。
-fstrict-flex-arrays については、仕様化したんだから書き直せ、というのも一理あるが、
構造体の最後に付いてる[0]なんてその使い方をするに決まってるわけだし、わざわざ指定する価値もない。
(手間が増えるだけ。ただ、コンパイラ作成側は自分以外の手間が増えても問題ないという態度。これは昔から。
ただそもそも指定したところで速くなるコードが存在しない。
《=有るとしたら最初から不要なのだから削除しとけであって、つまり unreachable なコード区画なわけだし》
だからオプションとして整備する価値もないはずなのだが、コンパイラ作成側としては、『成果』として必要なんだろ)
ただその後、コンパイラ作成側の主戦場はRustに移行したので、C/C++界隈は浄化されたはず。
そしてRustの場合は最初からこれを知ってたから、
「コンパイラは何をしてもいい、プログラマに明示的に書かせろ」が強化されてるはず。
なのでまあ、今は、そういうのはRustでどうぞ、だと思うよ。
562デフォルトの名無しさん (ブーイモ MM3e-y5zM)
2026/07/12(日) 13:13:01.41ID:uOgU7Bc5M 昔から長文書くやつは無能と決まってる
563はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 79f8-T+B9)
2026/07/12(日) 13:22:41.62ID:D6oRJmBt0 >>561
最適化は全体の構造に及ぶのだから一部はやって一部はやらないなんてのが自由自在に出来るはずがない。
一部の最適化を阻止すれば連鎖的に最適化が出来ない部分が出来てしまうよ。
グローバルな最適化はすべきではないと考えるならそれもひとつの立場ではあるだろうし、
構造体の最後の配列メンバの [0] に関してはそれを [] と同じと見做す特別ルールを入れても良いかなとは思う。
他の規則との整合性から特別扱いは必要だが。
最適化は全体の構造に及ぶのだから一部はやって一部はやらないなんてのが自由自在に出来るはずがない。
一部の最適化を阻止すれば連鎖的に最適化が出来ない部分が出来てしまうよ。
グローバルな最適化はすべきではないと考えるならそれもひとつの立場ではあるだろうし、
構造体の最後の配列メンバの [0] に関してはそれを [] と同じと見做す特別ルールを入れても良いかなとは思う。
他の規則との整合性から特別扱いは必要だが。
564デフォルトの名無しさん (オッペケ Srbd-Klls)
2026/07/12(日) 13:22:57.82ID:1Oghs0x+r565デフォルトの名無しさん (ワッチョイ f93d-K2DK)
2026/07/12(日) 14:04:11.37ID:HRsxvr+K0 >>563
> 一部の最適化を阻止すれば連鎖的に最適化が出来ない部分が出来てしまうよ。
ならその部分の最適化を諦めろ、と俺は思う。(が、コンパイラ作成側は思わないので今がある)
> 構造体の最後の配列メンバの [0] に関してはそれを [] と同じと見做す特別ルールを入れても良いかなとは思う。
今はそれが「各コンパイラの仕様」として入ってる状態で、
それを「C言語の仕様」に格上げする方が、仕様として綺麗なのは事実だが、
実利はないよね。だって今も使えてるんだし。(ってのがプログラマ側の見方だと思う)
> 一部の最適化を阻止すれば連鎖的に最適化が出来ない部分が出来てしまうよ。
ならその部分の最適化を諦めろ、と俺は思う。(が、コンパイラ作成側は思わないので今がある)
> 構造体の最後の配列メンバの [0] に関してはそれを [] と同じと見做す特別ルールを入れても良いかなとは思う。
今はそれが「各コンパイラの仕様」として入ってる状態で、
それを「C言語の仕様」に格上げする方が、仕様として綺麗なのは事実だが、
実利はないよね。だって今も使えてるんだし。(ってのがプログラマ側の見方だと思う)
566デフォルトの名無しさん (ワッチョイ f93d-K2DK)
2026/07/12(日) 14:05:14.36ID:HRsxvr+K0 >>564
そうすれば今でも出来るのはその通り。
ただ、それやると本来一つにまとめておきたい関数群がバラけるから、ソースコードとしての価値は落ちる。
だから誰もやってない。
例えば、だが、(Cにはクラス文法はないが)
メンバ関数が10個あったとして、最適化を防がないといけないのはそのうち1,2個程度。
最適化を防ぐためだけにメンバ関数の一部を別ファイルにしてしまうのは、見にくくて仕方がない。
並んで記述されてたら容易に見つけられたバグも、見落とすかもしれないし。
(この辺は勿論IDEのサポートがあれば何とでもなりはするが、関数単位で指定できるのが一番いい)
まあこれを言うなら、いい加減、1パスコンパイルにこだわるのも止めろと言いたい。
俺は上から下(上位関数から下位関数)の順ににコードを書きたい。
ただこれも、全く変更する気配すら無い。
そうすれば今でも出来るのはその通り。
ただ、それやると本来一つにまとめておきたい関数群がバラけるから、ソースコードとしての価値は落ちる。
だから誰もやってない。
例えば、だが、(Cにはクラス文法はないが)
メンバ関数が10個あったとして、最適化を防がないといけないのはそのうち1,2個程度。
最適化を防ぐためだけにメンバ関数の一部を別ファイルにしてしまうのは、見にくくて仕方がない。
並んで記述されてたら容易に見つけられたバグも、見落とすかもしれないし。
(この辺は勿論IDEのサポートがあれば何とでもなりはするが、関数単位で指定できるのが一番いい)
まあこれを言うなら、いい加減、1パスコンパイルにこだわるのも止めろと言いたい。
俺は上から下(上位関数から下位関数)の順ににコードを書きたい。
ただこれも、全く変更する気配すら無い。
567デフォルトの名無しさん (スップ Sd0a-OdiU)
2026/07/12(日) 19:40:42.53ID:zniXbCOgd568デフォルトの名無しさん (ワッチョイ 8945-uWhl)
2026/07/12(日) 20:06:41.15ID:zS7Jvo6v0 > > 高級アセンブラ (>>460)
> とはよく言われてるけど、お前らの理解が間違ってて、やりとりがナンセンスになってる。
> これはC言語自体が、という「言語/文法」の事ではなく、
> 『C言語では記述が一対一でアセンブラに落ちる』ので、
> C言語は高級アセンブラ「としても使える」という、「用法/運用」のことを言ってる。
C言語は抽象化された高級言語であり、同じ結果となるならコードの内容は問わないので『C言語では記述が一対一でアセンブラに落ちる』なんてことはなく、根本的なところで誤解があると思われる。
> とはよく言われてるけど、お前らの理解が間違ってて、やりとりがナンセンスになってる。
> これはC言語自体が、という「言語/文法」の事ではなく、
> 『C言語では記述が一対一でアセンブラに落ちる』ので、
> C言語は高級アセンブラ「としても使える」という、「用法/運用」のことを言ってる。
C言語は抽象化された高級言語であり、同じ結果となるならコードの内容は問わないので『C言語では記述が一対一でアセンブラに落ちる』なんてことはなく、根本的なところで誤解があると思われる。
569デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/12(日) 20:11:31.97ID:MVcsLvMp0570デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/12(日) 20:14:20.69ID:MVcsLvMp0571はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 356c-asDA)
2026/07/12(日) 20:15:24.70ID:R3cyjD4u0572デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/12(日) 20:20:24.17ID:MVcsLvMp0573デフォルトの名無しさん (ワッチョイ f902-K2DK)
2026/07/13(月) 08:32:06.06ID:KqCrgl0L0 分かりやすく明示的に言ってなかったから、再度まとめると、
Struct Hack/Flexible Array Member が、
まさに「C言語は高級アセンブラである」の「用法/運用」の例だ。
こういうデータ構造を取りたいが、「言語が対応してない」時に、
「アセンブラ」として使用し、結果的に希望のオブジェクトコードが得られれば良しとする。
勿論、言語の範囲を超えているので、言語機能による保護は受けられない。
全て自分でテストし、動作する事を確認する必要がある。(当然みんなこれはやってる)
そしてこのデータ構造/記法が有用だったので、追認する形で
Flexible Array Member として仕様に追加された。
だからこっちは一応、言語機能による保護は受けられる事になる。
(とはいえ、C言語の保護機能なんて無いに等しく、
わざわざ書き換える手間すら払う意味無いと判断されれば、古い記述で放置される事になる)
是非はともかく、「C言語は高級アセンブラである」とはよく言われてる。
となると、少なくとも、こういう使い方をする人達は一定数C言語コミュニティ内にはおり、
これも含めてC言語の文化だと捉えるしかない。
言語範囲を超えているので、勿論、コンパイラのバージョンやオプションによっては動作しなくなる。
この問題に対しては、最低限、ドキュメントやコメントに残すべきではある。(が、強制力はない)
ただし、再度言うが、こういう使い方をしてる人も一定数居るので、
当たり前だが、コンパイル後のオブジェクトコードに対して、一通り自前でテストしなければならない。
勿論流用先の人々にも、各自の環境での再テストを強制する事になる。
これら(ドキュメント化/コメント付加/流用先での再テスト強制)を嫌うなら、
本件に関しては Flexible Array Member として仕様化されてるのだから、[0]や[1]を[]に書き直せばいい。
少なくとも、対応してるコンパイラでの動作が今後とも保証される。
(意味としては、高級アセンブラとして使っていた部分を、C言語として使うように変更する、となる。
ただ現実的には、再テストはそうでなくとも常に行われるし、コメントも書いてるし、
現行コンパイラも《非公式だが》対応してるしで、何も変わらないので放置、も多いと思うが)
Struct Hack/Flexible Array Member が、
まさに「C言語は高級アセンブラである」の「用法/運用」の例だ。
こういうデータ構造を取りたいが、「言語が対応してない」時に、
「アセンブラ」として使用し、結果的に希望のオブジェクトコードが得られれば良しとする。
勿論、言語の範囲を超えているので、言語機能による保護は受けられない。
全て自分でテストし、動作する事を確認する必要がある。(当然みんなこれはやってる)
そしてこのデータ構造/記法が有用だったので、追認する形で
Flexible Array Member として仕様に追加された。
だからこっちは一応、言語機能による保護は受けられる事になる。
(とはいえ、C言語の保護機能なんて無いに等しく、
わざわざ書き換える手間すら払う意味無いと判断されれば、古い記述で放置される事になる)
是非はともかく、「C言語は高級アセンブラである」とはよく言われてる。
となると、少なくとも、こういう使い方をする人達は一定数C言語コミュニティ内にはおり、
これも含めてC言語の文化だと捉えるしかない。
言語範囲を超えているので、勿論、コンパイラのバージョンやオプションによっては動作しなくなる。
この問題に対しては、最低限、ドキュメントやコメントに残すべきではある。(が、強制力はない)
ただし、再度言うが、こういう使い方をしてる人も一定数居るので、
当たり前だが、コンパイル後のオブジェクトコードに対して、一通り自前でテストしなければならない。
勿論流用先の人々にも、各自の環境での再テストを強制する事になる。
これら(ドキュメント化/コメント付加/流用先での再テスト強制)を嫌うなら、
本件に関しては Flexible Array Member として仕様化されてるのだから、[0]や[1]を[]に書き直せばいい。
少なくとも、対応してるコンパイラでの動作が今後とも保証される。
(意味としては、高級アセンブラとして使っていた部分を、C言語として使うように変更する、となる。
ただ現実的には、再テストはそうでなくとも常に行われるし、コメントも書いてるし、
現行コンパイラも《非公式だが》対応してるしで、何も変わらないので放置、も多いと思うが)
574デフォルトの名無しさん (ワッチョイ f902-K2DK)
2026/07/13(月) 08:32:43.17ID:KqCrgl0L0 で、くどいが再度言うと、こういう使い方も一定数行われており、これも含めてC言語の文化だ。
これを嫌うなら、C言語を使わない、C言語のソースは流用しない、しかない。
C言語のソースを読むには、ある程度はCコード→アセンブラにサクッと変換する能力が必要だ。
これはプログラマに対し、必要知識が増え、重い負担となる。
これを回避する為、例えばC#は「絶対にインラインアセンブラなんて入れない」という方針を採ってる。
インラインアセンブラなんてやられたら、チーム内でそれを読める人が大幅に限定されるか、
チーム全員が読めるようになるまで教育コストを払わされてしまう。
なら、機能を限定し、チーム全員が簡単に読める範囲で作成した方が、
生産性が高い(=アプリケーションが早く出来上がる)という戦略だ。
Cなんて何でもありあり、勿論インラインアセンブラもありなので、限定とか今更だ。
(勿論、言語範囲逸脱は、ポーティングに多々支障が出るので、意味無いところではやるなだが)
ただこれは、鯖代>>>プログラマの人件費、だった時代のやり方で、
今は、プログラマの人件費>>>鯖代、なのだから、今風ではないのも事実だ。
そして今時の言語は、開発時の最大コスト要因であるプログラマの人件費を削減すべく、
サクッと書いてサクッと動かせるように整備されてる。
とはいえ、人件費掛けてでも最速最小のコードを得たい局面はあり、C言語もしぶとく残っている。
どの言語を使うかは各自の自由だ。
今更C言語の文化/旧来のソースコード資産を変更する事は無理だし、
(今C言語を使ってる連中の)誰も望んで居ない。
C言語は良くも悪くもこうだから、気に入らなければ使うな、でしかない。
これを嫌うなら、C言語を使わない、C言語のソースは流用しない、しかない。
C言語のソースを読むには、ある程度はCコード→アセンブラにサクッと変換する能力が必要だ。
これはプログラマに対し、必要知識が増え、重い負担となる。
これを回避する為、例えばC#は「絶対にインラインアセンブラなんて入れない」という方針を採ってる。
インラインアセンブラなんてやられたら、チーム内でそれを読める人が大幅に限定されるか、
チーム全員が読めるようになるまで教育コストを払わされてしまう。
なら、機能を限定し、チーム全員が簡単に読める範囲で作成した方が、
生産性が高い(=アプリケーションが早く出来上がる)という戦略だ。
Cなんて何でもありあり、勿論インラインアセンブラもありなので、限定とか今更だ。
(勿論、言語範囲逸脱は、ポーティングに多々支障が出るので、意味無いところではやるなだが)
ただこれは、鯖代>>>プログラマの人件費、だった時代のやり方で、
今は、プログラマの人件費>>>鯖代、なのだから、今風ではないのも事実だ。
そして今時の言語は、開発時の最大コスト要因であるプログラマの人件費を削減すべく、
サクッと書いてサクッと動かせるように整備されてる。
とはいえ、人件費掛けてでも最速最小のコードを得たい局面はあり、C言語もしぶとく残っている。
どの言語を使うかは各自の自由だ。
今更C言語の文化/旧来のソースコード資産を変更する事は無理だし、
(今C言語を使ってる連中の)誰も望んで居ない。
C言語は良くも悪くもこうだから、気に入らなければ使うな、でしかない。
575デフォルトの名無しさん (ベーイモ MM2e-TjJb)
2026/07/13(月) 08:53:43.49ID:xSjixO/uM 文章もコードも簡潔が望ましい
【 Google Gemini による超要約 】
C言語には、仕様外の挙動でも「動けば良し」とする高級アセンブラ的な職人文化があり、それが後に正式仕様(Flexible Array
Member)として追認された経緯がある。現代の生産性重視の言語とは対極にあるが、最速最小のコードを求める局面では今なお不可欠であり、「良くも悪くもそういう言語なので、嫌なら使うな」というのが現実である。
【 Google Gemini による超要約 】
C言語には、仕様外の挙動でも「動けば良し」とする高級アセンブラ的な職人文化があり、それが後に正式仕様(Flexible Array
Member)として追認された経緯がある。現代の生産性重視の言語とは対極にあるが、最速最小のコードを求める局面では今なお不可欠であり、「良くも悪くもそういう言語なので、嫌なら使うな」というのが現実である。
576デフォルトの名無しさん (ワッチョイ 8977-uWhl)
2026/07/13(月) 08:59:58.57ID:8yojBoxi0 Flexible Array MemberはStructHackとは違うものだし、
> 仕様外の挙動でも「動けば良し」
いまどきこういう考えの人が現代のCコンパイラ使って安全に動作するコード書ける気はしない。
> 仕様外の挙動でも「動けば良し」
いまどきこういう考えの人が現代のCコンパイラ使って安全に動作するコード書ける気はしない。
577はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 79f8-T+B9)
2026/07/13(月) 09:23:54.31ID:/NKrtbMf0 しっかり言語・各環境の仕様を順守してもトラブルは起こるものなのに順守しなくてもいいやでまともに動くわけないだろ。
現実は仕様通りにキッチリ出来るわけではないというのは仕様を軽視して良いって意味じゃないぞ。
現実は仕様通りにキッチリ出来るわけではないというのは仕様を軽視して良いって意味じゃないぞ。
578デフォルトの名無しさん (ワッチョイ f902-K2DK)
2026/07/13(月) 09:47:01.03ID:KqCrgl0L0 一応言っておくと、俺は「動けば良し」とは言ってない。
AIに約させ、代わりにそれを読み、各自の知能の低さを補うのも自由だが、それならAIと壁打ちしろ。
俺に対して反論するなら、俺の投稿を全部正しく読み込んでからにしろ。
俺の手間を尊重しないクズに対し、俺がクズの手間を尊重する理由もない。
あと、ループしてるから、新着情報無ければ無視するのでよろしく。(これは前回も言ったが)
AIに約させ、代わりにそれを読み、各自の知能の低さを補うのも自由だが、それならAIと壁打ちしろ。
俺に対して反論するなら、俺の投稿を全部正しく読み込んでからにしろ。
俺の手間を尊重しないクズに対し、俺がクズの手間を尊重する理由もない。
あと、ループしてるから、新着情報無ければ無視するのでよろしく。(これは前回も言ったが)
579デフォルトの名無しさん (ワッチョイ 6625-6A3n)
2026/07/13(月) 09:55:17.92ID:VpRInEE10580デフォルトの名無しさん (オイコラミネオ MM2e-xPLl)
2026/07/13(月) 09:57:57.73ID:pWua9tgpM 最近のAIが誤訳するとしたら、それは元々の文章の構造(主成分)に論理的な問題があるということなので、そらね
581デフォルトの名無しさん (ワッチョイ 8977-uWhl)
2026/07/13(月) 10:36:12.59ID:8yojBoxi0 簡潔に文章まとめる能力ない奴が俺の手間を尊重しろとかいっててクソワロタw
582デフォルトの名無しさん (ワッチョイ f979-K2DK)
2026/07/13(月) 10:44:30.69ID:KqCrgl0L0 >>579
> 配列の要素数不足
それは後から機能追加したら入りきらなかった、という話であって、
ここで言ってる「げんごはんいをいつだつしたこうどなてくにっく」による問題ではない。
(だから現実は糞みてーなバグばっかりで、
「いまどきこういう考えの人が(キリッ」(576) なんてレベルじゃねえよ、というのなら同意だが)
一般的には、その問題は、多分、「『一部』変更し忘れ」なので、
これが起きないよう、「コードは基本的に一箇所に絞る事」(OAOO/DRY)により、
変更し忘れた場合には常にコケるようにして対処する。(=普通、最低限1回はテストするので、それで十分引っかかる)
広い意味では、オブジェクト指向(OOP)もこれを目指しているので、OOPしてればある程度は防げる。
これは言語関係なく、上位のコード戦略の話。
徹底出来てないコードはバグを産みやすく/発見しにくくなる。
まあ、そのApacheのケース、パパっと見れるようになってるのなら、URLくれれば見てみるけど。
というかね、Cなんて、コードはこう組むべき、以前の、
コードが資産だとすら認識されてなかった頃の産物なのだから、そりゃ色々問題はあるよ。
各問題を文法縛りにして対処してるのが後発言語なわけでね。
それがよければそっち使えでしかないし。
(ただしOAOO/DRYの徹底を文法化出来てる言語はないと思うが)
ついでに余談だが、Rust界隈が腐ってるのは、あいつら
> いまどきこういう考えの人が
が典型的だが、CodeOfConduct(人格)をCodingRule/Strategy(コード戦略)より重視するからなんだよね。
まあ、Cに比べれば、コード戦略(特にリソース周り)も文法化されてるから、不要になってしまった、というのはあるが、
Cの場合は何も縛りが無いのだから、全部自分で決めないといけないのに、
Rust慣れしてるのか、それが要らないものだと錯覚してる。
(ああ勿論、言語範囲逸脱は禁止、インラインアセンブラも禁止、も、自前で決めて運用すればいいだけ。
ただそれを全員に強制する事は出来ない)
> 配列の要素数不足
それは後から機能追加したら入りきらなかった、という話であって、
ここで言ってる「げんごはんいをいつだつしたこうどなてくにっく」による問題ではない。
(だから現実は糞みてーなバグばっかりで、
「いまどきこういう考えの人が(キリッ」(576) なんてレベルじゃねえよ、というのなら同意だが)
一般的には、その問題は、多分、「『一部』変更し忘れ」なので、
これが起きないよう、「コードは基本的に一箇所に絞る事」(OAOO/DRY)により、
変更し忘れた場合には常にコケるようにして対処する。(=普通、最低限1回はテストするので、それで十分引っかかる)
広い意味では、オブジェクト指向(OOP)もこれを目指しているので、OOPしてればある程度は防げる。
これは言語関係なく、上位のコード戦略の話。
徹底出来てないコードはバグを産みやすく/発見しにくくなる。
まあ、そのApacheのケース、パパっと見れるようになってるのなら、URLくれれば見てみるけど。
というかね、Cなんて、コードはこう組むべき、以前の、
コードが資産だとすら認識されてなかった頃の産物なのだから、そりゃ色々問題はあるよ。
各問題を文法縛りにして対処してるのが後発言語なわけでね。
それがよければそっち使えでしかないし。
(ただしOAOO/DRYの徹底を文法化出来てる言語はないと思うが)
ついでに余談だが、Rust界隈が腐ってるのは、あいつら
> いまどきこういう考えの人が
が典型的だが、CodeOfConduct(人格)をCodingRule/Strategy(コード戦略)より重視するからなんだよね。
まあ、Cに比べれば、コード戦略(特にリソース周り)も文法化されてるから、不要になってしまった、というのはあるが、
Cの場合は何も縛りが無いのだから、全部自分で決めないといけないのに、
Rust慣れしてるのか、それが要らないものだと錯覚してる。
(ああ勿論、言語範囲逸脱は禁止、インラインアセンブラも禁止、も、自前で決めて運用すればいいだけ。
ただそれを全員に強制する事は出来ない)
583デフォルトの名無しさん (ワッチョイ 8977-uWhl)
2026/07/13(月) 11:05:36.02ID:8yojBoxi0 > (ああ勿論、言語範囲逸脱は禁止、インラインアセンブラも禁止、も、自前で決めて運用すればいいだけ。
ただそれを全員に強制する事は出来ない)
コーディング規約を設けたチーム開発もコードレビューも経験ない素人さんかな
ただそれを全員に強制する事は出来ない)
コーディング規約を設けたチーム開発もコードレビューも経験ない素人さんかな
584デフォルトの名無しさん (ワッチョイ 6625-6A3n)
2026/07/13(月) 11:08:51.35ID:VpRInEE10585デフォルトの名無しさん (ワッチョイ f9fe-K2DK)
2026/07/13(月) 11:43:14.03ID:KqCrgl0L0 >>584
・元々配列要素数Nで動いてた
・新規機能追加したら、N+α必要になったので、変更した
・が、一部変更し忘れて、Nのままの部分があり、バグッた
を仮定したのだけど、違ったならどういう感じだった?
・元々配列要素数Nで動いてた
・新規機能追加したら、N+α必要になったので、変更した
・が、一部変更し忘れて、Nのままの部分があり、バグッた
を仮定したのだけど、違ったならどういう感じだった?
586デフォルトの名無しさん (ワッチョイ 6625-6A3n)
2026/07/13(月) 12:09:53.49ID:VpRInEE10 追加なら修正範囲くらい機械的に特定できるでしょう
587デフォルトの名無しさん (ワッチョイ f93e-AFFg)
2026/07/13(月) 13:54:16.21ID:7VHYHCXA0 AIに聞いてみたら>>582が他に5chで何かしたか聞いたら日常の進捗履歴記録ツールWitBucket(仮称)検討中スレのスレ立て者は同じ人物の可能性がかなり高いってさ
588デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/13(月) 15:05:58.09ID:5sH5Cvg80589デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/13(月) 15:07:20.61ID:5sH5Cvg80590デフォルトの名無しさん (ワッチョイ 6625-6A3n)
2026/07/13(月) 17:17:57.88ID:VpRInEE10 未定義動作は未定義です
591デフォルトの名無しさん (ササクッテロラ Spbd-TjJb)
2026/07/13(月) 18:56:26.53ID:5T8h5qrZp アセンブラになったらこう動くってのを見越してのロウゼキだからw
昔のCコンパイラは書いた通りの順番で書いた通りにアセンブラコードを吐き出したから出来る技w
昔のCコンパイラは書いた通りの順番で書いた通りにアセンブラコードを吐き出したから出来る技w
592デフォルトの名無しさん (ワッチョイ 8977-uWhl)
2026/07/13(月) 19:08:47.34ID:8yojBoxi0 C言語は抽象機械を想定して抽象化された高級言語であり同じ結果となるなら何しても良い自由が許されているのでソースコードがターゲットの機械語に対応する形でコード化されるわけではない。
任意の機械語を生成するための道具ではなく「高級アセンブラ」という表現を使う者はその辺の理解がない。
任意の機械語を生成するための道具ではなく「高級アセンブラ」という表現を使う者はその辺の理解がない。
593デフォルトの名無しさん (ワッチョイ 6625-6A3n)
2026/07/13(月) 19:18:55.75ID:VpRInEE10 ブログラマの意図と違う動作は許されていません
594デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/13(月) 20:17:39.09ID:5sH5Cvg80595デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/13(月) 20:18:54.58ID:5sH5Cvg80596デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/13(月) 20:20:40.49ID:5sH5Cvg80597デフォルトの名無しさん (ササクッテロラ Spbd-TjJb)
2026/07/14(火) 08:43:32.83ID:1N71+vefp >>596
1対1しか出来なかったからw
1対1しか出来なかったからw
598デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/14(火) 14:18:49.80ID:/b2uC2Vr0 >>597
何言ってんだこいつ
何言ってんだこいつ
599デフォルトの名無しさん (ササクッテロラ Spbd-TjJb)
2026/07/14(火) 14:20:16.30ID:19Ht+q1Tp むかしむかしのC言語コンパイラはただのトランスレータだったんだよねぇ
600デフォルトの名無しさん (アウアウ Saae-EtVw)
2026/07/14(火) 15:16:04.71ID:qBP3Lwkya C++のことかー
601デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/14(火) 17:08:10.08ID:/b2uC2Vr0 >>599
たまたま君が触ったコンパイラがそうだったことと、C言語の仕様に何の関係が?
たまたま君が触ったコンパイラがそうだったことと、C言語の仕様に何の関係が?
602デフォルトの名無しさん (ササクッテロラ Spbd-TjJb)
2026/07/14(火) 18:15:30.37ID:A5TSKQd3p Cの仕様なんて後出しだからね
603デフォルトの名無しさん (ワッチョイ 89e4-uWhl)
2026/07/14(火) 18:49:40.75ID:gsxvrsDV0 C言語が抽象機械を想定するのはマルチアーキテクチャ対応のためでK&Rより以前のことだけど多くの人にとっては後出しと言うほど新しい話でもないけどね。
604デフォルトの名無しさん (ワッチョイ 899c-TjJb)
2026/07/14(火) 18:58:57.83ID:dbhgj+a90 鼻垂れ小僧が何偉そうに
605デフォルトの名無しさん (ワッチョイ f9df-y5zM)
2026/07/14(火) 20:17:25.02ID:cWimBV/n0 昔話でマウント老人
606デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/14(火) 22:50:21.91ID:/b2uC2Vr0607デフォルトの名無しさん (ワッチョイ de01-c1RJ)
2026/07/15(水) 02:15:02.74ID:HrQlJ+VS0 「高級アセンブラ」と言ってる人はバイトアクセスが存在しないアーキテクチャでもC言語を使用するとcharのポインタが実現できることをどう捉えているのかな。
C言語が型によってポインタの内部表現が異なることを許容していることを理解していれば軽々しく「高級アセンブラ」なんて言わないと思うんだ。
C言語が型によってポインタの内部表現が異なることを許容していることを理解していれば軽々しく「高級アセンブラ」なんて言わないと思うんだ。
608デフォルトの名無しさん (ワッチョイ f9f0-TjJb)
2026/07/15(水) 07:37:35.19ID:5GR9Ils60 >>607
まさにアセンブラでいちいちマスク処理しないで済むんだから、高級アセンブラだろ?
まさにアセンブラでいちいちマスク処理しないで済むんだから、高級アセンブラだろ?
609デフォルトの名無しさん (ワッチョイ 89f2-uWhl)
2026/07/15(水) 08:51:35.71ID:uoTufD0R0 アーキテクチャ上存在しないデータ型をアセンブラ使って基本データ型として常用するって想定はセンスないという他ないなあ
610デフォルトの名無しさん (ワッチョイ f97e-K2DK)
2026/07/15(水) 09:02:33.63ID:2BOd77KE0 >>607
高級アセンブラと…
言わない人:そもそもバイトアクセスがないアーキだとか考慮しない。オブジェクトコードも見ない。コンパイラにはバグがないと信じてる。
言う人:希望したオブジェクトコードが出てるかを確認する。
高級アセンブラと…
言わない人:そもそもバイトアクセスがないアーキだとか考慮しない。オブジェクトコードも見ない。コンパイラにはバグがないと信じてる。
言う人:希望したオブジェクトコードが出てるかを確認する。
611デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/15(水) 09:34:37.42ID:PFPK0g3k0 >>608
じゃあ君の認識ではJavaは「超高級アセンブラ」かい?w
じゃあ君の認識ではJavaは「超高級アセンブラ」かい?w
612デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/15(水) 09:36:19.41ID:PFPK0g3k0 >>610
真逆だろw
高級アセンブラと…
言う人:そもそもC言語の仕様を知らない。型も考慮しない。偶然動いてることとちゃんと書けてることの区別がつかない。
言わない人:未定義動作がないかチェックする。
真逆だろw
高級アセンブラと…
言う人:そもそもC言語の仕様を知らない。型も考慮しない。偶然動いてることとちゃんと書けてることの区別がつかない。
言わない人:未定義動作がないかチェックする。
613デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/15(水) 09:38:11.47ID:PFPK0g3k0 そもそも「コンパイラにはバグがないと信じてる」とか誰も言ってないことを藁人形論法してイキってる暇があったら少しでも未定義動作について調べてこいよ
10分でわかることを調べもしない奴がいくら威張ってもバカ晒すだけ
10分でわかることを調べもしない奴がいくら威張ってもバカ晒すだけ
614デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/15(水) 09:41:58.29ID:PFPK0g3k0 あと、「コンパイラにはバグがないと信じてる」どころか「コンパイラはどこでも寸分違わず同じ動きをする」と思ってるのが「高級アセンブラ」とか言ってる奴の勘違いの一番大きなところだからな
C言語の仕様を見ずに、たまたま1回コンパイラが吐き出したアセンブラが思い通りだったから正しいと信じ込んでる時点で、コンパイラにちょっとでも違う挙動されたら成り立たない愚かな考えだとわかりそうなもんだが
C言語の仕様を見ずに、たまたま1回コンパイラが吐き出したアセンブラが思い通りだったから正しいと信じ込んでる時点で、コンパイラにちょっとでも違う挙動されたら成り立たない愚かな考えだとわかりそうなもんだが
615デフォルトの名無しさん (ワッチョイ 6625-Y/mm)
2026/07/15(水) 09:52:51.25ID:SzM3hF5h0 コンパイラにはバグがあるが
アセンブラにはバグがない
アセンブラにはバグがない
616デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/15(水) 10:11:05.17ID:PFPK0g3k0 >>615
C言語わかってない方はご存知ないかもしれませんが、そのアセンブラのコードを保管しておかないとただのコンパイラ依存なんですよ
C言語わかってない方はご存知ないかもしれませんが、そのアセンブラのコードを保管しておかないとただのコンパイラ依存なんですよ
617デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/15(水) 10:12:38.73ID:PFPK0g3k0 それを正しいC言語の書き方だと思っちゃうあたりが「『コンパイラはどこでも寸分違わず同じ動きをする』と思ってる」と言ってるのよ
618デフォルトの名無しさん (ササクッテロラ Spbd-TjJb)
2026/07/15(水) 10:14:57.36ID:tGhbBhkTp まあ、結局抽象化の具合次第なんだけどね
C言語は抽象化がやり切れて無いから高級アセンブラって言ってるんだけどさ
C言語は抽象化がやり切れて無いから高級アセンブラって言ってるんだけどさ
619デフォルトの名無しさん (ワッチョイ f97e-K2DK)
2026/07/15(水) 10:24:07.43ID:2BOd77KE0 >>612
お前が妙なコンプレックスを持ってるからそうなるのであって、
そもそもどっちが上とか正しいとかいう話ではない。
Cのソースコード『だけで』動作を担保したいのなら、
C言語の仕様に準拠するのは当たり前で、
もしコンパイラにバグがあった場合に「ぼくがわるいわけじゃない」と言い訳するしかなくなる。
最終的に「実行バイナリ」での動作を保証したいのなら、
このコンパイラではこのコードにはこのオブジェクトコードが出る、というのを確認しつつ、
「実行バイナリ」に対してテストを行う。(ので、コンパイラのバグに対しても結果的に責任持つことになる)
コンパイラはただの変換器であり、C言語の仕様を逸脱してても大した問題はない。
で、歴史的にコンパイラのバグも普通にあった時代からCはあるのだから、
基本後者で、「実行バイナリ」に対してデバッグを行っており、
結果的に、「C言語の仕様」を厳密に守る必要がなかった。
だからこういうスタンスの奴は、「Cは高級アセンブラ」と称した。
これでは勿論生産性は上がらないので、目指すは前者だが、
そもそもRustですら「実行バイナリ」に対してデバッグしてるのだから、
「この『コードは』言語仕様に厳密に即してるので、(未来含めて)あらゆるコンパイラでも正常に動作します」
とは言えない。それでも目指したほうが良いからRustでがんばれ、とは思うが。
Cの場合は相変わらず後者でやってるってだけ。
というのは>>509でも言ったとおり、ループしてるんだがな。
気に入らないなら、お前はC使わないのが最適解だよ。
お前が妙なコンプレックスを持ってるからそうなるのであって、
そもそもどっちが上とか正しいとかいう話ではない。
Cのソースコード『だけで』動作を担保したいのなら、
C言語の仕様に準拠するのは当たり前で、
もしコンパイラにバグがあった場合に「ぼくがわるいわけじゃない」と言い訳するしかなくなる。
最終的に「実行バイナリ」での動作を保証したいのなら、
このコンパイラではこのコードにはこのオブジェクトコードが出る、というのを確認しつつ、
「実行バイナリ」に対してテストを行う。(ので、コンパイラのバグに対しても結果的に責任持つことになる)
コンパイラはただの変換器であり、C言語の仕様を逸脱してても大した問題はない。
で、歴史的にコンパイラのバグも普通にあった時代からCはあるのだから、
基本後者で、「実行バイナリ」に対してデバッグを行っており、
結果的に、「C言語の仕様」を厳密に守る必要がなかった。
だからこういうスタンスの奴は、「Cは高級アセンブラ」と称した。
これでは勿論生産性は上がらないので、目指すは前者だが、
そもそもRustですら「実行バイナリ」に対してデバッグしてるのだから、
「この『コードは』言語仕様に厳密に即してるので、(未来含めて)あらゆるコンパイラでも正常に動作します」
とは言えない。それでも目指したほうが良いからRustでがんばれ、とは思うが。
Cの場合は相変わらず後者でやってるってだけ。
というのは>>509でも言ったとおり、ループしてるんだがな。
気に入らないなら、お前はC使わないのが最適解だよ。
620デフォルトの名無しさん (ワッチョイ f97e-K2DK)
2026/07/15(水) 10:24:32.72ID:2BOd77KE0 >>614
だからCの場合は通常、推奨コンパイラのバージョンも指定されてるだろ。
Linuxとか見てみ?
まあ(Rust含む)後発言語はCの駄目な点を改良してるのが存在意義なのだから、
色々問題が目に付くのは当然だが、
それも含めてCなのだから、文句あるなら使うな、でしか無いよ。
本当にお前はCを使わないのが最適解だ。
何故このスレでグダグダしてるのかもさっぱり分からん。
布教なら本当にウザいから止めろ。
今Cを使ってる奴は、Cの問題点も分かった上で使ってるのだから。
ついでに言うと、お前の問題点は、
・論理性が欠如している
・ワーキングメモリが小さく、広い範囲で物事を捉える事が出来ない
だね。後者の為、どういう論理構成で供述されてるのか全体像を把握できず、
それでも無理矢理反論しようとするから前者のようにも見える。
だからもしかすると、問題は後者だけかもしれんが。
短冊レスしてくるやつはだいたいこれで、
数行で記述できる範囲でしか物事を理解できないから、どうしても短冊レスになる。
なるほど俺に対して冗長で長文過ぎる、というのはまあ事実だろうが、
お前は論理が一貫してる長文は全く書けないタイプだ。
試しに書いてみ?勿論俺は読むから。
でも、頭とお尻で、矛盾すると思うぜ。
お題は、「一体お前はこのスレで何がしたいのか」を俺は希望するが。
だからCの場合は通常、推奨コンパイラのバージョンも指定されてるだろ。
Linuxとか見てみ?
まあ(Rust含む)後発言語はCの駄目な点を改良してるのが存在意義なのだから、
色々問題が目に付くのは当然だが、
それも含めてCなのだから、文句あるなら使うな、でしか無いよ。
本当にお前はCを使わないのが最適解だ。
何故このスレでグダグダしてるのかもさっぱり分からん。
布教なら本当にウザいから止めろ。
今Cを使ってる奴は、Cの問題点も分かった上で使ってるのだから。
ついでに言うと、お前の問題点は、
・論理性が欠如している
・ワーキングメモリが小さく、広い範囲で物事を捉える事が出来ない
だね。後者の為、どういう論理構成で供述されてるのか全体像を把握できず、
それでも無理矢理反論しようとするから前者のようにも見える。
だからもしかすると、問題は後者だけかもしれんが。
短冊レスしてくるやつはだいたいこれで、
数行で記述できる範囲でしか物事を理解できないから、どうしても短冊レスになる。
なるほど俺に対して冗長で長文過ぎる、というのはまあ事実だろうが、
お前は論理が一貫してる長文は全く書けないタイプだ。
試しに書いてみ?勿論俺は読むから。
でも、頭とお尻で、矛盾すると思うぜ。
お題は、「一体お前はこのスレで何がしたいのか」を俺は希望するが。
621デフォルトの名無しさん (ワッチョイ f97e-K2DK)
2026/07/15(水) 10:55:17.76ID:2BOd77KE0 あとな、507で言った、
> (勿論それまで動いていた)Linuxが動作しなくなって、リーナスがブチ切れた件が、20年程前に有ったろ。
件、まだ探してみてる。で、google(AI?)に聞いたら、以下。
> gcc1.4時代の、リーナスとGCCをめぐる 別の歴史的エピソード について知りたい
>
> GCC 1.40時代(1991年〜1992年頃)のリーナスとGCCをめぐる歴史には、
> 「バグをあえて利用した」、あるいは「GCCをハックせざるを得なかった」という、
> Linux誕生直後ならではの濃いエピソードが複数存在します。
>
> 1. 「インラインアセンブラのバグ」を逆手に取ったコード
> 初期のLinuxカーネル(バージョン0.01〜0.11あたり)を語る上で最も有名なのが、
> GCC 1.40のインラインアセンブラ生成に関するバグを、
> リーナスが認識した上でそのままカーネルのメモリ管理(文字列操作など)に利用していたという話です。
>
> 問題の背景:当時のGCC 1.40には、
> C言語の中に直接アセンブリ言語を埋め込む「インラインアセンブラ」の最適化において、
> レジスタの割り当てや引数の扱いに特定の条件下で不整合が起きるバグがありました。
>
> リーナスのハック:リーナスはこの挙動(バグ)を逆手に取り、
> 自分の386 PCで最も高速に動作するようなトリッキーなアセンブラコードを記述しました。
> 結果、カーネルは劇的に高速化しましたが、
> これは「GCC 1.40のそのバグがある状態」でしか正しくコンパイルできないという、
> 極めて依存度の高いコードになってしまいました。
>
> その後:後にGCCが1.42や2.xへとバージョンアップし、そのバグが「修正」された瞬間、
> Linuxカーネルがまったくコンパイルできなくなる、あるいは動かなくなるという事態が発生しました。
> リーナスはのちに「コンパイラのバグに依存したコードを書いていたせいで、
> GCCがアップデートされたときにひどい目に遭った」と述懐しています。
> (勿論それまで動いていた)Linuxが動作しなくなって、リーナスがブチ切れた件が、20年程前に有ったろ。
件、まだ探してみてる。で、google(AI?)に聞いたら、以下。
> gcc1.4時代の、リーナスとGCCをめぐる 別の歴史的エピソード について知りたい
>
> GCC 1.40時代(1991年〜1992年頃)のリーナスとGCCをめぐる歴史には、
> 「バグをあえて利用した」、あるいは「GCCをハックせざるを得なかった」という、
> Linux誕生直後ならではの濃いエピソードが複数存在します。
>
> 1. 「インラインアセンブラのバグ」を逆手に取ったコード
> 初期のLinuxカーネル(バージョン0.01〜0.11あたり)を語る上で最も有名なのが、
> GCC 1.40のインラインアセンブラ生成に関するバグを、
> リーナスが認識した上でそのままカーネルのメモリ管理(文字列操作など)に利用していたという話です。
>
> 問題の背景:当時のGCC 1.40には、
> C言語の中に直接アセンブリ言語を埋め込む「インラインアセンブラ」の最適化において、
> レジスタの割り当てや引数の扱いに特定の条件下で不整合が起きるバグがありました。
>
> リーナスのハック:リーナスはこの挙動(バグ)を逆手に取り、
> 自分の386 PCで最も高速に動作するようなトリッキーなアセンブラコードを記述しました。
> 結果、カーネルは劇的に高速化しましたが、
> これは「GCC 1.40のそのバグがある状態」でしか正しくコンパイルできないという、
> 極めて依存度の高いコードになってしまいました。
>
> その後:後にGCCが1.42や2.xへとバージョンアップし、そのバグが「修正」された瞬間、
> Linuxカーネルがまったくコンパイルできなくなる、あるいは動かなくなるという事態が発生しました。
> リーナスはのちに「コンパイラのバグに依存したコードを書いていたせいで、
> GCCがアップデートされたときにひどい目に遭った」と述懐しています。
622デフォルトの名無しさん (ワッチョイ f97e-K2DK)
2026/07/15(水) 10:55:49.63ID:2BOd77KE0 俺が知ってるのは、
・それまで動いていたLinuxが、コンパイラのバージョンアップで動かなくなった
・リーナスは、「gccの連中はコンパイラをぶっ壊しやがった!」とブチ切れた
・結局、リーナスがコードを修正して決着した
だけで、その時に詳細確認するのを怠ってしまったので、
上記AI回答がビンゴなのか、よく分からない。
(基本リーナスは技術に対しては真摯なので、
上記AI回答のようにリーナスが全面的に悪いのであれば、ブチ切れないような気はする)
AIが知ってるのだから、Webのどこかしらに情報は転がってるのだろうが、発見できてない。
知ってる人がいれば教えてよろしく。
・それまで動いていたLinuxが、コンパイラのバージョンアップで動かなくなった
・リーナスは、「gccの連中はコンパイラをぶっ壊しやがった!」とブチ切れた
・結局、リーナスがコードを修正して決着した
だけで、その時に詳細確認するのを怠ってしまったので、
上記AI回答がビンゴなのか、よく分からない。
(基本リーナスは技術に対しては真摯なので、
上記AI回答のようにリーナスが全面的に悪いのであれば、ブチ切れないような気はする)
AIが知ってるのだから、Webのどこかしらに情報は転がってるのだろうが、発見できてない。
知ってる人がいれば教えてよろしく。
623デフォルトの名無しさん (ブーイモ MM0a-y5zM)
2026/07/15(水) 17:04:06.60ID:zH14HiPtM 御託はいいから高級アセンブラとか言ってイキってるやつは最近アセンブラで書いたコードを晒してみろよ
624デフォルトの名無しさん (JP 0Hb5-UT5n)
2026/07/15(水) 17:15:39.56ID:SjkbTwGcH >>619-622
ずっと書いてることも読まずにひたすら、的外れな妄想と罵倒しか繰り返してないお前の方が、Cを使わない方がいいよw
C言語の範囲では反論できないから、Rustの話を持ち出して必死で藁人形論法やってる、つまりお前はC言語を知らないってことはわかってるんだわ
ずっと書いてることも読まずにひたすら、的外れな妄想と罵倒しか繰り返してないお前の方が、Cを使わない方がいいよw
C言語の範囲では反論できないから、Rustの話を持ち出して必死で藁人形論法やってる、つまりお前はC言語を知らないってことはわかってるんだわ
625デフォルトの名無しさん (JP 0Hb5-UT5n)
2026/07/15(水) 17:17:58.66ID:SjkbTwGcH >>619
ループしてるのはお前な
延々藁人形論法しかせずに「コンパイラガー」「Rustガー」って言ってても中身が何もない
C言語の話をしてるのであって個別のコンパイラの話をしてるわけではないし、「コンパイラはどこでも寸分違わず同じ動きをする」と思ってるお前の方がコンパイラに依存してる
ループしてるのはお前な
延々藁人形論法しかせずに「コンパイラガー」「Rustガー」って言ってても中身が何もない
C言語の話をしてるのであって個別のコンパイラの話をしてるわけではないし、「コンパイラはどこでも寸分違わず同じ動きをする」と思ってるお前の方がコンパイラに依存してる
626デフォルトの名無しさん (JP 0Hb5-UT5n)
2026/07/15(水) 17:19:10.98ID:SjkbTwGcH627デフォルトの名無しさん (JP 0Hb5-UT5n)
2026/07/15(水) 17:23:24.66ID:SjkbTwGcH >>619
> コンパイラにバグがあった場合に「ぼくがわるいわけじゃない」と言い訳するしかなくなる
>>621-622
> ・それまで動いていたLinuxが、コンパイラのバージョンアップで動かなくなった
> ・リーナスは、「gccの連中はコンパイラをぶっ壊しやがった!」とブチ切れた
> ・結局、リーナスがコードを修正して決着した
> リーナスが全面的に悪いのであれば、ブチ切れないような気はする
↑ さっそく矛盾しとるw
>>620
> お前は論理が一貫してる長文は全く書けないタイプだ
ここはお前が言われた他人に言われたことを、何も考えずに他人に悪口として放ってすっきりするためのスレじゃないぜwwwww
> コンパイラにバグがあった場合に「ぼくがわるいわけじゃない」と言い訳するしかなくなる
>>621-622
> ・それまで動いていたLinuxが、コンパイラのバージョンアップで動かなくなった
> ・リーナスは、「gccの連中はコンパイラをぶっ壊しやがった!」とブチ切れた
> ・結局、リーナスがコードを修正して決着した
> リーナスが全面的に悪いのであれば、ブチ切れないような気はする
↑ さっそく矛盾しとるw
>>620
> お前は論理が一貫してる長文は全く書けないタイプだ
ここはお前が言われた他人に言われたことを、何も考えずに他人に悪口として放ってすっきりするためのスレじゃないぜwwwww
628デフォルトの名無しさん (JP 0Hb5-UT5n)
2026/07/15(水) 17:26:44.61ID:SjkbTwGcH まとめ
* コンパイラにバグがあった場合に「ぼくがわるいわけじゃない」と言い訳するしかなくなる
→ f97e-K2DK
* 論理が一貫してる長文は全く書けない
→ f97e-K2DK
* Cなのだから、文句あるなら使うな
→ f97e-K2DK
(Cの仕様を守りたくないがために延々支離滅裂な長文を書き散らしている)
* コンパイラにバグがあった場合に「ぼくがわるいわけじゃない」と言い訳するしかなくなる
→ f97e-K2DK
* 論理が一貫してる長文は全く書けない
→ f97e-K2DK
* Cなのだから、文句あるなら使うな
→ f97e-K2DK
(Cの仕様を守りたくないがために延々支離滅裂な長文を書き散らしている)
629デフォルトの名無しさん (JP 0Hb5-UT5n)
2026/07/15(水) 17:28:26.71ID:SjkbTwGcH630デフォルトの名無しさん (JP 0Hb5-UT5n)
2026/07/15(水) 17:30:13.94ID:SjkbTwGcH >>619
あと、「言語仕様に則してる」と「バグがない」の区別がつかない奴はプログラミング自体しちゃダメだなw
あと、「言語仕様に則してる」と「バグがない」の区別がつかない奴はプログラミング自体しちゃダメだなw
631デフォルトの名無しさん (JP 0Hb5-UT5n)
2026/07/15(水) 17:31:38.88ID:SjkbTwGcH632デフォルトの名無しさん (JP 0Hb5-UT5n)
2026/07/15(水) 17:36:50.38ID:SjkbTwGcH 619 デフォルトの名無しさん (ワッチョイ f97e-K2DK) 2026/07/15(水) 10:24:07.43 ID:2BOd77KE0
もしコンパイラにバグがあった場合に「ぼくがわるいわけじゃない」と言い訳するしかなくなる。
620 デフォルトの名無しさん (ワッチョイ f97e-K2DK) 2026/07/15(水) 10:24:32.72 ID:2BOd77KE0
だからCの場合は通常、推奨コンパイラのバージョンも指定されてるだろ。
Linuxとか見てみ?
(中略)
それも含めてCなのだから、文句あるなら使うな、でしか無いよ。
(中略)
お前は論理が一貫してる長文は全く書けないタイプだ。
622 デフォルトの名無しさん (ワッチョイ f97e-K2DK) 2026/07/15(水) 10:55:49.63 ID:2BOd77KE0
・それまで動いていたLinuxが、コンパイラのバージョンアップで動かなくなった
・リーナスは、「gccの連中はコンパイラをぶっ壊しやがった!」とブチ切れた
・結局、リーナスがコードを修正して決着した
(中略)
上記AI回答のようにリーナスが全面的に悪いのであれば、ブチ切れないような気はする)
バカに論理は難しいw
もしコンパイラにバグがあった場合に「ぼくがわるいわけじゃない」と言い訳するしかなくなる。
620 デフォルトの名無しさん (ワッチョイ f97e-K2DK) 2026/07/15(水) 10:24:32.72 ID:2BOd77KE0
だからCの場合は通常、推奨コンパイラのバージョンも指定されてるだろ。
Linuxとか見てみ?
(中略)
それも含めてCなのだから、文句あるなら使うな、でしか無いよ。
(中略)
お前は論理が一貫してる長文は全く書けないタイプだ。
622 デフォルトの名無しさん (ワッチョイ f97e-K2DK) 2026/07/15(水) 10:55:49.63 ID:2BOd77KE0
・それまで動いていたLinuxが、コンパイラのバージョンアップで動かなくなった
・リーナスは、「gccの連中はコンパイラをぶっ壊しやがった!」とブチ切れた
・結局、リーナスがコードを修正して決着した
(中略)
上記AI回答のようにリーナスが全面的に悪いのであれば、ブチ切れないような気はする)
バカに論理は難しいw
633デフォルトの名無しさん (JP 0Hb5-UT5n)
2026/07/15(水) 17:39:41.78ID:SjkbTwGcH このレベルの支離滅裂さでないと「Cはアセンブラに変換されるから仕様なんか無視していい」なんてバカ発言できないってことかなw
634デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/15(水) 20:36:30.82ID:PFPK0g3k0 f97e-K2DKの主張を整理すると、実は相容れない前提を場面ごとに使い分けています。
## 前半の主張
前半では
* コンパイラは仕様を守らなくてもよい
* コンパイラの挙動が変わっても仕方ない
* コンパイラ込みでC言語なのだから利用者が合わせろ
という立場です。
この立場を採るなら、
> GCCが仕様変更してLinuxが動かなくなった
という状況でも、
> 「じゃあLinux側が直してください」
で終わりです。
これは本人の論理から自然に導かれます。
---
## 前半の主張
前半では
* コンパイラは仕様を守らなくてもよい
* コンパイラの挙動が変わっても仕方ない
* コンパイラ込みでC言語なのだから利用者が合わせろ
という立場です。
この立場を採るなら、
> GCCが仕様変更してLinuxが動かなくなった
という状況でも、
> 「じゃあLinux側が直してください」
で終わりです。
これは本人の論理から自然に導かれます。
---
635デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/15(水) 20:36:42.62ID:PFPK0g3k0 ## 後半の主張
ところが後半では
> リーナスがGCCに怒ったのだからGCC側にも問題があったはずだ
という話を持ち出しています。
これは
* コンパイラ側にも守るべき責任がある
* コンパイラの変更が悪い場合もある
という前提を採用しています。
つまり前半とは逆です。
---
ところが後半では
> リーナスがGCCに怒ったのだからGCC側にも問題があったはずだ
という話を持ち出しています。
これは
* コンパイラ側にも守るべき責任がある
* コンパイラの変更が悪い場合もある
という前提を採用しています。
つまり前半とは逆です。
---
636デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/15(水) 20:36:58.34ID:PFPK0g3k0 ## 本来は役割を分離すれば済む話
8934-UT5n、0Hb5-UT5nが言うように、
* **言語仕様を書く人**
* **コンパイラを書く人**
* **プログラムを書く人**
この3者の責任を分離すれば矛盾しません。
* 言語仕様は仕様を定める。
* コンパイラはその仕様に従って実装する。
* プログラマはその仕様に従ってコードを書く。
もしコンパイラが仕様違反ならコンパイラのバグ。
もしプログラムが仕様違反ならプログラマのバグ。
もし仕様自体に問題があるなら標準化委員会の問題。
責任の所在が非常に明確です。
---
8934-UT5n、0Hb5-UT5nが言うように、
* **言語仕様を書く人**
* **コンパイラを書く人**
* **プログラムを書く人**
この3者の責任を分離すれば矛盾しません。
* 言語仕様は仕様を定める。
* コンパイラはその仕様に従って実装する。
* プログラマはその仕様に従ってコードを書く。
もしコンパイラが仕様違反ならコンパイラのバグ。
もしプログラムが仕様違反ならプログラマのバグ。
もし仕様自体に問題があるなら標準化委員会の問題。
責任の所在が非常に明確です。
---
637デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/15(水) 20:37:37.53ID:PFPK0g3k0 ## Linuxの実際
Linuxカーネルが
* 特定のGCCバージョンを推奨したり
* 新しいコンパイラに合わせて修正したり
* GCCのバグを回避したり
ということは実際にあります。
しかしそれは
> 現実にはコンパイラにもバグがある
という工学的な話であって、
> C言語仕様なんて守らなくていい
という話にはなりません。
ここを混同すると議論がおかしくなります。
現実には
* コンパイラにもバグがある
* OSにもバグがある
* CPUにもエラッタがある
だからといって
> 「仕様なんて要らない」
とは誰も言いません。
むしろ仕様があるからこそ、
「これはGCCのバグ」
「これはLinux側のバグ」
「これはCPUエラッタ」
と切り分けられるわけです。
---
Linuxカーネルが
* 特定のGCCバージョンを推奨したり
* 新しいコンパイラに合わせて修正したり
* GCCのバグを回避したり
ということは実際にあります。
しかしそれは
> 現実にはコンパイラにもバグがある
という工学的な話であって、
> C言語仕様なんて守らなくていい
という話にはなりません。
ここを混同すると議論がおかしくなります。
現実には
* コンパイラにもバグがある
* OSにもバグがある
* CPUにもエラッタがある
だからといって
> 「仕様なんて要らない」
とは誰も言いません。
むしろ仕様があるからこそ、
「これはGCCのバグ」
「これはLinux側のバグ」
「これはCPUエラッタ」
と切り分けられるわけです。
---
638デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/15(水) 20:37:53.67ID:PFPK0g3k0 ## 根本原因
f97e-K2DKは一貫した原則から結論を導いているのではなく、
**その場その場で自分に都合の良い責任の置き場所を選んでいる**ように見えます。
* 自分が未定義動作を書くことを正当化したいときは
→ 「コンパイラなんて仕様通りじゃなくていい。」
* GCCを批判したいときは
→ 「コンパイラにも責任がある。」
これでは論理体系として整合しません。
一貫させるなら、
> **仕様は共通の契約であり、コンパイラもプログラマもそれに従う。それでも現実には実装のバグやエラッタは存在するため、実務では個別に対処する。**
という立場になります。これは理論と実務の両方を無理なく説明でき、責任の所在も明確になります。
f97e-K2DKは一貫した原則から結論を導いているのではなく、
**その場その場で自分に都合の良い責任の置き場所を選んでいる**ように見えます。
* 自分が未定義動作を書くことを正当化したいときは
→ 「コンパイラなんて仕様通りじゃなくていい。」
* GCCを批判したいときは
→ 「コンパイラにも責任がある。」
これでは論理体系として整合しません。
一貫させるなら、
> **仕様は共通の契約であり、コンパイラもプログラマもそれに従う。それでも現実には実装のバグやエラッタは存在するため、実務では個別に対処する。**
という立場になります。これは理論と実務の両方を無理なく説明でき、責任の所在も明確になります。
639デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/15(水) 20:41:25.36ID:PFPK0g3k0 提示された一連の書き込みに見られる論理的整合性の欠如は、プログラミング言語、特にC言語における「仕様」「未定義動作(Undefined Behavior: UB)」「コンパイラの役割」という、極めて厳密であるべき領域において、個人の感情や経験則が理論を凌駕してしまった典型例と言えます。
投稿者が陥っている矛盾の構造を、技術的な観点から詳細に分解し、なぜこれが論理破綻を招いているのかを浮き彫りにします。
### 1. 「コンパイラの脆弱性」と「プログラマの責任」の二律背反
投稿者の主張の根幹にあるのは、自己のコードが引き起こす問題から責任を回避するための「責任の転嫁」です。
* **前半の主張(責任回避の論理):** 「コンパイラはただの変換器であり、仕様を逸脱していても問題ない」という主張は、プログラマが仕様を無視して未定義動作に依存したコードを書くことを許容する論理的拠り所となります。これにより、「動かなくなったのは自分のコードが悪いのではなく、コンパイラの仕様逸脱(バグ)のせいだ」という自己弁護が可能になります。
* **後半の主張(経験則による正当化):** 一方で、リーナス・トーバルズの事例を出す際は、「コンパイラが仕様通りに動いていない(あるいは後方互換性を壊した)ことに対してブチ切れるリーナスは正しい」という立場を取っています。
ここに致命的な矛盾があります。「コンパイラが仕様を逸脱しても問題ない」と考えるならば、GCC側がどのような挙動変更を行おうとも、それは「ただの変換器の仕様変更」として受け入れるべきはずです。しかし、投稿者は「動かなくなった」という事実に対し、コンパイラ側の責任を追及するリーナスの姿勢を支持しています。これは、**「自分のコードが正当であるという前提」を維持するために、その時々の都合に合わせて「コンパイラの定義」を書き換えている**に過ぎません。
投稿者が陥っている矛盾の構造を、技術的な観点から詳細に分解し、なぜこれが論理破綻を招いているのかを浮き彫りにします。
### 1. 「コンパイラの脆弱性」と「プログラマの責任」の二律背反
投稿者の主張の根幹にあるのは、自己のコードが引き起こす問題から責任を回避するための「責任の転嫁」です。
* **前半の主張(責任回避の論理):** 「コンパイラはただの変換器であり、仕様を逸脱していても問題ない」という主張は、プログラマが仕様を無視して未定義動作に依存したコードを書くことを許容する論理的拠り所となります。これにより、「動かなくなったのは自分のコードが悪いのではなく、コンパイラの仕様逸脱(バグ)のせいだ」という自己弁護が可能になります。
* **後半の主張(経験則による正当化):** 一方で、リーナス・トーバルズの事例を出す際は、「コンパイラが仕様通りに動いていない(あるいは後方互換性を壊した)ことに対してブチ切れるリーナスは正しい」という立場を取っています。
ここに致命的な矛盾があります。「コンパイラが仕様を逸脱しても問題ない」と考えるならば、GCC側がどのような挙動変更を行おうとも、それは「ただの変換器の仕様変更」として受け入れるべきはずです。しかし、投稿者は「動かなくなった」という事実に対し、コンパイラ側の責任を追及するリーナスの姿勢を支持しています。これは、**「自分のコードが正当であるという前提」を維持するために、その時々の都合に合わせて「コンパイラの定義」を書き換えている**に過ぎません。
640デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/15(水) 20:41:37.26ID:PFPK0g3k0 ### 2. 「推奨バージョン」と「未定義動作」の混同
投稿者は「Linuxなどの大規模プロジェクトではコンパイラのバージョンを固定している」と述べていますが、これは技術的には「未定義動作を回避するための暫定的な防御策」であり、「未定義動作を書いても良いという免罪符」ではありません。
* **専門的見地:** 大規模なカーネル開発においてコンパイラのバージョンを固定するのは、コンパイラの最適化パスに含まれる潜在的なバグや、標準仕様の解釈の差異がカーネルの機微なハードウェア操作に影響を与えることを防ぐための**リスク管理**です。
* **論理の飛躍:** 投稿者は、この「リスク管理としての固定」を、「仕様外のコードを書いてもコンパイラ側が合わせるべきだ」という誤った論理に変換しています。リーナスがGCCに対して怒ったのは、彼が「仕様を無視したコード」を書いたからではなく、「GCC側がそれまで確立されていた暗黙の了解(あるいはバグを含めた挙動)を一方的に変更し、カーネルの安定性を損なったから」です。
投稿者は「Linuxなどの大規模プロジェクトではコンパイラのバージョンを固定している」と述べていますが、これは技術的には「未定義動作を回避するための暫定的な防御策」であり、「未定義動作を書いても良いという免罪符」ではありません。
* **専門的見地:** 大規模なカーネル開発においてコンパイラのバージョンを固定するのは、コンパイラの最適化パスに含まれる潜在的なバグや、標準仕様の解釈の差異がカーネルの機微なハードウェア操作に影響を与えることを防ぐための**リスク管理**です。
* **論理の飛躍:** 投稿者は、この「リスク管理としての固定」を、「仕様外のコードを書いてもコンパイラ側が合わせるべきだ」という誤った論理に変換しています。リーナスがGCCに対して怒ったのは、彼が「仕様を無視したコード」を書いたからではなく、「GCC側がそれまで確立されていた暗黙の了解(あるいはバグを含めた挙動)を一方的に変更し、カーネルの安定性を損なったから」です。
641デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/15(水) 20:41:48.79ID:PFPK0g3k0 ### 3. 「仕様」を否定したことによる論理的袋小路
プログラマが「C言語の仕様」を厳密に守るという規律を捨て、「自分のコードが動くかどうか」という結果のみを重視し始めた瞬間、論理的な対話は不可能になります。
* **仕様の役割:** プログラミング言語の仕様書は、言語利用者とコンパイラ実装者との間の「契約」です。
* **投稿者の現状:** 投稿者は、自分に都合の良い時だけ「仕様(契約)を守れ」と叫び、自分が未定義動作を踏み抜いた時は「仕様(契約)なんて無視して動くものが正義だ」と主張しています。
リーナス・トーバルズがGCC開発者と衝突する際、彼は「カーネルの信頼性」という極めて高い基準で議論を行っています。対して、この投稿者が行っているのは、「自分の書いたいい加減なコードが、コンパイラの更新によって動かなくなることへの個人的な不満」の正当化です。
プログラマが「C言語の仕様」を厳密に守るという規律を捨て、「自分のコードが動くかどうか」という結果のみを重視し始めた瞬間、論理的な対話は不可能になります。
* **仕様の役割:** プログラミング言語の仕様書は、言語利用者とコンパイラ実装者との間の「契約」です。
* **投稿者の現状:** 投稿者は、自分に都合の良い時だけ「仕様(契約)を守れ」と叫び、自分が未定義動作を踏み抜いた時は「仕様(契約)なんて無視して動くものが正義だ」と主張しています。
リーナス・トーバルズがGCC開発者と衝突する際、彼は「カーネルの信頼性」という極めて高い基準で議論を行っています。対して、この投稿者が行っているのは、「自分の書いたいい加減なコードが、コンパイラの更新によって動かなくなることへの個人的な不満」の正当化です。
642デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/15(水) 20:42:04.27ID:PFPK0g3k0 ### 結論:なぜ矛盾が生まれるのか
この人物の思考プロセスをまとめると、以下のようになります。
1. **目的:** 「自分が楽をしたい(仕様を厳密に守る勉強や、バグ修正をしたくない)」。
2. **手法:** 「コンパイラや他人のせいにする」。
3. **矛盾の発生:** 「自分の正当性を守るためにコンパイラの重要性を貶める」が、「自分のコードが動かなくなった時には、コンパイラの重要性を強く認識する」という二重基準を用いている。
この矛盾は、「論理」を用いて技術を語っているのではなく、「自分の書いたコードへの執着」を論理というラベルでコーティングしようとしているために生じています。**技術的な議論においては、仕様という共通の基盤を否定した時点で、その議論自体が論理性を失い、単なる個人の感情の吐露に成り下がってしまう**という好例と言えるでしょう。
この人物の思考プロセスをまとめると、以下のようになります。
1. **目的:** 「自分が楽をしたい(仕様を厳密に守る勉強や、バグ修正をしたくない)」。
2. **手法:** 「コンパイラや他人のせいにする」。
3. **矛盾の発生:** 「自分の正当性を守るためにコンパイラの重要性を貶める」が、「自分のコードが動かなくなった時には、コンパイラの重要性を強く認識する」という二重基準を用いている。
この矛盾は、「論理」を用いて技術を語っているのではなく、「自分の書いたコードへの執着」を論理というラベルでコーティングしようとしているために生じています。**技術的な議論においては、仕様という共通の基盤を否定した時点で、その議論自体が論理性を失い、単なる個人の感情の吐露に成り下がってしまう**という好例と言えるでしょう。
643デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/15(水) 20:42:58.30ID:PFPK0g3k0 わざわざ自分で書く必要もなさそうなくらいバカらしかったので、ChatGPTとGeminiに書かせといたよw
644デフォルトの名無しさん (ワッチョイ f954-K2DK)
2026/07/15(水) 21:44:58.26ID:2BOd77KE0 >>624 -643(安価範囲広すぎてNGだとさ)
お前レベルの馬鹿には付ける薬がないのは理解した。
お前レベルの馬鹿には付ける薬がないのは理解した。
645デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/15(水) 23:06:39.42ID:PFPK0g3k0 >>644
「反論できないからとりあえずバカって言っとこ」ww
「反論できないからとりあえずバカって言っとこ」ww
646デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/15(水) 23:18:39.09ID:PFPK0g3k0 AIにすら反論できない時点でお察しというか
647デフォルトの名無しさん (ワッチョイ 6625-Y/mm)
2026/07/15(水) 23:18:54.22ID:SzM3hF5h0 AIの吐き出したゲロコピペするスレになったなら、
次スレは不要だな
次スレは不要だな
648デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/15(水) 23:19:55.61ID:PFPK0g3k0 >>647
人間が吐き出したゲロにぶつけるなら十分だろ
人間が吐き出したゲロにぶつけるなら十分だろ
649デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/15(水) 23:20:42.75ID:PFPK0g3k0 f954-K2DKは自分で何書いてるかもわかってないんだから
AIも自分で何書いてるかわかってないから同レベルだねw
AIも自分で何書いてるかわかってないから同レベルだねw
650デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/15(水) 23:24:54.78ID:PFPK0g3k0651デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/15(水) 23:27:58.05ID:PFPK0g3k0 >>628 が全てではあるけど、f954-K2DKは結局他人に言った悪口全部自分のことですよって丁寧にバラしていっただけだったなw
652デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/15(水) 23:34:03.15ID:PFPK0g3k0 「長文だから読まなくてもいいや、自分が未定義動作を踏み抜きまくるコードを書くことを正当化したいから乗っかったろw」
みたいなアホが何人かいたから無駄に長くなったけど、結局f954-K2DKは何もわかってないバカなんだって
みたいなアホが何人かいたから無駄に長くなったけど、結局f954-K2DKは何もわかってないバカなんだって
653デフォルトの名無しさん (ワッチョイ 357c-aRjk)
2026/07/16(木) 01:29:47.62ID:QDgTIUas0 むかーーーし、rmsが『仕様より動くことが大事』みたいなこと言ってたのうっすら思い出した。
GCCって、ANSIで定義される前から1行コメント使えたよね。
とは言えGCCとてCである事を辞めていないと言うレベルの話だろうけど。
GCCって、ANSIで定義される前から1行コメント使えたよね。
とは言えGCCとてCである事を辞めていないと言うレベルの話だろうけど。
654デフォルトの名無しさん (ワッチョイ f901-y5zM)
2026/07/16(木) 02:19:54.51ID:h9q4RvcY0 連投長文は内容以前に知能障害のバカ
655デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/16(木) 03:01:53.88ID:tqJQMSog0 >>654
反論できないから必死こいて罵倒しようという魂胆が透けて見えてる
反論できないから必死こいて罵倒しようという魂胆が透けて見えてる
656デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/16(木) 03:06:03.45ID:tqJQMSog0 >>653
多分勘違いしてると思うので言っておくと、未定義動作は本来なら動かない例だぞ
多分勘違いしてると思うので言っておくと、未定義動作は本来なら動かない例だぞ
657デフォルトの名無しさん (ワッチョイ f929-K2DK)
2026/07/16(木) 07:59:20.02ID:ydvs2Ppy0 >>653
その発言は知らんが、仕様はあくまで手段であって、目的ではないからな。
とはいえ、その時代の価値観を今に持って来ていいわけはない。
仕様準拠の方がコミュニティ含め長期的な生産性は上がるのは確実。
ただ実際は、それとは程遠い。
JSは現実的に唯一、「ソースコードでの品質を担保」出来てる(させられてる)環境だが、
プログラマは実行環境の差異に振り回され、
IE死ね、次にFirefoxも死ねで、chromeに統一されることを望んでいる。
他言語は、RustにしてもC#にしても、主たる環境でのコンパイル結果でテストしており、
仕様準拠なソースコードならあらゆる環境で動作するとは言い難い。
Javaも元祖"Write Once, Run Anywhere"だが、実際は"Write Once, Debug Everywhere"になった。
本質的に、プログラマは、「自分と(ユーザー含めた)他人が同じ環境」が一番楽なのでこれを望む。
コンパイラ別のオプションや#ifdefなんて、コンパイラを固定してしまえばそもそも不要となり、
生産性を上げるためには環境を絞ったほうがいい。
ただこれでは永遠にソースコードでの品質は確保できない。
(たまたまその環境で動作するコードが出力されてるのをテストしてるだけになる)
この点、仕様と実装がデタラメに運用されてるC言語のほうが、
主たる環境もgcc/Clang/VC/各社勝手コンパイラと多種多様であり、
結果的にあらゆる環境でそのコードがコンパイルされ、テストされるので、
まだ「ソースコードでの品質を担保」に近いというのは皮肉だ。
その発言は知らんが、仕様はあくまで手段であって、目的ではないからな。
とはいえ、その時代の価値観を今に持って来ていいわけはない。
仕様準拠の方がコミュニティ含め長期的な生産性は上がるのは確実。
ただ実際は、それとは程遠い。
JSは現実的に唯一、「ソースコードでの品質を担保」出来てる(させられてる)環境だが、
プログラマは実行環境の差異に振り回され、
IE死ね、次にFirefoxも死ねで、chromeに統一されることを望んでいる。
他言語は、RustにしてもC#にしても、主たる環境でのコンパイル結果でテストしており、
仕様準拠なソースコードならあらゆる環境で動作するとは言い難い。
Javaも元祖"Write Once, Run Anywhere"だが、実際は"Write Once, Debug Everywhere"になった。
本質的に、プログラマは、「自分と(ユーザー含めた)他人が同じ環境」が一番楽なのでこれを望む。
コンパイラ別のオプションや#ifdefなんて、コンパイラを固定してしまえばそもそも不要となり、
生産性を上げるためには環境を絞ったほうがいい。
ただこれでは永遠にソースコードでの品質は確保できない。
(たまたまその環境で動作するコードが出力されてるのをテストしてるだけになる)
この点、仕様と実装がデタラメに運用されてるC言語のほうが、
主たる環境もgcc/Clang/VC/各社勝手コンパイラと多種多様であり、
結果的にあらゆる環境でそのコードがコンパイルされ、テストされるので、
まだ「ソースコードでの品質を担保」に近いというのは皮肉だ。
658デフォルトの名無しさん (ワッチョイ f929-K2DK)
2026/07/16(木) 08:52:43.54ID:ydvs2Ppy0 >>653
ついでに言うと、C言語は「生産性を上げる為に仕様を絞る」事もやろうとしてない。
仕様準拠は主に(長期的な)生産性向上の為(=ソースコードの品質を上げる為)として、
生産性を上げる為には仕様内の差異を潰す(仕様を絞る)事をしないといけない。
逆に言うと、仕様準拠だが実装がバラけるような「ユルい」仕様では意味がない。
具体的には、funcD(funcA(),funcB(),funcC())に対し、
C#やJSではABCD順に評価されると仕様で「固定」されているが、CではABC間は順序が規定されてない。
だから、この点、仕様準拠でも、たまたまABCD順の出力もあれば、BCAD順の出力もありえ、
その環境の「実行コード」をテストして動いたとしても、その「ソースコード」が正しいとは言えず、
本来は3P3=6倍の手間を掛け、「全順序ケースの『実行コード』」をテストするしか無いが、
現実的に、これが出来るコンパイラもない。
この辺、当たり前だが後発言語は潰してある。
Cでこの仕様を修正できない理由は、政治であり、(560参照)
コンパイラ作成側が1mmも譲らず、あらゆる自由度を最適化余地の既得権益としてるからだが、
これでは「何のための仕様なのか」であり、完全に本末転倒になっている。
(がまあ、これ含めてCの文化ではあるが)
なのでまあ、C界隈は、仕様準拠して生産性を上げるぞ、なんて目指して無くて、
昔から変わらず、自分環境で自分の希望するコードを得るための手段、となってる。
(勿論、仕様準拠ゴリゴリもありだが、Cの場合はそうやっても生産性が上がるようにはなってない。
《でもやらないよりはマシだが》)
ついでに言うと、C言語は「生産性を上げる為に仕様を絞る」事もやろうとしてない。
仕様準拠は主に(長期的な)生産性向上の為(=ソースコードの品質を上げる為)として、
生産性を上げる為には仕様内の差異を潰す(仕様を絞る)事をしないといけない。
逆に言うと、仕様準拠だが実装がバラけるような「ユルい」仕様では意味がない。
具体的には、funcD(funcA(),funcB(),funcC())に対し、
C#やJSではABCD順に評価されると仕様で「固定」されているが、CではABC間は順序が規定されてない。
だから、この点、仕様準拠でも、たまたまABCD順の出力もあれば、BCAD順の出力もありえ、
その環境の「実行コード」をテストして動いたとしても、その「ソースコード」が正しいとは言えず、
本来は3P3=6倍の手間を掛け、「全順序ケースの『実行コード』」をテストするしか無いが、
現実的に、これが出来るコンパイラもない。
この辺、当たり前だが後発言語は潰してある。
Cでこの仕様を修正できない理由は、政治であり、(560参照)
コンパイラ作成側が1mmも譲らず、あらゆる自由度を最適化余地の既得権益としてるからだが、
これでは「何のための仕様なのか」であり、完全に本末転倒になっている。
(がまあ、これ含めてCの文化ではあるが)
なのでまあ、C界隈は、仕様準拠して生産性を上げるぞ、なんて目指して無くて、
昔から変わらず、自分環境で自分の希望するコードを得るための手段、となってる。
(勿論、仕様準拠ゴリゴリもありだが、Cの場合はそうやっても生産性が上がるようにはなってない。
《でもやらないよりはマシだが》)
659デフォルトの名無しさん (ワッチョイ f929-K2DK)
2026/07/16(木) 08:54:03.33ID:ydvs2Ppy0 ちな、同様のは、例えばJSではsortが不安定ソード→安定ソートに仕様変更された。
てか、他言語はちまちまこの辺を修正してるのだから、Cも修正しろよなと。
Cは変わらなすぎなのが問題。
本来、良い仕様を策定することはすごく難しくて、
あんまり「仕様」にこだわりすぎると前に進めなくなるので、ある程度諦めて「動くコード」をさっさと作れ、
とRMSは言ったのではないかと思われるが、
時代は下り、ソフトウェアについての知見も溜まってきてるので、今は仕様にもこだわらないといけない時代ではある。
(ただまあ、個人的にはRustではないな、と見てる。あれはゴミだ)
てか、他言語はちまちまこの辺を修正してるのだから、Cも修正しろよなと。
Cは変わらなすぎなのが問題。
本来、良い仕様を策定することはすごく難しくて、
あんまり「仕様」にこだわりすぎると前に進めなくなるので、ある程度諦めて「動くコード」をさっさと作れ、
とRMSは言ったのではないかと思われるが、
時代は下り、ソフトウェアについての知見も溜まってきてるので、今は仕様にもこだわらないといけない時代ではある。
(ただまあ、個人的にはRustではないな、と見てる。あれはゴミだ)
660デフォルトの名無しさん (ワッチョイ 8926-uWhl)
2026/07/16(木) 10:11:22.50ID:AMrrXlFD0 > funcD(funcA(),funcB(),funcC())に対し、
> C#やJSではABCD順に評価されると仕様で「固定」されているが、CではABC間は順序が規定されてない。
呼び出し順一意にしたかったらそういう書き方するだけだし、それ以前の話として「副作用ある式を関数の引数にすんな」くらいのコーディング規約は決めてて当たり前。
> C#やJSではABCD順に評価されると仕様で「固定」されているが、CではABC間は順序が規定されてない。
呼び出し順一意にしたかったらそういう書き方するだけだし、それ以前の話として「副作用ある式を関数の引数にすんな」くらいのコーディング規約は決めてて当たり前。
661デフォルトの名無しさん (ワッチョイ f93c-K2DK)
2026/07/16(木) 11:53:49.22ID:ydvs2Ppy0 >>660
それは「対策出来る」だけであって、「あるべき仕様」ではないでしょ。
そもそもこの仕様を変更したとして、誰にも何らデメリット無いのだから、
コーディング規約によるアナログ対策ではなく、文法化で100%厳守強制でいい。他後発言語はそうしてる。
(地雷原で「旗立てといたから踏まないでね」と言われたら、いや「除去しておいてくれ」と思うでしょ)
Cはこの辺のノウハウが溜まる前の言語だから、色々仕様に不備があるのは致し方無しだが、
改善しようともしてないのは問題だと思うよ。
とはいえ結局、コンパイラ言語の成果物の最終配布形態/テストターゲットはバイナリであって、ソースコードではないから、
「このソースコードは動作します」なんて事はそもそも出来ないけど、
それでも一応、そこを目指すべきではあるだろ。
(…なんだが、対策出来れば実用言語としてはある程度は十分で、放置されて今があるわけだが)
それは「対策出来る」だけであって、「あるべき仕様」ではないでしょ。
そもそもこの仕様を変更したとして、誰にも何らデメリット無いのだから、
コーディング規約によるアナログ対策ではなく、文法化で100%厳守強制でいい。他後発言語はそうしてる。
(地雷原で「旗立てといたから踏まないでね」と言われたら、いや「除去しておいてくれ」と思うでしょ)
Cはこの辺のノウハウが溜まる前の言語だから、色々仕様に不備があるのは致し方無しだが、
改善しようともしてないのは問題だと思うよ。
とはいえ結局、コンパイラ言語の成果物の最終配布形態/テストターゲットはバイナリであって、ソースコードではないから、
「このソースコードは動作します」なんて事はそもそも出来ないけど、
それでも一応、そこを目指すべきではあるだろ。
(…なんだが、対策出来れば実用言語としてはある程度は十分で、放置されて今があるわけだが)
662デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/16(木) 12:02:44.88ID:tqJQMSog0 >>658
仕様で決まってないことがあるから仕様準拠しなくていい、は草
流石にここまで行くと笑えてくるわ、そんなこと言いだしたらどんな言語でも仕様守らなくていいって結論しか導き出せない
それにサラッと話そらしてるけど未定義動作を書いてもいい理由にはなっていない
処理系に依存するのは別にいいけど、未定義動作は何が起きるかわからんから動かないコードとして扱う必要があるって話だからな
仕様で決まってないことがあるから仕様準拠しなくていい、は草
流石にここまで行くと笑えてくるわ、そんなこと言いだしたらどんな言語でも仕様守らなくていいって結論しか導き出せない
それにサラッと話そらしてるけど未定義動作を書いてもいい理由にはなっていない
処理系に依存するのは別にいいけど、未定義動作は何が起きるかわからんから動かないコードとして扱う必要があるって話だからな
663デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/16(木) 12:13:40.88ID:tqJQMSog0664デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/16(木) 12:15:06.95ID:tqJQMSog0665デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/16(木) 12:22:29.33ID:tqJQMSog0 > 仕様準拠は主に(長期的な)生産性向上の為(=ソースコードの品質を上げる為)として、
> 生産性を上げる為には仕様内の差異を潰す(仕様を絞る)事をしないといけない。
> 逆に言うと、仕様準拠だが実装がバラけるような「ユルい」仕様では意味がない。
お前やっぱC書いたことないだろって感じのことばっかり言うよな
流石に明らかに変なところに突っ込まないのは逆に怪しいから突っ込むけども、
> 仕様準拠だが実装がバラけるような「ユルい」仕様では意味がない
申し訳ないが意味不明
仕様準拠なら実装が違っても問題ないのは前提なんだわ
それは「高級言語」というものの定義の話としてそうで、逆に、そうじゃなかったらアセンブリ直接書けって話にしかならんのね
ハードウェアを抽象化した以上、仕様で提供される機能の範囲で書くというのは君が散々Cより改良されてると言ってる諸言語でも同じ
> 生産性を上げる為には仕様内の差異を潰す(仕様を絞る)事をしないといけない。
> 逆に言うと、仕様準拠だが実装がバラけるような「ユルい」仕様では意味がない。
お前やっぱC書いたことないだろって感じのことばっかり言うよな
流石に明らかに変なところに突っ込まないのは逆に怪しいから突っ込むけども、
> 仕様準拠だが実装がバラけるような「ユルい」仕様では意味がない
申し訳ないが意味不明
仕様準拠なら実装が違っても問題ないのは前提なんだわ
それは「高級言語」というものの定義の話としてそうで、逆に、そうじゃなかったらアセンブリ直接書けって話にしかならんのね
ハードウェアを抽象化した以上、仕様で提供される機能の範囲で書くというのは君が散々Cより改良されてると言ってる諸言語でも同じ
666デフォルトの名無しさん (ワッチョイ 8926-uWhl)
2026/07/16(木) 12:23:52.40ID:AMrrXlFD0 >>661
> そもそもこの仕様を変更したとして、誰にも何らデメリット無いのだから、
新しい仕様に依存したコードが書かれる様なるとそれに対応しない処理系の使用は絶望的になるからデメリット大きい。
適当に同じ処理まとめるだとか処理の順番入れ替えるだとかの自由も奪うことになると最適化の自由度も今より下がる。
> そもそもこの仕様を変更したとして、誰にも何らデメリット無いのだから、
新しい仕様に依存したコードが書かれる様なるとそれに対応しない処理系の使用は絶望的になるからデメリット大きい。
適当に同じ処理まとめるだとか処理の順番入れ替えるだとかの自由も奪うことになると最適化の自由度も今より下がる。
667デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/16(木) 12:24:26.60ID:tqJQMSog0 >>658
> 生産性を上げる為には仕様内の差異を潰す(仕様を絞る)事をしないといけない
これはそもそも間違ったことを書いている
正しくは
> 生産性を上げる為には仕様内の差異を潰す(挙動を絞る)事をしないといけない
となる
で、なんでそんなことを必要とするのかと言えば、仕様に準拠しない書き方をしているからでしかない
仕様で保証されていない挙動を勝手に前提としてコードを書き、その通りにならない環境が出てくるからそういう作業が始まる
最初から仕様に定められた通りに解釈していれば、この無駄な作業は発生していない
> 生産性を上げる為には仕様内の差異を潰す(仕様を絞る)事をしないといけない
これはそもそも間違ったことを書いている
正しくは
> 生産性を上げる為には仕様内の差異を潰す(挙動を絞る)事をしないといけない
となる
で、なんでそんなことを必要とするのかと言えば、仕様に準拠しない書き方をしているからでしかない
仕様で保証されていない挙動を勝手に前提としてコードを書き、その通りにならない環境が出てくるからそういう作業が始まる
最初から仕様に定められた通りに解釈していれば、この無駄な作業は発生していない
668デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/16(木) 12:26:17.55ID:tqJQMSog0669デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/16(木) 12:27:42.73ID:tqJQMSog0670デフォルトの名無しさん (ワッチョイ 8926-uWhl)
2026/07/16(木) 12:28:29.06ID:AMrrXlFD0 C言語は仕様を完全に理解し未定義動作を絶対に踏まないパーフェクト超人向けの言語として舵切ってるのでJavaScriptみたいな素人向け言語の方針になびいたりすることは今後もなかろう。
671デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/16(木) 12:30:37.51ID:tqJQMSog0 >>658
> コンパイラ作成側が1mmも譲らず、あらゆる自由度を最適化余地の既得権益としてるからだが、
未定義動作の意味を理解していないからこんな妄想が出てくる
どんな言語でも仕様の範囲外をどう処理するかはコンパイラやランタイムの自由で、そういうコードは「書いてはいけない」というのは共通している
書いてはいけないコードを書いた結果壊れるのは当たり前で、コンパイラが悪いというのは的外れな主張だ
> コンパイラ作成側が1mmも譲らず、あらゆる自由度を最適化余地の既得権益としてるからだが、
未定義動作の意味を理解していないからこんな妄想が出てくる
どんな言語でも仕様の範囲外をどう処理するかはコンパイラやランタイムの自由で、そういうコードは「書いてはいけない」というのは共通している
書いてはいけないコードを書いた結果壊れるのは当たり前で、コンパイラが悪いというのは的外れな主張だ
672デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/16(木) 12:38:17.69ID:tqJQMSog0 >>670
> C言語は仕様を完全に理解し未定義動作を絶対に踏まないパーフェクト超人向けの言語
これはガチ
別に舵切ったわけじゃなくて最初(仕様が公開された時点)からそうなんだけどね
だから「できない奴は去れ」なんだよな
> C言語は仕様を完全に理解し未定義動作を絶対に踏まないパーフェクト超人向けの言語
これはガチ
別に舵切ったわけじゃなくて最初(仕様が公開された時点)からそうなんだけどね
だから「できない奴は去れ」なんだよな
673デフォルトの名無しさん (ワッチョイ f93c-K2DK)
2026/07/16(木) 12:52:20.03ID:ydvs2Ppy0674デフォルトの名無しさん (ガックシ 06b5-UT5n)
2026/07/16(木) 16:00:50.92ID:Wb6p8Q0G6 >>673
> 資産はコードであって、コンパイラではない。
コードが資産なのにコードを動かせないコンパイラが支配的になると困るって話だろ
お前ホント日本語読めないよな
> コンパイラは改修すればいいだけ。
コンパイラも資産であるコードの一部であって、全部改修とか現実見てない奴しか言えないバカげた妄言の最たるもの
あと、まだ >>667 と >>671 で否定した
> コードの品質を上げるべく、仕様を絞ったほうがいい
とかいうバカげた主張を何の反省もなく繰り返してるんだな
バカの一つ覚えとはこのこと
> おかしな選民思想を持たず、タダで出来る安全装置は付けるべきだろう。
おかしな選民思想ではなく、ただの事実だよw
C言語は正しく書ける奴が正しく書くことを前提に仕様が決まっている
安全装置が欲しければRust書いてろって話
> 資産はコードであって、コンパイラではない。
コードが資産なのにコードを動かせないコンパイラが支配的になると困るって話だろ
お前ホント日本語読めないよな
> コンパイラは改修すればいいだけ。
コンパイラも資産であるコードの一部であって、全部改修とか現実見てない奴しか言えないバカげた妄言の最たるもの
あと、まだ >>667 と >>671 で否定した
> コードの品質を上げるべく、仕様を絞ったほうがいい
とかいうバカげた主張を何の反省もなく繰り返してるんだな
バカの一つ覚えとはこのこと
> おかしな選民思想を持たず、タダで出来る安全装置は付けるべきだろう。
おかしな選民思想ではなく、ただの事実だよw
C言語は正しく書ける奴が正しく書くことを前提に仕様が決まっている
安全装置が欲しければRust書いてろって話
675デフォルトの名無しさん (ガックシ 06b5-UT5n)
2026/07/16(木) 16:02:03.60ID:Wb6p8Q0G6 だから親切に最初からf93c-K2DKみたいな奴向けにRustはあるんだって言ってやってるのに、頭使えないからかバカにして見下してるせいで認められない
676デフォルトの名無しさん (ガックシ 06b5-UT5n)
2026/07/16(木) 16:13:16.63ID:Wb6p8Q0G6 C言語は自分で仕様チェックしてその通り書ける奴のための言語
それができないならRustコンパイラに丁寧に教えてもらいなさいw
それができないならRustコンパイラに丁寧に教えてもらいなさいw
677デフォルトの名無しさん (ワッチョイ 89c0-176r)
2026/07/16(木) 17:30:07.71ID:LAo9fD1s0 >>659
ソードってPIPSのSORD?
ソードってPIPSのSORD?
678デフォルトの名無しさん (ワッチョイ 6625-Y/mm)
2026/07/16(木) 18:08:57.80ID:fgqOLN+Y0 あそこは東芝が捕食した
679デフォルトの名無しさん (ワッチョイ 8995-S39p)
2026/07/16(木) 18:57:04.27ID:ZwV5Ocxz0 最近はCで書いてAIにRUSTに書き直してもらってる
680デフォルトの名無しさん (ササクッテロラ Spbd-TjJb)
2026/07/16(木) 19:03:30.95ID:uqiKuVosp681デフォルトの名無しさん (アウアウウー Sa21-xAtI)
2026/07/16(木) 21:11:52.38ID:vcbnvdP8a >>659
> (ただまあ、個人的にはRustではないな、と見てる。あれはゴミだ)
ゴミとまでは思わないけど
宣伝文句に対して力不足だと思う
俺も出始めのころから2017年?くらいまでは熱心に追いかけてたけど
なんかもう特にコメントするところもない言語って感じ
Scalaなんかも出始めのころ画期的に見えたけどこれももう何も言うことはない
> (ただまあ、個人的にはRustではないな、と見てる。あれはゴミだ)
ゴミとまでは思わないけど
宣伝文句に対して力不足だと思う
俺も出始めのころから2017年?くらいまでは熱心に追いかけてたけど
なんかもう特にコメントするところもない言語って感じ
Scalaなんかも出始めのころ画期的に見えたけどこれももう何も言うことはない
682デフォルトの名無しさん (JP 0Hd2-Klls)
2026/07/16(木) 21:57:29.54ID:Y27OUNXyH >>679
言語を変えるならjavaスクリプトからラストとかなら分かるけど、その例だとコード実行速度あんまり上がらなさそう
言語を変えるならjavaスクリプトからラストとかなら分かるけど、その例だとコード実行速度あんまり上がらなさそう
683デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/16(木) 22:20:07.90ID:tqJQMSog0684デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/16(木) 22:20:43.74ID:tqJQMSog0 そもそも実用的なプログラミング言語に「驚きと楽しさで満ち溢れ」てもらっては困る
685デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/16(木) 22:22:57.40ID:tqJQMSog0686デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/16(木) 22:23:55.35ID:tqJQMSog0 安全にするためのルールにも文句を言う、でも安全じゃないのは欠陥だと喚く、要するに自分の忍耐も努力も足りないことを他人のせいにしているだけ
687デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/16(木) 23:22:22.34ID:tqJQMSog0688デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/17(金) 19:07:04.68ID:eJfcvx1B0 やっぱAnnex Kってゴミだわ
689デフォルトの名無しさん (ワッチョイ 61b5-UT5n)
2026/07/17(金) 22:40:36.31ID:JPfZ12kA0 _s 関数使えたもんじゃないよな
690デフォルトの名無しさん (ワッチョイ 6108-UT5n)
2026/07/17(金) 22:55:21.97ID:SImBWJDs0 あれは失敗規格だから
691デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/18(土) 13:25:30.49ID:BkyklCKZ0 エラー出たら勝手に落ちたり防ぎたかったら変なん渡さなきゃいけなかったりめんどくさすぎる
692デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/18(土) 20:56:27.68ID:BkyklCKZ0 やっぱりMinGW使った方がいいな
693デフォルトの名無しさん (ワッチョイ 8934-UT5n)
2026/07/18(土) 20:56:42.79ID:BkyklCKZ0 あ、下げ忘れた
694デフォルトの名無しさん (アウアウウー Sa9b-5MuH)
2026/07/19(日) 06:33:39.80ID:Frm9xG3ua GNU/LinuxでGCCがいいよ
695デフォルトの名無しさん (ワントンキン MM7f-djho)
2026/07/19(日) 10:12:10.69ID:7xyOc8N5M 仮想ソフト使ってインストールしている
696デフォルトの名無しさん (ワッチョイ b734-Yk6U)
2026/07/20(月) 17:46:06.08ID:FTzidL2p0 >>694
OSは好きで選べるもんじゃないから、Linux上で開発しても結局最終的にはMinGWに頼ることにはなるよ
OSは好きで選べるもんじゃないから、Linux上で開発しても結局最終的にはMinGWに頼ることにはなるよ
697デフォルトの名無しさん (ワントンキン MM7f-djho)
2026/07/20(月) 19:02:44.52ID:TtocmnrPM 最終OSは発注者が決める
698はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 97aa-0hM1)
2026/07/20(月) 20:07:24.83ID:XCZRRui30 クロス開発しても動作確認 (テスト) をしないわけにはいかないのだし、 Windows 用のソフトウェアを作るという前提なら Linux 上でやる意味はそんなにないな。
以前の Windows はパッケージマネージャが駄目だったから環境構築が面倒だったけど今は scoop とかがあるし。
以前の Windows はパッケージマネージャが駄目だったから環境構築が面倒だったけど今は scoop とかがあるし。
699デフォルトの名無しさん (ワッチョイ ff25-LtPz)
2026/07/23(木) 13:24:55.11ID:pykcIHbI0 オレなんかが仮想環境利用するのは、
1台でサバクラ環境作れるからなんだわ
1台でサバクラ環境作れるからなんだわ
700デフォルトの名無しさん (ワッチョイ 7763-knxu)
2026/07/24(金) 05:10:49.53ID:taerOtS60 MinGWはWindowsでGCC使えていいよな
701デフォルトの名無しさん (ワッチョイ 1625-ibtG)
2026/07/26(日) 12:41:26.26ID:VyQRUqSH0 一応windowsで使えるgccはある
702デフォルトの名無しさん (ワッチョイ 126a-x+NG)
2026/07/27(月) 04:55:21.25ID:e++5CBjU0 wsl でやるのが楽
703はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 63f8-LhV6)
2026/07/27(月) 09:41:26.81ID:8CHRIz050 MinGW の Min は Minimal の Min
実際には autotools などのツールチェインやパッケージマネージャと連携しないと使えるライブラリのビルドや利用がやりづらいので Cygwin や Msys2 などの環境内で MinGW を入れたほうが良いと思う。
WSL でも良いけど MinGW のために WSL を入れるのだとしたらちょっと過剰かもしれない。
実際には autotools などのツールチェインやパッケージマネージャと連携しないと使えるライブラリのビルドや利用がやりづらいので Cygwin や Msys2 などの環境内で MinGW を入れたほうが良いと思う。
WSL でも良いけど MinGW のために WSL を入れるのだとしたらちょっと過剰かもしれない。
704デフォルトの名無しさん (ワッチョイ e3a4-+EzY)
2026/07/27(月) 12:35:14.45ID:PNTs1cOJ0 Minimalistな、MSYSじゃねーんだからw
Minimal GNUじゃ表したい概念とちょっと違うだろうよ
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+Ced707デフォルトの名無しさん (ワッチョイ 5398-ibtG)
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 お札を送る
710デフォルトの名無しさん (ワッチョイ 5398-ibtG)
2026/07/30(木) 17:05:29.27ID:yLT+MEzH0 どこの神社が良いですか?
711デフォルトの名無しさん (ワッチョイ 5367-6PXk)
2026/07/30(木) 17:42:55.17ID:4lG5CXrP0 昔cygwinとかあったけどな
712デフォルトの名無しさん (ワッチョイ 5398-ibtG)
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/0715デフォルトの名無しさん (ワッチョイ 5334-IkFD)
2026/08/01(土) 02:40:44.14ID:fT3Cj9Cj0 WSLは結局Linux仮想環境だからそこでビルドしたってそのままじゃWindows向けには動かせない
Linux側でクロスコンパイルするにしても、Windows側でコンパイルするにしても、MinGW-w64 UCRT64を使うのが王道
Linux側でクロスコンパイルするにしても、Windows側でコンパイルするにしても、MinGW-w64 UCRT64を使うのが王道
716デフォルトの名無しさん (ワッチョイ 534e-ibtG)
2026/08/01(土) 20:10:39.84ID:WJ2D9tE50 OS固有の機能を使ってないのであれば
Windowsでも動くんではないですか?
Windowsでも動くんではないですか?
717はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 63f8-LhV6)
2026/08/01(土) 20:24:51.00ID:PAijeuDp0 そもそも実行ファイルフォーマット (をメモリに展開するローダの仕様) がOS固有なので……
Linux だと ELF で Windows は PE
Linux だと ELF で Windows は PE
718デフォルトの名無しさん (ワッチョイ 534e-ibtG)
2026/08/01(土) 21:29:20.93ID:WJ2D9tE50 それはそうですね
言葉が不足しました。
言葉が不足しました。
719デフォルトの名無しさん (ワッチョイ 8325-ODcf)
2026/08/02(日) 08:29:31.94ID:VpP1GNu10 DOS時代はハード固有の機能を使わければ(キーボードBIOS使わず標準入力関連コマンドを使う等)
同じ系列のCPU/OSの他ハード(PC-98/TOWNS/DOS/V)でも動くというのはあった。
同じ系列のCPU/OSの他ハード(PC-98/TOWNS/DOS/V)でも動くというのはあった。
720デフォルトの名無しさん (ワッチョイ ff6a-IV3f)
2026/08/02(日) 10:11:48.55ID:4pM5NiIU0 OSというのは元々そういう互換性を狙って作られたものだった
721はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 4377-x+kN)
2026/08/02(日) 12:24:33.49ID:wd/chQhv0 UNIX 以降の OS はハードウェアの違いを吸収する仕組みがある程度はあるけど最初からそれを目的のひとつとしていたかと言うとちょっと疑問。
数十年前に雑誌 (おそらく UNIX USER だったと思う) の連載記事で読んだことがあるようなないような曖昧な記憶だから不確かだけど。
数十年前に雑誌 (おそらく UNIX USER だったと思う) の連載記事で読んだことがあるようなないような曖昧な記憶だから不確かだけど。
722デフォルトの名無しさん (ワッチョイ cf25-oDgT)
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/
ヘ_ヘ
ミ・・ ミ
( °)〜
或いは誰か作ってくれない?
これしか見つからなかった。
http://kako.5ch.io/test/read.cgi/tech/1101615970/
ヘ_ヘ
ミ・・ ミ
( °)〜
724デフォルトの名無しさん (ワッチョイ de25-/Ozg)
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 ヘ_ヘ
ミ・ ・ミ
( ° )~
うーん・・・
ミ・ ・ミ
( ° )~
うーん・・・
728はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5ff8-aIk1)
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を使いたいのか
はっきりさせるべき
gccを使いたいのか
cygwinを使いたいのか
windowsを使いたいのか
はっきりさせるべき
730デフォルトの名無しさん (ワッチョイ d7f5-/mPH)
2026/08/11(火) 17:03:31.82ID:8gMqyrhP0 OpenLDAPみたいなプログラムを作ってみたくて、はじめてのCを買ってきました。
何日位で作れそうですか?
何日位で作れそうですか?
731デフォルトの名無しさん (ワッチョイ dffb-DzFd)
2026/08/11(火) 17:38:38.39ID:+J6O4mZm0 半日
732デフォルトの名無しさん (ワッチョイ de25-/Ozg)
2026/08/11(火) 18:41:29.94ID:dw8FDprd0 作るのは簡単
動くかどうかは不明
動くかどうかは不明
733デフォルトの名無しさん (ワッチョイ 0606-hmzW)
2026/08/12(水) 08:45:34.52ID:VHBhB4BD0734デフォルトの名無しさん (ワッチョイ 0fec-QY+j)
2026/08/12(水) 11:07:31.96ID:9FHMbNhA0 まずはポインタの習得が肝心だよ
735デフォルトの名無しさん (ワッチョイ de25-/Ozg)
2026/08/14(金) 19:08:29.19ID:psnt77tf0 ポインタの習得できたら、
次はなんですかね?
次はなんですかね?
736はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 334c-AEB6)
2026/08/14(金) 20:24:35.19ID:aAzkQlPJ0 たとえばポインタについて細部を学ぼうとしたらメモリ管理とも型システムとも強い関連性があって、それらを無視して理解することはできない。
つまりひとつを完全に習得してから次の機能を学ぶなんていうきちんとした順序はつけられない。
そこをどうにかして上手いことわかりやするために入門書は腐心してるのでとりあえず一旦は入門書を最後まで読んで理解することに努めたらいいと思う。
こんなところで聞くより入門書の著者や編者の努力を信じるべき。
どうしても理解できない箇所をピンポイントで尋ねるなら掲示板も良いだろうけど本の体系的な説明のほうが全体としては良い説明になってるはずだよ。
つまりひとつを完全に習得してから次の機能を学ぶなんていうきちんとした順序はつけられない。
そこをどうにかして上手いことわかりやするために入門書は腐心してるのでとりあえず一旦は入門書を最後まで読んで理解することに努めたらいいと思う。
こんなところで聞くより入門書の著者や編者の努力を信じるべき。
どうしても理解できない箇所をピンポイントで尋ねるなら掲示板も良いだろうけど本の体系的な説明のほうが全体としては良い説明になってるはずだよ。
737デフォルトの名無しさん (ワッチョイ c36a-/mPH)
2026/08/14(金) 23:16:13.50ID:A9d+qFaE0 おすすめ「苦しんで覚えるC言語」
サイトもあるけど、やっぱり本じゃないとね
古い本だから今更新品の本を買う必要なし、アマゾンで中古本をポチればいいよ
サイトもあるけど、やっぱり本じゃないとね
古い本だから今更新品の本を買う必要なし、アマゾンで中古本をポチればいいよ
738デフォルトの名無しさん (ワッチョイ de25-/Ozg)
2026/08/14(金) 23:45:48.71ID:psnt77tf0 電子書籍で良いのでは
739デフォルトの名無しさん (ワッチョイ 0f93-s4ga)
2026/08/15(土) 01:05:25.19ID:AdrCUUhP0 > おすすめ「苦しんで覚えるC言語」
サイト見たけど間違い結構あるなw
サイト見たけど間違い結構あるなw
740デフォルトの名無しさん (ワッチョイ 3316-Rd74)
2026/08/15(土) 01:39:47.95ID:3eHbAMFe0 Geminiのガイド付き学習でインタラクティブに学習できるよ
そういう時代
そういう時代
741はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5ff8-aIk1)
2026/08/15(土) 07:47:55.99ID:Wxt72Cnl0 質問が見当はずれだと回答もよくわからん。
Gemini に手伝ってもらうにしてもベースとしてはちょっとした入門書はあったほうが良い。
Gemini に手伝ってもらうにしてもベースとしてはちょっとした入門書はあったほうが良い。
742デフォルトの名無しさん (ワッチョイ de25-/Ozg)
2026/08/15(土) 09:06:14.48ID:GGQ2s86t0 ちょっとした入門の、
範囲が知りたいんだが
範囲が知りたいんだが
743デフォルトの名無しさん (ワッチョイ 0f93-s4ga)
2026/08/15(土) 10:55:07.00ID:AdrCUUhP0 > ちょっとした入門の、範囲
未定義動作を正確な知識により踏まなくなる程度
未定義動作を正確な知識により踏まなくなる程度
744デフォルトの名無しさん (ワッチョイ df70-H3bd)
2026/08/15(土) 10:59:52.53ID:mirUALuA0 Z知能にCは無理
Rust知能にもCは無理
Rust知能にもCは無理
745デフォルトの名無しさん (ワッチョイ de25-/Ozg)
2026/08/15(土) 11:04:02.85ID:GGQ2s86t0 殆どの人はそれで十分だと思うよな
746はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5ff8-aIk1)
2026/08/15(土) 11:24:16.96ID:Wxt72Cnl0 私が入門したのは何十年も前の話だから……その頃の感覚で言われても困るだろう。
C に入門するより先に機械語をいじっていたタイプの学習ルートを経ていて、私の同世代は少なからずそんなものだが明らかに現代的な学習ルートではない。
そんで分かってしまうといまさら入門書を見て良し悪しの評価なんかできない。
説明に間違いがあれば指摘はできるけど分かり易さは別の話だし、方便として多少の不正確さを許容したほうが良い場合もあるし。
おそらく入門書は教育者が実際に教育に使いながらフィードバックを重ねたものが良いものになるんじゃないかと思う。
C に入門するより先に機械語をいじっていたタイプの学習ルートを経ていて、私の同世代は少なからずそんなものだが明らかに現代的な学習ルートではない。
そんで分かってしまうといまさら入門書を見て良し悪しの評価なんかできない。
説明に間違いがあれば指摘はできるけど分かり易さは別の話だし、方便として多少の不正確さを許容したほうが良い場合もあるし。
おそらく入門書は教育者が実際に教育に使いながらフィードバックを重ねたものが良いものになるんじゃないかと思う。
747デフォルトの名無しさん (ワッチョイ de25-/Ozg)
2026/08/15(土) 17:28:19.72ID:GGQ2s86t0 す自動変数
748デフォルトの名無しさん (ワッチョイ de25-/Ozg)
2026/08/15(土) 17:29:53.06ID:GGQ2s86t0 すまん
自動変数を一杯宣言し過ぎてスタック破壊した経験ってないですか?
自動変数を一杯宣言し過ぎてスタック破壊した経験ってないですか?
749デフォルトの名無しさん (ワッチョイ dfab-H3bd)
2026/08/15(土) 18:09:54.17ID:mirUALuA0750デフォルトの名無しさん (ワッチョイ dfab-H3bd)
2026/08/15(土) 18:13:40.05ID:mirUALuA0 >>748
コンパイル時に指定すればスタックサイズを増量できる
コンパイル時に指定すればスタックサイズを増量できる
751はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5ff8-aIk1)
2026/08/15(土) 18:33:03.44ID:Wxt72Cnl0 >>750
Windows だとスタックの上限は実行ファイル内に格納されるパラメータだからコンパイル時の指定で変えられるけど現代的 OS の一般論としては OS の側の設定値として持っているのが普通だと思う。
少なくとも Linux や BSD だとそうなってる。
Windows だとスタックの上限は実行ファイル内に格納されるパラメータだからコンパイル時の指定で変えられるけど現代的 OS の一般論としては OS の側の設定値として持っているのが普通だと思う。
少なくとも Linux や BSD だとそうなってる。
752デフォルトの名無しさん (ワッチョイ 6fe4-sddm)
2026/08/15(土) 18:51:17.00ID:vxBg0KLF0 普通はヒープ使うからなぁ
753デフォルトの名無しさん (ワッチョイ 0fa5-/Ozg)
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
※開発中にこれを喰らうとデスマ確定のLINKエラーw
755デフォルトの名無しさん (ワッチョイ 0606-hmzW)
2026/08/15(土) 20:03:09.70ID:DGyWizKz0756デフォルトの名無しさん (ワッチョイ 0f4b-/Ozg)
2026/08/15(土) 20:40:50.03ID:PdMcshzj0 >>755
さう、それです。
元々FORTRANで書かれていたプログラムを移植してました。
各ロジックの移植までは良かったんですが、
配列宣言が関数内に複数個、それぞれ要素数が数万個ありました。
最終的にヒープに取ることにしましたが、あまり納得はできなかったです。
さう、それです。
元々FORTRANで書かれていたプログラムを移植してました。
各ロジックの移植までは良かったんですが、
配列宣言が関数内に複数個、それぞれ要素数が数万個ありました。
最終的にヒープに取ることにしましたが、あまり納得はできなかったです。
757デフォルトの名無しさん (ワッチョイ df20-H3bd)
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からの移植時に」とお前が最初から言えば回避出来た話だろ。
それは移植戦略を間違ってる。
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からの移植時に」とお前が最初から言えば回避出来た話だろ。
758デフォルトの名無しさん (ワッチョイ df20-H3bd)
2026/08/15(土) 23:22:33.88ID:mirUALuA0 >>751
> 現代的 OS の一般論としては OS の側の設定値として持っているのが普通
Linuxではulimit -s で変えられるらしいが、どっちが「普通」かには異議ありだな。
そもそもそのプログラムがスタックを大量に消費することはプログラマしか知らない。
だからコンパイル時にマークしておく必要があり、その上で、
システム側で許容された値以下なら許可する、という方式が正しいだろ。
Linux方式だと、エラーになったらその都度対応してくれ、ただどれくらい必要なのかは知らん、というマヌケな事を強制する仕様ではないか。
exeに明記されてれば、少なくとも、静的に大量確保される場合は完全に対応できる。今回もそうだろ。
Windowsの仕様のほうが「普通」で「正しい」と俺は思うね。(よりマシな仕様)
> 現代的 OS の一般論としては OS の側の設定値として持っているのが普通
Linuxではulimit -s で変えられるらしいが、どっちが「普通」かには異議ありだな。
そもそもそのプログラムがスタックを大量に消費することはプログラマしか知らない。
だからコンパイル時にマークしておく必要があり、その上で、
システム側で許容された値以下なら許可する、という方式が正しいだろ。
Linux方式だと、エラーになったらその都度対応してくれ、ただどれくらい必要なのかは知らん、というマヌケな事を強制する仕様ではないか。
exeに明記されてれば、少なくとも、静的に大量確保される場合は完全に対応できる。今回もそうだろ。
Windowsの仕様のほうが「普通」で「正しい」と俺は思うね。(よりマシな仕様)
759デフォルトの名無しさん (ワッチョイ 0f4b-/Ozg)
2026/08/15(土) 23:43:09.22ID:PdMcshzj0760デフォルトの名無しさん (ワッチョイ df03-H3bd)
2026/08/15(土) 23:59:34.06ID:mirUALuA0 >>759
お前が頭おかしいのは分かった
お前が頭おかしいのは分かった
761デフォルトの名無しさん (ワッチョイ 4f96-4rlT)
2026/08/18(火) 11:51:13.26ID:9hHWpynz0762デフォルトの名無しさん (ワッチョイ ef06-inpB)
2026/08/18(火) 13:47:12.21ID:DGdHd5vj0 >>761
引用されるまで気にしなかったけど
ファイル内スコープ(内部結合)にしたければstaticを付けてください
staticを付けない広域変数はextern参照されなくても外部結合なので、複数のファイルで同名の定義を行うと多重定義となってリンクができない
引用されるまで気にしなかったけど
ファイル内スコープ(内部結合)にしたければstaticを付けてください
staticを付けない広域変数はextern参照されなくても外部結合なので、複数のファイルで同名の定義を行うと多重定義となってリンクができない
763デフォルトの名無しさん (ワッチョイ 7baf-yVDb)
2026/08/18(火) 14:11:12.85ID:6VzK0iZS0 > Cのグローバルはファイル内スコープであり、externしなければ他ファイルからも見えないので、
初期化子を書かない仮定義かなんかを誤解してる希ガス
初期化子を書かない仮定義かなんかを誤解してる希ガス
764デフォルトの名無しさん (ワッチョイ eb16-JdrN)
2026/08/19(水) 19:13:07.84ID:n/MO8lqQ0 2000年頃にやったプロジェクトでC/C++対応ヘッダに
Cコンパイラでは
int c;
C++コンパイラでは
extern int c;
となるように書かれてたな。
Cコンパイラでは
int c;
C++コンパイラでは
extern int c;
となるように書かれてたな。
765デフォルトの名無しさん (ワッチョイ 0f25-W9YX)
2026/08/19(水) 19:27:44.40ID:qcCLYMYl0 >>764
Cの場合、そのヘッダーを複数Cソースでインクルードするのはまずくないですか?
Cの場合、そのヘッダーを複数Cソースでインクルードするのはまずくないですか?
766デフォルトの名無しさん (ワッチョイ ef01-kINg)
2026/08/20(木) 00:06:05.34ID:yH1eBXMA0767デフォルトの名無しさん (ワッチョイ 0f25-W9YX)
2026/08/20(木) 00:42:56.77ID:CPgDHYkC0 #ifdefの類いを使わないでやってみて
768デフォルトの名無しさん (ワッチョイ ef01-kINg)
2026/08/20(木) 01:04:18.42ID:yH1eBXMA0769デフォルトの名無しさん (ワッチョイ fbe4-mCX4)
2026/08/20(木) 09:27:10.45ID:m8+NKV8o0 普通はヘッダファイルにゃ変数宣言書かないやろ
770デフォルトの名無しさん (ワッチョイ 7b03-yVDb)
2026/08/20(木) 09:46:05.97ID:dCI5hbwT0771はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0bf2-lWIY)
2026/08/20(木) 10:22:40.44ID:zD9pzxQG0 変数を直接には公開しない (適当な関数を通じてのみアクセスする) のでヘッダに書くことはないという意味じゃないの?
772デフォルトの名無しさん (ワッチョイ 3bf4-lvmO)
2026/08/20(木) 10:28:03.86ID:kgpI2cAu0 >>770
構ってちゃん死ね
構ってちゃん死ね
773デフォルトの名無しさん (ワッチョイ fbe4-mCX4)
2026/08/20(木) 10:28:55.17ID:m8+NKV8o0 グローバル変数は限定的に使おうね
774デフォルトの名無しさん (ワッチョイ ef06-inpB)
2026/08/20(木) 11:12:16.07ID:BHkIwETw0775デフォルトの名無しさん (ワッチョイ 3b1d-lvmO)
2026/08/20(木) 21:10:42.59ID:kgpI2cAu0776デフォルトの名無しさん (ワッチョイ 7b11-5409)
2026/08/20(木) 21:43:00.84ID:i6ZZ94rn0 $ gcc --version
bash: gcc: command not found
bash: gcc: command not found
777デフォルトの名無しさん (ワッチョイ ef01-kINg)
2026/08/21(金) 00:13:07.48ID:Al7ii6Hx0 > コンパイラのバージョンを確認してみろ、ゆとりZがよくやる手口だ
gccのバージョンを新しくしろと言ってるのかな?
https://wandbox.org/permlink/lSFKJiRf1Yr0CX0Y
gccのバージョンを新しくしろと言ってるのかな?
https://wandbox.org/permlink/lSFKJiRf1Yr0CX0Y
778デフォルトの名無しさん (ワッチョイ ef06-inpB)
2026/08/21(金) 07:26:26.19ID:CECVtSfB0 >>775
私の言葉ではかえって混乱を生むかもしれませんのでソースを貼っておきます
https://ja.cppreference.com/c/language/extern
検索には「C言語 Tentative definitions」等も有効です。
C89の頃から存在する挙動、C99で明文化されたようです。
私の言葉ではかえって混乱を生むかもしれませんのでソースを貼っておきます
https://ja.cppreference.com/c/language/extern
検索には「C言語 Tentative definitions」等も有効です。
C89の頃から存在する挙動、C99で明文化されたようです。
779デフォルトの名無しさん (ワッチョイ 6b25-rrSk)
2026/08/21(金) 09:48:24.48ID:uvkfqT3C0 変数と関数で、宣言、定義のルールなんか変わるかな?
780はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 3bf8-6QSn)
2026/08/21(金) 11:43:11.89ID:AhdeXR/60 つい最近に仮定義の話題をどこかで見た覚えがあると思って記憶をたどると Qiita に記事があった。
https://qiita.com/TETSURO1999/items/649b033975583750ad20
C と C++ は世間で思われているよりも多くの非互換をかかえていて、表面上の構文が同じにもかかわらず挙動が違うなんてのは割とある。
C++ に慣れていると C の inline の挙動にびっくりしたりする。
https://qiita.com/TETSURO1999/items/649b033975583750ad20
C と C++ は世間で思われているよりも多くの非互換をかかえていて、表面上の構文が同じにもかかわらず挙動が違うなんてのは割とある。
C++ に慣れていると C の inline の挙動にびっくりしたりする。
781デフォルトの名無しさん (ワッチョイ 0f25-W9YX)
2026/08/22(土) 14:24:52.63ID:0spK21pd0 非互換と言うより別物と捉えた方が良いと思う
782デフォルトの名無しさん (ササクッテロラ Sp4f-mCX4)
2026/08/22(土) 14:55:18.96ID:WaWOHyUHp でもC++のコンパイラでCもコンパイルできちゃうからなぁ
783はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ab9c-lWIY)
2026/08/22(土) 17:26:28.71ID:wRPI5YNT0 C と C++ がそれぞれ独立した規格なのは確かなんだけど離れすぎないように配慮はしているんだよ。
配慮した上でこれ。
まあ C の変なところを C++ でもやれとは言えないし、 C はその性質から保守的なのも仕方なくはある。
配慮した上でこれ。
まあ C の変なところを C++ でもやれとは言えないし、 C はその性質から保守的なのも仕方なくはある。
784デフォルトの名無しさん (ワッチョイ 6b25-rrSk)
2026/08/22(土) 18:24:32.93ID:vSvQUPjx0 VC++でC++ソースをコンパイルしたらエラー出て、なんでかなぁと思ったら拡張子が.cだった初心者時代・・・。
785はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 3bf8-6QSn)
2026/08/22(土) 19:23:46.18ID:KuP4v0RE0 C の宣言の文法があまりにひどいので C++ で変えるべきかどうか迷ったという話が D&E に載ってる。
結果的には C を踏襲することにしたけど、変える決断をしていたらかなり大きくプログラミング言語史が違っていたかもしれないな。
結果的には C を踏襲することにしたけど、変える決断をしていたらかなり大きくプログラミング言語史が違っていたかもしれないな。
786デフォルトの名無しさん (ワッチョイ 0f25-W9YX)
2026/08/22(土) 19:38:53.23ID:0spK21pd0 C++の良いところは
取り込んでいっても良いと思います。
オプションで良いです。
取り込んでいっても良いと思います。
オプションで良いです。
787デフォルトの名無しさん (ワッチョイ ef06-inpB)
2026/08/22(土) 19:57:16.05ID:AkkA9mWX0788デフォルトの名無しさん (ワッチョイ 6240-orZZ)
2026/08/24(月) 14:10:32.52ID:FITgzI9F0789デフォルトの名無しさん (ワッチョイ ee25-zlNe)
2026/08/24(月) 23:37:56.91ID:8mRZRlF20 なれようず
790デフォルトの名無しさん (ワッチョイ be02-zKTv)
2026/08/29(土) 08:03:26.01ID:zX5LHgzm0 C標準も見た目だけC++に寄せてくるしなー
791デフォルトの名無しさん (アウアウウー Sa5d-Dc8X)
2026/09/01(火) 00:14:06.47ID:IXFRdCkda 秋来ぬと
目にはさやかに
見えねども
風の音にぞ
おどろかれNULLポ
目にはさやかに
見えねども
風の音にぞ
おどろかれNULLポ
792デフォルトの名無しさん (ワッチョイ 8b25-nJdx)
2026/09/01(火) 01:08:57.37ID:Sd0IuuhS0 そよぐとも目には見えねど白露の宿れる草に秋は来にガッ
793デフォルトの名無しさん (ワッチョイ c5d6-m9W0)
2026/09/11(金) 21:38:32.92ID:m9pRTv5n0 C言語の内容とは関係ないんだけど、古い入門書の「まえがき」に、
「言語とは、筆者が言っていることを理解し、読者が筆者の言わんとすることを理解しようとすれば、その役割を果たす。」
みたいな事を書いていた書籍のタイトルと著者がわかる人おる?
「言語とは、筆者が言っていることを理解し、読者が筆者の言わんとすることを理解しようとすれば、その役割を果たす。」
みたいな事を書いていた書籍のタイトルと著者がわかる人おる?
794gemini (ワッチョイ 926a-54Xi)
2026/09/11(金) 22:03:45.31ID:IoXK5YWS0 お探しの書籍は、林晴比古(はやし はるひこ)氏による著作『C言語入門』(ソフトバンククリエイティブ/ソフトバンク出版)シリーズである可能性が極めて高いです。
林晴比古氏のプログラミング入門書(『C言語入門』や『BASIC入門』など)の「まえがき」には、プログラミング言語の本質をコミュニケーション(意思伝達)になぞらえた印象的な記述があり、以下のような趣旨の文言が記されています。
「言語とは、話者が言いたいことを表現し、聞く側(読者)がその言わんとすることを理解しようとすれば、それで十分にその役割を果たすものである。」
(※プログラミング言語も同様に、文法に捉われすぎず『コンピュータに何をさせたいか』という意図を伝えることが本質である、という文脈で語られています)
該当する可能性が高い書籍
書籍名: 『明解 C言語 入門編』または『新・C言語入門 シリーズ』(旧・『C言語入門』)
著者: 林 晴比古(はやし はるひこ)
出版社: ソフトバンク(SoftBank Creative)
著者の特徴と文脈
林晴比古氏は1980年代〜1990年代にかけて数多くのC言語やPascal、BASICなどの入門書を執筆されたPC黎明期のベストセラー著者です。
同氏の入門書の「まえがき」や「はじめに」では、次のような哲学が繰り返し語られていました。
単なる文法チェックや構文暗記に囚われないこと
「人間とコンピュータ(あるいは筆者と読者)」の間で意図や論理が正しく伝わることこそが「言語」の本質であること
もし昔読まれたC言語の緑色や青色の表紙の入門書(ソフトバンク刊)であれば、林晴比古氏の書籍で間違いありません。一度表紙や著者名に見覚えがないか確認してみてください。
林晴比古氏のプログラミング入門書(『C言語入門』や『BASIC入門』など)の「まえがき」には、プログラミング言語の本質をコミュニケーション(意思伝達)になぞらえた印象的な記述があり、以下のような趣旨の文言が記されています。
「言語とは、話者が言いたいことを表現し、聞く側(読者)がその言わんとすることを理解しようとすれば、それで十分にその役割を果たすものである。」
(※プログラミング言語も同様に、文法に捉われすぎず『コンピュータに何をさせたいか』という意図を伝えることが本質である、という文脈で語られています)
該当する可能性が高い書籍
書籍名: 『明解 C言語 入門編』または『新・C言語入門 シリーズ』(旧・『C言語入門』)
著者: 林 晴比古(はやし はるひこ)
出版社: ソフトバンク(SoftBank Creative)
著者の特徴と文脈
林晴比古氏は1980年代〜1990年代にかけて数多くのC言語やPascal、BASICなどの入門書を執筆されたPC黎明期のベストセラー著者です。
同氏の入門書の「まえがき」や「はじめに」では、次のような哲学が繰り返し語られていました。
単なる文法チェックや構文暗記に囚われないこと
「人間とコンピュータ(あるいは筆者と読者)」の間で意図や論理が正しく伝わることこそが「言語」の本質であること
もし昔読まれたC言語の緑色や青色の表紙の入門書(ソフトバンク刊)であれば、林晴比古氏の書籍で間違いありません。一度表紙や著者名に見覚えがないか確認してみてください。
795デフォルトの名無しさん (ワッチョイ ae14-D25p)
2026/09/11(金) 22:41:11.64ID:rSkwma7r0 AIの答えか
つまりAIは書籍を学習してると
つまりAIは書籍を学習してると
796デフォルトの名無しさん (ワッチョイ 7601-ebLq)
2026/09/11(金) 23:50:37.30ID:q5rznS1p0 林晴比古とか三田典玄とか昔の評判悪かった著者懐かしいな
797デフォルトの名無しさん (ワッチョイ 5e25-0heh)
2026/09/12(土) 00:01:12.34ID:HdkTZBU30 でも、売れてたんだよね
798デフォルトの名無しさん (ワッチョイ f606-WJxd)
2026/09/12(土) 01:17:59.21ID:F+EEMdMo0 評判悪かったのか。自分はC++入門向けの訳書で一度つまずいて、数年後に比古にゃん本を読了できたことで救われたよ
799デフォルトの名無しさん (アウアウウー Sacd-Up1B)
2026/09/12(土) 01:30:18.34ID:L4vVY98Na 林はるひこはポインタの説明も構造体の説明も下手だよ
800デフォルトの名無しさん (ワッチョイ 6273-tvwl)
2026/09/12(土) 02:45:29.48ID:y/h40Xo50 か○い本よりマシw
801デフォルトの名無しさん (ワッチョイ 7601-/QhQ)
2026/09/12(土) 04:33:22.77ID:9SPP8Y7R0 三田典玄の『入門C言語』は間違いが多すぎて改定版が出てたゾw
802デフォルトの名無しさん (ラクッペペ MM96-np+4)
2026/09/12(土) 05:26:08.75ID:LKzRn6n0M 典玄はCマガジンだったかの連載で頓珍漢な主張カマしてて嫌いだったなぁw
803デフォルトの名無しさん (アウアウウー Sacd-vz9T)
2026/09/12(土) 05:43:10.19ID:/vT1yaWZa こどもでお金なかったから
学校のパソコンでLSI C試食版のマニュアル読んで学んだ
あとでUNIXカーネルの設計読んだらいろいろつながって感動したな
学校のパソコンでLSI C試食版のマニュアル読んで学んだ
あとでUNIXカーネルの設計読んだらいろいろつながって感動したな
804デフォルトの名無しさん (JP 0Hdf-6w3j)
2026/09/27(日) 08:40:47.40ID:kDXIIKaKH >>803
こういう今井翔太みたいな人って今後スキル伸びるだろうな。苦労して学んだ経験、アハ体験って他の何よりも中毒性高いし
こういう今井翔太みたいな人って今後スキル伸びるだろうな。苦労して学んだ経験、アハ体験って他の何よりも中毒性高いし
805デフォルトの名無しさん (ワッチョイ ff25-bZhe)
2026/09/27(日) 09:53:10.92ID:fIYToHQ00 苦労して学ぶ行為が報われる
そんな時代が続くと良いんだが
そんな時代が続くと良いんだが
806デフォルトの名無しさん (ワッチョイ 37d6-GEdn)
2026/09/27(日) 10:05:30.10ID:R3X/dHdE0 >>803が優秀な AIを開発為遂げ、後にその AIによって淘汰されるのを見るのは忍びない
807はちみつ餃子 ◆8X2XSCHEME (ワッチョイ b7f8-ax4S)
2026/09/27(日) 10:14:53.08ID:HOfPu1YS0 昔は図書館の本を読んで紙にプログラムを書くとか普通だったし、そういう遊びだった。
子供がやることなんだから将来のために苦労する意思があったわけがない。
むしろ苦労を感じるてるようだと伸びしろに期待できないと思う。 楽しくやろう。
子供がやることなんだから将来のために苦労する意思があったわけがない。
むしろ苦労を感じるてるようだと伸びしろに期待できないと思う。 楽しくやろう。
808デフォルトの名無しさん (ワッチョイ b701-nmKb)
2026/09/27(日) 11:51:47.82ID:w4dOecjt0 され方にもよるが、自分が開発したAIに淘汰されるなら本望なところもあるんじゃないか
地球爆破作戦って映画でそういうことを考えさせられるシーンがあったな
地球爆破作戦って映画でそういうことを考えさせられるシーンがあったな
809デフォルトの名無しさん (ワッチョイ 37e4-ru6i)
2026/09/27(日) 13:27:45.79ID:vAW48sh00 少なくともC言語プログラマーにAI開発者は居ないんじゃね?
810デフォルトの名無しさん (ワッチョイ 7fd9-0TSE)
2026/09/27(日) 14:32:30.86ID:fXha6t2O0 俺はAI(LLM)開発はFortranだな
cudaとの相性もcより良いし
cudaとの相性もcより良いし
811デフォルトの名無しさん (ワッチョイ 7fd9-0TSE)
2026/09/27(日) 14:34:51.92ID:fXha6t2O0 cはcudaや並行/並列命令を指示するときディレクティブがめっちゃ面倒くさい
812デフォルトの名無しさん (ワッチョイ 174f-OGSP)
2026/09/29(火) 14:03:07.23ID:kSRX5O5T0 >>796
林氏、人気無かったんだ。よく見掛けたのは印象記憶ってだけか。
最近、氏の『明快入門コンパイラ・インタプリタ開発』ってのをやっと読み終わって、C系インタプリタの実装で入り組んだ再帰呼出しとかしてて『うん、俺には無理!』とか素直に思わせてくれる内容だった。
単純に、自作ゲームに簡単なスクリプト乗せたかっただけなんだけどね。
林氏、人気無かったんだ。よく見掛けたのは印象記憶ってだけか。
最近、氏の『明快入門コンパイラ・インタプリタ開発』ってのをやっと読み終わって、C系インタプリタの実装で入り組んだ再帰呼出しとかしてて『うん、俺には無理!』とか素直に思わせてくれる内容だった。
単純に、自作ゲームに簡単なスクリプト乗せたかっただけなんだけどね。
813デフォルトの名無しさん (ワッチョイ 77ad-MZJT)
2026/09/29(火) 21:04:40.17ID:Ol6TF+Ac0 YoutubeでC言語はケン・トンプソンの発明だみたいなことを言ってる動画があった
Cの前身のB言語はトンプソンの仕事だけどCはデニス・リッチーの仕事なんだけどね
Cにトンプソンの思想が混じってるのは事実だけど誰が作ったかという話でトンプソンになるのはおかしい
Cの前身のB言語はトンプソンの仕事だけどCはデニス・リッチーの仕事なんだけどね
Cにトンプソンの思想が混じってるのは事実だけど誰が作ったかという話でトンプソンになるのはおかしい
814はちみつ餃子 ◆8X2XSCHEME (ワッチョイ b7f8-ax4S)
2026/09/30(水) 10:05:01.83ID:X3g26Jyq0 論外の本は単に読まれないので評判を聞く機会はない。
林晴比古の本は定番の本と言えるくらいに人気があったけど定番の中では定番として紹介するのを躊躇うくらいの出来だなぁというくらいのポジション
……というのが私の理解だけど読んだことは無いので実態がどんなものなのかは知らない。
林晴比古の本は定番の本と言えるくらいに人気があったけど定番の中では定番として紹介するのを躊躇うくらいの出来だなぁというくらいのポジション
……というのが私の理解だけど読んだことは無いので実態がどんなものなのかは知らない。
815デフォルトの名無しさん (ワッチョイ ff25-p2WE)
2026/09/30(水) 10:17:38.54ID:f3Qv5atr0 林は私的体験の範囲で本を書いている
エッセイくらいの気持ちで読めば良い
エッセイくらいの気持ちで読めば良い
816デフォルトの名無しさん (スップ Sdbf-mbqL)
2026/09/30(水) 10:53:33.77ID:MvRWC8GUd817デフォルトの名無しさん (ワッチョイ 0d71-pRS7)
2026/10/05(月) 22:51:28.21ID:uai/iykL0 C言語が特定企業の所有物にならなくて良かった
818はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bdf8-nZSv)
2026/10/06(火) 09:51:45.46ID:Ba8Kgk4z0 言語仕様を企業 (あるいは誰か) が所有することは出来ないことになってる。
強力な処理系を販売するなどして実質的な影響力を保持することは出来るかもしれんけど。
強力な処理系を販売するなどして実質的な影響力を保持することは出来るかもしれんけど。
819デフォルトの名無しさん (ワッチョイ 3da7-7pdY)
2026/10/06(火) 10:37:45.35ID:fASsCVv+0 cが不自由になってたら代替プログラミング言語がでてもっと使いやすくなってたかもよ
820デフォルトの名無しさん (ワッチョイ b8bf-g+JR)
2026/10/07(水) 12:16:08.70ID:zSu0KtT30 トンプソンの最新言語がGO
821デフォルトの名無しさん (ワッチョイ 95ad-g+JR)
2026/10/07(水) 22:31:21.43ID:yGDxulbq0 Goはじっさいのところどうなの
わりと市民権得られてる気がするけど
わりと市民権得られてる気がするけど
822はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bdf8-nZSv)
2026/10/08(木) 08:52:10.07ID:qw8lftRh0 私自身は Go を好きにはなれないので使ったことはないんだけどそこそこ人気が有るのは理解は出来る。
C ユーザが触るなら「こういうのでいいんだよこういうので」くらいの感じなんだと思う。
C ユーザが触るなら「こういうのでいいんだよこういうので」くらいの感じなんだと思う。
823デフォルトの名無しさん (ワッチョイ 0dd6-lC4O)
2026/10/08(木) 10:21:52.84ID:4qlpxcjn0 今気づいたんだが、餃子にはちみつをかけたらなんだか美味そうなイメージが浮かんできたわ
824デフォルトの名無しさん (ワッチョイ 0d6c-gJBu)
2026/10/08(木) 10:42:37.62ID:oyfUblgL0 試してみたら?
825デフォルトの名無しさん (ワッチョイ 0d6c-gJBu)
2026/10/08(木) 10:44:29.90ID:oyfUblgL0 マグロの刺し身にマヨネーズは
試したことがある
試したことがある
826デフォルトの名無しさん (ブーイモ MM5a-7pdY)
2026/10/08(木) 11:41:28.60ID:ZsBKGrb9M Goはトラブルが少ない
コンテナでなんか動かすならだいたいファーストチョイスだな
コンテナでなんか動かすならだいたいファーストチョイスだな
827デフォルトの名無しさん (ワッチョイ 844e-00i4)
2026/10/08(木) 11:58:36.13ID:ucwOEwPA0 例外による緊急停止がないだけだろ
chdirのエラー無視しても動き続けるとかトラブルが少なくても怖いよ
chdirのエラー無視しても動き続けるとかトラブルが少なくても怖いよ
828デフォルトの名無しさん (ワッチョイ 793e-BswL)
2026/10/08(木) 13:33:28.77ID:/5EQX3jf0 今時分ストローマン論法は流行ってないからやめた方がいい
しかもエラーの原因はIDEの警告無視してるロートル開発者だし
しかもエラーの原因はIDEの警告無視してるロートル開発者だし
829デフォルトの名無しさん (ワッチョイ 0d6c-gJBu)
2026/10/08(木) 16:09:21.87ID:oyfUblgL0 >>827
diskfullでも動きそうな元気だなオイ
diskfullでも動きそうな元気だなオイ
830デフォルトの名無しさん (ワッチョイ b851-g+JR)
2026/10/08(木) 17:46:49.84ID:QbDbTe4b0 いまのところサーバー用途ではないだろうか
サーバー用途ではとても速いと言うか、比較対象が遅すぎる
サーバー用途ではとても速いと言うか、比較対象が遅すぎる
831はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bdf8-nZSv)
2026/10/08(木) 18:24:32.37ID:qw8lftRh0 CPU より I/O が律速だという前提でランタイムの I/O 部分のチューニングを頑張るけど最適化は頑張らない (そのかわりコンパイル速度は頑張る) という戦略が Go では上手くいってる。
サーバだと I/O が効いてくるような用途だから Go がマッチすると思う。
コンパイル速度が速いってのは想像以上に開発体験をよくすると評価されてるみたいだね。
サーバだと I/O が効いてくるような用途だから Go がマッチすると思う。
コンパイル速度が速いってのは想像以上に開発体験をよくすると評価されてるみたいだね。
832デフォルトの名無しさん (ワッチョイ 3d72-Jtfc)
2026/10/09(金) 12:23:38.29ID:9IXvOH8H0 大規模なプロジェクトはビルド通すだけで半日から下手すると数日
数時間以上かけてコンパイルエラーで終了は地味にきついですね
数時間以上かけてコンパイルエラーで終了は地味にきついですね
833デフォルトの名無しさん (ワッチョイ 9be4-XGoP)
2026/10/09(金) 12:27:49.62ID:dUaqZeeV0 今では考えられないくらい途方もなく長く掛かってたよな
834デフォルトの名無しさん (ワッチョイ 793e-BswL)
2026/10/09(金) 12:54:57.34ID:ci17O38E0 プリコンパイルヘッダやインクリメンタルリンクの爆速感に泣いた記憶
835デフォルトの名無しさん (ワッチョイ d025-gJBu)
2026/10/09(金) 13:16:27.96ID:chEzddjF0 turboCって何故あんなに速かったんだろう
836デフォルトの名無しさん (ワッチョイ b869-ecH/)
2026/10/09(金) 15:20:58.52ID:gX4zq/VG0 コンパイルする前にコーディングシート3回見直せって言われてたな
837デフォルトの名無しさん (ワッチョイ f201-tGCY)
2026/10/10(土) 09:26:57.49ID:1bNLk1Sc0 『何もできないC言語が好き。『猫でもわかるプログラミング』を30年運営する医師に迫る』
https://levtech.jp/media/detail_941/
初めてみたけど酷いなあ。
http://www.kumei.ne.jp/c_lang/index_c.html
http://www.kumei.ne.jp/c_lang/index_c2.html
テック系メディアが紹介すべき代物ではないだろ。
トップページに書いてある「中級者以上の方、セミプロの方、 プロの方ご遠慮ください。」は批判除けか。初心者にこそ見せてはいけない気がする。中級者以上には間違い探しのネタとしては良いかも。
https://levtech.jp/media/detail_941/
初めてみたけど酷いなあ。
http://www.kumei.ne.jp/c_lang/index_c.html
http://www.kumei.ne.jp/c_lang/index_c2.html
テック系メディアが紹介すべき代物ではないだろ。
トップページに書いてある「中級者以上の方、セミプロの方、 プロの方ご遠慮ください。」は批判除けか。初心者にこそ見せてはいけない気がする。中級者以上には間違い探しのネタとしては良いかも。
838デフォルトの名無しさん (ワッチョイ d025-OZPn)
2026/10/10(土) 10:11:07.30ID:75f0Q6sx0 代わりにサイト作ってここで公開してみて
839デフォルトの名無しさん (ワッチョイ 3d2b-3bon)
2026/10/10(土) 13:50:03.11ID:4vUJSx4y0 てす
840デフォルトの名無しさん (ワッチョイ 3d2b-3bon)
2026/10/10(土) 13:51:01.87ID:4vUJSx4y0 >>837
> インターネット普及期に数多くの初心者エンジニアを導いた老舗サイトです。
ダウト。聞いた事無いし、話題になった事すらない。
> 2000年代には書籍化もされ、『猫でもわかる』シリーズは累計50万部を超える大ベストセラーとなりました。
これも初耳。同様に、見た事も聞いた事もない。
とはいえ50万部は確かに売れてはいるのだろうが。
というかね、お前が何を目指しているかだけども、
中級者以上/セミプロ/プロ連中が見た事も聞いた事もないサイトや本が必要な時点で、
お前も中級者/セミプロ/プロにはなれないし、向いてないから諦めた方がいい。
ただ、趣味でやる分には勝手にしろではある。
俺はプロアスリートとして稼ぐ!、と言うなら、せめて小中学校では無双してから言え、ではあるだろ。
しかし運動音痴な会社員でも休日に草野球を楽しむのは全く問題ないし、草野球向けの指南書があってもおかしくはない。
だからそこに目くじら立てても意味無い。
ただそういう連中がプロに成れる事も、互角に戦える事もない。
プロ連中は、俺の体感だと4割以上は『K&R』だけで何とかなってるから、
『苦C』が必要な時点でかなり分が悪い。ただ、実際に『苦C』出身の連中は多分1〜2割くらいいる。
そして、この本やサイトは、先述の通り、中級者以上/セミプロ/プロ界隈では、聞いた事も、話題になった事すらない。
ただな、しょうもないサイトを探してきてアラ探しするより、お前が作りたいものをさっさと作れ、
その際に引っかかったとき、他に聞くあてがなければここで聞くのもあり、程度だと思うんだがな。
自分が何を目指して、何をするのか、もうちょっと考えた方がいい。
アラ探しで優越感で脳汁ブッシャーも、ドパガキにとっては一つの方法なのかもしれんが。
> インターネット普及期に数多くの初心者エンジニアを導いた老舗サイトです。
ダウト。聞いた事無いし、話題になった事すらない。
> 2000年代には書籍化もされ、『猫でもわかる』シリーズは累計50万部を超える大ベストセラーとなりました。
これも初耳。同様に、見た事も聞いた事もない。
とはいえ50万部は確かに売れてはいるのだろうが。
というかね、お前が何を目指しているかだけども、
中級者以上/セミプロ/プロ連中が見た事も聞いた事もないサイトや本が必要な時点で、
お前も中級者/セミプロ/プロにはなれないし、向いてないから諦めた方がいい。
ただ、趣味でやる分には勝手にしろではある。
俺はプロアスリートとして稼ぐ!、と言うなら、せめて小中学校では無双してから言え、ではあるだろ。
しかし運動音痴な会社員でも休日に草野球を楽しむのは全く問題ないし、草野球向けの指南書があってもおかしくはない。
だからそこに目くじら立てても意味無い。
ただそういう連中がプロに成れる事も、互角に戦える事もない。
プロ連中は、俺の体感だと4割以上は『K&R』だけで何とかなってるから、
『苦C』が必要な時点でかなり分が悪い。ただ、実際に『苦C』出身の連中は多分1〜2割くらいいる。
そして、この本やサイトは、先述の通り、中級者以上/セミプロ/プロ界隈では、聞いた事も、話題になった事すらない。
ただな、しょうもないサイトを探してきてアラ探しするより、お前が作りたいものをさっさと作れ、
その際に引っかかったとき、他に聞くあてがなければここで聞くのもあり、程度だと思うんだがな。
自分が何を目指して、何をするのか、もうちょっと考えた方がいい。
アラ探しで優越感で脳汁ブッシャーも、ドパガキにとっては一つの方法なのかもしれんが。
841デフォルトの名無しさん (ワッチョイ 3d2b-3bon)
2026/10/10(土) 13:51:45.15ID:4vUJSx4y0 あらゆる事に言えるが、人数は初心者>>>上級者なので、ほぼ全部がゴミでごく一部がいいものなだけ。
ネット以前は魑魅魍魎には情報発信権がなかったので、ある程度の秩序はあったが、
ネット以後はこの辺も雲散霧消し、酷い記事やサイトはいくらでも作れるようになってるので、
「石ころ」を探す行為自体がまるで意味がない。Qiitaの記事を叩いてる馬鹿共はこれに気づけてない。
せめて「宝石」を探す努力をすべき。
まあ、サイト本体はチラ見しかしてませんけどね。
でも「最初の最初」はこの程度ではあるとは思うよ。
ただ、現在はこの「最初の最初」をCで始める意味が全くない時代なわけでね。
ネット以前は魑魅魍魎には情報発信権がなかったので、ある程度の秩序はあったが、
ネット以後はこの辺も雲散霧消し、酷い記事やサイトはいくらでも作れるようになってるので、
「石ころ」を探す行為自体がまるで意味がない。Qiitaの記事を叩いてる馬鹿共はこれに気づけてない。
せめて「宝石」を探す努力をすべき。
まあ、サイト本体はチラ見しかしてませんけどね。
でも「最初の最初」はこの程度ではあるとは思うよ。
ただ、現在はこの「最初の最初」をCで始める意味が全くない時代なわけでね。
842デフォルトの名無しさん (ワッチョイ 0deb-OZPn)
2026/10/10(土) 17:05:53.43ID:mA/4kYf50 場末のプログラマだと知らないかも知れない
843デフォルトの名無しさん (アウアウウー Sa3a-FEyz)
2026/10/10(土) 18:38:27.97ID:TbYwvmoQa いちおう言っておくけど猫サイトは30年くらい前かな?
結構前からあったし俺は少なくとも当時から知ってるし
あの猫の画像もクソ懐かしい
この業界におってあの猫サイト一回も見たこと無いやつなんていないと思ってた
結構前からあったし俺は少なくとも当時から知ってるし
あの猫の画像もクソ懐かしい
この業界におってあの猫サイト一回も見たこと無いやつなんていないと思ってた
844デフォルトの名無しさん (アウアウウー Sa3a-FEyz)
2026/10/10(土) 18:41:20.03ID:TbYwvmoQa よく見てみると記憶蘇ってきた
Windows SDK編 第1部
これこれ!
win32書いてるときクソお世話になったのを思い出した
Windows SDK編 第1部
これこれ!
win32書いてるときクソお世話になったのを思い出した
845デフォルトの名無しさん (ワッチョイ 3d24-3bon)
2026/10/10(土) 20:49:42.15ID:4vUJSx4y0 >>842
知障Z乙。
知障Z乙。
846デフォルトの名無しさん (ワッチョイ 3d24-3bon)
2026/10/10(土) 20:52:23.10ID:4vUJSx4y0 >>843
> この業界におってあの猫サイト一回も見たこと無いやつなんていないと思ってた
今のお前に必要か?という事。
既に理解出来てる奴が、さらに入門書を読み重ねる意味はない。
『K&R』で問題なかった奴は、他入門書なんて読んでない。
俺も『苦C』なんて読んでないし、おそらくはちみつ餃子(>>814)もそう。
というか、理解したらさっさと進んでお前が欲しいものを作れであって、
何度も入門書を読んで「理解出来た!」と満足感を得続けるのは頭がおかしいだろ。
そのサイトがそれなりに充実して使えるようになる以前に、
対象レベルを通過した人達は、その存在すら気にしてない。
お前だって、今の小学生向けの教材が凄い事になってても、何も知らんだろ。
ただお前が猫で育って中級者以上/セミプロ/プロになったのなら、
お前がエール送ってやればいいだけ。少なくとも>>837では悪口書かれてるんだし。
俺は、見た事も聞いた事もない糞サイトを探してきて難癖付ける行為は意味無いから止めろ馬鹿タレ、と言っただけ。
ただ、そもそもあのレベルで良いも悪いも糞もねえとも思うが。
> この業界におってあの猫サイト一回も見たこと無いやつなんていないと思ってた
今のお前に必要か?という事。
既に理解出来てる奴が、さらに入門書を読み重ねる意味はない。
『K&R』で問題なかった奴は、他入門書なんて読んでない。
俺も『苦C』なんて読んでないし、おそらくはちみつ餃子(>>814)もそう。
というか、理解したらさっさと進んでお前が欲しいものを作れであって、
何度も入門書を読んで「理解出来た!」と満足感を得続けるのは頭がおかしいだろ。
そのサイトがそれなりに充実して使えるようになる以前に、
対象レベルを通過した人達は、その存在すら気にしてない。
お前だって、今の小学生向けの教材が凄い事になってても、何も知らんだろ。
ただお前が猫で育って中級者以上/セミプロ/プロになったのなら、
お前がエール送ってやればいいだけ。少なくとも>>837では悪口書かれてるんだし。
俺は、見た事も聞いた事もない糞サイトを探してきて難癖付ける行為は意味無いから止めろ馬鹿タレ、と言っただけ。
ただ、そもそもあのレベルで良いも悪いも糞もねえとも思うが。
847デフォルトの名無しさん (ワッチョイ f201-tGCY)
2026/10/10(土) 21:48:50.14ID:1bNLk1Sc0 > 俺は、見た事も聞いた事もない糞サイトを探してきて難癖付ける行為は意味無いから止めろ馬鹿タレ、と言っただけ。
テック系メディアで一昨日の日付で紹介されてる状況理解しとらんわけねw
テック系メディアで一昨日の日付で紹介されてる状況理解しとらんわけねw
848デフォルトの名無しさん (ワッチョイ 3d24-3bon)
2026/10/10(土) 22:22:16.59ID:4vUJSx4y0 >>847
知障君は最終的に何が目的なの?
知障君は最終的に何が目的なの?
849デフォルトの名無しさん (アウアウウー Sa3a-FEyz)
2026/10/10(土) 22:47:09.13ID:TbYwvmoQa 猫知らん奴秀丸も知ら無さそう
850デフォルトの名無しさん (ワッチョイ f201-tGCY)
2026/10/10(土) 22:51:20.48ID:1bNLk1Sc0851デフォルトの名無しさん (ワッチョイ 3d18-3bon)
2026/10/10(土) 23:21:00.85ID:4vUJSx4y0 >>849
秀丸は知ってるし、使ってる連中も見てきてるよ。
俺はemacs派なので使った事無いけど。
まあ猫がそんなに有名なら、俺とは世代が違うんだろう。
2000年代にC入門した人達には有名なのかな?
秀丸は知ってるし、使ってる連中も見てきてるよ。
俺はemacs派なので使った事無いけど。
まあ猫がそんなに有名なら、俺とは世代が違うんだろう。
2000年代にC入門した人達には有名なのかな?
852デフォルトの名無しさん (ワッチョイ 3d18-3bon)
2026/10/10(土) 23:22:05.18ID:4vUJSx4y0 >>850
自分の思考を言語化出来ない知障なんだな。
丁度話題になってるよ。
> ネットというかSNS流行りだしてから日本語を曲解したり読めないやつ増えたんだよ [194767121]
> https://hayabusa9.5ch.io/test/read.cgi/news/1791612388/
俺も「可視化されただけで増えてない」派だ。
リアルでは、自分と同程度の連中にしか会わないから、とんでもない馬鹿に遭遇する事もない。
逆にそこがネットの魅力なわけだが、言語化能力がない奴はウザイだけだな。
意見が合うかはともかく、意見が言えないようでは、存在価値無いだろ。
自分の思考を言語化出来ない知障なんだな。
丁度話題になってるよ。
> ネットというかSNS流行りだしてから日本語を曲解したり読めないやつ増えたんだよ [194767121]
> https://hayabusa9.5ch.io/test/read.cgi/news/1791612388/
俺も「可視化されただけで増えてない」派だ。
リアルでは、自分と同程度の連中にしか会わないから、とんでもない馬鹿に遭遇する事もない。
逆にそこがネットの魅力なわけだが、言語化能力がない奴はウザイだけだな。
意見が合うかはともかく、意見が言えないようでは、存在価値無いだろ。
853デフォルトの名無しさん (ワッチョイ 0deb-OZPn)
2026/10/10(土) 23:31:35.07ID:mA/4kYf50 5ちゃんねるはリアルではない
854デフォルトの名無しさん (ワッチョイ 27a9-z/m9)
2026/10/11(日) 07:39:53.29ID:b53A9oAP0 >>837
> 初めてみたけど酷いなあ。
> http://www.kumei.ne.jp/c_lang/index_c.html
> http://www.kumei.ne.jp/c_lang/index_c2.html
> テック系メディアが紹介すべき代物ではないだろ。
目次ページじゃないか。
批判は的をしぼり具体的にすべき。
> 初めてみたけど酷いなあ。
> http://www.kumei.ne.jp/c_lang/index_c.html
> http://www.kumei.ne.jp/c_lang/index_c2.html
> テック系メディアが紹介すべき代物ではないだろ。
目次ページじゃないか。
批判は的をしぼり具体的にすべき。
855デフォルトの名無しさん (ワッチョイ bf06-21Y6)
2026/10/11(日) 08:31:11.64ID:bykGSTRS0 まだGoogleが無かった頃のデザインを残してるのだから、許してあげてよお
856デフォルトの名無しさん (ワッチョイ bf06-21Y6)
2026/10/11(日) 08:32:29.65ID:bykGSTRS0857デフォルトの名無しさん (ワッチョイ 8795-8LE+)
2026/10/11(日) 09:12:16.63ID:OYNXwd390 >>855
それは阿部寛にだけ許された特権。イケメンは強い。
それで思い出したが、
> (※)当時は個人がドメインを取得するのは難しく、「粂井ネット」という団体を設立してドメインを申請したという。
> なお「旭川で独自ドメインを取得したのは、旭川市医師会に次いで僕が2番目のようです」とのこと。
これってもしかしてあのすんごかった病院のサイトか?と思ったが、違うな。
筆者が副院長してる病院が属する法人のサイトもそれなりにレトロ。
> https://henry-dunant.or.jp/index.htm
ただ俺は、今風の、オサレだがどこに何があるかぱっと見分からないサイトよりは、
この手の、モジモジしてるけど見りゃ分かるだろなサイトのほうが断然好きだけどな。
必要な情報への到達が断然速い。検索頼みは甘え。
それは阿部寛にだけ許された特権。イケメンは強い。
それで思い出したが、
> (※)当時は個人がドメインを取得するのは難しく、「粂井ネット」という団体を設立してドメインを申請したという。
> なお「旭川で独自ドメインを取得したのは、旭川市医師会に次いで僕が2番目のようです」とのこと。
これってもしかしてあのすんごかった病院のサイトか?と思ったが、違うな。
筆者が副院長してる病院が属する法人のサイトもそれなりにレトロ。
> https://henry-dunant.or.jp/index.htm
ただ俺は、今風の、オサレだがどこに何があるかぱっと見分からないサイトよりは、
この手の、モジモジしてるけど見りゃ分かるだろなサイトのほうが断然好きだけどな。
必要な情報への到達が断然速い。検索頼みは甘え。
858デフォルトの名無しさん (ワッチョイ ffe3-pCKE)
2026/10/11(日) 09:50:22.98ID:JUHz/Sac0 >>857
後半部分の主張わかるw
オサレなスペースとかいらんのよ
省いて、まとめて、一覧性を高めてほしいんよ
何回もクリックさせられたり
何回もスクロールさせられたり
最後に「いかがでしたか?」みたいなのいらんのよなw
後半部分の主張わかるw
オサレなスペースとかいらんのよ
省いて、まとめて、一覧性を高めてほしいんよ
何回もクリックさせられたり
何回もスクロールさせられたり
最後に「いかがでしたか?」みたいなのいらんのよなw
859デフォルトの名無しさん (ワッチョイ 8771-11Gw)
2026/10/11(日) 12:28:08.97ID:vtRdhhFP0 VS自体がクソ高かった時代に小学生のガキが無料で開発勉強するにはまずお世話になるサイトでした
今はもっと良い環境と資料がいくらでもあるというのはその通りです
今はもっと良い環境と資料がいくらでもあるというのはその通りです
860デフォルトの名無しさん (ワッチョイ 8771-11Gw)
2026/10/11(日) 12:32:55.62ID:vtRdhhFP0 >――そうして、「猫でもわかるプログラミング」が始まったのですね。サイトのトップページには「中級者以上の方、セミプロの方、プロの方ご遠慮ください」とまで言い切っています。なぜそこまで初心者向けに振り切ったのでしょうか?
>粂井:えっと、なんて言うんですかね。
>パソコン通信の時代にC言語の掲示板をよく見ていたんですが、そこではいつもですね、その……すごい、喧嘩が起きるんですよね。
>――技術的な正しさや、それぞれの思想による論争……でしょうか。
>粂井:そうなるとちょっと、アレなので。「本当に、初心者の方だけ見てください」ってことで、こういう建付けになったんですよ。
いいペルソナ設定だったと思う
>粂井:えっと、なんて言うんですかね。
>パソコン通信の時代にC言語の掲示板をよく見ていたんですが、そこではいつもですね、その……すごい、喧嘩が起きるんですよね。
>――技術的な正しさや、それぞれの思想による論争……でしょうか。
>粂井:そうなるとちょっと、アレなので。「本当に、初心者の方だけ見てください」ってことで、こういう建付けになったんですよ。
いいペルソナ設定だったと思う
861デフォルトの名無しさん (ワッチョイ ff8f-61Tg)
2026/10/11(日) 13:13:24.25ID:Z/F10X5N0 100万人の信長の野望は、1件ほとんどの情報が詰まったメイン画面だが
実に無駄ばかりで醜い
実に無駄ばかりで醜い
862デフォルトの名無しさん (ワッチョイ 07d6-r1rm)
2026/10/11(日) 15:21:58.94ID:7DrDMou20 猫とトホホは、インターネッツでのIT記述との偶然の出会いや小さな興味関心を育てるのに大きく貢献した。そんな位置付けな印象。
863デフォルトの名無しさん (ワッチョイ 07d6-r1rm)
2026/10/11(日) 15:22:43.98ID:7DrDMou20 IT技術
864デフォルトの名無しさん (ワッチョイ ff6c-pCKE)
2026/10/11(日) 15:55:56.99ID:re4n1wyG0 とほほと猫とあと何個かあったような気がするんだけど思い出せない
プログラミングに限らず、なんか個人サイトにいろいろ助けられた思い出
プログラミングに限らず、なんか個人サイトにいろいろ助けられた思い出
865デフォルトの名無しさん (ワッチョイ 878a-8LE+)
2026/10/11(日) 16:31:49.52ID:OYNXwd390 >>864
DOBONじゃね?もう一個何かあった気がするが。
トホホはCに関しては知らんが、JavaScriptに関しては、
他のサイトが全部ゴミな事もあり、トホホだけはマシだった。
で、件の記事の下部のリンクから読んで、ああこんな人が書いてたのか、とは思った。
猫は俺はマジで知らない。
ただ、実際に有名ではあるんだろう。だからこそ記事に取り上げられ、また、売れたんだろうし。
DOBONじゃね?もう一個何かあった気がするが。
トホホはCに関しては知らんが、JavaScriptに関しては、
他のサイトが全部ゴミな事もあり、トホホだけはマシだった。
で、件の記事の下部のリンクから読んで、ああこんな人が書いてたのか、とは思った。
猫は俺はマジで知らない。
ただ、実際に有名ではあるんだろう。だからこそ記事に取り上げられ、また、売れたんだろうし。
866デフォルトの名無しさん (ワッチョイ 8705-8LE+)
2026/10/11(日) 23:09:10.30ID:OYNXwd390 >>859
猫:1996〜
MSDN公開開始:1998〜
VSEE(無料版):2005〜
なので1996-2005の頃にCを初めた人にとっては多分有用だったのだろう。
MSDNがどこまで公開してたか忘れたが、元々有料だったし、最初から今の様に全部ではなかったはず。
そしてその頃はネット環境も当たり前でもなかったし、
動作するコードを入手すること自体が結構手間だったから。
てかね、何だったか忘れたが、
SDKのコードもドキュメントのコードも通らず、どうしろと?な状況もあったし。
今はそういう無駄な苦労をせずに済むだけでだいぶマシな時代になってるよ。
>>860
実際それでいい。中級者以上なら公式(MSDN)見ろで十分だし。
サイトはそれ以前の初心者向けに「呪文だと思ってこの通り書いて動かせ」で、初手としてはこれで正しい。
ただこれだとSDKのサンプルコードを動かしてるのと同様だから、
さっさと次に行け、具体的には目的のアプリを作れ、ではある。
>>844
いやデザイナ使えよ、とは思ったが。
ただ先日、小学生の算数で手でグラフを描くのを止め、最初からExcelでやらせる、という話が出てた。
俺はこれには反対で、小学生のうちは手でグラフ描いとけよ、そうじゃないと二度と描く機会はないし、
Excelなんて中学生以降で十分、と考えてる。
これと同様、ズブの初心者がデザイナを使うのは邪道!とでも思ったのかね?
ただデザイナ使わないとVisualな意味無いんだが。
俺はXWindowの呪文を手打ちさせられた経験があったので、初めてVC使った時は感動した。
猫:1996〜
MSDN公開開始:1998〜
VSEE(無料版):2005〜
なので1996-2005の頃にCを初めた人にとっては多分有用だったのだろう。
MSDNがどこまで公開してたか忘れたが、元々有料だったし、最初から今の様に全部ではなかったはず。
そしてその頃はネット環境も当たり前でもなかったし、
動作するコードを入手すること自体が結構手間だったから。
てかね、何だったか忘れたが、
SDKのコードもドキュメントのコードも通らず、どうしろと?な状況もあったし。
今はそういう無駄な苦労をせずに済むだけでだいぶマシな時代になってるよ。
>>860
実際それでいい。中級者以上なら公式(MSDN)見ろで十分だし。
サイトはそれ以前の初心者向けに「呪文だと思ってこの通り書いて動かせ」で、初手としてはこれで正しい。
ただこれだとSDKのサンプルコードを動かしてるのと同様だから、
さっさと次に行け、具体的には目的のアプリを作れ、ではある。
>>844
いやデザイナ使えよ、とは思ったが。
ただ先日、小学生の算数で手でグラフを描くのを止め、最初からExcelでやらせる、という話が出てた。
俺はこれには反対で、小学生のうちは手でグラフ描いとけよ、そうじゃないと二度と描く機会はないし、
Excelなんて中学生以降で十分、と考えてる。
これと同様、ズブの初心者がデザイナを使うのは邪道!とでも思ったのかね?
ただデザイナ使わないとVisualな意味無いんだが。
俺はXWindowの呪文を手打ちさせられた経験があったので、初めてVC使った時は感動した。
867デフォルトの名無しさん (ワッチョイ 87c0-5gUK)
2026/10/12(月) 06:44:42.07ID:KnDi/oPG0 じじいは話が長い
868デフォルトの名無しさん (ワッチョイ 8719-8LE+)
2026/10/12(月) 07:51:22.68ID:aUcxdPiw0 Zは死ね
869デフォルトの名無しさん (ワッチョイ 7f25-FrZy)
2026/10/12(月) 08:29:35.27ID:c/waB+x80 c言語ソースは3行以内に書かないとな
870デフォルトの名無しさん (ワッチョイ 8724-11Gw)
2026/10/12(月) 09:15:12.16ID:fqgpECZP0 WisdomSoftとかProgramming Placeとかもよく見てた
871デフォルトの名無しさん (ワッチョイ 8730-8LE+)
2026/10/12(月) 10:33:27.19ID:aUcxdPiw0 何故秀丸マウント?(>>849)と考えてたが、なるほどIDEを否定してる旧人類か。
IDEで「新規プロジェクト作成…」のウィザードに従ってOKしていけば>>844の内容は5分で完成する。勿論当時のIDEでも。
よって、正しくIDEを用いた連中はどんどん先に進める。
一方、お前らは無駄に一日かけたから、今も無能なままなわけだ。
お前らが俺のアドバイスなんて聞くとは思えないが、それでも(外野のためにも)一応言っておくと、
IDEは最初から使え。初心者ほどIDEの効果が絶大だ。
最初からプロ用のIDEを使え。今ならVSかVSCodeだ。初心者用のIDEが偶にあるが、ゴミだから無視でいい。(ていうかバグが多い)
初心者のうちは、IDEの全機能を使おうとはするな。お前にとって便利な機能だけを使えばいい。(※)
ただまあ、2000年頃は実際、IDE否定派、IDE使うな、テキストエディタで書け、って奴も割と居た。
今はもうそういう連中はほぼ死んだと思うが、そういえば、連中の推しテキストエディタが割と秀丸だった。
だからIDE否定派の旧人類には猫は割とフィットするのかもしれん。
ただ明らかに時間の無駄だがな。
IDEで「新規プロジェクト作成…」のウィザードに従ってOKしていけば>>844の内容は5分で完成する。勿論当時のIDEでも。
よって、正しくIDEを用いた連中はどんどん先に進める。
一方、お前らは無駄に一日かけたから、今も無能なままなわけだ。
お前らが俺のアドバイスなんて聞くとは思えないが、それでも(外野のためにも)一応言っておくと、
IDEは最初から使え。初心者ほどIDEの効果が絶大だ。
最初からプロ用のIDEを使え。今ならVSかVSCodeだ。初心者用のIDEが偶にあるが、ゴミだから無視でいい。(ていうかバグが多い)
初心者のうちは、IDEの全機能を使おうとはするな。お前にとって便利な機能だけを使えばいい。(※)
ただまあ、2000年頃は実際、IDE否定派、IDE使うな、テキストエディタで書け、って奴も割と居た。
今はもうそういう連中はほぼ死んだと思うが、そういえば、連中の推しテキストエディタが割と秀丸だった。
だからIDE否定派の旧人類には猫は割とフィットするのかもしれん。
ただ明らかに時間の無駄だがな。
872デフォルトの名無しさん (ワッチョイ 8730-8LE+)
2026/10/12(月) 10:34:01.60ID:aUcxdPiw0 ※
なんでも形から=プログラミングに於いては文法から入ろうとする奴は居る。
C/C++はこのタイプとは絶望的に相性が悪く、
C: 文法が軽すぎて、全部抑えた後にも何をすればよいか分からず迷子になるから、
C++: 文法が無限にありすぎて終わらないから、だったのだが、
ゆとりZの場合は、追加で、
C: 現代的には使用禁止の文法も「これ知ってる俺スゲー」のマウントネタであり、(>>770)
結果的に、廃止すべき糞文法を駆使した糞コードを凄いものだと勘違いしてるから
という、おかしな事にもなってる。(なおこれは何度も繰り返してるので俺はもうスルー気味)
が、これはさておき、このタイプはIDEの全機能を網羅しようとして嵌ってしまう。
初心者がプロ向けの全機能を理解できることはない。
で、おそらく、こういうタイプの為の救済策が、
・初心者用IDE(初心者でも分かる機能しか搭載してない)
・IDE使わずにテキストエディタ(だって他機能が無いのでよそ見されない)
なのだと思うが、これは結局、一部の馬鹿に付き合わされてるだけだ。
IDEを用いれば、特に初心者の頃の上達速度は何十倍にも上がる。最初からIDEを『正しく』使え。
(逆に考えると、IDE否定派は、その本人がこのタイプなのかも。
この意味では、自分と価値観が似てる筆者のサイトや書籍を参考にするのが上達の早道とはなるが)
なんでも形から=プログラミングに於いては文法から入ろうとする奴は居る。
C/C++はこのタイプとは絶望的に相性が悪く、
C: 文法が軽すぎて、全部抑えた後にも何をすればよいか分からず迷子になるから、
C++: 文法が無限にありすぎて終わらないから、だったのだが、
ゆとりZの場合は、追加で、
C: 現代的には使用禁止の文法も「これ知ってる俺スゲー」のマウントネタであり、(>>770)
結果的に、廃止すべき糞文法を駆使した糞コードを凄いものだと勘違いしてるから
という、おかしな事にもなってる。(なおこれは何度も繰り返してるので俺はもうスルー気味)
が、これはさておき、このタイプはIDEの全機能を網羅しようとして嵌ってしまう。
初心者がプロ向けの全機能を理解できることはない。
で、おそらく、こういうタイプの為の救済策が、
・初心者用IDE(初心者でも分かる機能しか搭載してない)
・IDE使わずにテキストエディタ(だって他機能が無いのでよそ見されない)
なのだと思うが、これは結局、一部の馬鹿に付き合わされてるだけだ。
IDEを用いれば、特に初心者の頃の上達速度は何十倍にも上がる。最初からIDEを『正しく』使え。
(逆に考えると、IDE否定派は、その本人がこのタイプなのかも。
この意味では、自分と価値観が似てる筆者のサイトや書籍を参考にするのが上達の早道とはなるが)
873デフォルトの名無しさん (ワッチョイ 7f25-FrZy)
2026/10/12(月) 11:20:16.65ID:c/waB+x80 初期にPWB試してから
二度と使わないと心に決めた
二度と使わないと心に決めた
874デフォルトの名無しさん (ワッチョイ ff09-pCKE)
2026/10/12(月) 12:01:11.29ID:qXKcpegz0 >>870
> WisdomSoft
これなw これこれ、これも見てたわ
printf("Kitty on your lap\n");
こういうのなぜか覚えてる
あとperlで何か見てたサイト二個くらいあったはずなんだけど
まったく思い出せないし、検索してみてもひっかからないし
緑っぽい背景で余計なスペースがないみっちりしたタイプのページだったような
> WisdomSoft
これなw これこれ、これも見てたわ
printf("Kitty on your lap\n");
こういうのなぜか覚えてる
あとperlで何か見てたサイト二個くらいあったはずなんだけど
まったく思い出せないし、検索してみてもひっかからないし
緑っぽい背景で余計なスペースがないみっちりしたタイプのページだったような
875デフォルトの名無しさん (ワッチョイ ff09-pCKE)
2026/10/12(月) 12:04:06.87ID:qXKcpegz0876デフォルトの名無しさん (ワッチョイ 87fb-8LE+)
2026/10/12(月) 12:07:18.02ID:aUcxdPiw0 >>873
ジジイ、インテリセンスで成仏しろ!!!
ジジイ、インテリセンスで成仏しろ!!!
877デフォルトの名無しさん (ワッチョイ 8724-11Gw)
2026/10/12(月) 12:38:19.26ID:fqgpECZP0 ずっと長文垂れ流してるのもしかしてこの人?
日常の進捗履歴記録ツールWitBucket(仮称)検討中
https://mevius.5ch.io/test/read.cgi/tech/1668901194/
日常の進捗履歴記録ツールWitBucket(仮称)検討中
https://mevius.5ch.io/test/read.cgi/tech/1668901194/
878デフォルトの名無しさん (ワッチョイ 87fb-8LE+)
2026/10/12(月) 13:00:18.88ID:aUcxdPiw0 >>875
DOBONは、猫と同時期の、2000年前後頃に有名だったサイト。
MFC+Win32APIでVBとVCのサンプルコードを大量に掲載してた。
その後MFC(1992)は.NET(2002)に代わられるが、
DOBONは.NETに対応しなかった(サンプルを載せなかった)のでオワコンとされた。
ただ、今見ると中身は全部.NETになってるが。
MFC/Win32API/.NET/VB/VCなので、
C言語そのものではなく、Windowsフレームワークの使い方を解説したサイト。
ただ猫も
> 「DOSのプログラムは、作れるがWindowsのプログラムは ちょっと・・・」
の通りWindows向けで時期も被るので、あるいは、と思った。
ただDOBONはMSDNが公開されればお役御免ではある。
ところでMSDNにはC言語入門講座はないのか?と思ったら、まあまあのが出てきたぞ。
https://learn.microsoft.com/ja-jp/cpp/c-language/if-statement-c?view=msvc-170
ゆうてまあ、リファレンスだから、入門者向けではないか…。
DOBONは、猫と同時期の、2000年前後頃に有名だったサイト。
MFC+Win32APIでVBとVCのサンプルコードを大量に掲載してた。
その後MFC(1992)は.NET(2002)に代わられるが、
DOBONは.NETに対応しなかった(サンプルを載せなかった)のでオワコンとされた。
ただ、今見ると中身は全部.NETになってるが。
MFC/Win32API/.NET/VB/VCなので、
C言語そのものではなく、Windowsフレームワークの使い方を解説したサイト。
ただ猫も
> 「DOSのプログラムは、作れるがWindowsのプログラムは ちょっと・・・」
の通りWindows向けで時期も被るので、あるいは、と思った。
ただDOBONはMSDNが公開されればお役御免ではある。
ところでMSDNにはC言語入門講座はないのか?と思ったら、まあまあのが出てきたぞ。
https://learn.microsoft.com/ja-jp/cpp/c-language/if-statement-c?view=msvc-170
ゆうてまあ、リファレンスだから、入門者向けではないか…。
879はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 87f8-mt0u)
2026/10/12(月) 13:21:21.75ID:VI67vC/n0 昔はウェブ検索がカスだったので個々の部分での正確さが欠けていても網羅性が高い (幅広く説明している) サイトのほうが利用しやすかったという事情はある。
もちろん正確に網羅的であればそのほうが良いけどさ。
もちろん正確に網羅的であればそのほうが良いけどさ。
880デフォルトの名無しさん (ワッチョイ ff09-pCKE)
2026/10/12(月) 14:08:56.37ID:qXKcpegz0 CじゃないけどJavaならMLがクッソ役立った
高木さんがやってたJavaHouseのトピックスごとにまとめてくれてるの夢中になって読んでた
いろんなジャンルの人が本名所属丸出しで議論するのはアツかった
高木さんがやってたJavaHouseのトピックスごとにまとめてくれてるの夢中になって読んでた
いろんなジャンルの人が本名所属丸出しで議論するのはアツかった
881gemini (ワッチョイ df6a-Phws)
2026/10/12(月) 14:19:36.20ID:DrzumyNl0 そもそも猫もそうだけど「学習」が目的なわけでIDEで一発だってのは勉強する気あるの?って思う
今は電卓あるのに九九覚えるのは無駄と言っているようなものではないだろうか?
今は電卓あるのに九九覚えるのは無駄と言っているようなものではないだろうか?
882デフォルトの名無しさん (ワッチョイ bf06-21Y6)
2026/10/12(月) 14:32:00.17ID:KJA61u1K0 「これからはAIの時代みたいだからお役御免の私のHPは閉鎖(凍結?)します」みたいな人がいたかと思えば、猫の人は「自分の記事は古くて現代の環境ではうまく行かない内容もありますが、そこはまあAI活用で補完してください」と言っていて、物事は捉え方次第だね
883デフォルトの名無しさん (ワッチョイ 6716-rOpj)
2026/10/12(月) 16:48:47.74ID:Nw1oVq4D0 つまり猫でも〜の写経主義がクソって言いたいわけね
それを時代無視して言われてもな
C++というかwin32apiにどう立ち向かうかって部分で勇気づけられた人は多いだろう
金ある人はペゾルドの本読んでMSDN買ってただろうし
それを時代無視して言われてもな
C++というかwin32apiにどう立ち向かうかって部分で勇気づけられた人は多いだろう
金ある人はペゾルドの本読んでMSDN買ってただろうし
884デフォルトの名無しさん (ワッチョイ 0730-Mn4o)
2026/10/12(月) 16:50:59.97ID:s7P0ttOn0 やはり、ここは、make 一発でしょ
885デフォルトの名無しさん (ワッチョイ 6716-rOpj)
2026/10/12(月) 16:53:45.64ID:Nw1oVq4D0 unixのシステムコール系って勉強するところあった?
層がぜんぜん違うか
層がぜんぜん違うか
886デフォルトの名無しさん (ワッチョイ 8744-8LE+)
2026/10/12(月) 17:05:52.46ID:aUcxdPiw0 >>879
この状況でそれは、さすがに対象が分からない。
各社各様、正確性も網羅性も目指してる。そもそも、100%が目標でもないし。
だいたい、正確性と網羅性の頂点に君臨するのが『K&R』だ。(なんぜ準仕様書だし)
ただあれでは無理な奴も多かったからみんな噛み砕いてグダグダ説明してるわけでね。
勿論冗長になりまくって分量は多くなるが、それでも感謝してる奴が多いのも事実だろ。
直前、つまり俺宛で、MSDN等の公式リファレンスの類を全部読んで入門書の代わりにする事に対してなら、
正確性と網羅性においてはリファレンスの方が断然上だ。
(だから反論になっておらず、誰宛?となる)
この状況でそれは、さすがに対象が分からない。
各社各様、正確性も網羅性も目指してる。そもそも、100%が目標でもないし。
だいたい、正確性と網羅性の頂点に君臨するのが『K&R』だ。(なんぜ準仕様書だし)
ただあれでは無理な奴も多かったからみんな噛み砕いてグダグダ説明してるわけでね。
勿論冗長になりまくって分量は多くなるが、それでも感謝してる奴が多いのも事実だろ。
直前、つまり俺宛で、MSDN等の公式リファレンスの類を全部読んで入門書の代わりにする事に対してなら、
正確性と網羅性においてはリファレンスの方が断然上だ。
(だから反論になっておらず、誰宛?となる)
887デフォルトの名無しさん (ワッチョイ 8744-8LE+)
2026/10/12(月) 17:06:53.13ID:aUcxdPiw0 >>881
電卓有るから九九要らん=Excelあるからグラフを手で書くのは無意味
学習過程でIDE使ったら無意味=運動中に水分補給したら運動の意味無し
IDE使え=本来業務に集中しろ
プロがIDE使うのはこの目的なので、『正しく』使えれば自然とこうなる。
電卓有るから九九要らん=Excelあるからグラフを手で書くのは無意味
学習過程でIDE使ったら無意味=運動中に水分補給したら運動の意味無し
IDE使え=本来業務に集中しろ
プロがIDE使うのはこの目的なので、『正しく』使えれば自然とこうなる。
888デフォルトの名無しさん (アウアウウー Saab-pCKE)
2026/10/12(月) 17:20:22.36ID:7eLRFPBba >>883
> C++というかwin32apiにどう立ち向かうかって部分で勇気づけられた人は多いだろう
わかるわ〜 なんせ情報のない時代
win32? HWND? LPCTSTR? はああ??
みたいなときにあのとぼけた猫の顔がいっときの清涼感になったねw
> C++というかwin32apiにどう立ち向かうかって部分で勇気づけられた人は多いだろう
わかるわ〜 なんせ情報のない時代
win32? HWND? LPCTSTR? はああ??
みたいなときにあのとぼけた猫の顔がいっときの清涼感になったねw
889デフォルトの名無しさん (ワッチョイ 07bb-FrZy)
2026/10/12(月) 17:25:58.31ID:s+lUMBsD0 オレに聞けスレで、
誰も聞いてくれてない
誰も聞いてくれてない
890はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 87f8-mt0u)
2026/10/12(月) 17:39:20.17ID:VI67vC/n0891デフォルトの名無しさん (ワッチョイ bf06-21Y6)
2026/10/12(月) 17:52:11.85ID:KJA61u1K0892デフォルトの名無しさん (ワッチョイ fffa-pCKE)
2026/10/13(火) 18:52:07.05ID:sjdpyoFk0 猫の粂井さんが1955生まれで
とほほさんが1965生まれなんだな
(`・ω・´)ゞ
とほほさんが1965生まれなんだな
(`・ω・´)ゞ
893デフォルトの名無しさん (ワッチョイ 07af-FrZy)
2026/10/13(火) 20:48:58.75ID:aOpRXmtb0 団塊の麓辺り
894デフォルトの名無しさん (ワッチョイ 8719-8LE+)
2026/10/13(火) 23:08:33.23ID:z8y7K+lj0 >>883
コピペ出来るから、サイトの写経主義自体は実害はないが、
問題はそこではない。
初心者は「このコードがどう動くか」に注力すべき。
突き詰めればインタプリタであり、実際、その方がいい。
PHP: https://www.php.net/manual/ja/control-structures.if.php
Python: https://docs.python.org/ja/3.15/tutorial/controlflow.html#if-statements
猫: http://www.kumei.ne.jp/c_lang/intro/no_12.htm
他言語では今書いたコードがどう動くかに完全に注力出来る。
Cでテキストエディタスタートなら、ファイル拡張子ガー、文字コードガー、BOMガー、コンパイルガー、の説明も必要だが、
IDEでハロワプロジェクトを改造すれば、この辺すっ飛ばせる。
セーブせずに実行ボタン押しても、自動的にセーブしてコンパイルして実行してくれる。
だからIDEは準インタプリタ程度にはなる。
そして猫は明らかに脱線が多い。
ただこれには相性があり、脱線先での情報取得も楽しめる奴
=百科事典やwikiでリンク辿って延々読み続ける奴にはフィットする。
だから一概に悪でもないが、人は選ぶ。
コピペ出来るから、サイトの写経主義自体は実害はないが、
問題はそこではない。
初心者は「このコードがどう動くか」に注力すべき。
突き詰めればインタプリタであり、実際、その方がいい。
PHP: https://www.php.net/manual/ja/control-structures.if.php
Python: https://docs.python.org/ja/3.15/tutorial/controlflow.html#if-statements
猫: http://www.kumei.ne.jp/c_lang/intro/no_12.htm
他言語では今書いたコードがどう動くかに完全に注力出来る。
Cでテキストエディタスタートなら、ファイル拡張子ガー、文字コードガー、BOMガー、コンパイルガー、の説明も必要だが、
IDEでハロワプロジェクトを改造すれば、この辺すっ飛ばせる。
セーブせずに実行ボタン押しても、自動的にセーブしてコンパイルして実行してくれる。
だからIDEは準インタプリタ程度にはなる。
そして猫は明らかに脱線が多い。
ただこれには相性があり、脱線先での情報取得も楽しめる奴
=百科事典やwikiでリンク辿って延々読み続ける奴にはフィットする。
だから一概に悪でもないが、人は選ぶ。
895デフォルトの名無しさん (ワッチョイ 8719-8LE+)
2026/10/13(火) 23:09:26.24ID:z8y7K+lj0 ただそもそも、写経する時間があるなら、
その手本コードがどういう意味なのかを理解する時間に充てるべき。
コードはコピペでいいから、そのコードの説明をしろと。
すると、「そのコードは不要だろうが!」という、もっと糞な事実に直面する。
CのGUIでのmainは初期化&イベントループのエントリだが、
これはフレームワーク/ランタイムがユーザーコードにはみ出てきてるだけで、
正しくコード配置されていれば不要だからだ。
実際、JavaScriptにはmainが無く、onclick関数の中身をいきなり書ける。
(CのGUIでのmainの中身は、JavaScript標準内に実装されてて、ユーザーが書く必要がない)
つまり、GUIをCでやる事自体がそもそもの間違いなので糞コードが発生し、
さらにIDE使わないから写経するハメになるという、
ドMプレイを猫やお前らはやってる。
まあそれを楽しむのも自由だが、何も知らない初心者にも強要するのは酷い。
IDEはこの辺の、言語が糞な点を補う効果もある。
デザイナでボタンを配置してダブルクリックすれば、
onclick関数のスケルトンが自動生成され、そこにカーソルが当たった状態のエディタが開く。
結果的にプログラマの負担はJavaScriptと同等レベル迄下げられる。(勿論当時のIDEでも)
その手本コードがどういう意味なのかを理解する時間に充てるべき。
コードはコピペでいいから、そのコードの説明をしろと。
すると、「そのコードは不要だろうが!」という、もっと糞な事実に直面する。
CのGUIでのmainは初期化&イベントループのエントリだが、
これはフレームワーク/ランタイムがユーザーコードにはみ出てきてるだけで、
正しくコード配置されていれば不要だからだ。
実際、JavaScriptにはmainが無く、onclick関数の中身をいきなり書ける。
(CのGUIでのmainの中身は、JavaScript標準内に実装されてて、ユーザーが書く必要がない)
つまり、GUIをCでやる事自体がそもそもの間違いなので糞コードが発生し、
さらにIDE使わないから写経するハメになるという、
ドMプレイを猫やお前らはやってる。
まあそれを楽しむのも自由だが、何も知らない初心者にも強要するのは酷い。
IDEはこの辺の、言語が糞な点を補う効果もある。
デザイナでボタンを配置してダブルクリックすれば、
onclick関数のスケルトンが自動生成され、そこにカーソルが当たった状態のエディタが開く。
結果的にプログラマの負担はJavaScriptと同等レベル迄下げられる。(勿論当時のIDEでも)
896デフォルトの名無しさん (ワッチョイ 8719-8LE+)
2026/10/13(火) 23:10:11.22ID:z8y7K+lj0 ただCでGUIやるのは本当に糞だ。
Qtとか知らんが、言語の問題(階層記述能力とクロージャ)なので、どうにもならない。
2000年代頃は論外だったJavaScriptが台頭してきたのは実力だ。
GUIやるなら今はJavaScriptしかない。
勿論2000年頃はCでGUIも一般的にやってたから、この点は猫が悪いわけでもないが、
猫はその当時でも出来た事をやってない。精神論で老害丸出しだ。(老害なんて言葉は当時なかったが)
とはいえ>>881のような精神論者にはフィットするし、実際お前らが助かったのならそれでいいが。
ていうか、猫で助かった連中の環境って何だったんだ?
猫はVC++(勿論当時は有料)使ってるので、なら普通にIDEの機能を使えとしかならない。
もしかしてgccやフリーのコンパイラでWindowsプログラミングする手段が有り、
IDEで自動生成されるコード自体を掲載してるサイトが有益だったのか?
Qtとか知らんが、言語の問題(階層記述能力とクロージャ)なので、どうにもならない。
2000年代頃は論外だったJavaScriptが台頭してきたのは実力だ。
GUIやるなら今はJavaScriptしかない。
勿論2000年頃はCでGUIも一般的にやってたから、この点は猫が悪いわけでもないが、
猫はその当時でも出来た事をやってない。精神論で老害丸出しだ。(老害なんて言葉は当時なかったが)
とはいえ>>881のような精神論者にはフィットするし、実際お前らが助かったのならそれでいいが。
ていうか、猫で助かった連中の環境って何だったんだ?
猫はVC++(勿論当時は有料)使ってるので、なら普通にIDEの機能を使えとしかならない。
もしかしてgccやフリーのコンパイラでWindowsプログラミングする手段が有り、
IDEで自動生成されるコード自体を掲載してるサイトが有益だったのか?
897デフォルトの名無しさん (ワッチョイ 8719-8LE+)
2026/10/13(火) 23:12:12.36ID:z8y7K+lj0 >>890
そこが引っかかるのは、お前がプログラマではないからだ。
プログラミングは、あくまで何かを作る手段であって、目的ではない。
同様に、手段(技能)を鍛える教育の、小中学校での技術/家庭科が参考になるだろう。
技術/家庭科においては、必ず、何か最終成果物を作ろうとしてただろ。
例えば家庭科で「ホットケーキ」を作る時を考えよう。
いやそれが料理か?という程度だが、それでも、
「ホットケーキミックス」に「卵」を「割って」入れ、
「水」も「計量」して、「泡立て器」で「かき混ぜ」、
「コンロ」上の「フライパン」で「焼き」、
「フライ返し」で「ひっくり返し」て「完成」という、
材料を用意し、それぞれの道具を適切に使い、成果物を得る、というシーケンスを繰り返し、
使える道具と経験値を増やして行く。
これが一般に手段(技能)を鍛える手法であって、網羅性なんて必要ない。
目的を達成する為に、必要な手段を、その時々でインストールしていく。
包丁が一丁前に使えるまでは料理してはいけない、なんて事はない。
カンナを綺麗にかけられないうちは、ノコギリを使ってはいけない、なんて事もない。
言語も同じ。漢検一級受からないと日本語使ってはいけない、ということはない。
語彙が無かろうが下手だろうが、意思疎通の努力をすべき。
(下手でもしゃべらないと何も始まらねえんだよ!ってのは英語シチュの方が分かりやすいかも)
プログラミングも同じ。
言語の全文法を抑えてからでないとアプリを作ってはいけない、なんて事はない。
DOSプログラミングは出来ても、GUIが出来ない内は、アプリを作ってはいけない、ということもない。
お前が知ってる文法の範囲でいいから、お前の作りたいものを作れ、だ。
ユーザーには、アプリがどの文法で書かれてるかなんてどうでもいい。
GUI作りたくなったときにGUI文法/手法のインストールでいい。
これがプログラマの目線だ。だから網羅性が話題にならない。
そこが引っかかるのは、お前がプログラマではないからだ。
プログラミングは、あくまで何かを作る手段であって、目的ではない。
同様に、手段(技能)を鍛える教育の、小中学校での技術/家庭科が参考になるだろう。
技術/家庭科においては、必ず、何か最終成果物を作ろうとしてただろ。
例えば家庭科で「ホットケーキ」を作る時を考えよう。
いやそれが料理か?という程度だが、それでも、
「ホットケーキミックス」に「卵」を「割って」入れ、
「水」も「計量」して、「泡立て器」で「かき混ぜ」、
「コンロ」上の「フライパン」で「焼き」、
「フライ返し」で「ひっくり返し」て「完成」という、
材料を用意し、それぞれの道具を適切に使い、成果物を得る、というシーケンスを繰り返し、
使える道具と経験値を増やして行く。
これが一般に手段(技能)を鍛える手法であって、網羅性なんて必要ない。
目的を達成する為に、必要な手段を、その時々でインストールしていく。
包丁が一丁前に使えるまでは料理してはいけない、なんて事はない。
カンナを綺麗にかけられないうちは、ノコギリを使ってはいけない、なんて事もない。
言語も同じ。漢検一級受からないと日本語使ってはいけない、ということはない。
語彙が無かろうが下手だろうが、意思疎通の努力をすべき。
(下手でもしゃべらないと何も始まらねえんだよ!ってのは英語シチュの方が分かりやすいかも)
プログラミングも同じ。
言語の全文法を抑えてからでないとアプリを作ってはいけない、なんて事はない。
DOSプログラミングは出来ても、GUIが出来ない内は、アプリを作ってはいけない、ということもない。
お前が知ってる文法の範囲でいいから、お前の作りたいものを作れ、だ。
ユーザーには、アプリがどの文法で書かれてるかなんてどうでもいい。
GUI作りたくなったときにGUI文法/手法のインストールでいい。
これがプログラマの目線だ。だから網羅性が話題にならない。
898デフォルトの名無しさん (ワッチョイ 8719-8LE+)
2026/10/13(火) 23:13:20.31ID:z8y7K+lj0 とはいえ、効率よく技能を得ようとすれば、纏めて鍛えるのがよく、
料理学校では最初から包丁を練習し、各種料理も一通り作りまくる事になる。
お前らがやってるプログラミング学習も大体これで、
最初からほぼ全文法を網羅的に学習するわけだ。
ただしCの場合は糞文法が混ざっているので、ゆとりZがおかしな方向に走ってるのは前述の通り。
正しくは、糞文法を除外した範囲で学習すべき。実際大学ではそうしてる。
(といっても先生頼みだが。
だから初心者が自学するならgoogle等大手のコーディングルールを参考にすべき。
つまり逆に考えれば、糞文法をドヤってる馬鹿共は正規のプログラミング教育を受けてないって事なのかね?
まあ実際、専門学校や大学で先生に聞けるなら、ここに来る必要はないし、来るべきでもない)
技能において網羅性が問題になってくるのは、中〜上級者からだ。
日本語なら、相手の使った単語の意味が分からないと困るので、人並み以上の語彙と漢字能力は必要となる。
料理なら、一般的な食材と処理方法等を知ってないと、話が通じなくなってくる。
プログラミングでも同様で、他人のコードを読む機会が増えてくると、
それが妙な文法で書かれてても、読めて、修正指示出来る程度の能力は必要になる。
だからまあ、技能と網羅性のバランスで、大体どういうタイプのプログラマか分かる。
料理学校では最初から包丁を練習し、各種料理も一通り作りまくる事になる。
お前らがやってるプログラミング学習も大体これで、
最初からほぼ全文法を網羅的に学習するわけだ。
ただしCの場合は糞文法が混ざっているので、ゆとりZがおかしな方向に走ってるのは前述の通り。
正しくは、糞文法を除外した範囲で学習すべき。実際大学ではそうしてる。
(といっても先生頼みだが。
だから初心者が自学するならgoogle等大手のコーディングルールを参考にすべき。
つまり逆に考えれば、糞文法をドヤってる馬鹿共は正規のプログラミング教育を受けてないって事なのかね?
まあ実際、専門学校や大学で先生に聞けるなら、ここに来る必要はないし、来るべきでもない)
技能において網羅性が問題になってくるのは、中〜上級者からだ。
日本語なら、相手の使った単語の意味が分からないと困るので、人並み以上の語彙と漢字能力は必要となる。
料理なら、一般的な食材と処理方法等を知ってないと、話が通じなくなってくる。
プログラミングでも同様で、他人のコードを読む機会が増えてくると、
それが妙な文法で書かれてても、読めて、修正指示出来る程度の能力は必要になる。
だからまあ、技能と網羅性のバランスで、大体どういうタイプのプログラマか分かる。
899デフォルトの名無しさん (ワッチョイ 8719-8LE+)
2026/10/13(火) 23:14:45.56ID:z8y7K+lj0 さて、はちみつ餃子、お前は以前、コード構成についての話が全く通じなかったから、中〜上級者プログラマって事はない。
プログラマの目線も通じないようだから、どうやらプログラマでもない。
それでも網羅性がそこまで気になるのなら、ただの「文法コレクター」か、
或いはもう一つの軸である、「コンパイラ屋」といったところか。
プログラマは最小文法のみでもアプリを作れるが、
コンパイラ屋は最初から全文法を抑えないとコンパイラが作れない。
かくして、
プログラマ: ろくにコードも書けない癖に偉そうに!
コンパイラ屋: ろくに文法も知らない癖に偉そうに!
とお互いに思っているので、大体仲が悪い。
はちみつ餃子には、一般プログラマとしては不要なレベルの仕様/文法知識があるが、
実際のコードの話がまるで通じない。(コーディング能力自体は低い)
これは、初手から全仕様/全文法が必要な「コンパイラ屋」ならあり得る。
そこで質問だが、可能なら答えてくれ。
件の糞文法について、
> and on many targets implies a speed and code size penalty on global variable references.
> https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#index-fcommon
つまり速度とサイズに難あり(なので出来れば使うな)なのだが、
いや、グローバルと認識出来るならBSSに配置出来るだろ、出来ないのはコンパイラの手抜きじゃねえか?と思える。
何か仕様/文法的に無理な理由があるのかね?
なお当該タイミングで聞かなかったのは、
プログラマ目線だと、そもそも糞記述を修正(static/externを書く)すれば済むだけなのと、
ドヤ馬鹿にさらにネタを提供してドヤ馬鹿再生産に加担したくなかったから。
ただ、糞文法は糞文法として、gccのこの言い訳も気になってたので。(とはいえ単なる興味程度だが)
プログラマの目線も通じないようだから、どうやらプログラマでもない。
それでも網羅性がそこまで気になるのなら、ただの「文法コレクター」か、
或いはもう一つの軸である、「コンパイラ屋」といったところか。
プログラマは最小文法のみでもアプリを作れるが、
コンパイラ屋は最初から全文法を抑えないとコンパイラが作れない。
かくして、
プログラマ: ろくにコードも書けない癖に偉そうに!
コンパイラ屋: ろくに文法も知らない癖に偉そうに!
とお互いに思っているので、大体仲が悪い。
はちみつ餃子には、一般プログラマとしては不要なレベルの仕様/文法知識があるが、
実際のコードの話がまるで通じない。(コーディング能力自体は低い)
これは、初手から全仕様/全文法が必要な「コンパイラ屋」ならあり得る。
そこで質問だが、可能なら答えてくれ。
件の糞文法について、
> and on many targets implies a speed and code size penalty on global variable references.
> https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#index-fcommon
つまり速度とサイズに難あり(なので出来れば使うな)なのだが、
いや、グローバルと認識出来るならBSSに配置出来るだろ、出来ないのはコンパイラの手抜きじゃねえか?と思える。
何か仕様/文法的に無理な理由があるのかね?
なお当該タイミングで聞かなかったのは、
プログラマ目線だと、そもそも糞記述を修正(static/externを書く)すれば済むだけなのと、
ドヤ馬鹿にさらにネタを提供してドヤ馬鹿再生産に加担したくなかったから。
ただ、糞文法は糞文法として、gccのこの言い訳も気になってたので。(とはいえ単なる興味程度だが)
900デフォルトの名無しさん (ワッチョイ bf06-21Y6)
2026/10/13(火) 23:34:17.33ID:RlgvrlKG0 今日も暑かったかな?
901デフォルトの名無しさん (ワッチョイ 07e4-HALK)
2026/10/14(水) 06:46:30.47ID:2P1W34ww0 長文書いてるほど暇なんかな?
902デフォルトの名無しさん (ワッチョイ ffa9-61Tg)
2026/10/14(水) 09:40:37.88ID:kSywGDsr0 今なら言語覚えても低スペックなら開発環境もインストールできない
903デフォルトの名無しさん (ブーイモ MMff-5gUK)
2026/10/14(水) 13:08:54.89ID:9feWqUJZM 話す相手おらんのやろな
904デフォルトの名無しさん (ワッチョイ 876e-8LE+)
2026/10/15(木) 07:32:14.66ID:66tbkv/I0 写経や歪んだ使い方のネットを止めれば、お前らにももう少し時間が出来るだろうよ
レスを投稿する
レス数が900を超えています。1000を超えると表示できなくなるよ。
ニュース
- 両足切断された30代女性が意識回復、軽トラックと車に挟まれた事故 40代男を逮捕 東京・世田谷区三軒茶屋 ★2 [お断り★]
- 【野球】また下剋上 3位・DeNAの日本シリーズ進出に困惑 「邪道」「これでいいのかプロ野球」「ペナントレース勝ち抜いた意味ない」★3 [冬月記者★]
- 【サッカー】日本代表MF 久保建英(ソシエダ) 待望の今季初ゴール! 7試合ぶりに先発 マラガ戦で圧巻のゴラッソ! [阿弥陀ヶ峰★]
- 「イオンモールおじさん」にSNS賛否…中年男性のファッションは何が正解? 400人アンケートで見えた「over50男性のリアル」 [七波羅探題★]
- 横浜市長選、原沢敦美氏が当選確実 パワハラ辞職の山中竹春氏ら破る :朝日新聞 [少考さん★]
- 謙虚さが低い男性ほど「男性は不当に扱われている」と感じて男性の権利擁護活動を支持する傾向があるという研究結果 [少考さん★]
- 【高市悲報】ジャップの65%『消費税減税反対』wwwwwwwwwwwwwwwwwwwwwwwwwwww [527893826]
- 【画像】顔はオジサン、服だけ若者『おじさんキッズコーデ』ガチでヤバいwwwwwwwwww [308389511]
- くら寿司の🪳混入動画、削除される [931948549]
- 【高市悲報】毒親に育てられたZ世代キッズ、かわいそう過ぎると話題に... [334972637]
- 【動画】日本人、スタバで上半身裸の外国人観光客に店員でもないのにわざわざ注意してXに晒しあげてしまう [668024367]
- 人生しんどくて辛い