◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

C言語なら俺に聞け 159 ->画像>3枚


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/tech/1659623547/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

1デフォルトの名無しさん (ワンミングク MMa2-RRwJ)
2022/08/04(木) 23:32:27.83ID:yWVViPyIM
!extend:checked:vvvvv:1000:512
(新スレ立ての際上記コマンドを2行書き込んでください)
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/

C17
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4713.pdf

C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf

C2x ドラフト
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2731.pdf

C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html

C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/

JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/

※前スレ
C言語なら俺に聞け 158
http://2chb.net/r/tech/1640401906/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9a3e-dSCr)
2022/08/04(木) 23:46:06.88ID:hPtMGH660
現時点んでの C2x 最新ドラフトはこっち
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2912.pdf
3デフォルトの名無しさん (ワッチョイ 7a63-Jv5Y)
2022/08/04(木) 23:50:16.33ID:nIz8Ddm70
訂正ありがとう
4デフォルトの名無しさん (ワッチョイ 13a5-wg88)
2022/08/08(月) 01:13:34.41ID:/9Y6mnF30
n3047がC23の投票に掛けられる模様
5はちみつ餃子 ◆8X2XSCHEME (ワッチョイ d13e-woMg)
2022/08/08(月) 01:16:49.11ID:JJ3NlnG00
おっ、こないだの会議の結果が反映されたドラフトが出てたのか。
6デフォルトの名無しさん (ワッチョイ 45bb-5Ix7)
2022/08/13(土) 08:01:13.53ID:2Qk1ejrP0
配列の初期化に変数使えるのはGCC拡張ってマジか・・・
これ↓

int arr[3] = { a, b, c };

知らなかった・・・
7デフォルトの名無しさん (ワッチョイ 45bb-5Ix7)
2022/08/13(土) 08:05:10.38ID:2Qk1ejrP0
>>6
あれ?
-std=c11 つけてコンパイルしてもエラーにならないな
>>6は一応C標準てことでいいのかな?
8はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 813e-5Ix7)
2022/08/13(土) 09:53:55.13ID:RGh4OO0V0
>>6-7
言語仕様を確認してみたら、変数が静的記憶域期間を持つときは
初期化子に現れる全ての式が定数式でなければならない (変数を含められない) という制限はある。
自動記憶域期間なら初期化子に変数を使っても問題ない。
GCC でもそのような挙動になる。
9デフォルトの名無しさん (スッップ Sd62-arFQ)
2022/08/13(土) 09:54:36.52ID:F6UXSz0Jd
>>6
staticやグローバルにすると・・・
10はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 813e-5Ix7)
2022/08/13(土) 10:02:52.43ID:RGh4OO0V0
関連する挙動を色々と試してたんだけど、
GCC では const 付きの変数の挙動が少し C++ 寄りに拡張されているっぽい。

C++ では const 付き変数の初期化子が定数式である場合にはその変数も定数式になるが、
C では単に代入できない変数という扱いのはずなんだけど、
GCC では定数式っぽい振る舞いをする場合がある (全面的に定数式扱いというわけではない) ように見える。
11デフォルトの名無しさん (スッププ Sd62-bA8F)
2022/08/13(土) 17:52:01.55ID:D+zbBXbXd
>>9
それが静的記憶域っちゅうこっちゃがなーー
12デフォルトの名無しさん (スッップ Sd62-arFQ)
2022/08/13(土) 20:18:21.81ID:F6UXSz0Jd
>>11
だからそれを言ってる
13デフォルトの名無しさん (スッププ Sd62-bA8F)
2022/08/14(日) 00:23:10.64ID:yTFzwOo0d
もう>>8に書いてあるじゃん
14デフォルトの名無しさん (ワッチョイ 45bb-5Ix7)
2022/08/14(日) 00:37:06.28ID:E4oXLohw0
あーなるほどstaticかぁ
お前らありがとん
15デフォルトの名無しさん (スッップ Sd62-arFQ)
2022/08/14(日) 08:08:18.99ID:BqkowVN+d
K&R Cでは配列の初期化子にも同様の制限があって
その理由は合理的だった
その後ある事情で無理が通って道理が引っ込んだ
16デフォルトの名無しさん (アウアウウー Saa5-oUG4)
2022/08/14(日) 11:44:40.04ID:VI2zLni0a
staticには意味が複数あるのがC言語の挫折ポイントのひとつ
17はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 813e-5Ix7)
2022/08/14(日) 12:08:31.19ID:vdIvBFYd0
予約語を増やさないという方針自体は互換性を損なわないために真っ当なものだと思うけど、
名前がかぶったら単に一括置換で対処できる程度のことでもあるしなぁ……。
18デフォルトの名無しさん (アウアウウー Saa5-8lLW)
2022/08/14(日) 12:20:02.25ID:1rNkdimaa
>>16
そんなので挫折するならもっと前に挫折するだろw
19デフォルトの名無しさん (ワッチョイ 4263-5Ix7)
2022/08/14(日) 12:34:09.99ID:+OkjgujJ0
挫折自慢大会が開催されました
20ハノン ◆QZaw55cn4c (ワッチョイ 41e6-U0U7)
2022/08/14(日) 13:14:34.32ID:GttZqyyI0
Scheme 手習い、を挫折しました、いつ再トライしようかしら?
21はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 813e-5Ix7)
2022/08/14(日) 15:10:21.65ID:vdIvBFYd0
自分の性分に合ったものは気合いを入れなくても割とスルっと出来ちゃったりするし、
そういうところから周りに広げていく形でやってけばいいんでないかな。
業務で必要とかならそうも言っておれんだろうけど。
22デフォルトの名無しさん (ワッチョイ 42ad-9bk+)
2022/08/14(日) 16:55:08.09ID:YzvfyuVN0
Kotlinもよろしく
23デフォルトの名無しさん (ワッチョイ 9901-oUG4)
2022/08/14(日) 17:14:45.00ID:b9F5IowR0
完全な文脈自由文法で設計されていれば、コンパイラも簡単に作れるけどな。
しかし、Javaのその特性は完全に無視され、誰にも気づかれなかった。
お前らも気づいていない。
24はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 813e-5Ix7)
2022/08/14(日) 21:52:34.16ID:vdIvBFYd0
構文解析だけ簡単でもコンパイラが簡単なわけではないが……。
部分的にでも簡単であるに越したことは無いけどさ。
25デフォルトの名無しさん (スッププ Sd62-bA8F)
2022/08/15(月) 06:53:02.58ID:m+99U1QQd
いや宣言文→実行部のように決まっている文脈ガチガチのほうがコンパイラは作りやすい
26デフォルトの名無しさん (ワッチョイ 4201-8lLW)
2022/08/15(月) 08:31:44.94ID:zxOEKBbO0
今時字句解析とか構文解析で難しいとかないでしょ
それなりのツールもあるからBNF書ければ自動生成できたりするし
27はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 813e-5Ix7)
2022/08/15(月) 09:21:08.58ID:DfKndVH30
>>26
言語仕様のほうも処理しやすいように寄せてきてるからだよ。
パーサジェネレータを前提として設計された言語仕様ならパーサジェネレータで処理しやすいのは当たり前の話。
28デフォルトの名無しさん (ワッチョイ 4201-8lLW)
2022/08/15(月) 09:27:22.60ID:zxOEKBbO0
>>27
難しいって一体どんな言語仕様を想定してるんだ?w
29はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 813e-5Ix7)
2022/08/15(月) 09:47:41.49ID:DfKndVH30
>>28
FORTRAN 77
30デフォルトの名無しさん (ワッチョイ 4201-8lLW)
2022/08/15(月) 10:35:55.74ID:zxOEKBbO0
>>29
字句解析と構文解析を一体でやらないといけないから面倒ではあるけど難しいという程じゃなくね?
そもそも人間にとっても分かりにくい言語仕様を採用するのもどうかと思うが
31はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 813e-5Ix7)
2022/08/15(月) 11:11:29.28ID:DfKndVH30
>>30
今の主要なプログラミング言語はそう (処理段階の分離が極端に難しい仕様には) ならなかったという話をしてる。

だから昔のものから例になりそうなものを抽出しただけで、この頃の知見のまま設計された大きな言語があったら
現代的なツールでも扱いにくいだろうということ。
32デフォルトの名無しさん (ワッチョイ 4201-8lLW)
2022/08/15(月) 11:28:00.05ID:zxOEKBbO0
>>31
だから多少面倒なだけだろ
そもそもスペース無視するとか予約語を識別子に使えるとか人間側にも優しくない仕様ででかい言語仕様とか頭おかしい
33はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 813e-5Ix7)
2022/08/15(月) 11:39:32.94ID:DfKndVH30
>>32
漠然と変だとは思ってたとしても、知見の確立がなかったとしたらそのまま進むしかしょうがないだろう。
まあ、そうなっていない世界でのもしもの話、実際に無かった以上は想像でしかないけどな。
34デフォルトの名無しさん (ワッチョイ 4201-8lLW)
2022/08/15(月) 12:01:53.74ID:zxOEKBbO0
>>33
そもそもFORTRAN77以前でも
DO 100 I = 1. 5
なんて言う「代入文」を書く奴なんてほとんどいなかったわけで知見が確立しないまま言語仕様だけでかくなるとかまずありえんわ
まあ妄想に浸りたいだけなら勝手にやっててくださいな
35デフォルトの名無しさん (ワッチョイ 0297-LcF5)
2022/08/15(月) 12:48:46.30ID:RzREpsfh0
ほとんどいない笑
たまにはいたんですね?
36デフォルトの名無しさん (ワッチョイ 4201-8lLW)
2022/08/15(月) 13:28:30.95ID:zxOEKBbO0
>>35
タイプミスとか、難読大会とか
想像力ないの?
37デフォルトの名無しさん (ワッチョイ 06ad-Lyl8)
2022/08/16(火) 10:07:24.32ID:6bNCuhdm0
割り込みルーチン内で速度を稼ぐためにグローバル変数をローカル変数にコピーして
それを元に色々処理しようとするとうまくいかない
グローバル変数を直接使って処理するとうまくいく
こういうことはありえるのかな?
38デフォルトの名無しさん (ワッチョイ 4910-5Ix7)
2022/08/16(火) 10:11:26.14ID:wezFOLPc0
・・・グローバル変数の書き戻し忘れとか?
39デフォルトの名無しさん (アウアウウー Saa5-oUG4)
2022/08/16(火) 11:20:38.26ID:2x3mrzZQa
ポインタ便利ですね
40デフォルトの名無しさん (スッププ Sd62-jKaU)
2022/08/16(火) 11:58:39.88ID:dXh796NKd
すっごく抽象的でさっぱりわからんw
なんの割り込み?
どううまくいかない?
41はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 813e-5Ix7)
2022/08/16(火) 14:05:35.67ID:+o+ePBjP0
>>37
書いたプログラムのロジックは誤ってないと仮定して、
コンパイラによる最適化が割り込みに配慮しないなら思ったような動作にならないということはあり得る。

ある変数が途中で変更されることはないと確信できる状況なら
レジスタにロード済みの値を使いまわしたりするのはごく普通の動作。
場合によっては定数にまで畳み込まれることもある。
だけど、割り込みはそうしたメインの流れと関係なく問答無用でどこにでも割り込むから齟齬が生じる。

C99 までは割り込みや平行については言語仕様ではあまり取り決めず、
動作の詳細な部分は処理系まかせなものの volatile キーワードを付けた変数は最適化が抑制されるとか、
処理系の拡張で属性指定を付けれるとかいった機能を利用してどうにかしてきた。
(たぶん POSIX にはもうちょっと詳しい規定がありそうだと思うけど私はよく知らない。)

C11 以降はスレッドまわりの整備が進んだので割り込みでも活用できる部分は多いと思うんだけど、
オプショナルな仕様なので C11 の処理系として必須なわけではないんよ。

おそらくは使っている処理系・実行環境で使っているお決まりのパターンがあると思うからそういうのを探して
真似するのが手っ取り早いと思う。
42デフォルトの名無しさん (スッププ Sd62-jKaU)
2022/08/16(火) 19:21:50.20ID:7tUZ32LZd
そういやそんな問題に悩んでた奴でvolatileの存在知らない奴がいたな
…大丈夫だよね?
43デフォルトの名無しさん (アウアウウー Saa5-oUG4)
2022/08/17(水) 12:06:24.22ID:75soL8XVa
volatile で全ての問題が解決する訳じゃないけどな
知らないのはまずいな
44デフォルトの名無しさん (ワッチョイ 06ad-Lyl8)
2022/08/17(水) 15:44:25.95ID:VZh9Cr0g0
switch文がポンコツ過ぎて二分探索のif文で記述したくなります
case設定がへたくそなのでしょうか?
45デフォルトの名無しさん (ワッチョイ 71c2-arFQ)
2022/08/17(水) 16:18:24.97ID:vNydwVZ40
C++にすらないoperator switch caseでも欲しいのかな
46デフォルトの名無しさん (スッププ Sd62-jKaU)
2022/08/17(水) 16:34:24.35ID:mlh+/a6xd
またも抽象化し過ぎの質問…
switchが上手くはまらなかったらelse if地獄でいいんだよ
47はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 813e-5Ix7)
2022/08/17(水) 18:48:10.50ID:ito9w61P0
>>44
具体的に何が不満なの?
48デフォルトの名無しさん (ワッチョイ 4263-5Ix7)
2022/08/17(水) 19:06:06.04ID:cXiq2BCR0
スキルを磨く以外に、王道はありません
49デフォルトの名無しさん (スッップ Sd62-jKaU)
2022/08/17(水) 19:37:59.93ID:GqH3uV+md
具体的にどうポンコツなのかわからんけど
例えばaが1だったら処理1、2だったら処理2、3-15だったら処理3、16なら処理4
それ以外は処理default

if( a == 1 ){
  処理1
}else if( a == 2 ){
  処理2
}else if( a <= 15 ){
  処理3
}else if( a == 16 ){
  処理4
}else{
  処理default
}

こんなんで充分だよ
50デフォルトの名無しさん (ワッチョイ 9202-Khd/)
2022/08/17(水) 21:42:31.43ID:ZlUvKbke0
流れを綺麗にしたいなら
enumやマクロでシンボリックな定数を定義、ロジックはビット演算に埋め込め
51デフォルトの名無しさん (US 0H11-U0U7)
2022/08/17(水) 22:05:39.48ID:ISeM0IbeH
>>42
volatile で保証された気分になっている方が問題、ちゃんと pthread を使えよ
52はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 813e-5Ix7)
2022/08/17(水) 22:10:35.67ID:ito9w61P0
割り込みは並行 (または並列) とは違うので pthread ほどの保証は過剰だと思う。
53デフォルトの名無しさん (ワッチョイ 8101-mhOm)
2022/08/17(水) 22:19:02.41ID:vZEBwtyc0
フォールスルーしないなら if else if else if .... って重ねてってもたいして変わらんしね
54デフォルトの名無しさん (ワッチョイ 9202-Khd/)
2022/08/17(水) 22:23:36.57ID:ZlUvKbke0
パーサとか書くなら抽象化のコストに見合うけど、もしそれほど複雑でないなら
caseラベルは各分枝に付き一つにしてしまい、分類は外部委託してしまうが楽
switch(var)→switch(CLASSFY(var))
case 'A': actionA;...

パターン: アクション

の並びに落とし込むのが難しいなら、多分switchを使うべき問題ではない
55デフォルトの名無しさん (ワッチョイ 4263-5Ix7)
2022/08/17(水) 22:32:08.07ID:cXiq2BCR0
swich case は条件に応じて分岐するジャンプテーブルなのでどの条件に対しても同じ重さ
if else if は書かれた順に評価し、実行するので、起こりそうな条件を前に持ってくると効率化できる、かも
56デフォルトの名無しさん (テテンテンテン MM26-6e26)
2022/08/17(水) 23:03:29.34ID:YK1jCeWgM
>>55
switchも連続比較する事が基本で、caseラベルの値の最小値と最大値が一定の範囲内だったら最適化でジャンプテーブルになるかもってだけでしょ
絶体にテーブルジャンプさせたければ、自前でやるしかない
57はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 813e-5Ix7)
2022/08/17(水) 23:06:32.99ID:ito9w61P0
リッチな処理系なら switch も常にただのテーブルということはない。 状況に応じて最適化は入る。
ただ、頻出する分岐がどれなのか予測してくれるほど十分に賢くは無いので
条件があり得る頻度によってチューニングが必要なら if に置き換えるしかしょうがないな。

GCC だとプロファイルを取ってその成果をもとに最適化することも出来る。
頻出する条件を __builtin_expect で指定するとその分岐を優先的に検査する (ようなコードを生成する) という便利機能もある。
手作業で微調整するのは不毛な感じがするから使えるものならコンパイラの賢い機能に頼るのもアリだと思う。
(試したことがないから細かいことは知らない。 たいした効果は無いかもしれない。)
58デフォルトの名無しさん (ワッチョイ 4201-8lLW)
2022/08/18(木) 04:30:48.90ID:X/mZUHYK0
まあ確かに>>49
switch(a){
case 1:
 処理1; break;
case 2:
 処理2; break;
case 3..15:
 処理3; break;
case 16:
 処理4; break;
default:
 処理default
}
みたいに書ければなぁって思わなくもない
59デフォルトの名無しさん (ワッチョイ 7133-VZNF)
2022/08/18(木) 11:21:05.54ID:ZfnRi5ov0
>>58
GCCの拡張だけどあるよ
Clangでも使える
https://wandbox.org/permlink/XQ2uCo7afhhQRyzH
60デフォルトの名無しさん (スップ Sd62-arFQ)
2022/08/18(木) 11:23:58.91ID:C4YsUD/kd
たまーに、いちいちbreak文を書かなきゃいけないのがダルいなって思うことはあるな
ちょっと自分が作業中断すべきときかなって
61デフォルトの名無しさん (スフッ Sd62-Khd/)
2022/08/18(木) 11:41:19.30ID:DF4FCk1vd
>>59
コンパイル時定数なら利益なくね?
case:3 case:4...case:15に展開するRANGE(3, 15)マクロで十分
62デフォルトの名無しさん (アウアウウー Saa5-8lLW)
2022/08/18(木) 11:44:02.06ID:u9P7LJR3a
>>59
なるほどさすが GCC やね、標準に取り込んで欲しいわ
63デフォルトの名無しさん (スフッ Sd62-Khd/)
2022/08/18(木) 11:49:28.51ID:DF4FCk1vd
caseラベルの値を数値(範囲)として扱うという発想が無かった
もう素直に比較しろよ
64デフォルトの名無しさん (アウアウウー Saa5-oUG4)
2022/08/18(木) 11:52:35.74ID:p/limWqpa
Ruby厨登場
65デフォルトの名無しさん (ワッチョイ 0297-8lLW)
2022/08/18(木) 13:33:09.96ID:FzMciMIo0
caseは単なるラベル
66デフォルトの名無しさん (テテンテンテン MM26-6e26)
2022/08/18(木) 14:47:46.14ID:4UGfKreUM
for文の中でswitch使うと、forを抜けるbreakを書けないのがクソ
気付かず使うとデバッグ困難なバグになる落とし穴
switchをifにするか、forの外にgotoで飛ばすしかない
switch文はC言語最大の設計ミス
67デフォルトの名無しさん (スップ Sd62-arFQ)
2022/08/18(木) 15:55:41.52ID:C4YsUD/kd
gotoは悪って前提だな
gotoレス原理主義者?
68デフォルトの名無しさん (ワッチョイ 4201-8lLW)
2022/08/18(木) 15:58:47.22ID:X/mZUHYK0
そもそも多重ループからの脱出もできないし、ややこしい奴は素直にgoto使えってことだろ
69デフォルトの名無しさん (スップ Sd62-jKaU)
2022/08/18(木) 20:24:47.46ID:+rK0/pUYd
switchからの脱出がbreakなのがおかしい
70デフォルトの名無しさん (US 0H11-U0U7)
2022/08/18(木) 20:48:40.52ID:SQwD8GPSH
>>69
for からの脱出が break
while/do while からの脱出が break

で、あれば、

switch からの脱出も break であっても不適当とはいえないのではないですか?
71デフォルトの名無しさん (ワッチョイ 06ad-Lyl8)
2022/08/18(木) 23:03:17.54ID:1nHnTkCL0
行儀良くまじめなんてできやしなかった
夜の校舎窓ガラス壊してまわった
逆らい続けあがき続けた早く自由になりたかった

ひとつだけわかっていたこと
この支配からの~break♪
72デフォルトの名無しさん (テテンテンテン MM26-6e26)
2022/08/18(木) 23:06:15.16ID:4f/YBTxPM
Javaのswitch式を逆輸入して欲しい
評判が良いのかどうか分からんけど
73デフォルトの名無しさん (アウアウウー Saa5-oUG4)
2022/08/19(金) 00:43:51.91ID:Djh9jYCCa
endfor とか endwhile とか endcase とか悪夢でしかない
74デフォルトの名無しさん (スップ Sd62-jKaU)
2022/08/19(金) 01:50:19.99ID:FEOcjYNtd
>>70
switchはループ制御文ではないのになんでwhileやforと同じなのか
75デフォルトの名無しさん (ワッチョイ c202-mhOm)
2022/08/19(金) 05:12:37.71ID:2Y60evoq0
break は今いるブロック (波括弧といてもいい) から一つ外のブロックに出る
という意味を持つ
76はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 813e-5Ix7)
2022/08/19(金) 09:19:24.91ID:FT/EuRcZ0
>>75
そんなわけないだろ。
77デフォルトの名無しさん (スップ Sd62-jKaU)
2022/08/19(金) 10:12:45.49ID:FEOcjYNtd
それならif文からも脱出できるはずだができない
あくまでswitchが特例でループ文扱いされてるので脱出できる
78はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 813e-5Ix7)
2022/08/19(金) 10:34:49.15ID:FT/EuRcZ0
switch やループ構文はブロックとは独立した構文で、
これらを使うときにブロックを作らないことも出来るし、
逆に関係ないところでブロックを作ることも出来るので
break をブロックと対応付けさせると変なことになるんだよな。

たとえば以下のコードでの break は実際には switch を抜けるだけなので printf は実行されるが、
ブロックを抜けるほうが自然だと思うか?

#include <stdio.h>

int main(void) {
{
switch(1) case 1: break;
printf("hello\n");
}
}
79デフォルトの名無しさん (スップ Sd62-jKaU)
2022/08/19(金) 12:00:39.57ID:FEOcjYNtd
そんな極端な例でなくても…

case 1:
if( x < 4 ){
………
break;
}
………
break;

普通によく書くと思うが
このif文の中のbreakでもちゃんと一番内側のswitch文の外に飛んでいく

switch(k){

case 1:
{
int tmp_x; //この中だけで使う一時変数
………
break;
}
case 2:
………
}

こんな書き方でも(あまりよくないけど)ブロックは無視してswitch文の外に飛んでいく
80デフォルトの名無しさん (アウアウウー Saa5-oUG4)
2022/08/19(金) 18:10:20.82ID:opjWCie4a
for の中の if の中の break で単に if から脱出されても
おまえなにしとんねん
開いた口が塞がらない状態になる罠
81デフォルトの名無しさん (アウアウウー Saa5-oUG4)
2022/08/19(金) 18:16:48.08ID:opjWCie4a
do{
やりたいこと
}while(0);
っていう構造に変換するマクロは良く使われるが
switch(0) default: {
やりたいこと
}
なんかもアリなんだな
82デフォルトの名無しさん (テテンテンテン MM4f-lfty)
2022/08/20(土) 00:31:59.15ID:YrrCECg9M
>>81
switchの方は初めて見た!
知らずに見たらちょっと考えちゃうよw
83デフォルトの名無しさん (ワッチョイ 7f97-cac/)
2022/08/20(土) 13:41:46.51ID:DoG0cN1P0
考えるな
感じるんだ
84デフォルトの名無しさん (スップ Sd9f-q789)
2022/08/20(土) 13:47:51.88ID:zH67Kdp1d
俺は()で囲むな
85デフォルトの名無しさん (ワッチョイ ffad-4Erx)
2022/08/21(日) 07:14:13.14ID:sPdtHxRX0
エロい人「割り込みの中で関数呼ぶな
なぜ??
86デフォルトの名無しさん (スッップ Sd9f-q789)
2022/08/21(日) 07:26:44.64ID:calK6kMNd
バカな会社で働いてるから
87デフォルトの名無しさん (ワッチョイ 7f01-cac/)
2022/08/21(日) 07:46:27.87ID:3JIuIXQv0
>>85
環境によるけど割り込みに専用のスタック使ってるシステムとかだとそのスタックサイズはそれほど大きくなかったりするからかもね
てかそのエロい人に聞けよ
88デフォルトの名無しさん (スップ Sd9f-I18W)
2022/08/21(日) 08:14:56.03ID:lk6Yo6Bld
再入可能でない関数ならわかるな
89デフォルトの名無しさん (アウアウウー Sa63-dbST)
2022/08/21(日) 09:42:18.04ID:j3ukytx2a
stack8段しか無いcpuか
90デフォルトの名無しさん (スッップ Sd9f-q789)
2022/08/21(日) 10:25:51.63ID:calK6kMNd
割込はなるべく速く返さないといけないので
関数呼び出しのオーバーヘッドを嫌うというのもある
91デフォルトの名無しさん (スップ Sd9f-I18W)
2022/08/21(日) 16:28:21.98ID:lk6Yo6Bld
だとすると>>86でFAだな
92デフォルトの名無しさん (ワッチョイ ffad-4Erx)
2022/08/22(月) 09:18:01.26ID:rymTPk3V0
微妙なタイミング調整の_nop()マクロをオプティマイザが勝手に除去するのだがwwwwwwwwww
どうすりゃいいのよ
93デフォルトの名無しさん (ワッチョイ 7f01-cac/)
2022/08/22(月) 09:32:56.89ID:AaGiqQjO0
>>92
インラインアセンブラ
そもそも今時命令実行タイミングに依存する構成にするなよ...
94デフォルトの名無しさん (スップ Sd9f-I18W)
2022/08/22(月) 10:11:25.02ID:xRj4VImad
Z80や6800でそんなことしてたけど
今時のCPUはnopでさえ速度が変動するからな
95はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9f3e-tEjH)
2022/08/22(月) 10:15:31.51ID:/BwQkwng0
インラインアセンブラも最適化の対象になることがある。
現代的な開発環境なら intrinsic 関数が提供されてないか?
96デフォルトの名無しさん (ワッチョイ 7f69-dbST)
2022/08/22(月) 11:43:22.34ID:sosiPY3F0
最適化するなよw
そういうのを消すための最適化だろw
97デフォルトの名無しさん (アウアウウー Sa63-dbST)
2022/08/22(月) 13:53:48.03ID:KX6mg0Ola
最適化したら >>96 が消えました
98デフォルトの名無しさん (ワッチョイ 9f10-tEjH)
2022/08/25(木) 11:33:41.80ID:sT5+wQDE0
インライン記述じゃなく別個にアセンブラソースファイルに書いてアセンブルしろってことだな。
99デフォルトの名無しさん (ワッチョイ 7f63-tEjH)
2022/08/25(木) 11:49:07.60ID:iqB4j8J+0
スカイネット 「環境の最適化のため、人類を消去しました」
100デフォルトの名無しさん (ワッチョイ 9f10-tEjH)
2022/08/25(木) 13:23:55.27ID:sT5+wQDE0
環境の最適化のためにスカイネット自身の消去が最適だとなったら実行するのかね。
101デフォルトの名無しさん (ワッチョイ ff10-U1XH)
2022/08/25(木) 16:20:32.32ID:WIrE9pd90
組み込みでは下みたいに使った
__asm__ __volatile__()
102デフォルトの名無しさん (スップ Sd1f-q789)
2022/08/25(木) 20:06:49.61ID:PyYJPp//d
>>99
スカイネット「あれっ、誰に報告してんだろ…私ったら(テヘ)
103デフォルトの名無しさん (スップ Sd1f-I18W)
2022/08/26(金) 06:44:51.10ID:DLmHAhGrd
>>100
i cannot self-terminate.て言ってたね
104デフォルトの名無しさん (アウアウエー Sa1f-HH83)
2022/09/04(日) 05:09:23.47ID:wx4H3U1ta
Learn C Programming with Dr. Chuck (feat. classic book by Kernighan and Ritchie)
freeCodeCamp.org
チャンネル登録者数 619万
105デフォルトの名無しさん (アウアウウー Sa8b-Ro21)
2022/09/04(日) 10:23:39.44ID:RQxkFcRFa
>>104
1本で9時間超えてるのかすげー
106デフォルトの名無しさん (ワッチョイ c710-bBdM)
2022/09/04(日) 19:10:32.17ID:Rodv+P070
C言語のサンプルコードで関数内で関数プロトタイプ宣言するコードに出くわしました。
コンパイル通らないだろうと思って、clangで下記のような関数内に関数プロトタイプ宣言する
コードをコンパイルするとエラーなく通りました。

C言語において関数内でプロトタイプ宣言をする利点というか理由というのはどういうものがあるのでしょうか。

#include<stdio.h>

void hello(void)
{
printf("%s\n","hello world");
}
int main(void)
{
void hello(void);
hello();
return 0;
}
107デフォルトの名無しさん (ワッチョイ 0701-+tyw)
2022/09/04(日) 21:54:56.70ID:moKhjs2Z0
>>106
私見だけど、その関数内でのみ呼び出すことを強調しているのかもしれない。

あと余計なこと。お遊びのネタ。本番で使うなキケン。
GCC拡張には関数の中で関数を定義できる機能がある。clangはこの先もおそらくサポートしない。
詳細が気になるなら gcc trampoline nested function で調べてね。
108デフォルトの名無しさん (ワッチョイ 7f46-pv+c)
2022/09/04(日) 22:27:57.67ID:KVirSSMD0
main内の void hello(void); てプロトタイプ宣言(?)意味あんの?
109デフォルトの名無しさん (ワッチョイ c710-bBdM)
2022/09/05(月) 01:27:33.63ID:TNrcEOZR0
具体的に言うと、ここの
『UMLの状態遷移図をC言語のStateパターンで実装&単体テストしてみる』というタイトルのブログの

void init_last_substate(FSM *fsm);
関数のプロトタイプ宣言です。State.c内でプロトタイプ宣言すればいいのに
なぜかState.c内のState_init関数内でプロトタイプ宣言しているのはなんでかなと。
実装自体はSubState.c内で定義されているのでState.c内で使うのであれば
プロトタイプ宣言が必要であることはわかるんですが、なんで関数内でプロトタイプ
宣言しているのかなと。
110はちみつ餃子 ◆8X2XSCHEME (ワッチョイ c73e-Iguz)
2022/09/05(月) 01:31:45.75ID:QNR7HRCU0
>>106
言語仕様にもある有効な文法だけれど、それほど使われることはない。
宣言はそのスコープで有効になるから直接的な理由としては >>107 が述べている通り限られた範囲での使用を想定しているということだと思う。
範囲を限りたいのが何故かなのかというのはプログラム全体の構成によるので全体を見ないと意図を推し量ることは出来ない。

なので正確な事情はわからないけども、あえて一例として私がそういう書き方をするとしたらという前提で空想すると
 ・ あまり色々なところで呼ばれたくない関数がある
 ・ しかし呼び出し箇所は他の翻訳単位にあるので内部リンケージにすることも出来ない
というようなときにはヘッダにもファイルスコープにも宣言を書きたくないと思うことはあるかもしれない。
111デフォルトの名無しさん (ワッチョイ c710-bBdM)
2022/09/05(月) 01:40:28.48ID:TNrcEOZR0
>>110
確かにそのコードはstatic宣言を各所に織り交ぜており、他ファイルからは関数が
呼び出せないようにしてありました。公開する関数は最小限にという感じ。

関数内でも関数のプロトタイプ宣言できるというのも、C言語の中では単なる変数宣言
double p;
と同じ扱いみたいに考えればいいのかもしれないと思いました。
typedef で関数型定義できますが、それと同じような扱いということです。

とりあえず納得しました。ありがとうございます。
112デフォルトの名無しさん (ワッチョイ 47c2-XKc1)
2022/09/05(月) 04:58:10.54ID:YC0Agv6v0
>>106
理由は昔のいわゆるK%R Cの名残だ

main(argc, argv)
char **argv;
{
extern printf(), exit();
auto i 0;
for ( ; i < argc; i =+ 1)
printf("%s\n", argv[i]);
exit(0);
}
113デフォルトの名無しさん (ワッチョイ 47c2-XKc1)
2022/09/05(月) 04:59:26.44ID:YC0Agv6v0
今そんなことをする必要は皆無

関数の実体がグローバルなのに
宣言がローカルなのは合理性を欠くだけ
114デフォルトの名無しさん (ワッチョイ 27bb-Iguz)
2022/09/05(月) 05:43:33.44ID:H4wLhjVj0
staticじゃなけりゃどこからでも呼べるからな
115はちみつ餃子 ◆8X2XSCHEME (ワッチョイ c73e-Iguz)
2022/09/05(月) 11:16:15.22ID:QNR7HRCU0
そこらへんはプログラム的な都合だけでなく読む人に対しての意思表示という場合もあるから必要性だけで解釈することは出来ないよ。
今から書くプログラムではやめといたほうが良いが、この場合は今、目の前に実際にそう書かれているものがあるという話だから……。
116デフォルトの名無しさん (ワッチョイ 5f97-MdAs)
2022/09/05(月) 12:45:24.21ID:NIl1ZTkW0
何か古い記述方法だった気がする
117デフォルトの名無しさん (ワッチョイ 675f-aOQU)
2022/09/05(月) 17:10:39.70ID:BqjHubPk0
何十年も前の機種依存C言語かもな
118デフォルトの名無しさん (ワッチョイ c701-9TNW)
2022/09/05(月) 21:43:16.79ID:WAs1jsMo0
古い表記を引っ張ってきたのか
意思表示としてそう記述した(可能性が高い)のか
全て俯瞰してみないとい結論は出ないだろうが
そうできたところで、自分が使うことはないだろうといった代物
119デフォルトの名無しさん (ワッチョイ 5fad-XKc1)
2022/09/05(月) 22:13:22.67ID:hTc6qxUq0
うむ。ないなあ。
120デフォルトの名無しさん (アウアウウー Sa8b-Ro21)
2022/09/06(火) 09:31:54.11ID:9WMtC8ULa
namespace ってイマドキの C にあるの?
121デフォルトの名無しさん (ワッチョイ 47c2-XKc1)
2022/09/06(火) 10:01:27.84ID:8iFyZ+3k0
ない
122デフォルトの名無しさん (ワッチョイ c7e6-KcK1)
2022/09/06(火) 20:11:23.99ID:OXwnsseu0
今度の規格には static_assert は入るのでしょうか?
123はちみつ餃子 ◆8X2XSCHEME (ワッチョイ c73e-Iguz)
2022/09/06(火) 20:15:43.73ID:TAdoM7Dg0
>>122
C23 に static_assert は入る。
C11 から _Static_assert が有ったけどこれも Alternative Spelling として残る。
124デフォルトの名無しさん (ワッチョイ c710-CzlZ)
2022/09/07(水) 01:40:32.73ID:nFqp2Ghc0
構造体の一括初期化の仕組みがよくわかりません。
#include<stdio.h>
enum Flag { First = 1, Second = 2, Third = 3, Finish = 4 };
typedef struct _FSM {
size_t eof;
size_t bytes;
size_t flags;
} FSM;
static FSM initState = { 0, 0, First};

void FSM_init(FSM *self) {
self = &initState;
}

int main(void) {
FSM fsm;
FSM_init(&fsm);
printf("%zu", fsm.flags);
return 0;
}
とFSM_initでFSM構造体のメンバの初期化を行おうとしたのですが、fsm.flagsにはゴミの値が入ってしまいます。
&self = initState;ではなく一つ一つ所属物を初期化すればちゃんと初期化できるのですが、
できればこの一括で初期化する方法のどこがまずいのか教えてほしいです。
125デフォルトの名無しさん (ワッチョイ c710-CzlZ)
2022/09/07(水) 01:42:03.54ID:nFqp2Ghc0
肝は
static FSM initState = { 0, 0, First};
でここの初期化がまずいみたいですがよくわかりません。
126デフォルトの名無しさん (ワッチョイ 7f46-6esP)
2022/09/07(水) 01:45:22.24ID:n6FjKa3l0
*self = initState;
127デフォルトの名無しさん (ワッチョイ c710-CzlZ)
2022/09/07(水) 02:03:29.87ID:nFqp2Ghc0
>>126
うまくいきましたが、すいません。
*self=initState;

self = &initState;
の違いがわかりません。
ポインタに対してなんでアドレスを渡す形だとまずいことが理解できません。
128デフォルトの名無しさん (スップ Sd7f-8uVF)
2022/09/07(水) 02:27:51.81ID:FvUlSDCrd
>>127
>self = &initState;
selfはアドレスをコピーした仮引数
129デフォルトの名無しさん (ワッチョイ 27bb-Iguz)
2022/09/07(水) 03:14:26.39ID:7wpEGaL10
*selfはselfの実体の参照
&initStateはアドレスの参照
130デフォルトの名無しさん (ワッチョイ 47c2-XKc1)
2022/09/07(水) 07:32:36.16ID:UR0dF6Y90
>>127
self = &initState;
これはポインタ変数selfにinitStateのアドレスを代入するが
このままFSM_init関数から戻っているので、代入結果が即座に破棄され
何もしていないに等しい

*self = initState;
これはポインタ変数selfが指し示す先つまり構造体変数fsmに
構造体変数initStateの内容を転記する
FSM_init関数から戻ってもmainの変数fsmは残っているので
後続のprintf関数の実行結果に反映される
131デフォルトの名無しさん (ワッチョイ e769-9TNW)
2022/09/07(水) 09:54:43.70ID:S6Oj2ikO0
void func(int a) { a = 10; }

int b = 50;
func(a);

とやっても a は 10 にならず a は 50 のまま
関数引数の型のままの書き戻しは 呼び出し元に反映されない
これを int → int * に読み替えた場合が質問のケース
132デフォルトの名無しさん (ワッチョイ e769-9TNW)
2022/09/07(水) 10:01:21.59ID:S6Oj2ikO0
訂正
 int b = 50;
 func(b);
 とやっても b は 10 にならず b は 50 のまま
133デフォルトの名無しさん (ワッチョイ e769-9TNW)
2022/09/07(水) 10:16:34.68ID:S6Oj2ikO0
・ポインタを渡して関数内ではその指し先を利用して内容を書き換える (scanf みたいな感じ)
・戻り値で内容をどかっと戻す (=呼び出し元で代入してね)

Cの文法ではこの2パターン
134ハノン ◆QZaw55cn4c (US 0Hff-KcK1)
2022/09/07(水) 20:35:02.84ID:DxyXj8J8H
>>127
参照 & は「ポインタで書くやりかた」の見せ方を変えただけ、と考えるのがいい
すなわち、ポインタを使った書き方に習熟しないかぎり、参照の意味はわからない
参照をポインタから切り離して理解するのは不可能

参照がわからなければ、まず、ポインタを使った書き方ばかりで書きまくり、ポインタなら自信がある、くらいになるのがいい
参照はポインタを理解してからはじめて使い始めるべきもの
135デフォルトの名無しさん (ワッチョイ c710-CzlZ)
2022/09/07(水) 21:11:00.47ID:nFqp2Ghc0
>>134
いやさすがにそこはわかるんで・・・。

ポインタ変数を格納している仮引数に新しいアドレス値を代入しても
関数から出たら破棄されるので意味ないってことやね。
ポインタ変数宣言してたんで勝手に実体参照されるものかと思ってた。

当初fsm構造体のメンバにstateという構造体の変数をおいてそれを初期化していたので、
fsm->state = &initState;
だとうまくいくのになんでだろうと思って聞いた。
この場合、fsm->stateで実体参照しているわけやね。
136デフォルトの名無しさん (ワッチョイ c710-CzlZ)
2022/09/07(水) 22:08:19.73ID:nFqp2Ghc0
FILE *fp;
errno_t err;
err = fopen_s(&fp, "file.txt", "rb");
でfopen_s関数の場合、第一引数はFILE構造体のポインタのアドレス参照したものを
渡さないといけないですが、これなんでポインタじゃまずいんですか。
137デフォルトの名無しさん (ワッチョイ e710-q8Yd)
2022/09/07(水) 22:22:19.78ID:gjYyI5to0
ポインタに入ってる数値を書き換えるからそうじゃなきゃ変えられないでしょ
fopenの中でメモリ確保しててそのポインタの数値を確保したアドレスに書き換えてるの
138ハノン ◆QZaw55cn4c (US 0Hff-KcK1)
2022/09/07(水) 22:26:00.67ID:9LeLCbkKH
もっとも、私は pascal から入ったから、ポインタなくして参照を理解していた人なのではありますが‥‥うーむ
139デフォルトの名無しさん (ワッチョイ e710-q8Yd)
2022/09/07(水) 22:31:50.29ID:gjYyI5to0
ポインタのアドレス取ったときとかポインタのポインタでごちゃごちゃになる人は
とりあえずポインタは整数を保存してるだけって考えればいいよ
整数を関数内で書き換えるためにはそれをポインタ渡しする必要があるので参照演算子つけて渡すの
140デフォルトの名無しさん (ワッチョイ c710-CzlZ)
2022/09/07(水) 23:04:25.54ID:nFqp2Ghc0
>>137
なるほど。
FILE *fp の中身が0というアドレスで、
fopen_sの中で例えば123456というアドレスに変更したいんだったらポインタ自体渡しても
変更できないことですね。*つけてポインタにならないと変更できないと。
141デフォルトの名無しさん (テテンテンテン MM8f-F4W3)
2022/09/07(水) 23:32:06.28ID:zeO2o007M
int hoge(int *a) { *a = 1; }
int hoge(int &a) { a = 1; }
これが全く同じアセンブリ言語にコンパイルされるのを見て、参照を理解した
142デフォルトの名無しさん (ワッチョイ c710-CzlZ)
2022/09/07(水) 23:35:11.50ID:nFqp2Ghc0
>>141
int hoge(int &a) { a = 1; }
関数定義でアドレス演算子使えるんですか?
143デフォルトの名無しさん (ワッチョイ c710-CzlZ)
2022/09/07(水) 23:39:24.34ID:nFqp2Ghc0
何回も質問しているものです。
base64エンコーディングのプログラムを作っていました。
エンコード部分は作れた、と思ったのですが、certutil -f -encode の結果と
突き合わせると後半合いません。
1行目もなぜか幅が合いません。
状態マシンを初めて作って実装したのでどこが問題かわからないのでだれか見ていただけませんか。

https://ideone.com/rPlXWX
144はちみつ餃子 ◆8X2XSCHEME (ワッチョイ c73e-Iguz)
2022/09/07(水) 23:39:37.84ID:51dNe1to0
>>142
それは C++ の機能の話ね。
機械語にされたときの実体としては参照はポインタと同じことをしている。
145デフォルトの名無しさん (ワッチョイ c710-CzlZ)
2022/09/07(水) 23:41:02.70ID:nFqp2Ghc0
最初の付近はうまくエンコードされているんですが、途中でごみの値が入ってくる
ようでずれてきます。どこにゴミが入っているのかわかりません。
146デフォルトの名無しさん (ワッチョイ 87b3-Am0N)
2022/09/08(木) 00:50:34.87ID:0dKPxAYF0
tmpfile()で作られる作業ファイルはどこに作られますか?
/tmpですか?
なんかそれらしきファイル無いんですが

OS:Linux Mint
147はちみつ餃子 ◆8X2XSCHEME (ワッチョイ c73e-Iguz)
2022/09/08(木) 01:00:19.58ID:MG9wnc1h0
>>146
glibc だと P_tmpdir が使われた上で失敗したら /tmp に作る。
musl だと /tmp に決め打ち。
作ったファイルはクローズするかプロセスが終了したら削除される。
148143 (ワッチョイ c710-CzlZ)
2022/09/08(木) 02:30:52.24ID:MgWIrRAL0
コードの構造が自分でもわかり難かったので、フルスクラッチで書き直しました。
https://ideone.com/ddQPJy

でも相変わらずどこかにゴミデータが入り込んでいるようです。
C言語特有の問題に由来していると思うのですが。。
149デフォルトの名無しさん (テテンテンテン MM8f-F4W3)
2022/09/08(木) 02:56:32.93ID:m+If4M0FM
>>148
上から下までスクロールしたら一瞬で分かったw
150デフォルトの名無しさん (ワッチョイ 87b3-Am0N)
2022/09/08(木) 08:55:08.15ID:0dKPxAYF0
>>147
サンクス
読み書きは出来るので作業ファイルは作られているんだろうけど・・・
getchar()でプロセスが終了しないようにしててもP_tmpdirの場所(/tmp)に作業ファイルは作られてないわ

なんかモヤモヤするな
151はちみつ餃子 ◆8X2XSCHEME (ワッチョイ c73e-Iguz)
2022/09/08(木) 09:15:06.66ID:MG9wnc1h0
>>150
3.11 以降の Linux カーネル、かつファイルシステムのサポートがあれば名前のないファイルを作るということらしい。
他のプロセスからは観測することが出来ない。
152デフォルトの名無しさん (アウアウウー Sa8b-Ro21)
2022/09/08(木) 09:25:12.09ID:JEMfdspaa
>>143
3の倍数と4の倍数でずれるから
穴埋め方法の仕様嫁
153デフォルトの名無しさん (ワッチョイ e769-9TNW)
2022/09/08(木) 09:54:46.94ID:NWgtv/6U0
8bit目が立ってるデータだと char を size_t にキャストするとよろしくない可能性
あと末尾のパディング処理

最新は rfc4648 か
154デフォルトの名無しさん (ワッチョイ 5f01-yqJ9)
2022/09/08(木) 10:12:47.05ID:dSUuwrfW0
>>148
わざわざenum定義してるのに使うための変数をsize_tで宣言するとか意味わからんw
155デフォルトの名無しさん (ワッチョイ 5f01-yqJ9)
2022/09/08(木) 10:22:53.70ID:dSUuwrfW0
>>150
作った直後にunlinkすれば他のプロセスからは見えなくなるしプロセスが異常終了したら勝手に削除されるからunixの時代からテンポラリファイルのtipsとして有名だよ
https://sonic
64.com/2004-12-07.html
156はちみつ餃子 ◆8X2XSCHEME (ワッチョイ c73e-Iguz)
2022/09/08(木) 10:30:42.77ID:MG9wnc1h0
>>148
主旨とはずれるが……

下線で始まる識別子はファイルスコープで予約されている。
下線で始まって大文字が続く識別子は常に予約されている。
予約されている識別子についてなんらかの宣言・定義した結果は未定義。
入門用の解説でやってることもよくあるけど真似しちゃ駄目。

構造体タグは使わないなら省略してしまったほうがよいと思う。
157デフォルトの名無しさん (ワッチョイ 87b3-Am0N)
2022/09/08(木) 10:34:35.91ID:0dKPxAYF0
>>150
>>155

ありがとう!すっきりした
158デフォルトの名無しさん (ワッチョイ 87b3-Am0N)
2022/09/08(木) 10:35:11.25ID:0dKPxAYF0
>>150>>151
159デフォルトの名無しさん (テテンテンテン MM8f-F4W3)
2022/09/08(木) 23:34:00.51ID:QimgDhZ1M
>>148
解決したのか知らんけど、freadが必ずBUFSIZE分読み込むとは限らんぞ
なので、直後のforループはnreadまでにしないとゴミを処理してしまう
160デフォルトの名無しさん (ワッチョイ c710-CzlZ)
2022/09/09(金) 00:38:56.32ID:eFldOldK0
>>159
ありがとう。まだ未解決。格闘中。
なんとかそこには気づいたんですが、どうすればeofまでの分読み込ませればいいかわからず、
結局1バイトづつ読み込ませるしかないのかと思ってましたが、nread分読み込ませればいいのか。
ただ、最終行以外もゴミデータが紛れ込んでいるようなのでそこの原因がなんなのか。
161148 (ワッチョイ c710-CzlZ)
2022/09/09(金) 01:45:37.54ID:eFldOldK0
読み込むデータによってゴミデータが入ったり入らなかったりすることがわかった。
すごい厄介なバグだわ。某所から2進数表示する関数パクッて全部表示させてみると
ある特定の箇所でスタックデータが0b11111....に初期化されているみたい。

https://ideone.com/HRogms
読み込みデータはこのプログラム”base64s.c”だとこの現象がでる。
何がまずいのかな。
162148 (ワッチョイ c710-CzlZ)
2022/09/09(金) 01:56:18.41ID:eFldOldK0
わかった。日本語部分が処理できてなかったことが原因だ。

vscodeでWindows、clangでコンパイルしているんだけど、freadで単純に読み込んで
出力すると日本語部分が文字化けしてしまうのはなぜ?
163148 (ワッチョイ c710-CzlZ)
2022/09/09(金) 01:57:45.15ID:eFldOldK0
1バイトで読み込んでるから2バイト文字がうまく読み込めないということかな?
164148 (ワッチョイ c710-CzlZ)
2022/09/09(金) 02:04:19.38ID:eFldOldK0
1バイトづつバイナリデータを読み込みしたかったので、fread(buf,...)の
bufは
char buf[BUFSIZE];
で宣言したのですがここが2バイト文字のバイナリ読み込むときにまずいんでしょうか。

単純に自分自身のコードを読み込んで標準出力に書き込むと文字化けする。
https://ideone.com/GvpcAm

010111....のビット列を単純に書き込んでいるという理解だったのですが、
そういうわけではないんですかね?
165デフォルトの名無しさん (ワッチョイ 7f46-bBdM)
2022/09/09(金) 02:19:22.29ID:V/M3y8c30
>>153が正しい
size_t stack = (size_t)(unsigned char)c;
166デフォルトの名無しさん (ワッチョイ c710-CzlZ)
2022/09/09(金) 02:52:44.78ID:eFldOldK0
>>165
スタックデータが11111・・・に初期化されるという問題は直りました。
charだと11111111の取り扱いまずいんですね。
char 0~255 の値を格納できるという素朴な理解で使ってたんですが、
unsigned char と char ってどう違うのか、ざっと調べたんですけどよくわかんないですね・・・。
167148 (ワッチョイ c710-CzlZ)
2022/09/09(金) 02:53:47.99ID:eFldOldK0
>>153
読み返してみると鮮やかですね。昨日の段階では何のことやら?って感じでしたが。
ありがとうございます。
168デフォルトの名無しさん (ワッチョイ 0701-+tyw)
2022/09/09(金) 03:37:48.54ID:JkEyHRIQ0
>>166
>unsigned char と char ってどう違うのか

unsigned charは符号なしで値域は 0 ~ 255
signed charは符号ありで値域は -128 ~ 127

charは処理系依存でsignedかもしれないしunsignedかもしれない
他の整数型にキャストしたり比較したりする時は特に注意が必要
169デフォルトの名無しさん (ワッチョイ 5f01-yqJ9)
2022/09/09(金) 06:49:36.79ID:Cx7xgzBv0
>>168
char は 8bit とは限らん、というのは置いといて
> charは処理系依存でsignedかもしれないしunsignedかもしれない
charはsigned charやunsigned charとは違う型だよ
https://www.jpcert.or.jp/sc-rules/c-str04-c.html
170デフォルトの名無しさん (ワッチョイ bfad-Am0N)
2022/09/09(金) 10:32:00.65ID:PQbAFFlG0
数値と文字コードの認識の違いはどこらへんに出てくるのでしょうか?
171デフォルトの名無しさん (ワッチョイ c701-tE3/)
2022/09/09(金) 16:58:25.15ID:ZqL3j+SP0
環境依存によるとこが多すぎて、その都度環境に応じて調べるしかない
プログラム全般に言える事
172デフォルトの名無しさん (テテンテンテン MM8f-F4W3)
2022/09/09(金) 20:26:03.68ID:wh55t5+tM
文字はutf-8でも一文字が数バイト必要な事があるので、charはもはや要らない子と言える
バイト列を使いたければuint8_tを使って、ちゃんと文字として扱うなら、wchar_tとかchar32_tを使うべきだろうね
173デフォルトの名無しさん (ラクッペペ MM8f-eA8r)
2022/09/09(金) 20:34:47.77ID:AfgZ2PrAM
なお中国や日本、韓国などに限る
174デフォルトの名無しさん (ワッチョイ 7fbb-Hxh8)
2022/09/09(金) 21:21:58.31ID:CwUslwUl0
wchar_tこそ要らない子やん
お前一体何バイトなんだよ
175デフォルトの名無しさん (ワッチョイ 0701-+tyw)
2022/09/09(金) 23:02:27.43ID:JkEyHRIQ0
>>169
>char は 8bit とは限らん、
うん、その指摘はされると思ってた。
>charはsigned charやunsigned charとは違う型だよ
なるほど、その認識はなかったは。
176デフォルトの名無しさん (ワッチョイ 87ad-8Iqg)
2022/09/09(金) 23:22:11.84ID:qKP12tcq0
自分はvb→C言語→機械語だけど
機械語知らないとダメだよなって思ったわ
大体CPUの仕様と合わせるんだよな
8bitも昔のCPUの慣習出しさ
だからプレステのCPU大好きとかライゼンサイコー、いやいややはりインテルだろう
なんて言う自作オタがやり始めるとかなり速いんだよな
自作PCの構造はCPUの中身に似てるから
177デフォルトの名無しさん (テテンテンテン MM3e-tdss)
2022/09/10(土) 00:37:03.60ID:d6i83HiwM
>>174
Windowsだと2byteでLinuxだと4byteだな
しかしバイト数を気にしてはいけない
気にしなければ可搬性のあるコードを書ける
178148 (ワッチョイ 5d10-V+uT)
2022/09/10(土) 02:16:33.70ID:bSy2C3T30
文字化けのところは手に負えないですが、おかげさまでbase64エンコーディングプログラムが完成しました。
ここで言われたことは全部含めてみました。
構造体のタグ、enum型、charじゃなくてuint8_t、終端処理など。

https://ideone.com/7wolLZ

コードが汚いなど直すところありましたらどしどしご意見ください。
とりあえず、最初に使ってみる言語はbase64エンコーディングプログラムを組んでみて
なれてみようという方針なので。
次はVBAで組んでみるか、sha256プログラムをC言語で組んでみようか考えてます。
179デフォルトの名無しさん (ワッチョイ adc2-+Wio)
2022/09/11(日) 09:33:54.88ID:LP1WepGR0
struct tmって、冗長な設計になってるよね
たとえば tm_mon == 1 && tm_mday == 1 なら tm_yday == 0 のはずだけど tm_yday >= 1 にもなれる
こういう矛盾がある場合の扱いって規格票のどっかに書いてあったっけ?
180デフォルトの名無しさん (ブーイモ MM3e-0gnx)
2022/09/11(日) 14:26:36.00ID:Y1sYJFelM
たとえば規格書のmktimeにはカレンダー時間で表現できなければ-1を返すって書いてあるかそう実装するのが正しそうだけども
181はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7d3e-OdF3)
2022/09/11(日) 14:31:15.93ID:D/VbhUuk0
>>180
tm_yday は無視するとも書いてあるぞ。
182デフォルトの名無しさん (ワッチョイ adc2-+Wio)
2022/09/11(日) 14:32:58.51ID:LP1WepGR0
レス㌧x

カレンダー時間で表現できるか否かということは
tm_year, tm_mon, tm_mdayのことで、tm_ydayには該当しない議論だよね
逆にtm_ydayに合わせるように補正はしないとなると
ここに優先順位があるのかな
183デフォルトの名無しさん (ワッチョイ adc2-+Wio)
2022/09/11(日) 14:34:54.92ID:LP1WepGR0
すまん、ちょっと外出する
夜には戻る
184デフォルトの名無しさん (ブーイモ MM3e-0gnx)
2022/09/11(日) 14:37:22.22ID:Y1sYJFelM
あらほんとだ。戻り値の説明しか見てなかったわ
185デフォルトの名無しさん (ワッチョイ ea01-FaWt)
2022/09/11(日) 15:00:19.15ID:hGIJSvzu0
>>182
そもそもtm_wdayとtm_ydayは更新されるって書いてあるし
関係ないけど
・tm_mday: 1 から 31 の範囲の日付。
・tm_mon: 1 月からの月数 (0 から 11 の範囲)。
なのは毎回もやるわ、なぜ両方0スタートじゃないのか...
186はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7d3e-OdF3)
2022/09/11(日) 15:04:45.97ID:D/VbhUuk0
>>185
月は (英語では) 月の名前に置き換える (配列から名前を引く) という都合から自然にそうなったという説は聞いたことがあるな。
日は番号をそのまま表示するもんだから最初から番号通りのほうが都合がいいし。
187デフォルトの名無しさん (ワッチョイ f116-V+uT)
2022/09/15(木) 17:53:22.84ID:gNCVLuZy0
ローカル変数の宣言で、宣言しようとしているポインタの初期化子に、同じ文で
宣言された変数を参照するのは規格上OKですか?

/* test1.c */
1 | int main(int argc, char **argv)
2 | {
3 | char s[100] = {'A'}, *p = s;
4 | int i = 10, *a[10] = {&i};
5 | return 0;
6 | }

最新の gcc で試したところ、-std=c89 -pedantic の場合に下記の警告が出ます。
特に3行目が OK で、4行目が駄目な理由がよく分からないです。
どちらもスタック上の相対位置はコンパイル時に決まると思うのですが。
Cの文法について詳しい方、教えてください。

gcc --version
gcc (GCC) 12.2.1 20220819 (Red Hat 12.2.1-1)

gcc -O0 -std=c89 -pedantic -Wall -Wextra -Wno-unused-parameter -Wno-unused-variable -c test1.c
test1.c: In function ‘main’:
test1.c:4:27: warning: initializer element is not computable at load time [-Wpedantic]
4 | int i = 10, *a[10] = {&i};
|            ^

gcc -O0 -std=c99 -pedantic -Wall -Wextra -Wno-unused-parameter -Wno-unused-variable -c test1.c
警告なし
188デフォルトの名無しさん (スップ Sdea-MyD4)
2022/09/15(木) 20:06:58.44ID:C6syfEgyd
C99より前は集成体(配列、構造体)に対する初期化子定数式(アドレス定数式)でスタックは認められていないっぽい
3行目の初期化対象は配列じゃないでしょ
189デフォルトの名無しさん (ワッチョイ adc2-+Wio)
2022/09/16(金) 06:50:50.62ID:jyhWPRLZ0
int main(void)
{
int a = a;
}
これもOKなんだが
190デフォルトの名無しさん (スッププ Sd0a-39XR)
2022/09/16(金) 19:26:37.47ID:alBs0lLWd
>>189
スタック上のアドレスを使ってポインタを初期化できるかって話だろ
191デフォルトの名無しさん (スッププ Sd0a-39XR)
2022/09/16(金) 19:31:34.25ID:alBs0lLWd
>>187
{&i}だけだったら初期化は簡単だけど
その書き方だと本来{&i,&グローバル変数,NULL...}などと書けるのでそうなると特殊な初期化が必要になるんじゃないかな
192デフォルトの名無しさん (ワッチョイ 7d01-Mjbb)
2022/09/16(金) 19:59:25.14ID:u2ZYVkG20
一見
スタックに実体をもつ配列の先頭はセーフで (3行目)
スタックに実体をもつ変数のポインタはアウトというふうに見えるけど (4行目)
{ } の中か否かの差もあるんやね
193デフォルトの名無しさん (ワッチョイ 17c2-okD4)
2022/09/17(土) 00:57:57.08ID:GfZyyjDu0
>>190
そんなん言い出したら自動変数をポインタで指せるのかさえ怪しくなってくるな
194デフォルトの名無しさん (スッププ Sdbf-UZdd)
2022/09/17(土) 12:49:57.03ID:fh691Hyrd
スコープ内でアドレスが参照されたならば
自動変数はレジスタ変数にはならなくなる
「自動」の意味
195デフォルトの名無しさん (アウアウウー Sa5b-Di2O)
2022/09/17(土) 19:52:14.52ID:fgoWI+8da
win10(以下win)
strawberry perl入れた時一緒にいれたgcc

wsl
ubuntu22.04 gcc

どっかでみた配列関係のサンプルで
(間違えるとnull見つかるまで一生探し続けるよ的なコード)
で試したら

winで値がおかしい
linuxで正しい

とりあえずwin側でgdbで見ると
winで格納アドレスが逆順になってました
例えばコード上で

array1うんたら
array2かんたら

とあって
array2がアドレス100番台
array がアドレス200番台
みたいになってました
この挙動は環境依存なのかバグなのか知りたいです

まぁ結局両方windowsなんですが
196デフォルトの名無しさん (ワッチョイ ffbb-xFG9)
2022/09/17(土) 19:56:51.12ID:ZRyqS0700
ネットワークオーダーとかエンディアンとかが絡んでる可能性はあるけど、コードを見ないとなんとも
197デフォルトの名無しさん (スッププ Sdbf-UZdd)
2022/09/17(土) 20:03:08.34ID:PxOaZq6Kd
>>195
抽象的すぎて全然わからんw
198デフォルトの名無しさん (アウアウウー Sa5b-Di2O)
2022/09/17(土) 20:04:45.56ID:fgoWI+8da
コードは
https://www.delftstack.com/ja/howto/c/length-of-char-array-in-c/
手入力でミスってたらごめんなさい
199デフォルトの名無しさん (アウアウウー Sa5b-Di2O)
2022/09/17(土) 20:08:18.29ID:fgoWI+8da
因みにこっちのwin環境だと
上サイトで24byteになるはずの所が10byteになります
200デフォルトの名無しさん (ワッチョイ ffbb-xFG9)
2022/09/17(土) 20:22:45.77ID:ZRyqS0700
strlenのことか?
文字列と違ってchar配列の末尾には自動的にnull挿入されたりしないから、nullまで数え上げるstrlenが何を返すかわからないし、環境によってはメモリアクセス違反で落ちるかも
201デフォルトの名無しさん (アウアウウー Sa5b-Di2O)
2022/09/17(土) 20:26:08.77ID:fgoWI+8da
いや多分違います

アドレスが逆

多分ここが重要なんですがその原因が
と言うところです
202デフォルトの名無しさん (ワッチョイ ff46-EKt7)
2022/09/17(土) 20:44:25.86ID:LY5v/fLv0
環境依存です
ゼロで終端されていないものにstrlenを呼んではいけません
そのコードが誤り
203デフォルトの名無しさん (アウアウウー Sa5b-Di2O)
2022/09/17(土) 20:51:16.94ID:I+4Vfslra
うーん
そう言うことじゃなくて・・・
なんでメモリアドレスの格納が逆になるの?
と言うところです
cの規格的な話じゃなくてですね・・・
204デフォルトの名無しさん (ワッチョイ ff46-EKt7)
2022/09/17(土) 20:58:26.77ID:LY5v/fLv0
そのページを作った人の環境(コンパイラとバージョン)ではarr,arr2の順で
あなたの環境ではarr2,arrの順なんでしょ
たまたまそうなっただけです
205デフォルトの名無しさん (アウアウウー Sa5b-Di2O)
2022/09/17(土) 21:10:35.35ID:I+4Vfslra
文系脳で行き着く先っていつもそうなんですよね
でも残念ながら「それ」がないんですよ
この世界

たまたま
なんかわかんないけど
偶然
楽しけりゃいいじゃん

なんで生きてるのお前?

馬鹿は嫌い 回線で首でも吊ってろカスが

ジパング馬鹿しかいないからもう寝る
206デフォルトの名無しさん (スッップ Sdbf-Zv9H)
2022/09/17(土) 21:15:00.75ID:W7nqA9Zmd
オタクくん怒って寝ちゃったw
207デフォルトの名無しさん (アウアウウー Sa5b-zcFf)
2022/09/17(土) 21:44:56.47ID:njcq0eeLa
スタックはアドレス高位から低位の方向に積まれることが多いから、arr2のアドレスがarrのそれより小さくなるとかですかね
208デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/17(土) 21:46:48.25ID:aOSn8JHC0
そういう人を落とし込める記述はやめよう
209デフォルトの名無しさん (ワッチョイ 9f2c-bG2j)
2022/09/17(土) 23:27:39.41ID:eA0eWCp60
スタックの方向などは環境依存だろ

環境依存は他にも、little/big endian とか、
char が、0〜255, -128〜127 のどちらなのかとか

文字コードが、BOM 無しUTF-8 以外とか
210デフォルトの名無しさん (ワッチョイ d7b3-q6Lr)
2022/09/18(日) 01:46:10.06ID:3xNGEVex0
gdbの使い方、ここで質問してもいいですか?
211デフォルトの名無しさん (ワッチョイ 973e-E+l9)
2022/09/18(日) 02:19:18.49ID:OVhdQ/fk0
>>210
大きく言語自体から脱線するようだとあまりよくないかなと思うけど、
ささいなことなら多少は良かろうと思うし、程度次第じゃね。
212デフォルトの名無しさん (US 0H7f-G1yF)
2022/09/18(日) 02:40:43.36ID:3nFqfKLUH
>>209
UTF-8 に BOM は本質的に不要です
なぜならば BOM = Byte Order Mark ですが、UTF にバイトオーダーなど存在しません
BOM なし、と断ること自体、頭が悪い証拠を如実に表出していると愚考させていただきます

馬鹿は死ね
213デフォルトの名無しさん (アウアウエー Sadf-D5P0)
2022/09/18(日) 02:43:34.57ID:Z+lYrLLqa
はじめてのC言語完全入門!【Hello World〜ポインタまで徹底解説】
91,121 回視聴
freeCodeチャンネル
214デフォルトの名無しさん (ワッチョイ 973e-E+l9)
2022/09/18(日) 03:28:52.56ID:OVhdQ/fk0
>>212
BOM はエンコード方式の識別に使われる場合もあると公式 (unicode consortium) の資料に書かれている。
BOM が BOM という名前である以上は本来の用途からの転用ではあるが、
バイトオーダーだけを根拠にして不要と断じるのはエンジニアリング的に良い姿勢ではないな。
215デフォルトの名無しさん (ワッチョイ ff10-Zv9H)
2022/09/18(日) 04:26:41.31ID:GkyrVNWr0
>>212
いい大人がバカとか4ねとか言ってるの見ると悲しくなってくるわ
人付き合いをろくにしてこなかった精神的にガキのおっさん痛すぎる
216デフォルトの名無しさん (スッププ Sdbf-UZdd)
2022/09/18(日) 05:15:19.35ID:fdsnSmbGd
>>205
めちゃくちゃだよアンタw
文系ポエムは他でやんなさい
217デフォルトの名無しさん (スッププ Sdbf-UZdd)
2022/09/18(日) 05:26:48.38ID:fdsnSmbGd
>>205
よく見るとそのページ内容がむちゃくちゃだなw
データが格納される順番はコンパイラ依存なのでそんなサンプルコードは作ってはいけない

「まず、arr のオブジェクトサイズは 24 バイトと表示されますが、」じゃねえよw
「内部の詳細を無視してしまうと恐ろしいエラーが発生する可能性があります。」もう起こっているw

以上
218デフォルトの名無しさん (ワッチョイ 9fad-52V3)
2022/09/18(日) 10:38:22.56ID:kY5VkQwD0
>>198
そもそも上のコード
size = 24 bytes
size = 17 bytes
この2つはどこから出てきたんだ?
printCharArray のあとの printf("size = %lu bytes \n", ... ); はひとつしかないのに

>>195
array1とarray2がそれぞれスタックに積まれるなら array2、array1の順は正しいし
array1とarray2がリテラルとしてコード上に存在するならarray1、array2の順は正しい
ただの最適化の問題じゃないのか
219デフォルトの名無しさん (アウアウウー Sa5b-8eP5)
2022/09/18(日) 13:53:49.44ID:KpBP36NGa
文系は全称と単称の区別が出来ない
大抵の馬鹿はこれで判別出来る
220デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/18(日) 14:04:23.72ID:CIgAfYZs0
そういう表現も、大体根拠が希薄
血液型占いと同程度
221デフォルトの名無しさん (アウアウウー Sa5b-PfD3)
2022/09/18(日) 14:12:29.01ID:Rev08jtKa
>>203
規格では一切順序の保証はないので
同じ結果が欲しければそのぺーじと同じ環境を用意してください
222デフォルトの名無しさん (スッププ Sdbf-UZdd)
2022/09/18(日) 18:22:49.00ID:JcdidFMxd
機械翻訳まるだしだし
Pythonのおまけで載ってるだけだから
そんなページあてにするなとしか
223デフォルトの名無しさん (ワッチョイ 9fad-dwAj)
2022/09/18(日) 18:23:22.20ID:rN2/Bhfe0
>>212
Windowsのメモ帳でUTF-8で保存するとBOMが先頭に入った状態になるよね。
そういう変な出力をするソフトがあるせいでUTF-8なのにBOMの有無を意識しなきゃいけなくなるんだよ。
224デフォルトの名無しさん (ワッチョイ 973e-E+l9)
2022/09/18(日) 19:08:21.37ID:OVhdQ/fk0
>>223
UTF-8 ではない形で保存されている可能性はいつでもあるわけだが……。
225デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/18(日) 19:35:00.75ID:CIgAfYZs0
メモ帳で保存する場合、選択はこの中から

C言語なら俺に聞け 159 ->画像>3枚
226デフォルトの名無しさん (スププ Sdbf-MXZj)
2022/09/18(日) 20:14:09.21ID:tcByEu8Hd
wcharはutf8圧に負けて廃れるんかね
Cのようなロートル言語使ってると固定幅(但し幅は決まっていない)エンコの有り難みをひしひしと感じる
227デフォルトの名無しさん (ワッチョイ 9f01-bNpc)
2022/09/18(日) 21:11:58.46ID:/3elu/X80
ストレージはutf-8
メモリーはwchar_t
じゃね?
228デフォルトの名無しさん (ワッチョイ 9fad-dwAj)
2022/09/18(日) 22:03:00.04ID:rN2/Bhfe0
>>225
それでBOM付き選んじゃうやつが居るんだろうな。選択肢無くして欲しいものだ。
229デフォルトの名無しさん (ワッチョイ 9fad-dwAj)
2022/09/18(日) 22:05:23.89ID:rN2/Bhfe0
>>226
入出力でJavaみたいに変換すれば良いじゃん。
iconvライブラリとか使って。
230デフォルトの名無しさん (ワッチョイ 1f02-MXZj)
2022/09/18(日) 22:23:37.69ID:zhWgY60z0
>>229
ふぇふふ…
231デフォルトの名無しさん (ワッチョイ 9f2c-ret5)
2022/09/18(日) 22:58:27.34ID:JTgtpdd/0
メモ帳は、BOM 付きUTF-8 になるから、ダメ

BOM無しUTF-8は、VSCode, サクラエディタなどを使う。
TeraPad は、新し目の文字に対応していないので、ダメ
232デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/18(日) 23:06:51.28ID:CIgAfYZs0
メモ帳、デフォルトでBOM無しで保存する
BOM付けるにはセレクトで一番下を選ぶ操作が必要
233デフォルトの名無しさん (テテンテンテン MM3f-2Jl6)
2022/09/18(日) 23:10:07.79ID:tcp3M/eWM
UnicodeのBOMはUTF-{8, 16, 32}で並び順が違うから判別に使える
逆に無いと推測に頼るしかない
メモ帳はSJISのテキストを開かれることもあるから、BOM無しUTF-8の場合は推測している
BOMが有れば確実に判別出来る
なのでBOM付きUTF-8は悪くない
234デフォルトの名無しさん (ワッチョイ 5701-dv3E)
2022/09/18(日) 23:10:14.33ID:a87PubfG0
WindowsではBOM付きのほうが便利だけどね。
235デフォルトの名無しさん (ワッチョイ 5701-dv3E)
2022/09/18(日) 23:12:31.63ID:a87PubfG0
gccもBOMに対応したことですし。
236デフォルトの名無しさん (ワッチョイ ffb0-okD4)
2022/09/18(日) 23:23:26.35ID:CUVLEdWC0
UTF-8にBOMが要らないと主張しているのは今の現実について言っているわけじゃなくて
「UTF-8しか存在しない美しい世界」を目指している活動家だからな。
説明したところで話が?み合わない。
237212 (US 0H7f-G1yF)
2022/09/19(月) 00:00:08.46ID:hV59E8S+H
>>236
よくわかっていますね、実はそうなんですよね
238デフォルトの名無しさん (ワッチョイ ffb0-okD4)
2022/09/19(月) 00:15:30.26ID:YVA4ZVOh0
自覚したなら今度からはバイトオーダーにかこつけたアホな主張はやめとけよ。
239ハノン ◆QZaw55cn4c (US 0H7f-G1yF)
2022/09/19(月) 00:18:28.74ID:hV59E8S+H
美しい世界(爆笑)のために、今後も活動を続けていきます!
240デフォルトの名無しさん (ワッチョイ 5701-W3aP)
2022/09/19(月) 02:37:34.04ID:Z9ZARiSG0
ユニコードの上位セットであるGB18030もあるんだけど。
241デフォルトの名無しさん (ワイーワ2 FFdf-8eP5)
2022/09/19(月) 11:10:12.09ID:NE4NRLG3F
>>236
そんなあなたに Nim がおすすめ
242デフォルトの名無しさん (ワイーワ2 FFdf-8eP5)
2022/09/19(月) 11:11:36.70ID:NE4NRLG3F
>>233
ASCII (8bit以内) しかないテキストに BOM 付いてたらさすがにうざいと思う
243ハノン ◆QZaw55cn4c (US 0H7f-G1yF)
2022/09/19(月) 11:21:09.68ID:PpMrjNAJH
>>242
ですよね!
コードは普通コメントも英語で書くし、なんで BOM がつかなきゃならないのか意味不明なんですよ、ましてや UTF-8 に BOM つけてもいい規約なんて後付けなんでしょう?
美しい世界(爆笑)のために今日もがんばります!
244デフォルトの名無しさん (ワッチョイ ffb0-okD4)
2022/09/19(月) 11:40:57.93ID:YVA4ZVOh0
>>241
まさに今、話が噛み合わないことを痛感した。
245デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/19(月) 11:41:54.30ID:zeLiCYh20
なくても使えるなら、ない方が良い
246はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 973e-E+l9)
2022/09/19(月) 11:43:27.96ID:npVSxydm0
どれでもいいけど規格で決めないという対処には愚痴を言いたくもなる。
247デフォルトの名無しさん (テテンテンテン MM3f-2Jl6)
2022/09/19(月) 11:55:32.42ID:M3xsgC0JM
>>242
ウザいの定義を言え
普通にテキストエディタで編集してるだけなら気付きもしないだろう
248デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/19(月) 12:00:13.75ID:zeLiCYh20
気付かなかったあなたはたぶん幸せ者です
249デフォルトの名無しさん (ワッチョイ 9f01-bNpc)
2022/09/19(月) 12:13:35.24ID:b1CdxAyP0
10年前ならともかく今時BOMの有無で困ることなんてほぼなくね?
250デフォルトの名無しさん (ワッチョイ 9fad-dwAj)
2022/09/19(月) 12:30:39.37ID:/08McGz80
BOMなしUTF-8のデータを読ませるとエラーになるプログラムを作ったやつがいる。
こういうやつをどうするべきか?
251デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/19(月) 12:33:02.11ID:zeLiCYh20
市中引き回しのうえ、磔獄門で
252デフォルトの名無しさん (ワッチョイ ffb0-okD4)
2022/09/19(月) 13:00:37.09ID:YVA4ZVOh0
仕様で読めることになっているのにエラーになるならバグだがそうでないなら読ませる方が悪い。
日本語Windows向けアプリの大半はそうだな。
253デフォルトの名無しさん (ワッチョイ 9fad-dwAj)
2022/09/19(月) 13:09:05.53ID:/08McGz80
仕様ではUTF-8と書いてあるだけ。ならばBOMの有無に関係なく読めるようにするべき。
254デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/19(月) 13:13:10.64ID:zeLiCYh20
仕様ではUTF-8と書いてあるなら、あったら読み飛ばせば良いだけだな
255デフォルトの名無しさん (ワッチョイ 9fad-dwAj)
2022/09/19(月) 13:29:40.55ID:/08McGz80
にも関わらずBOMがないとわざわざエラーを出して終わる
256デフォルトの名無しさん (ワッチョイ 9f01-bNpc)
2022/09/19(月) 13:40:15.70ID:b1CdxAyP0
単なるバグだろ、とっとと直させろよ
257デフォルトの名無しさん (ワッチョイ b79f-gM0g)
2022/09/19(月) 14:03:09.97ID:Y3ojWtlT0
> こういうやつ

BOMなしUTF-8のデータそのものを修正したいのか
BOMなしUTF-8のデータを読めるようにプログラムを修正したいのか
プログラムを作ったやつに復讐したいのか

どれだ
258ハノン ◆QZaw55cn4c (US 0H7f-G1yF)
2022/09/19(月) 15:32:18.43ID:PpMrjNAJH
BOM はもともと UTF-16 のためのものでしょう?
それを、UTF-8 に対しても無条件に BOM をつけてしまうウンコエディターを量産している奴等に問題があるんですよ…

また、正直にいって、規格で決めればいいとかいう思考停止にも我慢ならないんですよ
美しい世界(爆笑)のために今日もがんばります!
259デフォルトの名無しさん (ワッチョイ 5701-W3aP)
2022/09/19(月) 15:34:28.84ID:Z9ZARiSG0
HTMLもBOM推奨してなかったっけ。
260デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/19(月) 15:56:49.87ID:zeLiCYh20
HTMLの場合、「BOM」付けると、PHP で謎の空白ができてしまう など動作や表示に不具合が出る可能性があるそうです。
261デフォルトの名無しさん (ワッチョイ 5701-W3aP)
2022/09/19(月) 16:04:04.51ID:Z9ZARiSG0
それは、BOM付けるのがPHPの仕事だからじゃないの?
262デフォルトの名無しさん (ワッチョイ 775f-3ts6)
2022/09/19(月) 16:20:33.07ID:x76VqF340
PHPは中途半端に歴史が古いから、Unicodeといえば、UTF-16なんだよな。

でもそのおかげでWindowsとの相性は悪くない。
263デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/19(月) 16:20:51.69ID:zeLiCYh20
そもそも UTF-8 には、エンディアンの違いがなく、BOM(バイトオーダーマーク)を付ける必要がないんだそうだ
264デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/19(月) 16:22:57.02ID:zeLiCYh20
HTMLの場合はHEADに使っている文字コード情報が入っているのでそれを見れば良い事になる
265デフォルトの名無しさん (ワッチョイ 5701-W3aP)
2022/09/19(月) 16:25:44.76ID:Z9ZARiSG0
>>264
たしか規格でBOMを優先することになってなかったっけ?
266デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/19(月) 16:33:42.03ID:zeLiCYh20
文字列としてバイトオーダーが実際に問われるのは、
UTF-16やUTF-32のケースだけです
その場合は必要ですね
267デフォルトの名無しさん (ワッチョイ 5701-W3aP)
2022/09/19(月) 16:34:41.81ID:Z9ZARiSG0
確認したところ、なってたわ。
HTMLパーサー書いたことがあるから、おぼろげに覚えてた。
268デフォルトの名無しさん (ワッチョイ 5701-W3aP)
2022/09/19(月) 16:46:36.41ID:Z9ZARiSG0
・BOMがある場合、BOMに従う。
・ない場合、500ms、あるいは1024バイト読み込むまで待機し、エンコーディング走査アルゴリズムを呼び出す。

エンコーディング走査アルゴリズム内で、ヘッダー内の情報が読み取られる場合もある。
(このアルゴリズムでも、他に優先される情報がある。)

やはり、HTMLにおいては、BOMをつけるべきだな。
読み込みが速くなるし、文字コードの違いを利用した攻撃を避けることが出来るし。
269デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/19(月) 16:47:54.37ID:zeLiCYh20
HTMLの場合は、HEADに使用するcharsetが記述されてますから心配ありません
270デフォルトの名無しさん (ワッチョイ 5701-W3aP)
2022/09/19(月) 16:48:57.21ID:Z9ZARiSG0
昔の外国映画で「ふにゃちん野郎が!」という悪口があったよね。
今後は「BOM無し野郎が!」と言うことを提案いたします。
271デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/19(月) 16:49:03.30ID:zeLiCYh20
それにUTF-8にはバイトオーダーがありません
272デフォルトの名無しさん (ワッチョイ 5701-W3aP)
2022/09/19(月) 16:50:38.05ID:Z9ZARiSG0
>>269
規格上、BOMのほうが優先される。
BOMがある場合、エンコーディング走査アルゴリズムは呼び出されない。
BOMをつけましょう。
273デフォルトの名無しさん (ワッチョイ 5701-W3aP)
2022/09/19(月) 16:52:03.62ID:Z9ZARiSG0
BOMをつけないとセキュリティ上の問題がある。
274デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/19(月) 16:52:15.94ID:zeLiCYh20
付けたWebサイトをここで公開して下さい
楽しみにしています
275デフォルトの名無しさん (ブーイモ MMcf-xFG9)
2022/09/19(月) 17:25:06.78ID:UNULYZvbM
すべてのUTF-8にBOMがついてたらSJISはもっと早く消えてくれたと思うんだよね
276デフォルトの名無しさん (ワッチョイ 5701-W3aP)
2022/09/19(月) 17:31:57.08ID:Z9ZARiSG0
この話題は、BOMをつけましょうということで、良いのでは?
277ハノン ◆QZaw55cn4c (US 0H7f-G1yF)
2022/09/19(月) 18:02:53.27ID:PpMrjNAJH
>>276
違います
BOM を付けるべき正統な理由がある時には付け、特に理由がなく惰性で付けてるんだったらやめよう、です
278デフォルトの名無しさん (ワッチョイ 5701-W3aP)
2022/09/19(月) 18:05:47.85ID:Z9ZARiSG0
BOMを付けていない人を見かけたら、注意して差し上げましょう。
ということで、良いのでは?
279デフォルトの名無しさん (スプッッ Sd3f-EKt7)
2022/09/19(月) 18:12:09.41ID:iQkZER0Ad
テキストファイルを開いたとき最初の三文字がゴミかどうかいちいち判断するの?
2つのテキストファイルを結合するときゴミをひとつにまとめる処理するの?
BOMという考えが誤りなんだよ
280デフォルトの名無しさん (ワッチョイ 5701-W3aP)
2022/09/19(月) 18:14:42.87ID:Z9ZARiSG0
法令でBOMを義務付けるべきでは?

BOMが無かったら通報するみたいな。
281デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/19(月) 18:15:00.74ID:zeLiCYh20
Windowsの一部アプリでBOMがないと動作不具合起こすんだよ
Officeとか、Officeとか、その辺
この辺への思いやりが必要な時は付けてあげると良い
282デフォルトの名無しさん (US 0H7f-G1yF)
2022/09/19(月) 18:19:47.40ID:BENNO3a0H
>>278
それに加えて BOM を無駄につけている人を見かけたら、注意して差し上げましょう、も追加してください。
283デフォルトの名無しさん (US 0H7f-G1yF)
2022/09/19(月) 18:20:53.56ID:BENNO3a0H
>>280
その法令は間違っていますね

正直いって、規格で決めればいいとかいう思考停止にも我慢ならないんですよ
美しい世界(爆笑)のために今日もがんばります!
284はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 973e-E+l9)
2022/09/19(月) 18:22:38.11ID:npVSxydm0
>>279
ふたつのテキストファイルが Unicode である保証もない。
メタ情報で保証があるなら BOM があっても困らないし、
保証がないなら BOM があろうがなかろうが困る。
285デフォルトの名無しさん (US 0H7f-G1yF)
2022/09/19(月) 18:23:22.11ID:BENNO3a0H
>>281
たしかに office とか office とか office とか office とかに思いやりを示す寛大な処置ということであれば、付けて差し上げることにやぶさかではないのですけれどもね
286デフォルトの名無しさん (ワッチョイ ffb0-okD4)
2022/09/19(月) 18:27:12.50ID:YVA4ZVOh0
>>277
後半に関して言えば、そのテキストがどのエンコードを用いているかが他の手段で示されているなら
BOMは用いるべきではないとされているからそれに従えばいい話だね。
「俺が扱うテキストは全部UTF-8に決まってるんだからBOMは要らない」という自己中心的な主張と
混同してくれなければいい。
287デフォルトの名無しさん (ワッチョイ 5701-W3aP)
2022/09/19(月) 18:28:42.31ID:Z9ZARiSG0
まあ私はどちらでも良いんですけれども。
(レイヤード・ストリームをつこてますので)
gccがBOMに対応したのだから、BOM付ける陣営の勝利では?
288デフォルトの名無しさん (ワッチョイ 5701-W3aP)
2022/09/19(月) 18:33:34.93ID:Z9ZARiSG0
ところで明日は地下鉄が止まるかもしれないので、調べておいた方が良いですよ。
289デフォルトの名無しさん (ワッチョイ 5701-W3aP)
2022/09/19(月) 18:35:51.09ID:Z9ZARiSG0
わたくし思うのですが、BOMに対応しないソフトウェアを企画してしまう技術者って、もはや技術者で無いのでは?
ユーザーが必要としてるわけですからね。
290デフォルトの名無しさん (ワッチョイ 775f-3ts6)
2022/09/19(月) 19:59:29.61ID:x76VqF340
WindowsはBOMがあった方が判別しやすいが、LinuxやUNIXはBOMがあると余計なものが付いているという感じになる。

マルチバイト圏への配慮が足らなかったマイクロソフトが一番悪い。

だいたい2バイトで漢字がすべて収まると思ったアメリカ人に対して、早く日本人が漢字は何万字もあると教えなかったのが失敗だった。
291デフォルトの名無しさん (スッププ Sdbf-UZdd)
2022/09/19(月) 20:35:04.98ID:EmjBwTYRd
BOMキチガイども
292デフォルトの名無しさん (ワントンキン MM7f-bNpc)
2022/09/19(月) 20:42:51.60ID:F9okSTEiM
MS-DOSの頃は、これで十分って思ってたからな。
293デフォルトの名無しさん (US 0H7f-G1yF)
2022/09/19(月) 21:05:32.45ID:BENNO3a0H
>>290
>だいたい2バイトで漢字がすべて収まると思ったアメリカ人

CJK 漢字統合なんて醜い仕様のひと言に尽きますよね

>>286
自己中心的、という言葉の使い方が間違っていますよ
その昔は Shift-JIS, JIS, EUC が入り乱れまくっていましたが、だれもテキストデータにエンコードを示すプリフィックスを付けようなどとは思わなかった事実があります
UTF-8 にバイトオーダーマークなんか絶対に不要なのにバイトオーダーマークを安易につける発想そのものが自己中心的なのでは?

美しい世界(爆笑)のために今日もがんばります!
294デフォルトの名無しさん (ワッチョイ ffb0-okD4)
2022/09/19(月) 22:08:36.69ID:YVA4ZVOh0
「俺が扱うテキストは全部UTF-8に決まってるんだからBOMは要らない」というのが自己中心的な主張だと言ったんだが?
こんな単純な日本語の文章すらまともに読解できない奴に間違ってるとか言われても困惑するわ。
295デフォルトの名無しさん (US 0H7f-G1yF)
2022/09/19(月) 22:24:33.90ID:BENNO3a0H
>>294
同じことを繰り返しますが、
①過去、エンコードの違うテキストを各種取り扱っていたからといって、「テキストの内部に恣意的にエンコードを示すマークを入れる」などという自己中心的なことをした歴史はなかったのです。
 特にそういうことをしたいときは、ソースコードにその言語のコメントでエンコードを示す、くらいの配慮をしていたものです
②UTF-8 でエンコードされている限り、そのコンテンツがアスキーコードのみで構成されているのならば、特にバイトオーダーコードは不要で、as is で使えるように、欧米諸国に配慮した設計です

特に②が重要で、バイトオーダーコードを要れずとも、C のソースコードは UTF-8 であれば普通にコンパイルできる、はず、なのに、なぜわざわざバイトオーダーコードを付加して既存の処理系がそのままでは使えなくなってしまったのか?
コンパイラは MS-VC だけではなく、gcc も clang も lsi-c (w)もあるというのに、既存のコンパイラの動作を妨害してまで、バイトオーダーコードを付加するエディター側の方が自己中心的といえるのではないでしょうか?
そしてエンコードを示すマークなどではないバイトオーダーマークをエンコード種を示すマークに乱用するしている二重の矛盾も指摘しなければなりますまい

私の言っていることがわかりますか?
296デフォルトの名無しさん (ワッチョイ 9fad-dwAj)
2022/09/19(月) 23:05:07.14ID:/08McGz80
>>264
そのHEADの箇所に行くまでエンコードが分からないのだよな?
そこまでどうやって読むのか?
まあ、現実問題としてASCIIで入れておきゃいいわけだけど、厳密にはそれじゃいかんよな。
297はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 973e-E+l9)
2022/09/19(月) 23:10:53.08ID:npVSxydm0
>>290
エンコード切り替えの規格は ISO/IEC 2022 がある。
PC-9801 時代あたりにはマニュアルで KI/KO コードという名前で説明されていた。
ヨーロッパ言語も ISO/IEC 8859 として十種類以上の文字セットが定義されているんだ。
日本での事情以上に混在は深刻な問題であって、対処する規格は当然ある。
298デフォルトの名無しさん (US 0H7f-G1yF)
2022/09/19(月) 23:18:33.90ID:a+e8LTLZH
>>296
おっしゃるとおり、そこまでは、ただのアスキー7bit で記述するんですよ
大概は第一行目にエンコード種をアスキーで書くものでしたけれどもね
厳密っていうけれども、あなたのおっしゃる厳密の意味がよくわかりませんね
299デフォルトの名無しさん (US 0H7f-G1yF)
2022/09/19(月) 23:19:31.82ID:a+e8LTLZH
>>297
英語が一番簡単で、ウムラウトとか苦労していたと思いますよ、ウムラウトは確か 7 ビット領域に侵食していたような気が
300デフォルトの名無しさん (US 0H7f-G1yF)
2022/09/19(月) 23:23:44.77ID:a+e8LTLZH
>>297
おっと、私のいっていたことが少し不正確でしたね、たしかに KI/KO は生 JIS にありましたね
301はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 973e-E+l9)
2022/09/19(月) 23:40:42.70ID:npVSxydm0
自然言語なんて数千年単位の歴史的経緯の塊だ。 その文字も。
綺麗に整理しようとしたって元がグダグダなんだからどこかしらでグダグダになる。
そんでそのグダグダをひとつに寄せ集めたのが Unicode なんだぞ。
そりゃグダグダで当たり前だし、そういうもんだと思うしかしょうがないだろ。

そんでもって Unicode がかなり広まったといっても従来の文字コードが消滅したわけでもない。
https://xkcd.com/927/
302デフォルトの名無しさん (US 0H7f-G1yF)
2022/09/19(月) 23:43:18.98ID:a+e8LTLZH
>>240
チャイナ規格ですか‥‥(差別意識満々)
調べてみましたが基本的に4ビット固定長であり、UTF-8 を包含してはいないようですね、UTF-8 の上位規格というのはどういう根拠でそういっているのですか?
どっちかというと 現行中国漢字エンコード規格の上位規格でしょう

私の理解
・7 ビット圏は 1 バイト
・拡張部分は可変長ではなく 4 バイト固定
・現行の中国の漢字エンコード規格 GBK(シフトJIS と同じ仕組み)を包含するように第二・第四バイトの範囲を GBK と被らない範囲に制限している。
303デフォルトの名無しさん (ワッチョイ 5701-W3aP)
2022/09/19(月) 23:48:55.05ID:Z9ZARiSG0
>>302
ユニコード・コードポイント全てを内蔵したうえで、さらに少数民族の文字を追加してあるからでしょ。
そういう生い立ちなんだから。
304デフォルトの名無しさん (US 0H7f-G1yF)
2022/09/19(月) 23:52:42.86ID:A/Pc+E3NH
>>301
How standards have been overproducted とか易しい英語にしてほしいなあ
305デフォルトの名無しさん (US 0H7f-G1yF)
2022/09/19(月) 23:55:05.42ID:A/Pc+E3NH
>>303
コードポイントの数は十分確保している、って言う意味で「ユニコードの上位規格だ」と主張しているわけですか
この理解で正しいですか?
306デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/19(月) 23:55:54.72ID:zeLiCYh20
EBCDIC なんていうコード体系もあるんだよな
これはASCIIよりも古い
このコードで動いていたPCもあった(今もあるかは知らない)
307デフォルトの名無しさん (ワッチョイ 17c2-okD4)
2022/09/20(火) 05:35:11.57ID:JyAf+et+0
N5200か
308デフォルトの名無しさん (ワッチョイ ff46-B8bZ)
2022/09/20(火) 05:38:15.50ID:AtHbCf2+0
>>290
2千字の常用漢字で済ませという時代だったから。

> だいたい2バイトで漢字がすべて収まると思ったアメリカ人に対して、早く日本人が漢字は何万字もあると教えなかったのが失敗だった。
309デフォルトの名無しさん (ワッチョイ ffb0-okD4)
2022/09/20(火) 07:29:23.63ID:4R7D1dED0
>>295
ここまでくると狂気しか感じないが。>>286で自己中心的と書いた内容と全然関係ない内容を
延々と繰り返すのはなんでだろう。
ついでに>>295の内容について言えば、規格で定めているもののどこがどう自己中心的なんだか。
この場合の「自己」って誰のこと?
310デフォルトの名無しさん (アウアウウー Sa5b-8eP5)
2022/09/20(火) 09:59:52.88ID:2fXkGtCja
>>270
PHP+SJIS全盛の頃にBOMの代わりに「美乳」が使われてた時代があったな
311デフォルトの名無しさん (アウアウウー Sa5b-8eP5)
2022/09/20(火) 10:02:30.30ID:2fXkGtCja
>>275
そうかな
全てのファイル名にBOM付いてたら嫌だな
312デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/20(火) 10:04:55.52ID:Sk0Tcp2N0
MSならやりかねない
313デフォルトの名無しさん (ブーイモ MMfb-hJeG)
2022/09/20(火) 10:08:20.39ID:x6uHKNFtM
>>311
asciiなら不要だよ
314デフォルトの名無しさん (アウアウウー Sa5b-8eP5)
2022/09/20(火) 10:19:31.19ID:2fXkGtCja
>>313
BOM付けろ派はASCIIかどうかもBOM付いてないと判らないみたいだし
315デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/20(火) 10:27:10.48ID:Sk0Tcp2N0
MSの事だから、UTF-16使いそう
316デフォルトの名無しさん (ワッチョイ 9f47-G1yF)
2022/09/20(火) 22:46:15.84ID:oGqR16NY0
>>309

>>286で自己中心的と書いた内容と全然関係ない内容

>>286
>「俺が扱うテキストは全部UTF-8に決まってるんだからBOMは要らない」という自己中心的な主張と混同してくれなければいい。

まあ、活動家のなりきりをしているので、そういうスタンスをとっているけれども、本質的には

>>295
1. 過去、エンコードの違うテキストを各種取り扱っていたからといって、「テキストの内部に恣意的にエンコードを示すマークを入れる」などという自己中心的なことをした歴史はなかった
2. UTF-8 でエンコードされている限り、そのコンテンツがアスキーコードのみで構成されているのならば、特にバイトオーダーコードは不要で、as is で使えるように、欧米諸国に配慮した設計

が言いたいことですね

UTF-8 ならば通常は as is で使えるんですよ、特に C/C++ のコード(コメントは英語・これって普通でしょ?)をそのまま使えるのに、どこぞのエディターが勝手につけるバイトオーダーマークまで正当化する風潮に苛立ちを感じているんですよ
長いものに巻かれよ、みたいなみっともない風潮を正当化するあさましさにあきれ果てているのです

あなたがそうだ、とはいいませんけれどもね
317デフォルトの名無しさん (スッップ Sdbf-UZdd)
2022/09/20(火) 22:50:52.98ID:an1sf52Dd
どこでも演説をおっぱじめるガキにいらだちを感じてる
318デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/20(火) 23:07:44.32ID:Sk0Tcp2N0
多国語が混在しても扱えるところが気に入ってる
319デフォルトの名無しさん (ワッチョイ d7b3-rZTD)
2022/09/21(水) 00:15:08.73ID:z4iK/HUS0
gdbについて質問いいですか?
ステップ実行でfopenを通過しようとすると
 "iofopen.c: そのようなファイルやディレクトリはありません"
とメッセージがでて先に進めません。どうすれば回避できますか?

OS:Linux
320デフォルトの名無しさん (ワッチョイ d7b3-rZTD)
2022/09/21(水) 00:17:32.94ID:z4iK/HUS0
ちなみにソースは以下の感じです
fopenで開くファイルは実行ファイル(a.out)と同じ場所に置いてあります。

#include <stdio.h>
void main(void){
 FILE *fp;
 fp =fopen("aa.txt", "r");
 fclose(fp);
}
321デフォルトの名無しさん (ワッチョイ 1710-W3aP)
2022/09/21(水) 00:45:37.65ID:itvuUNqP0
このあたり参考にしてください
https://doss.eidos.ic.i.u-tokyo.ac.jp/html/advanced_gdb.html#libraries
322デフォルトの名無しさん (ワッチョイ d7b3-q6Lr)
2022/09/21(水) 06:00:40.75ID:z4iK/HUS0
>>321
サンクス
323デフォルトの名無しさん (ワッチョイ 1f02-MXZj)
2022/09/21(水) 06:25:52.07ID:tW9j9RfF0
includeガードって割と使われてるように思いますが、エラい人の批評とかありません?
依存関係を把握しきれてないヤバい状態の発覚を先延ばしにするだけのハックだと個人的な経験から思うのですが…
324デフォルトの名無しさん (スフッ Sdbf-MXZj)
2022/09/21(水) 06:39:05.65ID:6JiKBcvPd
とりあえず各ソースファイルの実行部、なければinit_xxxみたいなエントリーポイント作って
#ifdef XXX perror("xxx loaded twice"); exit(XXX);
みたいの置いたりしてます
325デフォルトの名無しさん (スフッ Sdbf-MXZj)
2022/09/21(水) 06:47:28.88ID:6JiKBcvPd
init_xxxを呼び忘れると無意味なので、文法エラーで落とせたら良いと思うんですが、分かりやすいメッセージ吐いて落ちてくれる違法構文(あるいはそうするときの標準的なイディオム)あったら教えて欲しいです
326デフォルトの名無しさん (ワッチョイ 17c2-okD4)
2022/09/21(水) 07:18:22.65ID:sLC8V8J20
>>323
エロい人の批判ねえ。。。
#pragma onceなんか色んなコンパイラの中の人が真似してるけど?

依存関係を把握っていうけど、じゃあ
#include <stddef.h>
#include <stdio.h>
なんて書かされたいわけ?
ライブラリだって-lstdcじゃなく
fputc.o iobuf.o fprintf.o printf.oなんて書くべきだと思う?

何かを使いたいときの窓口を1つにまとめておくのは
作る側として行儀のいいことだと思うぞ
327デフォルトの名無しさん (スフッ Sdbf-MXZj)
2022/09/21(水) 07:47:36.87ID:6JiKBcvPd
>>326
むしろグッドプラクティスとされてる感じですか、確かにシステムヘッダにも見掛けますね

標準ライブラリは使うものを共通ヘッダにまとめてますね
ライブラリとして公開する場合は当然慣習に従うべきだと思いますが、書いてる時には丁度必要十分でなく、余計なヘッダがあると何処に何があったか混乱したりしません?

コードを弄らずスタティックアナライザとか道具に頼った方がいいのかな
328はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 973e-E+l9)
2022/09/21(水) 09:18:02.72ID:tPUkcfIa0
>>323
ライブラリはそのライブラリの使用者に対して
インターフェイス部分だけを公開したいのが普通で、
細かい依存関係が見えてしまうのは悪い設計だろ。

でも C のヘッダファイルの仕組みは隠蔽しきれない部分が出てしまうので
そもそも C の言語としての仕組みが悪い。
C を使う以上は悪い部分ともつきあわないとしょうがないし、
インクルードガードは比較的マシな解決方法だと誰もが考えているからこそそうなってる。

C++ にはモジュールが導入されたけど今のところはヘッダファイルとも共存し続ける必要があるから
完全な移行にかかる時間は数十年単位かもしれんな……。
329デフォルトの名無しさん (ワッチョイ 9fad-okD4)
2022/09/21(水) 09:58:34.67ID:hjFc1SVt0
新言語作った方が早いw
330デフォルトの名無しさん (アウアウウー Sa5b-8eP5)
2022/09/21(水) 18:18:19.49ID:E8IgYMeHa
>>327
>余計なヘッダがあると何処に何があったか混乱したり

へたくそなライブラリだとそういうの見掛けるが
上手なライブラリはすっきりしてるイメージ
331デフォルトの名無しさん (アウアウウー Sa5b-8eP5)
2022/09/21(水) 18:19:32.68ID:E8IgYMeHa
>>328
FILE * とかって結局使う方からしたら void * でも動くしな
332デフォルトの名無しさん (アウアウウー Sa5b-8eP5)
2022/09/21(水) 18:21:06.66ID:E8IgYMeHa
>>329
Nimがある
333デフォルトの名無しさん (ワッチョイ d7b3-rZTD)
2022/09/22(木) 19:42:13.93ID:6Jou56UH0
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <memory.h>

typedef struct {
int year;
int mon;
int mday;
int hour;
int min;
double high;
double open;
double close;
double low;
} CSV_T;

void f(CSV_T *csv){
CSV_T *work;

for(int i=1; i<1001; i++){ //★
work = realloc(csv, sizeof(CSV_T)*i);
if(work == NULL){
puts("error");
exit(0);
}
if(work != csv) {
puts("ココ通過でアウト"); //▲
csv = work;
}
}
334デフォルトの名無しさん (ワッチョイ d7b3-rZTD)
2022/09/22(木) 19:42:52.92ID:6Jou56UH0
csv[0].year = 1;
csv[0].low = 1.1;
csv[998].year = 9;
csv[998].low = 9.9;

printf("%d %f\n", csv[0].year, csv[0].low);
printf("%d %f\n", csv[998].year, csv[998].low);
}

void main(void){
CSV_T *csv;

csv = realloc(NULL, 1);
f(csv);

printf("%d %f\n", csv[0].year, csv[0].low);
printf("%d %f\n", csv[998].year, csv[998].low);

free(csv);
}
335デフォルトの名無しさん (ワッチョイ d7b3-rZTD)
2022/09/22(木) 19:43:37.01ID:6Jou56UH0
・やりたいこと
CSVファイルを1行読み込むごとに構造体のエリアをreallocで拡張して格納
元のソースをそのままアップするには長いのでファイルの読み込み部分を削除したソースが上のやつです

・悩んでいるところ
コメント★のとこのループが1000程度なら動きます。
しかし10000を超えるループにするとコメント▲部分を通過するようになり
mainのprintfが正しい値を表示しなくなります。

なぜ?
336デフォルトの名無しさん (ワッチョイ 9f7c-E+l9)
2022/09/22(木) 19:58:17.91ID:z6cxsZX20
領域拡張がそのままでは出来ずに新たな領域に指定サイズで取り直すからでは?
どっちにしてもそんなに細かくrealloc()するものでは無いし
ある程度の大きさで取っておいて足りなくなったらrealloc()するのが本来の使い方
337デフォルトの名無しさん (ワッチョイ ff46-EKt7)
2022/09/22(木) 19:58:48.48ID:p2gwdjIg0
reallocが別のメモリを確保して返す場合
▲のほうを通ります
このときfの内部でcsvを変更しても
mainのcsvは変化しません。
返り値にするかfの引数をCSV_T**にするか
変更すればよいです。
338デフォルトの名無しさん (ワッチョイ 775f-3ts6)
2022/09/22(木) 21:54:30.38ID:x7eBA3430
>>293
昔はデータ容量を節約する必要があったから、データ容量が増えることは避けたかっただけ。
339デフォルトの名無しさん (ワッチョイ 775f-3ts6)
2022/09/22(木) 21:56:10.71ID:x7eBA3430
>>295
①や②を使っている時点で日本人の都合を世界に押し付けていることがわからないのか?
340デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/22(木) 22:34:09.45ID:4dXBB0gP0
丸数字はUnicodeに登録されてるから心配ないよ
㋿ですら存在するし
341デフォルトの名無しさん (テテンテンテン MM8f-2Jl6)
2022/09/22(木) 23:15:55.13ID:9LVV18M9M
>>293
そんなこと言ってたらUnicodeには肌色を指定する文字があって、これは通常表示されない
これらを組み合わせると家族絵文字はたった1文字を表示するのに最大で41byteになる
もはや文字を正しく表示する事は簡単じゃない
BOMの有無なんてかわいいもんだ
342はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 973e-E+l9)
2022/09/22(木) 23:47:09.65ID:He0eupRY0
私が Unicode のグダグダさについて言いたいことは >>301 が全てなので繰り返しになるんだが
そもそも自然言語がグダグダなのが問題の根源。
文句があるなら自然言語を規格化して普及させてみせろや。
343デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/22(木) 23:50:49.90ID:4dXBB0gP0
人それぞれなんだが、
自分が一番困るのは

  ~

これの扱いでいつもトラブル
344デフォルトの名無しさん (テテンテンテン MM8f-2Jl6)
2022/09/23(金) 00:53:58.54ID:oded7icuM
「が」と「か゛」が混ざってる事もある(見た目じゃ判別付かない)から、先ずはUnicode正規化しないと、なぜか文字列が一致しないとかもある
345デフォルトの名無しさん (アウアウウー Sa5b-8eP5)
2022/09/23(金) 01:35:24.44ID:gD4It3Aba
>>335
>>333-334 で work を書き換えて csv に上書きしてるつもりで
main の csv は上書きされていない
f 側では CSV_T **csv で受けて *csv = work; と描いて上書きする
main から &csv を渡す
346デフォルトの名無しさん (アウアウウー Sa5b-8eP5)
2022/09/23(金) 01:37:21.11ID:gD4It3Aba
ここと
work = realloc(*csv, sizeof(CSV_T)*i);
ここも
if(work != *csv) {
変更汁
347デフォルトの名無しさん (ワッチョイ 9f01-bNpc)
2022/09/23(金) 06:31:49.61ID:exFn1ITS0
>>346
ここも直さんとエラーになるぞ
void f(CSV_T **csv){
348デフォルトの名無しさん (ワッチョイ d710-E+l9)
2022/09/23(金) 08:25:09.61ID:wfJAcbE20
>339
日本の都合に合わせたOSを作ったらアメリカから(ry
349デフォルトの名無しさん (ワッチョイ 9fad-52V3)
2022/09/23(金) 08:38:34.03ID:JWInDr1o0
BOMはいるとかいらないとか
自分を中心に語っている間は自己中心的、なんじゃないですか?
BOMあったほうが良い環境と無いほうが良い環境があるなら、それに合わせて利用するでは?
350デフォルトの名無しさん (ワッチョイ 9701-W3aP)
2022/09/23(金) 08:55:36.44ID:7gKq4Utr0
>>349
いまはネットでつながってる時代なので、BOMを付けるべきでしょう。
自分だけで使う資料なら、何も言いません、自由にしてください。
351デフォルトの名無しさん (ワッチョイ d7b3-rZTD)
2022/09/23(金) 09:05:36.75ID:CJ5Vu8e/0
>>336-347
動きました。
指摘頂いた箇所を直してコンパイルすると、コンパイラが
 error: ‘*csv’ is a pointer; did you mean to use ‘->’?
っと吐くので、コンパイルメッセージ通り
 csv[0]->year = 1;
 csv[0]->low = 1.1;
 csv[998]->year = 9;
 csv[998]->low = 9.9;
と修正したら Segmentation fault (コアダンプ) となるので随分悩みましたが
以下のようにすることで望む動作となりました。サンクスです。おわり。
 csv[0][0].year = 1;
 csv[0][0].low = 1.1;
 csv[0][998].year = 9;
 csv[0][998].low = 9.9;
 printf("%d %f\n", csv[0][0].year, csv[0][0].low);
 printf("%d %f\n", csv[0][998].year, csv[0][998].low);
352デフォルトの名無しさん (スッププ Sdbf-UZdd)
2022/09/23(金) 10:00:54.82ID:N+YYHg9hd
>>348
そんな幻覚を信じてる奴がC言語使うなw
353デフォルトの名無しさん (ワッチョイ 9701-W3aP)
2022/09/23(金) 10:17:08.51ID:7gKq4Utr0
中国がやられていることを、以前は日本がやられていた。
354デフォルトの名無しさん (スッププ Sdbf-UZdd)
2022/09/23(金) 10:36:16.17ID:N+YYHg9hd
中国のはただのLINUXもどきだろw
355デフォルトの名無しさん (ワッチョイ 9701-W3aP)
2022/09/23(金) 10:43:48.77ID:7gKq4Utr0
アメリカは許さん。
いつかアメリカが弱くなった時、必ず仕返しをする。
356デフォルトの名無しさん (ワッチョイ b7bb-E+l9)
2022/09/23(金) 10:46:24.11ID:mieuEbaK0
アメリカはほんとジャイアンだよな
色々な国から恨み買ってると思うわ
357デフォルトの名無しさん (スッププ Sdbf-UZdd)
2022/09/23(金) 11:04:10.31ID:N+YYHg9hd
そういう下らない話はどっかの陰謀論スレでやれ
CもUNIXもパソコンもどこの国が作ったんだよw
358デフォルトの名無しさん (ワッチョイ b7bb-E+l9)
2022/09/23(金) 11:14:08.38ID:mieuEbaK0
だから国産のCやUNIXが必要なんだよ
アメリカにずっと依存してたらいつか痛い目を見ると思うわ
359デフォルトの名無しさん (ワッチョイ 17c2-okD4)
2022/09/23(金) 11:24:24.02ID:Ztvb6Y4W0
Cのどこに陰謀なんかあるんだよ
ちゃんと理解して使ってる人なら絶対にありえない妄想だな
いつまで経ってもHello worldの域を出られないウルトラ低脳だけだろそんなこと言ってるのは
360デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/23(金) 12:04:08.03ID:d/Vr8qA70
ビジコンの小島社長が技術だけでなく、世界を目指していたら
今頃は世界を制覇して太ろうに
361デフォルトの名無しさん (スププ Sdbf-rRHG)
2022/09/23(金) 13:05:01.09ID:hRyY5Ouqd
>>351
そこまで csv[0] 多用するなら
引数を void f(CSV_T **pcsv) にして
関数内で CSV_T *csv = *pcsv; すると良い
最後に *pcsv = work; だけ気を付ける
362デフォルトの名無しさん (スッププ Sdbf-UZdd)
2022/09/23(金) 13:28:27.27ID:UtiZ09eAd
>>358
じゃあLINUXはどこの国の人が作った?
一行でもプログラム書いたことないのがバレバレだぞw
くだらねえ陰謀論書くヒマあったら
363デフォルトの名無しさん (ワッチョイ d710-E+l9)
2022/09/23(金) 14:25:39.25ID:wfJAcbE20
世界初のCPUは(ry
364デフォルトの名無しさん (ワッチョイ ffb0-okD4)
2022/09/23(金) 14:59:32.72ID:4W75W0wl0
イギリス人のノイマンが考えてアメリカのEDVACに搭載されたのが最初だっけ
365デフォルトの名無しさん (ワッチョイ 9fad-okD4)
2022/09/23(金) 15:24:24.40ID:U+A60u3d0
ジョン・フォン・ノイマンはハンガリー出身のアメリカの数学者。
両親はハンガリーに移住したユダヤ系ドイツ人。
366デフォルトの名無しさん (ワッチョイ 9701-W3aP)
2022/09/23(金) 16:25:05.41ID:7gKq4Utr0
>>362
五橋研究所の一件は絶対に忘れない。
アメリカを許さない。
367デフォルトの名無しさん (ワッチョイ 9fad-okD4)
2022/09/23(金) 17:04:19.95ID:U+A60u3d0
>>363
何を以てCPUと呼ぶかという定義の違いによってどれが世界初のCPUかが変わる。
368デフォルトの名無しさん (テテンテンテン MM8f-2Jl6)
2022/09/23(金) 17:15:38.41ID:JPfPvbHpM
ノイマンは原爆は地上100mで爆発させるのが最もダメージを与えられるという計算を一生懸命してた人
369デフォルトの名無しさん (ワッチョイ 9701-W3aP)
2022/09/23(金) 17:59:34.63ID:7gKq4Utr0
技術が政府を必要なくするという妄想を主軸に据えた改定アナーキズムを提唱します。

国を細分化し、一つの国の力を十分に小さくすれば、戦争は消え去ります。
それも改定アナーキズムの効果のひとつです。
370デフォルトの名無しさん (ワッチョイ b7bb-E+l9)
2022/09/23(金) 18:46:47.28ID:mieuEbaK0
>>362
Linuxの開発はC言語依存だろ
そしてC言語はアメリカ産の言語
国産のC言語で国産のLinuxを作る
これが真の国力だよ
371デフォルトの名無しさん (ワッチョイ 9f36-E+l9)
2022/09/23(金) 18:46:48.98ID:iDGv9NFq0
どの国で作られたとかアフォかと。その国だけで使ってくれって思ってるとでも?他国でDLさせたり、販売しといて?
372デフォルトの名無しさん (ワッチョイ 9701-W3aP)
2022/09/23(金) 19:00:25.69ID:7gKq4Utr0
技術者らしく、アメリカをぶっ倒す方法論を考えよう。
アメリカの良し悪しなんて、倒した後で誰かが考えてくれる。
373デフォルトの名無しさん (ワッチョイ b7bb-E+l9)
2022/09/23(金) 19:01:30.63ID:mieuEbaK0
この認識って一般的じゃないのか?
えーまじかよ
将来アメリカと戦争になったらどうすんの
gccとかダウンロードできなくなるんじゃないの?
374デフォルトの名無しさん (ワッチョイ 97e6-G1yF)
2022/09/23(金) 19:02:00.96ID:IIvpOqM90
>>338
だからといって三カ国の漢字コードを無理遣りに統一する!とか言い出す必要があったのか?
各国とも各国なりのちゃんとした漢字コード体系が成立していたというのに
375デフォルトの名無しさん (ワッチョイ ff26-G1yF)
2022/09/23(金) 19:02:59.42ID:H9J4nWLH0
>>339
①②はアメリカ人の都合でしょ?
どうして①②が日本人の都合か説明いただけませんか?
376デフォルトの名無しさん (ワッチョイ ff26-G1yF)
2022/09/23(金) 19:04:14.91ID:H9J4nWLH0
>>341
絵文字はねえ‥‥、絵文字をねじ込んだのは日本人ですし、確かに酷いことになっていますよね、ご意見に同意します
377デフォルトの名無しさん (ワッチョイ 9701-W3aP)
2022/09/23(金) 19:04:28.38ID:7gKq4Utr0
>>374
そうだな。
文字コードは一番詳しい日本が主軸となって作り直す必要があるな。
まず、新しい文字コードの名前から考えよう。

ところで、JISが日本工業規格ではなくなったって知ってるか?
まずそこからだぞ。
378デフォルトの名無しさん (ワッチョイ 9701-W3aP)
2022/09/23(金) 19:05:35.56ID:7gKq4Utr0
>>370
日本にはLSI-C86試食版があるじゃあないか!
379デフォルトの名無しさん (ワッチョイ ff26-G1yF)
2022/09/23(金) 19:08:24.89ID:YNz/Bu6p0
>>342
>文句があるなら自然言語を規格化して普及させてみせろや。

人工言語エスペラント(人工言語といったら発案者は怒りますね、彼は謙虚に「国際補助語」といっていますね)に始まる「ふつくしい世界」の探求ですね
ロジバンがいい感じに見えるのですが私の年齢では、もうとりかかるのにためらわれますね、若い方でやっている方はおられますか?
380デフォルトの名無しさん (ワッチョイ 9701-W3aP)
2022/09/23(金) 19:13:00.21ID:7gKq4Utr0
俺たちサタンは絶対アメリカを許さへんでえ!
381デフォルトの名無しさん (ワッチョイ 9701-W3aP)
2022/09/23(金) 19:25:58.67ID:7gKq4Utr0
>>373
いまあるパソコンで最大に困ってることは何かと考えるとセキュリティじゃないかな?
乗っ取られないOSを考え付いたら、世界をとれるんじゃないか?
382デフォルトの名無しさん (ラクッペペ MM8f-8oD0)
2022/09/23(金) 19:27:57.78ID:+9iUtJm1M
いつまで妄想続けるの?
383デフォルトの名無しさん (ワッチョイ 9f36-E+l9)
2022/09/23(金) 19:29:30.75ID:iDGv9NFq0
「私ハッカー。今あなたの後ろに居るの。」
384デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/23(金) 19:29:35.80ID:d/Vr8qA70
森公一郎さん、亡くなってしまった
385デフォルトの名無しさん (ワッチョイ 9701-W3aP)
2022/09/23(金) 19:29:54.80ID:7gKq4Utr0
>>382
真面目なC言語の話題が投稿されるまで。
386デフォルトの名無しさん (ワッチョイ 9f26-G1yF)
2022/09/23(金) 19:30:27.24ID:TJPY0mvX0
>>370
Linux はスウェーデン系フィンランド人(ムーミンの作者トーベ・ヤンソン(女性)もそうですね)で、アメリカ人とはいいがたいですねえ
387デフォルトの名無しさん (ワッチョイ 9701-W3aP)
2022/09/23(金) 19:34:43.74ID:7gKq4Utr0
>>386
リナスが作ってるわけじゃないから。
388デフォルトの名無しさん (ワッチョイ 37c1-G1yF)
2022/09/23(金) 19:36:04.99ID:muvuGuRN0
>>387
今はね、最初は?
389デフォルトの名無しさん (ワッチョイ 9701-W3aP)
2022/09/23(金) 19:40:07.19ID:7gKq4Utr0
>>388
理屈じゃねえんだよ。
統一教会は最高なんだ!
390デフォルトの名無しさん (ワッチョイ 17c2-okD4)
2022/09/23(金) 19:59:37.68ID:Ztvb6Y4W0
>>370
マジで言うぞ、アホかお前は
科学技術の功績がどこ人とか地の果てまで関係ねえんだよ
0をインド人が発見したからってブール代数はインドの国力か?
理系と文系の区別がガチでわからんやつめ
391デフォルトの名無しさん (ワッチョイ 9701-W3aP)
2022/09/23(金) 20:09:09.70ID:7gKq4Utr0
そうだ、これからインドは伸びる。
392デフォルトの名無しさん (ワッチョイ 97e6-G1yF)
2022/09/23(金) 20:18:58.64ID:SZRvCFuj0
>>391
とても興味があります
インドの強みはなんでしょうか?インドの言語・サンスクリットが強みなんでしょうか?
393デフォルトの名無しさん (ワントンキン MM7f-bNpc)
2022/09/23(金) 20:43:24.59ID:7jlcG+vZM
ラマヌジャンが見つけたπの計算式は他の人では不可能じゃないかな
394デフォルトの名無しさん (ラクッペペ MM8f-8oD0)
2022/09/23(金) 20:53:50.26ID:nZMEnIrnM
世界のIT系企業中心の三大都市として
米国のシリコンバレー
中国の深セン
印度のバンガロール
は有名な話ではある
395はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 973e-E+l9)
2022/09/23(金) 21:00:05.13ID:+J9Wni8j0
>>392
人数。
396392 (ワッチョイ 97e6-G1yF)
2022/09/23(金) 21:36:47.77ID:UhaHLJ5a0
>>395
!!!
397デフォルトの名無しさん (ワッチョイ b7bb-E+l9)
2022/09/23(金) 21:44:22.73ID:mieuEbaK0
>>390
科学技術はまーそうだけど
依存してる状態はよくないでしょ?
まぁC言語については国産のコンパイラ作ればそれでいいけど
たとえばトップが中国人になって日本にだけ冷遇してくるとかさ
そういのってあるでしょ?
398デフォルトの名無しさん (ワッチョイ 9701-W3aP)
2022/09/23(金) 21:52:19.66ID:7gKq4Utr0
アメリカに冷遇され続けてるのに。
なぜか「日本はアメリカに愛されているんだ!」とか。
愛されない子供ようなこと言ってる。
399デフォルトの名無しさん (ワッチョイ 9701-W3aP)
2022/09/23(金) 21:54:05.85ID:7gKq4Utr0
そもそも、現代のアメリカと真っ向から戦った国なんて一つしかないのに。
警戒されてるに決まってるじゃん。

こっちだっていつか復讐しようと爪を研いでるのに。
400デフォルトの名無しさん (ワッチョイ 17c2-okD4)
2022/09/23(金) 21:55:43.97ID:Ztvb6Y4W0
>>397
やっぱりな
ム板に来るやつだからと万が一の奇蹟に期待してたが
予想どおりガッカリなやつだな

出てけよ、技術板にそぐわないやつめ
401デフォルトの名無しさん (ワッチョイ b7bb-E+l9)
2022/09/23(金) 22:01:55.13ID:mieuEbaK0
>>400
なんでそんなに怒ってるのか謎だわ
俺は間違ったことは言ってないと思うが
402デフォルトの名無しさん (ワッチョイ 9701-W3aP)
2022/09/23(金) 22:04:33.75ID:7gKq4Utr0
全く間違っていない。
自給率確保は日本の安全保障の大原則だし。
「日本をぶっ壊す」とか言い始めた、ここ30年の日本政府は別として。
403デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/23(金) 22:33:25.75ID:d/Vr8qA70
ニュース系板が規制きびしくて
耐えられなくなった難民どもが
無関係なスレを徘徊して荒らしている
今日この頃
404デフォルトの名無しさん (ワッチョイ 9701-W3aP)
2022/09/23(金) 22:49:16.67ID:7gKq4Utr0
今まで政治に関心が無かった人が、関心を持ち始めて、良いことでは?
民主主義的に言って。
405デフォルトの名無しさん (ワッチョイ 9701-W3aP)
2022/09/23(金) 22:51:28.64ID:7gKq4Utr0
自給率は安全保障の指標の一つですから、国産OSが必要だと思います。

全てを過去に変える偉大なOS!!!

ではなく、誰もが普遍的に使える小さなOSが良いと思います。
406デフォルトの名無しさん (ワッチョイ 9f9f-gM0g)
2022/09/23(金) 22:52:11.60ID:bBi47OZ40
TRONのソースかき集めてPC/スマホで動くように改修すればええねん
407デフォルトの名無しさん (ワッチョイ 9701-W3aP)
2022/09/23(金) 22:57:55.86ID:7gKq4Utr0
アイドル板とかゲーム板で政治の話が出るのが、健全な民主主義じゃないっすか?
408デフォルトの名無しさん (ワッチョイ 9701-W3aP)
2022/09/23(金) 23:05:29.93ID:7gKq4Utr0
>>400
あんた、サタンが憑りついてるんじゃないか?
言動がめちゃくちゃだぞ。
409デフォルトの名無しさん (ワッチョイ d7b3-rZTD)
2022/09/23(金) 23:45:27.33ID:CJ5Vu8e/0
>>405
LinuxでOK
どこの国にも属してないぞ
410デフォルトの名無しさん (ワッチョイ 9701-W3aP)
2022/09/23(金) 23:58:56.17ID:7gKq4Utr0
>>409
Laser5の一件を忘れたのか!
411デフォルトの名無しさん (ワッチョイ 37b3-toBK)
2022/09/24(土) 00:05:10.37ID:GpR8CZ+m0
>>410
忘れる以前に知らない
検索するのでキーワード教えて
412デフォルトの名無しさん (ワッチョイ 5f01-JEMU)
2022/09/24(土) 00:09:08.45ID:75jIGLYK0
>>411
バトルプログラマーシラセ「五橋研究所 Redhat」
413デフォルトの名無しさん (ワッチョイ 5f01-JEMU)
2022/09/24(土) 00:10:44.12ID:75jIGLYK0
俺たちサタンは、アメリカを許さへんからな、絶対!!!
414デフォルトの名無しさん (ワッチョイ 7236-tX/F)
2022/09/24(土) 00:13:49.44ID:f4deLGav0
スレチなごっこ遊び楽しい?
415デフォルトの名無しさん (ワッチョイ 5f01-JEMU)
2022/09/24(土) 00:22:34.27ID:75jIGLYK0
メシアが試練をお与えになっているのです。
416デフォルトの名無しさん (ワッチョイ 12ad-Obq2)
2022/09/24(土) 00:23:01.75ID:6vPOYH6k0
>>391
そしてやがてインドでOSが作られる。名前は

インドーズ
417デフォルトの名無しさん (ワッチョイ 6bbb-tX/F)
2022/09/24(土) 00:24:40.95ID:5OzUjEi80
インドーズわろた
418デフォルトの名無しさん (ワッチョイ 12ad-Obq2)
2022/09/24(土) 00:25:05.38ID:6vPOYH6k0
国産OSガーと言ってる人は超漢字を使ってここに書き込むこと。
419デフォルトの名無しさん (ワッチョイ 5f01-JEMU)
2022/09/24(土) 00:25:20.44ID:75jIGLYK0
>>416
使いやすそうだけど、文字一個分なにかが足りないんでしょうね!
420デフォルトの名無しさん (ワッチョイ 5f01-JEMU)
2022/09/24(土) 00:29:42.52ID:75jIGLYK0
五橋研究所はRedhatとパートナー契約を結び、RedhatLinuxの日本語化を行った。
充分な日本語化を達成して時点で、Redhat社はパートナー契約を打ち切り、Redhat自身で日本語版Linuxを自社販売した。
421デフォルトの名無しさん (ワッチョイ 1263-tX/F)
2022/09/24(土) 00:31:40.20ID:Ohf7lvDf0
単独で動く超漢字なら、使ってみたい
422デフォルトの名無しさん (ワッチョイ 5f01-JEMU)
2022/09/24(土) 00:45:35.80ID:75jIGLYK0
・明日からWindowsは使えません。
・明日からmacOSは使えません。
・明日からiOSは使えません。
・明日からAndroidは使えません。

> Imagine all the people
> Living for today
423デフォルトの名無しさん (ワッチョイ 5f01-JEMU)
2022/09/24(土) 00:49:50.96ID:75jIGLYK0
いま中国のSNSで写真の加工が流行ってるんだよね。
ブドウの粒粒を星形にする加工。
みんなが加工してウプしてる。
なんでだろね?
424デフォルトの名無しさん (ワッチョイ 5f01-JEMU)
2022/09/24(土) 00:51:01.98ID:75jIGLYK0
ファーウェイはAndroid搭載機器を販売できなくなって、スマホから撤退したからね。
アメリカン・リスクだわ。
425デフォルトの名無しさん (テテンテンテン MMde-0S4t)
2022/09/24(土) 01:02:13.43ID:uYCDlyGwM
>>376
絵文字の表示と編集まで出来るように対応するのは大変な労力だけど、お陰で日本語を知らない外国人のソフトウェアでも、自然と日本語に対応されるという利点がある
もっと細かいところまで対応するのはネイティブじゃないと無理だけど、かなりの進歩だ
426デフォルトの名無しさん (ワッチョイ 37b3-toBK)
2022/09/24(土) 01:21:31.21ID:GpR8CZ+m0
もう日本はアメリカなしでは生きていけない
中国やロシアみたいにアメリカ発のサービスが止められるような状況になったらバンザイするしかない
なので考えるのはやめよう(スレちだし)
427デフォルトの名無しさん (ワッチョイ 5f01-JEMU)
2022/09/24(土) 02:06:42.56ID:75jIGLYK0
自民党みたいなこと言っちゃって。
428デフォルトの名無しさん (ワッチョイ 12ad-r4yT)
2022/09/24(土) 02:14:26.65ID:6vPOYH6k0
>>424
米国が制裁の中国ファーウェイ 日本のスマホ事業撤退せず
https://news.tv-asahi.co.jp/news_economy/articles/000256013.html

ファーウェイのスマホは売り上げ4倍に、「ロシア特需」に沸く中国経済
https://jbpress.ismedia.jp/articles/-/69446
429デフォルトの名無しさん (ワッチョイ 5f01-JEMU)
2022/09/24(土) 02:25:35.17ID:75jIGLYK0
>>428
ファーウェイはAndroid搭載機器を販売できなくなっていないと言いたいのか?
430デフォルトの名無しさん (ワッチョイ 12ad-r4yT)
2022/09/24(土) 02:26:06.48ID:6vPOYH6k0
>>426
そもそも日本は敗戦国だから少なくともアメリカに対しては自由はない。
お爺ちゃんの代からCIAと繋がっていようがいまいが日本はアメリカンの属国だ。
この事は逆の立場になって考えてみれば分かると思う。戦争してやっと勝った相手に対して戦後に自由を認めるか?そんなことは普通に考えてあり得ないだろう。
431デフォルトの名無しさん (ワッチョイ 12ad-r4yT)
2022/09/24(土) 02:37:00.43ID:6vPOYH6k0
>>429
Android そのものはフリーだから Android のスマホが作れないことはない。
ただ Google のサービスは全滅なのでその辺を独自に作る必要がある。
中国国内からは検閲の都合で Google へは繋がらないだろうから最初からそういう独自のサービスは用意しているのではないかと思う。
ロシアで売れる理由はそれのロシア語版があるからではないか。
日本ではまだ売ってるだろうが普通に Google のサービスが使えないのでは商品価値がないのでほとんど売れず、また日本で新機種投入はしないということだろう。
432デフォルトの名無しさん (ワッチョイ 12ad-r4yT)
2022/09/24(土) 02:41:06.82ID:6vPOYH6k0
Amazon の Fire タブレットも似たような状態だな。Android ベースのOSだけれど GooglePlay からのアプリ取得はできない。
で、Amazon が独自にアプリダウンロード出来るようにしている。
433デフォルトの名無しさん (ワッチョイ 5f01-JEMU)
2022/09/24(土) 02:41:09.39ID:75jIGLYK0
結局、アメリカン・リスクがあるから、独自OSが必要ってことじゃないか。
434デフォルトの名無しさん (ワッチョイ 5f01-JEMU)
2022/09/24(土) 02:43:02.20ID:75jIGLYK0
>>432
あと数週間で日本でもWindows11でAmazonのアプリが使えるようになるらしいぞ。
435デフォルトの名無しさん (ワッチョイ 5f01-JEMU)
2022/09/24(土) 02:44:39.66ID:75jIGLYK0
ちなみに私はファーウェイのタブレット使ってたけどね。
ペンが使えるちょっといいやつ。
アメリカの規制以降、Androidは8から更新できないままになってた。
436デフォルトの名無しさん (ワッチョイ 23da-ibxr)
2022/09/24(土) 02:48:12.34ID:l1NUECho0
>>434
もう利用できるよ
ただAmazon App StoreではGoogle Playには到底及ばないので殆ど使われていない
437デフォルトの名無しさん (ワッチョイ 5f01-JEMU)
2022/09/24(土) 02:48:52.85ID:75jIGLYK0
アメリカからの独立を目指す政党が立ち上がればよいのだが。
438デフォルトの名無しさん (ワッチョイ 1263-tX/F)
2022/09/24(土) 02:49:48.78ID:Ohf7lvDf0
政治と宗教の話は食卓でするなってばっちゃが言ってた
439デフォルトの名無しさん (ワッチョイ 5f01-JEMU)
2022/09/24(土) 02:50:30.47ID:75jIGLYK0
>>436
うちにはまだ来てないぞ。
きさま、マイクロソフトの回し者だな?
440デフォルトの名無しさん (ワッチョイ 37b3-toBK)
2022/09/24(土) 02:51:18.33ID:GpR8CZ+m0
なんだ最後は他人任せか
「俺が独自OS作ってやるぜ!」とか「俺が政党を立ち上げるから支援してくれ!」とはならないのか?
でなきゃ「口だけなやつだな」で終わるぞ
441デフォルトの名無しさん (ワッチョイ 5f01-JEMU)
2022/09/24(土) 02:51:33.02ID:75jIGLYK0
朝鮮からの卒業、アメリカからの独立。
必要。
絶対。
442デフォルトの名無しさん (ワッチョイ 12ad-r4yT)
2022/09/24(土) 02:52:51.75ID:6vPOYH6k0
>>437
君が作れば良い。ていうかそういう政治団体なら既に沢山あるのでは?
443デフォルトの名無しさん (ワッチョイ 5f01-JEMU)
2022/09/24(土) 02:54:09.09ID:75jIGLYK0
>>440
私には私の持ち場があるので。
自分の持ち場を守る。
自分の立場では、中韓が主敵となる。
アメリカとは力の差がありすぎて同じ戦場に立つことすらできない。
444デフォルトの名無しさん (ワッチョイ 5f01-JEMU)
2022/09/24(土) 02:55:09.21ID:75jIGLYK0
>>442
他国の支援を受けていない政党は共産党しかないが、共産党はダメだ。
445デフォルトの名無しさん (ワッチョイ 5f01-JEMU)
2022/09/24(土) 02:57:45.28ID:75jIGLYK0
>>438
虫ケラとして生き抜く知恵だけど、もう無理じゃないの。
日本自体が無くなろうとしてるのに。
GDPがドイツに抜かれた。
8000万人しか人口ないのに。
446デフォルトの名無しさん (ワッチョイ 5f01-JEMU)
2022/09/24(土) 02:59:57.20ID:75jIGLYK0
自民党は統一教会の支援受けてるし、日本のために働くことが出来ない。
447デフォルトの名無しさん (ワッチョイ 12ad-r4yT)
2022/09/24(土) 03:04:02.31ID:6vPOYH6k0
>>444
じゃあ自分で作れ。
大丈夫。現実に1人で国政政党作っちゃった人も居るから。やってやれないことはなかろう。頑張れ。
448デフォルトの名無しさん (ワッチョイ 5f01-JEMU)
2022/09/24(土) 03:04:58.63ID:75jIGLYK0
>>447
蓮舫を育てようと思います。
449デフォルトの名無しさん (ワッチョイ 5f01-JEMU)
2022/09/24(土) 03:08:40.20ID:75jIGLYK0
国民ファーストの政治を必要とするなら、自分で政党を立ち上げなければならない。

これ、もはや国家崩壊してるでしょ。

主権が国民に無い。

主権者が統一教会になっちまってる。
450デフォルトの名無しさん (アウアウウー Sa43-Pu1F)
2022/09/24(土) 06:11:34.12ID:+qZ8jiZga
で、C言語話は…?
451デフォルトの名無しさん (ワッチョイ 1201-ut7I)
2022/09/24(土) 06:40:53.02ID:52DloiQc0
>>420
詳細知らんけどそれって単に契約のやり方がまずかったって話じゃねーの?
契約書に書いてないのに未来永劫パートナー契約し続けてもらえると思ってたなら頭おかしい
452デフォルトの名無しさん (ワッチョイ 2fc2-r4yT)
2022/09/24(土) 07:25:32.65ID:wr9kx4s90
書き込み順位&時間帯一覧
1 位/32 ID中 時間 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 Total
書き込み数 9 0 12 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23



使用した名前一覧 書き込んだスレッド一覧
デフォルトの名無しさん (ワッチョイ 5f01-JEMU)
デフォルトの名無しさん (ワッチョイ b701-JEMU [60.87.151.68])
C言語なら俺に聞け 159
【統計分析】機械学習・データマイニング32
453デフォルトの名無しさん (ワッチョイ 7f2c-i8Eu)
2022/09/24(土) 08:27:27.98ID:L5pk3riv0
東大・財務省が中華。
御用学者の浜田・伊藤などが、日本の借金が千兆円あると嘘を流して、
30年間緊縮財政を続けて、軍事費を減らした

だから、高橋洋一・三橋・中田敦彦・山本太郎などが、
借金は本当に千兆円あるのかとか、YouTube で言い出した

30年間で金融緩和をしたのは、安倍・黒田だけ。
だから円安になって、労働人口が増えた。
それが民主党・中華に都合が悪かった。それで暗殺された

NHK 党の黒川がNHKの討論番組で歌った歌がある
「安倍は、おじいちゃんの代からCIA」

安倍の祖父・岸信介はCIAだから、戦犯を許されて総理になった。
CIAが共産党と戦うために、文鮮明・統一教会と組んだ。
これが反共産主義の国際勝共連合

でも、また財務省が円安を嫌って、為替介入した。
これには米国・欧州もあきれた。
金融緩和して、0金利を続けているのに、それとは逆の円高にするの?w

岸田ロボットを操作している木原官房副長官も、東大・財務省だから中華。
楽天も中華資本が入ってる。
だから、ガーシーに叩かれている
454453 (ワッチョイ 7f2c-i8Eu)
2022/09/24(土) 08:46:42.89ID:L5pk3riv0
RAPT理論プラスアルファ
ガーシーは中共のハニトラ工作員!! NHK党は中国共産党の工作機関

YouTube に動画あるけど、
このデマには、さすがにNHK 党も怒って、この動画の謎の美人2人を訴えると言ってるw

これはラプト様を使っての、ロリ谷・木原の逆襲かも

むしろ、中華のハニートラップは林。
大王製紙の井川が、安倍から聞いたと言ってた。
たぶん、林はハニトラに掛かっていると
455デフォルトの名無しさん (ワッチョイ 929f-A/T8)
2022/09/24(土) 10:52:53.07ID:9ODShywE0
構造体のメンバー変数にstaticが書けなくてつらい悲しい

struct Hoge {
 static int x;
 static int y;
};
456デフォルトの名無しさん (ワッチョイ 1263-tX/F)
2022/09/24(土) 11:31:35.42ID:Ohf7lvDf0
>>455
それで何がしたいの?
457デフォルトの名無しさん (テテンテンテン MMde-0S4t)
2022/09/24(土) 11:39:11.29ID:uYCDlyGwM
C言語的には
int Hoge_x;
だな
C++的には::で繋ぐところを、Cでは_で繋ぐ
それでええやん
458デフォルトの名無しさん (ワッチョイ 1201-ut7I)
2022/09/24(土) 12:15:29.27ID:52DloiQc0
>>455
static struct Hoge hoge; じゃダメなの?
459デフォルトの名無しさん (ワッチョイ 9f69-tX/F)
2022/09/24(土) 12:49:54.31ID:OHRjm0Oh0
Java脳に3000ペリカ
460デフォルトの名無しさん (ワッチョイ 929f-A/T8)
2022/09/24(土) 13:02:23.00ID:9ODShywE0
もう覚えてないんだけど、countだけシングルトン風に管理したかったんだと思う。

struct Hoge{
 static int count;
 int data;
};

Hoge *hoge;
hoge=malloc(sizeof(Hoge)*n); // dataは配列

Hoge.count // countはシングルトンっぽく
461デフォルトの名無しさん (ワッチョイ 1201-ut7I)
2022/09/24(土) 13:27:17.87ID:52DloiQc0
>>460
ああなるほど、やりたくなる気持ちはわかるし実装もそんなに難しくはないように思う
ただそんな要望がどれだけあるかと言うと...
462デフォルトの名無しさん (ワッチョイ 5f01-JEMU)
2022/09/24(土) 13:35:25.97ID:PoJJisuz0
>>453
10年以上かけて、ドイツにGDPを追い抜かれるんだから、アベノミクスは大失敗だよ。

専業主婦だった人はもとより、70歳以上の人まで働いてるんだよ。
そこまでして、国際的地位が落ちて行ってる。

これはもう、力の差を認めて、地道に教育に力を入れるしかない。
30年後の復活を目指して。
463デフォルトの名無しさん (ワッチョイ 5f01-JEMU)
2022/09/24(土) 13:38:33.45ID:PoJJisuz0
女性や老人を働かせたことで、子供を見る人が居なくなり、出生率がさらに低下してる。
20年後の見通しもさらに悪化した。
464デフォルトの名無しさん (テテンテンテン MMde-0S4t)
2022/09/24(土) 17:34:53.08ID:uYCDlyGwM
>>461
いや実装は無理だろw
mallocしてんのに、一部分だけ共有するんだぞ
もっとデカイ単位なら仮想記憶のトリックで可能だろうけど
465デフォルトの名無しさん (テテンテンテン MMde-0S4t)
2022/09/24(土) 17:38:47.80ID:uYCDlyGwM
Cにnew演算子を導入するところから始めないといけないから、変更点がデカすぎる
466デフォルトの名無しさん (ワッチョイ 12ad-r4yT)
2022/09/24(土) 17:40:47.15ID:6vPOYH6k0
count だけポインタにして初期化の時に static の変数へのポインタ入れておけば良いんじゃね?
467デフォルトの名無しさん (ワッチョイ 1201-ut7I)
2022/09/24(土) 18:01:09.93ID:52DloiQc0
>>464
static の変数は静的領域に割り付けてそれ以外の変数だけをヒープやスタックに確保するだけでいいだろ
>>460 の例なら
static int _Hoge_count;
struct Hoge{
 int data;
};
みたいな感じ
まあインスタンスを生成してないのにcount が割り付けられるのは気持ち悪いとかあるけど
468はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-tX/F)
2022/09/24(土) 18:16:51.56ID:2HWwrIyG0
要するに C++ でやってるみたいに出来ればいいねという話だろう。
構造体を名前空間の一種としても使うとなるとマングルが必要になるから割と面倒な話だと思うよ。
469デフォルトの名無しさん (ワッチョイ 2701-tX/F)
2022/09/24(土) 18:20:14.80ID:5HKoejah0
>>460
C言語のstaticの意味を他の言語と勘違いしてるっぽい
470デフォルトの名無しさん (ワッチョイ 1263-tX/F)
2022/09/24(土) 18:22:42.35ID:Ohf7lvDf0
そこはC言語固有のキーワードではなく
言わんとするところをくみ取って許してやろう
471デフォルトの名無しさん (ワッチョイ 2701-tX/F)
2022/09/24(土) 18:38:39.89ID:5HKoejah0
そっか
472デフォルトの名無しさん (ワッチョイ 1201-ut7I)
2022/09/24(土) 19:23:44.32ID:52DloiQc0
>>469
関数内のstatic変数みたいな奴ってことだろ
473デフォルトの名無しさん (ワッチョイ 1263-tX/F)
2022/09/24(土) 19:29:04.02ID:Ohf7lvDf0
配列メンバーなのに実体は一つしかないという
474デフォルトの名無しさん (ワッチョイ 9fe6-+bWc)
2022/09/24(土) 19:46:39.53ID:BVPc12jD0
>>425
ふむふむ、なるほど、複雑怪奇な仕様をねじ込むことで、より簡単な処理まで改善される、という理解でいいですか?
475はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-tX/F)
2022/09/24(土) 19:57:09.98ID:2HWwrIyG0
>>474
複雑かどうかは重要じゃない。
対応せざるを得ない状況を押し付けるってことだよ。
476デフォルトの名無しさん (ワッチョイ 0202-LaAE)
2022/09/25(日) 01:07:06.13ID:97XvxZke0
>>431
Huawei App GalleryはAppleストアやGoogle Playを凌ぐ世界最大市場らしいが、少し考えれば当たり前の事だけど
かくいう俺のHuawei製スマホにはHuaweiとPlay両方入ってた、まあ日本向けアプリはPlayの方が充実してるのであまり使ってない
477デフォルトの名無しさん (US 0Ha7-+bWc)
2022/09/25(日) 10:40:52.48ID:fwqkSCspH
>>475
うふふ、絵文字は各国ともやりたがっているので絵文字には対応せざるを得ない、すると漢字にも完璧な対応を強いられる、ってことですか、策士ですねえ‥‥
478デフォルトの名無しさん (ワッチョイ 3710-tX/F)
2022/09/25(日) 11:23:47.11ID:LohnzUwr0
unicodeのハングル文字登録で揉めたって聞いたけどどう決着ついたのかな。
479デフォルトの名無しさん (テテンテンテン MMde-0S4t)
2022/09/25(日) 13:10:20.12ID:5FaXssIeM
>>477
それが完璧にはならんのよ
東アジアの文字幅(East Asian Width)問題がある
ただ色々ワークアラウンドが有るからなんとかなる事が大半
480デフォルトの名無しさん (ワッチョイ 2701-tX/F)
2022/09/25(日) 13:14:31.77ID:weLer2R50
生後6ヶ月以上4歳以下もワクチン打たないと駄目だぞ
https://www.mhlw.go.jp/content/000985239.pdf
481デフォルトの名無しさん (ワッチョイ 2701-tX/F)
2022/09/25(日) 13:15:17.92ID:weLer2R50
すまん誤爆した
482デフォルトの名無しさん (ワッチョイ b35f-4fyb)
2022/09/25(日) 20:31:15.08ID:g7GNUN1K0
>>340
そういう話ではない。外国人に対して見慣れない表現を使うのは古臭い。
483デフォルトの名無しさん (ワッチョイ b35f-4fyb)
2022/09/25(日) 20:35:04.13ID:g7GNUN1K0
>>344
それは単に日本語みたいな言語が世界の主流ではないから起こる現象。

半角のカナ文字だと濁点、半濁点はそれだけで1文字になる。

英語で日本語を打つときは濁音、半濁音記号を文字として打つ方が楽なのでそうしていることがある。
484デフォルトの名無しさん (ワッチョイ b35f-4fyb)
2022/09/25(日) 20:38:08.74ID:g7GNUN1K0
>>375
その数字と記号の融合表現は日本語独特のものだから。

英語圏はタイプライターの流れを受け継いでいる。
タイプライターだとたくさんの文字には対応できなかった。
485デフォルトの名無しさん (ワントンキン MM42-ut7I)
2022/09/25(日) 20:40:05.44ID:ffdbvYikM
ウムラウトみたいな扱いでよかったな
486デフォルトの名無しさん (テテンテンテン MMde-0S4t)
2022/09/25(日) 21:43:25.78ID:N2ZwTqP1M
>>483
役所とかでフリガナ振る時、升目が有ると濁点を1文字として書いちゃうからな
そういう時に「か゛」みたいのに対応してるのは助かるのだろう
Unicodeはちゃんと1文字として表示してくれる
ま、しょうもない文化だよw
487デフォルトの名無しさん (ワッチョイ 1263-tX/F)
2022/09/25(日) 22:22:02.29ID:sgDwh9fo0
○の中にアラビア数字
別に違和感感じないと思うけどな
488デフォルトの名無しさん (ワッチョイ 7236-tX/F)
2022/09/25(日) 22:23:46.38ID:DPfmU3jJ0
①②・・・ああ、機種依存文字だから使うな!と言ってた時代があったなぁ。
489デフォルトの名無しさん (US 0Ha7-+bWc)
2022/09/25(日) 22:25:44.57ID:eY/sWScXH
黒丸に白抜きで1~199
白丸に黒字で1~199
も準備してほしいなあ
490デフォルトの名無しさん (ワッチョイ 1263-tX/F)
2022/09/25(日) 22:27:37.06ID:sgDwh9fo0
アルファベットにアンダーライン入れるなんて普通にやってたけどな
491デフォルトの名無しさん (ワッチョイ 1263-tX/F)
2022/09/25(日) 22:38:12.24ID:sgDwh9fo0
LaTeXだと、これで○内に文字入れられる

\ajMaru{1}、\ajMaru{100}、\ajMaru{101}
492デフォルトの名無しさん (ワッチョイ b35f-4fyb)
2022/09/25(日) 23:05:05.48ID:g7GNUN1K0
>>487
それは日本で生まれ育って、ずっと日本にいるから。
493デフォルトの名無しさん (ワッチョイ b35f-4fyb)
2022/09/25(日) 23:06:50.59ID:g7GNUN1K0
>>488
それむしろ逆で、外国とのやり取りの際は、避けるのがいまの主流。

日本語事情に詳しくない外国人にとっては、丸囲みのニュアンスがわからない。
494デフォルトの名無しさん (ワッチョイ b35f-4fyb)
2022/09/25(日) 23:07:39.55ID:g7GNUN1K0
>>490
それ文字として分ける必要がないだろうに
495デフォルトの名無しさん (ワッチョイ 1263-tX/F)
2022/09/25(日) 23:10:54.01ID:sgDwh9fo0
丸数字も同じでしょう
アラビア数字の修飾なんだから
496デフォルトの名無しさん (ワッチョイ 1263-tX/F)
2022/09/25(日) 23:12:36.12ID:sgDwh9fo0
漢数字を丸囲みしたら、それは読めないかもしれないが
中味は万国共通のアラビア数字なんですよね
ローマ数字なんかよりは遙かに分かりやすいでしょう
497デフォルトの名無しさん (ワッチョイ 1263-tX/F)
2022/09/25(日) 23:13:51.02ID:sgDwh9fo0
避けるのが今の主流って言う根拠示せますか?
498デフォルトの名無しさん (ワッチョイ 1263-tX/F)
2022/09/25(日) 23:14:39.94ID:sgDwh9fo0
独自主張としか見えないんですよね
499デフォルトの名無しさん (ワッチョイ 1201-ut7I)
2022/09/25(日) 23:38:41.08ID:PDKGWlWe0
>>497
今と言うか昔から海外の資料で丸付数字なんて見たことない
って言うのは理由にならんか?
500デフォルトの名無しさん (ワッチョイ 1263-tX/F)
2022/09/25(日) 23:48:49.59ID:sgDwh9fo0
ならないでしょ
501デフォルトの名無しさん (ワッチョイ 1263-tX/F)
2022/09/25(日) 23:54:40.36ID:sgDwh9fo0
使われていないということと
避けるのが今の主流という主張では、
開きが大きすぎる
使ってはいけないものなら、
国際化される際に却下されても良いでしょう
ウムラウト等のアクセント記号も使ってはいけなくなりそう
英文字のアンダーラインと同様アラビア数字の修飾と受け取れば良いのでは
502デフォルトの名無しさん (ワッチョイ 1263-tX/F)
2022/09/25(日) 23:58:01.58ID:sgDwh9fo0
特に異議がなければ、スレ違いですので、私はこの話題は止めたいと思います
続けるまら、この板の文字コードスレに移動した方が良いと思います
503デフォルトの名無しさん (アウアウウー Sa43-a1Je)
2022/09/26(月) 14:23:54.07ID:heiSJ5NKa
よほど埋めたい話題が100レス以上前に
504デフォルトの名無しさん (ワッチョイ b35f-4fyb)
2022/09/26(月) 18:48:56.08ID:4uVE3Hdr0
>>497
日本のグローバル企業は、PCですら英語キーボードで統一している。

ファーストリテイリング社は日本でもすべて英語キーボード。

日本語、英語、中国語が社内公用語で、日本語特有の文字は使わない。
505デフォルトの名無しさん (ワッチョイ b35f-4fyb)
2022/09/26(月) 18:51:46.46ID:4uVE3Hdr0
>>502
あのさ、英語のドキュメントや、英語のマニュアルが原文の日本語で①や②なんて見たことねえだろ?

しかも丸で囲むことにたいした意味がない。
①だったら、1. と書けばいい。
506デフォルトの名無しさん (ワッチョイ 429b-+bWc)
2022/09/26(月) 19:13:51.47ID:m6MfDOb60
>>505
>>499 が実現すると記譜が書けるようになるんですけど
507デフォルトの名無しさん (ワッチョイ 16b0-r4yT)
2022/09/26(月) 22:51:14.79ID:n/I9g/yq0
>>504
使う文字とキーボードってほとんど関係ないんじゃ?
508デフォルトの名無しさん (ワッチョイ b35f-4fyb)
2022/09/27(火) 19:09:28.93ID:fEa3QAEE0
>>507
じゃあ、英語のキーボードで日本語の記号をどれだけ変換なしで入力できるか、やってみて感想を書いてくれ。
509デフォルトの名無しさん (ワッチョイ b35f-4fyb)
2022/09/27(火) 19:10:46.89ID:fEa3QAEE0
英語のキーボードはとにかくキーが少ないから苦労するよ。


アプリケーションのショートカットキーも日本語版と英語版のアプリケーションで違ったりもする。
510デフォルトの名無しさん (ワッチョイ 1263-tX/F)
2022/09/27(火) 19:20:01.90ID:lyt7emen0
英語キーボードで、ドイツ語のsや、フランス語のcってどうやって入力するんだろう

変換無しで頼む
511デフォルトの名無しさん (ワッチョイ 1263-tX/F)
2022/09/27(火) 19:33:24.39ID:lyt7emen0
ちゃんと貼り付いてなかった

ドイツ語のエスツェット(βに似ている奴)、フランス語のシーセディーユ(ヒゲのあるC)
それぞれの国用キーボードだと入力は簡単なんだろうが
512デフォルトの名無しさん (ワッチョイ 16b0-r4yT)
2022/09/27(火) 21:09:33.13ID:/UUTRmF20
>>508
変換なしって、カナ入力か?使ったことないからわかんないや。
というか、漢字の入力でさえ変換が必要なのにそんな変な縛りを入れる意図はなんだろう。
513デフォルトの名無しさん (ワッチョイ 9202-XjGR)
2022/09/27(火) 22:52:29.05ID:6x+L03Z70
ctrlなんとかで打つか
記号や数字のキートップを犠牲にしているようですね
514デフォルトの名無しさん (ワッチョイ 5f01-tX/F)
2022/09/28(水) 11:46:12.53ID:3agmovDa0
>>510,511

ß "s-zet" (ß): Hold down "control" and press the ampersand (&) (i.e. Shift + 7)
Cédille (ç), type ' then c. Circonflexe (ê), type ^ (shift + 6) then e. Tréma (ö), type ” (shift + ') then o. To type French quotation marks « » use ctrl + alt + [ and ], respectively.
515デフォルトの名無しさん (ワッチョイ 96bb-JEMU)
2022/09/28(水) 21:52:38.01ID:rizFYsT00
スレチだったら申し訳無いんですが…
WinFormsやQt、WindowsOSのエクスプローラといったGUIのコントロール(ボタンやテキストボックス等)って
一般的にどの程度のインターバルでユーザの入力を監視しているものなんでしょうか?
モニターのリフレッシュレート?60Hzとか決め打ち?
516デフォルトの名無しさん (ワッチョイ 37b3-toBK)
2022/09/28(水) 22:06:07.08ID:FwwpeUCX0
1文字キー入力するとイベントが発生するので1文字毎じゃないの?
そういう話じゃなくて?
517デフォルトの名無しさん (ワッチョイ 527c-tX/F)
2022/09/28(水) 22:35:53.49ID:Jk2txA1W0
ゲームじゃないんだからフレームレート毎の判定になんて普通はならない
(大昔のゲームならボタンなどが押されたか判断する為に、レジスタをVBlank中にチェックするみたいなのはあった)
>>516が言う通り、OSがキーイベントが発生してGUI部品にも伝播されるからOSの処理に依存しているという感じかと
もっと細かく言えば、キーボードを押されると割込みが発生してOSがそれを処理し
該当のウィンドウのイベントキューにキーイベントを設定するみたいな流れかと思う
ボタンなどは大体が親ウィンドウから伝播される流れかと思う
518はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-tX/F)
2022/09/28(水) 22:37:47.62ID:koSj9wX00
>>515
昔のデバイスではハードウェア割込みを使っていたが USB はホスト側からのポーリングが必要で、ポーリング周期は 1 ミリ秒。
監視の周期は 1 ミリ秒といえると思う。
私も詳しいことは知らんから規格を読んで。
519デフォルトの名無しさん (ワッチョイ 96bb-JEMU)
2022/09/28(水) 23:04:30.86ID:rizFYsT00
画面の更新とは独立して検知しているんですね。
レスくれた方ありがとうございます。
520デフォルトの名無しさん (ワッチョイ 1263-tX/F)
2022/09/28(水) 23:08:09.59ID:TpKsshQJ0
このスレは言語だけでなくハードにも詳しい人がいるから面白い
521デフォルトの名無しさん (テテンテンテン MMd2-0S4t)
2022/09/29(木) 00:10:32.04ID:SSQ+XiTZM
Linuxでマウスのポーリング間隔を計測したら124Hzだった
かなりの高頻度でポーリングしてんだな
USB3.0ポートに繋いでるからかもね
安もんマウスなんで高頻度過ぎて多分無意味w
522デフォルトの名無しさん (ワッチョイ 175f-Wb48)
2022/09/29(木) 02:33:05.99ID:LGluMbhi0
ここで聞いていいかわからないんですが、↓こういうことをCでできますか?
https://ideone.com/TqQjef
func1〜3を並列で動かしたいということです。
おかしな質問だったらごめんなさい。
523デフォルトの名無しさん (ワッチョイ 4b9f-A/T8)
2022/09/29(木) 03:21:58.53ID:A75TDx2R0
字面通りの仕様ならばFIFO QueueとThreadかな。あと排他制御も必要。
C++にはdequeというのがあるがC言語には無いのでFIFO Queueは自作。
threadとmutexはpthreadにある。

そもそも並列処理にする必要があるのかという疑問。
524デフォルトの名無しさん (スッップ Sd32-qV4f)
2022/09/29(木) 07:11:32.06ID:u1XdWODdd
その用途にdequeはあんまり使いたくない
525デフォルトの名無しさん (ワッチョイ 175f-Wb48)
2022/09/29(木) 10:55:30.48ID:LGluMbhi0
>>523
なるほど、マルチスレッドならできそうですね。
ありがとうございました。
526デフォルトの名無しさん (テテンテンテン MMd2-0S4t)
2022/09/29(木) 11:36:57.56ID:coJQxMplM
1reader 1writer なら、ロックの要らないリングバッファが有るからそれ使えば簡単
527デフォルトの名無しさん (ワッチョイ b35f-4fyb)
2022/09/29(木) 20:52:44.75ID:JJSkrqV80
>>515
それ機械的な割り込みのことを聞いているのか?
528デフォルトの名無しさん (ワッチョイ b35f-4fyb)
2022/09/29(木) 20:58:02.77ID:JJSkrqV80
出力と入力が同じようなものと思うの発想が斬新だなw
529デフォルトの名無しさん (ワッチョイ 1201-ut7I)
2022/09/29(木) 21:32:48.50ID:mQhfaXoY0
V-Sync割り込みとかで止まってる爺かも
530デフォルトの名無しさん (ワッチョイ 1263-tX/F)
2022/09/29(木) 23:05:54.85ID:A5fNHdBh0
HALTして割り込みで復帰が普通
531デフォルトの名無しさん (アウアウアー Sa6e-4fyb)
2022/09/30(金) 03:14:55.05ID:iZ78CqR8a
質問者はキーボードやマウスなど入力と、画面の表示が一緒だと思っているようなコンピューターオンチだ。

画面はパラパラアニメだということもわかっていない。
アニメや映画の仕組みもわかっていないレベル。 
532デフォルトの名無しさん (アウアウアー Sa6e-4fyb)
2022/09/30(金) 03:21:25.79ID:iZ78CqR8a
ハードウェアよりBIOS、BIOSよりOSが低レベルを担っていると思うのは、すべてが逆だよな。

日本人は機械がなくてもWindowsがあれば、掃除機が出現すると思うレベルまでITオンチが進んだのか。

とにかくおそろしい。
533デフォルトの名無しさん (スッップ Sd32-qV4f)
2022/09/30(金) 07:11:56.10ID:8MIWcIcdd
通販?
534デフォルトの名無しさん (オッペケ Sr47-XjGR)
2022/09/30(金) 09:18:49.43ID:gcn5oswqr
>>518
http://www.kumikomi.net/archives/2007/03/22usb1.php?page=5
本家あたるのはしんどいので、似たところでこれか
USB の電線上では 1ms(125us) だけど
USBホストコントローラから CPUへ割り込みの発生もやってるっぽい (ホットプラグ関連)
535デフォルトの名無しさん (ワッチョイ 2f97-5djn)
2022/09/30(金) 18:40:09.67ID:J+iH2myB0
一部のゲームだとOSから発生したマウスイベントを処理するんじゃなくてゲームのメインスレッドでボタン押下をチェックしてボタン押下の処理をすることもあるし、
質問者がそう思うのも不思議じゃないかな。
普通のGUIフレームワークじゃイベントはキューに貯まると思うけども。
536デフォルトの名無しさん (テテンテンテン MMd2-0S4t)
2022/09/30(金) 20:39:03.45ID:wR7Vqe0SM
家庭用ゲーム機の場合は入力をポーリングしてる気がしないな
ゲームコード側から1/60秒毎に要求が有るからそれに対応すれば良いだけだし
ま、確証は無いけどね
537デフォルトの名無しさん (ワッチョイ 2f97-5djn)
2022/09/30(金) 20:54:41.19ID:J+iH2myB0
実際処理落ちするとフレームが更新されるまでボタンを押し続けないと駄目なゲームって結構あるでしょ。そういうことだよね。OpenGLなんかでプログラム書くと普通にグラフィック更新とキー処理なんかは同じスレッドでするしね。
普通のGUIアプリでもOSのカーネルタスクがめちゃくちゃ重くなるとキー入力を取りこぼしたりするのは、ポーリングが人間の入力に間に合ってないからだと思うな。遅れるわけじゃなくて初めと最後だけ入力されたりとかする。
538はちみつ餃子 ◆8X2XSCHEME (ワッチョイ e33e-pIDl)
2022/10/01(土) 01:21:56.84ID:yMZ0QeEO0
アプリケーションレイヤでの話としては Windows のコントロールは基本的にメッセージを介した非同期的な
処理なので周期もくそもないんだけどこのスレに現れて GUI フレームワークの知識があるくらいの人 (>>515) が
イベントドリブンの理念を知らないなんてことあるだろうか?
根本的な勘違いをしているのか質問が下手なのか。
どういう事情があってこういう質問をしたのか気になる。

一応はある瞬間に状態を取得する API (GetAsyncKeyState) もあってゲームとかではそれを使うこともあるが……
その場合にはディスプレイのフレームレート (というかそのソフトで画面を書き換える頻度) 以上の頻度で読んでもあまり意味がないから
フレームレートに合わせるということはあるかもしれんね。
539デフォルトの名無しさん (ワッチョイ 7f36-pIDl)
2022/10/01(土) 01:42:40.84ID:QBMbIy+T0
ある8bitPCのBASICでVsync割り込み時にキーボード信号読み取ってたの思い出した。
(INPUT、INKEY$等キーバッファ関連用)
540デフォルトの名無しさん (ワッチョイ ff7c-pIDl)
2022/10/01(土) 01:53:45.14ID:6Ogoexfu0
ファミコンやスーパーファミコン時代はVSync割込みが始まってVBlank期間内に
あらゆるレジスタの入出力をしないといけないので、キー関連はそのタイミングで取得して
内部の特定ワークに保存(一つ前の情報も残しておいて押しっぱなしかどうかの判断も出来るようにする)してた
最近だとUnityでもキーの状態を取得する処理があるので
ゲームだと処理タイミングの時点で取得も普通にあるという事なのだろう
541デフォルトの名無しさん (ワッチョイ 23c2-ufYE)
2022/10/01(土) 09:29:35.56ID:k1H7sgVC0
陰気$
陰茎$
542デフォルトの名無しさん (ワッチョイ f35f-7Wg9)
2022/10/01(土) 14:27:53.39ID:AfDQiB090
>>535
それDirectXとかの場合でしょ?、
543デフォルトの名無しさん (スッププ Sd1f-o6p2)
2022/10/02(日) 14:33:41.09ID:HMtDa2gtd
>>540
ハードウェア上の要求というより
画面上のキャラが1単位動く間に2回以上キー入力できても意味がないから…

ゲームセンターあらしではパックマンのモンスターが1/60秒に一回しか動けないことを見きってそれ以上の速度で動いてかわしてたっけなw
544デフォルトの名無しさん (テテンテンテン MM1f-57Au)
2022/10/02(日) 17:08:59.14ID:6R54+eoOM
炎のコマw
自機だけ超速で動かすとか、絶体不可能なのはちょっと考えれば分かる事だが、子供の頃は夢中になって読んでたな
平和な時代だった
545デフォルトの名無しさん (スッップ Sd1f-k0mY)
2022/10/03(月) 07:25:12.33ID:W4n4sBc4d
高橋名人は16連射してたけど、1ギガ連射位すれば高周波で誤動作させたりできるんじゃね? 知らんけどw
546デフォルトの名無しさん (ワッチョイ 7f36-8eI1)
2022/10/03(月) 08:42:36.89ID:Bt9ktXpd0
某レースゲームは画像は60fpsでも内部では120fpsだか240fpsで処理(挙動計算?)
してるってインタビューあったわ。

当時はすげぇと思ったけど、PCの場合モニタのフレーム数(60/144Hzの違いとか)によって挙動(操作感覚)
が変わるの防ぐには必要な仕様なんだと思った。
547デフォルトの名無しさん (ワッチョイ e314-5PZ2)
2022/10/03(月) 09:27:43.78ID:f3Oj1zc00
この話に標本化定理って関係ある?
548デフォルトの名無しさん (アウアウウー Sa27-G9OZ)
2022/10/03(月) 11:06:24.59ID:BGisZcina
>>515
ポーリングじゃなくてハードウェア割込みでメッセージキューに入るんだろ
敢えてポーリングってことで言うならメッセージループディスパッチャを回す速度に依存
549デフォルトの名無しさん (アウアウウー Sa27-G9OZ)
2022/10/03(月) 11:12:07.71ID:BGisZcina
>>534
USBじゃなくて受信機がUSB接続のリモコンとか
bluetoothの可能性もあるな
550デフォルトの名無しさん (ワッチョイ 2369-7uza)
2022/10/03(月) 14:41:28.96ID:ZBLf3Dcq0
>>549
(Windowsで)キーボード・マウスの HIDドライバがどういうことやってるか調べることになりそうだな
イベントドリブンになってるのか、テーブル更新しつつ親元でポーリングしてもらうのか
551デフォルトの名無しさん (テテンテンテン MM1f-57Au)
2022/10/03(月) 16:42:09.20ID:wqwjoJ6ZM
>>546
物理エンジンは1フレーム内でほんのちょっとずつ動かしながら何10回も計算するよ
現実を模倣するには無限大回数計算しないといけないけど、コンピューターでそんなこと不可能だし、floatの精度の問題も有るから適当なところで妥協しないといけない
その辺が工夫のしどころなんだろう
552デフォルトの名無しさん (スッププ Sdff-o6p2)
2022/10/03(月) 19:18:57.51ID:wjyAL9fYd
その最少単位をフレームと呼ぶんじゃないかね
553デフォルトの名無しさん (ワンミングク MM9f-A0fl)
2022/10/03(月) 19:24:43.86ID:vUZPctIIM
処理回数なんてメインループのsleep(0.1)をsleep(0.05)にするだけじゃね
554デフォルトの名無しさん (テテンテンテン MM1f-57Au)
2022/10/03(月) 23:10:54.51ID:i+Hjk1b8M
>>552
いや、1/60秒は余りにも刻みが粗すぎる
もちろん表示するのは1/60秒の1フレーム単位だけど
555デフォルトの名無しさん (スッププ Sdff-o6p2)
2022/10/04(火) 06:12:56.51ID:zVvu+tPFd
1/60が「フレーム」じゃないぞ
556デフォルトの名無しさん (ワッチョイ f35f-7Wg9)
2022/10/04(火) 17:12:48.24ID:yz9a92LC0
画面表示の仕組みを知らないやつは延々と変なことを言い続けるんだろうな
557デフォルトの名無しさん (スッププ Sd1f-o6p2)
2022/10/04(火) 17:45:25.41ID:aM4Np9N0d
昔は単純だったな
1/60か1/30程度の違いしかなかった
今では画面リフレッシュ・画面レンダリング・ゲームメインのすべてフレームレートが違うこともあり得る
558デフォルトの名無しさん (ワッチョイ 435f-kE2G)
2022/10/04(火) 19:20:23.55ID:HRzr8cMv0
https://ja.wikipedia.org/wiki/%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AC%E3%83%BC%E3%83%88
フレームレート (Frame rate)は、動画において、単位時間あたりに処理させるフレームすなわち「コマ」の数(静止画像数)を示す、頻度の数値である[1]。
559デフォルトの名無しさん (ワッチョイ f35f-7Wg9)
2022/10/05(水) 15:02:45.22ID:e4u4SFLE0
>>557
そういう話ではない
560デフォルトの名無しさん (ワッチョイ ff63-pIDl)
2022/10/05(水) 15:08:40.11ID:j989iulk0
ここはC言語のスレなんだから、もうちょっとC言語寄りの話題に
561デフォルトの名無しさん (アウアウウー Sa27-G9OZ)
2022/10/07(金) 12:25:51.07ID:d4ub3t4La
最小tickがOSのAPIに依存する件
(というか関数毎に違うよね)
562デフォルトの名無しさん (スッップ Sd1f-o6p2)
2022/10/07(金) 16:55:04.09ID:/XW0Ok67d
APIは単に最少論理単位を定義してるだけで実際の最少単位はOSバージョンやハード構成によって変わるはず
563デフォルトの名無しさん (スッップ Sd1f-o6p2)
2022/10/07(金) 16:57:21.35ID:/XW0Ok67d
>>558
>CGの用語では、この処理レートを「フレームレート」と呼ぶ場合があったため、混乱が生じた。
564デフォルトの名無しさん (アウアウクー MM47-7Wg9)
2022/10/07(金) 22:30:13.84ID:XEr8QNZEM
VRAMにあるデータを決まった間隔でモニターに表示する。

VRAMのデータの書き換え速度はビデオボードによる。

C言語そのものは画面表示の速度の規約がない。

C言語は画面表示のライブラリすら持っていない。
565デフォルトの名無しさん (ワッチョイ cb01-Phf8)
2022/10/08(土) 04:40:32.95ID:M3iYd9Ol0
日本が世界に誇るハイレゾリューション VGA 640x480 60 Hz インタレース。
日本の技術は世界一。
566デフォルトの名無しさん (ワッチョイ 03b3-3fXN)
2022/10/08(土) 10:43:30.99ID:PvpQyv2P0
おじいちゃん、その昔話は耳にタコが出来るくらい聞いたわよ(´・ω・`)
567デフォルトの名無しさん (スッップ Sdea-of8B)
2022/10/08(土) 12:19:20.81ID:ZnjC3ipUd
PC98やファミコン時代の話は誰も求めてないだろw
568デフォルトの名無しさん (ワッチョイ 0a97-52T8)
2022/10/08(土) 13:35:27.64ID:bICsKedU0
MSXは?
569デフォルトの名無しさん (ワッチョイ caad-zauZ)
2022/10/08(土) 20:16:07.42ID:ymYjs6gE0
>>565
PC-9801 は 640x400 じゃなかったかな?
640x480 の VGA は IBM-PC の方だからアメリカでは?
570デフォルトの名無しさん (ワッチョイ ca63-kHT+)
2022/10/08(土) 20:26:05.65ID:0FC8+6ie0
IBM-PC 最初の頃の規格だとCGAで80x25、640x200だったような
8000シリーズでもこれに合わせてたような
VGAはPS/2あたりから出てきたんじゃなかったかな
EGA, MCGA, VGA, SVGA, XGAとか、色々あったっけな
571デフォルトの名無しさん (ワッチョイ dbc2-zauZ)
2022/10/08(土) 21:21:27.32ID:HMr71tmI0
>>569
だよな
98は400を「超高解像度」と言ってたw
572デフォルトの名無しさん (テテンテンテン MM86-j/Y8)
2022/10/08(土) 22:15:12.93ID:ZFrVAqsjM
VGAと言ったら320x200だな
1ドット1バイトなので丁度64KBになって、16bitコードがリニアにアクセス出来た
ただ、1ドットが正方形じゃないので、正方形のMode X(320x240)を使うにはDOSエクステンダーが必要だったな
573デフォルトの名無しさん (スッップ Sdea-of8B)
2022/10/08(土) 23:35:22.44ID:+S45qfPzd
>>572
どーでもいいことだが
聞き捨てならんw
320x200は65536じゃねーよw
574デフォルトの名無しさん (ワッチョイ ca63-kHT+)
2022/10/08(土) 23:45:07.70ID:0FC8+6ie0
じゃあ、PC8001 はVGAだったんだな
575デフォルトの名無しさん (ワッチョイ aa36-kHT+)
2022/10/08(土) 23:49:08.81ID:uyhPMEAG0
画面に表示されない、VRAMの余り部分はCG用ワークエリアに使われることが多い。
88とかは1プレーンに16Kバイト用意されてるけど、表示されるエリアは640ドット(80バイト)x200ラインで16000バイト。
あまった384バイトを使って背景とキャラを重ね合わせ描画をして表示エリアへ転送とかやってた。


話をプログラム寄りにもどして、
ゲームでCG表示が他ゲーより余りに遅いの見かけると、
CG周りをアセンブラじゃなくてC等の高級言語で書いてるんじゃないかと邪推してた。
576デフォルトの名無しさん (ワッチョイ caad-zauZ)
2022/10/08(土) 23:52:19.01ID:ymYjs6gE0
縦が200ドットというのはNTSCでの出力の都合だろうな。
577デフォルトの名無しさん (テテンテンテン MM86-j/Y8)
2022/10/09(日) 00:46:24.07ID:MI3uCIAzM
>>573
丁度じゃなかったw
ま、64KB以内ということで
578デフォルトの名無しさん (ワッチョイ caad-zauZ)
2022/10/09(日) 04:58:58.93ID:PpV7AUpt0
そういや昔インターレースなのを利用して400ドットを表示するなんてことやってなかった?
チラチラして見れたもんじゃないが一応表示はされるという。
579デフォルトの名無しさん (ワッチョイ ca01-52T8)
2022/10/09(日) 06:16:13.64ID:pElHhn0J0
>>578
Basic Master Level 3 かな
かな文字表示のためにインターレース表示しててチラつき防止のために専用の長残光ディスプレイがあった
580デフォルトの名無しさん (スプッッ Sd8a-S1ha)
2022/10/09(日) 11:31:59.17ID:ktekxUQbd
わー懐かしい
カーソル点滅が速くて仲間内でハイフラって呼んでた
581デフォルトの名無しさん (ワイーワ2 FF82-fdnK)
2022/10/09(日) 15:31:02.03ID:ER77cUawF
PC98でラスター480表示するTSRも存在した希ガス
582デフォルトの名無しさん (ワッチョイ ca63-kHT+)
2022/10/09(日) 16:21:41.40ID:bJ7Ye0Ve0
26行計画だっけか?
表示エリアの外に表示しますってプログラムがあったね
583デフォルトの名無しさん (スッップ Sdea-S1ha)
2022/10/09(日) 16:56:05.30ID:Rj5ElR5Pd
30行計画
584デフォルトの名無しさん (スッップ Sdea-S1ha)
2022/10/09(日) 17:07:00.15ID:Rj5ElR5Pd
FDDのオーバートラック
286のHMA
CRTCをプログラムでハード破壊
なんか、こういうの色々あったな
585デフォルトの名無しさん (ワッチョイ 3abd-ehet)
2022/10/09(日) 20:59:59.12ID:x4NHwN4o0
C言語ってパソコンの内部まで理解してないとムズイ?
メモリがどうとかクロック数が幾つとか
586デフォルトの名無しさん (ワッチョイ ca01-52T8)
2022/10/09(日) 21:14:06.38ID:pElHhn0J0
>>585
> メモリがどうとかクロック数が幾つとか
そんなものは知らなくても組めるけどそもそもC言語使う必要あるのか?
587はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cb3e-kHT+)
2022/10/10(月) 00:47:38.73ID:95zl+JNn0
>>585
C の言語仕様は言語仕様上で規定する仮想的な機械の挙動として記述されていて
現実の処理系がどのような機械語を生成するのかは規定してない。
見かけ上の挙動が仕様通りならどういう機械語が生成されてもよいことになってる。
現代的な処理系はすごく高度な最適化をするのでどういう機械語が生成されるのか事前に想像するのは難しいし。

どうしてもすごく高速に動いてほしいプログラムを気合い入れてチューニングしたりする場合には
ハードウェアの知識が必要になることも有るし、
他の言語との接続が必要なときにはメモリの管理方法を協調させないとおかしなことになったりもするけど
結局のところやりたいこと次第だし、入門レベルでは気にする必要はない。

今ならアプリケーションレイヤで動くプログラムでクロックを意識するようなことはまずない。
現代のパソコンやスマホくらいの高級な CPU では機械語を分解して
最適化した内部命令 (インテルだと μop と呼んでいるようだがメーカーによって名称はいろいろ) を生成したりする
工程があるので、クロックも一定とは限らない。
そこまで高度なことをしない CPU でもだいぶん前からパイプラインは採用されてるから、
単純に命令ごとのクロック数を合算した値が処理時間になったりはしないし。
588デフォルトの名無しさん (ワッチョイ ca63-kHT+)
2022/10/10(月) 01:08:56.92ID:dL9jKsv+0
i++; 辺りは効率の良い機械語翻訳を期待していると思う
589はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cb3e-kHT+)
2022/10/10(月) 01:16:27.83ID:95zl+JNn0
言語仕様で規定する仮想的な機械が (C が初期に使われ始めたコンピュータである) PDP と親和性が良すぎるので C のことを PDP エミュレータと揶揄することもあるらしいね。
590デフォルトの名無しさん (ワッチョイ dbc2-zauZ)
2022/10/10(月) 06:33:30.58ID:ICu0RgND0
>>585
何のプログラムを作るかによる
おまえさんが言うようにハードがわかる必要があったり
簿記や不動産取引がわかる必要があったり
591デフォルトの名無しさん (ワッチョイ d307-tmeX)
2022/10/10(月) 08:21:20.44ID:C38R1GQo0
おそらくそこまで高度なことは求めてないよ
クロックという言葉を知ってたから口走ってしまっただけで意図としてはハードウェアの知識をつけないとC言語は使えないのかと聞きたかっただけだと思う
592デフォルトの名無しさん (ワッチョイ 8a7c-O9y3)
2022/10/10(月) 11:12:45.22ID:5N3s1AfQ0
C言語関連のシステム系の質問していいですか?
微妙にスレチっぽいですが、このスレの人が一番詳しそうなのでご容赦ください。

最近Windows Server 2019マシンを導入し、Windows10で使っていたソフト(他社製)を持ってきたところ
ほぼ全部問題なく動くのですが、一つだけ10倍以上遅いソフトがありました。
そのソフトはexe1個のみの構成で、Dependency Walkerで調べると C:\Windows\System32\msvcrt.dll に依存していました。
(他の正常動作するソフトでmsvcrt.dllに依存するものはなし)
Cにはあまり詳しくないのですが、昔mallocが異様に遅い環境で苦しんだことを思い出し
もしかしてWindows Server 2019のmsvcrt.dllの出来が悪いor相性問題が原因なのではと思いました。

そこで考えたのですが、Windows10のmsvcrt.dllを持ってきて使ってみるというのはどうでしょうか?
とりあえず速度が正常に戻ってくれれば十分なのですが、やめたほうがいいでしょうか?
593デフォルトの名無しさん (アウアウウー Sa2f-tmeX)
2022/10/10(月) 11:16:09.33ID:6p3Wq0rMa
やめた方がいい
絶対他に原因あるわ
594デフォルトの名無しさん (ワッチョイ 8a7c-O9y3)
2022/10/10(月) 11:44:15.39ID:5N3s1AfQ0
>>593
やっぱりそうですかね・・・
リソースモニターとかで調べてはみたものの原因がさっぱり分かりません。
特にIOが遅いように感じるんですが、ハイグレードなSSDを積んでいるのでハードとしては問題ないと思います。
100万円クラスのマシンですし他のハードもスペック的には問題ないはずです。

ちなみに試しにWindows10のmsvcrt.dllをexeと同じフォルダに置いてみたのですが、どうも使われていなさそう。
dll検索順ってカレントディレクトリが最優先じゃなかったでしたっけ?
できるか知りませんが、System32のdllをspecificに参照するようになっていたらそもそも無理ですね。

開発元に聞けたらいいのだけど諸事情でそれが不可能です。
595デフォルトの名無しさん (スッップ Sdea-of8B)
2022/10/10(月) 13:06:26.88ID:+EPzVvoud
微妙じゃなくて完全にスレチw
Windowsシステム関連のスレで聞いたほうがいいと思う
596はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cb3e-kHT+)
2022/10/10(月) 13:19:57.79ID:95zl+JNn0
>>594
> dll検索順ってカレントディレクトリが最優先

もし単純にそういう順序を適用するとマルウェアがファイルをそこに置くだけでプロセスを乗っ取れてしまう。
レジストリのどこかに登録されているやつは別扱いにするとかのややこしいルールがあったはず。

> 特に IO が遅いように感じる

IO が遅いというのが事実だとしたら
 ① 物理的に乗っているのが SSD でもハードウェアの自動認識が誤っていて古いインターフェイスでやり取りしている
 ② たまたまそのアプリケーションがデバイスドライバかコントローラのバグを踏むような制御になっている
 ② HDD で性能が出るようにアプリケーション内で凝った制御をしていたが SSD が速すぎて狂った
などの事情は思いつくけど……
597デフォルトの名無しさん (ワッチョイ 8a7c-O9y3)
2022/10/10(月) 14:32:16.59ID:5N3s1AfQ0
>>595
Windowsシステム関連のスレがないか探しましたが、どうもこれというのがないんですよね。
Windows板かな?あそこは一般コンシューマが多くてこの手の質問はしにくいのが・・・。
引き続き海外フォーラムを漁ってみます。

>>596
詳しくありがとうございます。
ご提示のものが原因とすると、ちょっと自分の手に余りそうです。

他の似たようなソフトは軒並み問題ないのに何でこのソフトだけ・・・と釈然としませんが
どのWindowsでも同じように動きますなんてそう甘い話はないということかな。
598デフォルトの名無しさん (ワッチョイ 679f-C3Tg)
2022/10/10(月) 14:37:10.94ID:1bdf6+Ty0
存在しないネットワークドライブにアクセスしに行って、タイムアウトするまで固まるとかは時々遭遇するけどはたして
599デフォルトの名無しさん (アウアウウー Sa2f-tmeX)
2022/10/10(月) 14:51:34.42ID:YCEUCnMua
ていうか作者に障害報告しろや
600デフォルトの名無しさん (ワッチョイ 03b3-3fXN)
2022/10/10(月) 14:56:11.84ID:mfO2JKX70
ライセンス料を払いたくないやつかな?
601デフォルトの名無しさん (スフッ Sdea-PQQp)
2022/10/10(月) 14:58:25.83ID:2QXR7TRNd
鯖機だとベンダー独自の機器やドライバが入ってたりするだろうから分かる奴はほぼいないだろうな
602デフォルトの名無しさん (ワッチョイ ca63-kHT+)
2022/10/10(月) 15:00:55.06ID:dL9jKsv+0
>>597
>一つだけ10倍以上遅いソフト

この製造元に聞くのが最短だと思う
603デフォルトの名無しさん (ワッチョイ 8a7c-O9y3)
2022/10/10(月) 18:15:26.96ID:5N3s1AfQ0
製造元には軽く聞いてみたのですがサポート対象外ですと一蹴されました。
諸事情により相手のほうが立場が上で、現段階でこれ以上聞き出すのは難しいのですが
上手く機会を作って情報を得たいと思います。
皆さんありがとうございました。
604デフォルトの名無しさん (スッップ Sdea-S1ha)
2022/10/11(火) 07:55:01.73ID:1DnVcsvQd
やはりな
605デフォルトの名無しさん (ワッチョイ ca01-52T8)
2022/10/11(火) 08:00:48.49ID:+IdMirEn0
Windows Server で Hyper-V 動かしてその上に Windows 10 入れてそのアプリ動かせばええやん
606デフォルトの名無しさん (スッップ Sdea-S1ha)
2022/10/11(火) 09:05:08.75ID:1DnVcsvQd
ハイパーバイザー型よりホスト型の方が融通効くしフリーのもある
607デフォルトの名無しさん (ワッチョイ 9fda-xYWY)
2022/10/11(火) 09:19:51.89ID:lDI8MaGS0
個人利用なら好きにすればいいけど共用のサーバー機でそんなことして問題起きると責任問題になるよ
608デフォルトの名無しさん (ワッチョイ ca01-52T8)
2022/10/11(火) 09:26:18.23ID:+IdMirEn0
>>606
Hyper-V は両方あるからわざわざ 「Windows Server で」って書いてある


>>607
普通はシステムのdll置き換えようとしてる時点で責任問題になるしそもそも Windows 10からアプリ持ってきてる時点でライセンス大丈夫か?って思うだろ
609デフォルトの名無しさん (アウアウウー Sa2f-tmeX)
2022/10/11(火) 09:44:54.24ID:S5uegLjFa
msvcrtってMicroSoft Visual C/c++ RunTimeなんだよね
C言語ってライブラリを静的リンクすることが多いけど共通部分をdllにしたらディスク容量が少なくて済むんじゃねって発想で作られた過去の遺物
今は積極的に使うべきものじゃない
おそらく古い古いソフトなんじゃね
610デフォルトの名無しさん (アウアウウー Sa2f-tmeX)
2022/10/11(火) 09:48:41.00ID:S5uegLjFa
そういう古いソフトは当然のように32ビット(ひどい時には16ビット)だから64ビット環境ではエミュレーションが働く
その辺に何かありそうな気がするな知らんけど
コンパイルし直せば直るような気がしないでもないがメーカーが対応する気ないんじゃどうしようもない
611デフォルトの名無しさん (ワッチョイ ff7c-zauZ)
2022/10/11(火) 14:18:13.05ID:UUE3JARA0
>>585
メモリとハードディスクの違いくらいはわかってないと無理でしょ
612デフォルトの名無しさん (ワッチョイ ca63-kHT+)
2022/10/11(火) 14:24:20.66ID:e/MLj7zo0
Z80 は楽だったなあ
613ハノン108 ◆QZaw55cn4c (US 0Hba-d0ca)
2022/10/11(火) 18:29:10.92ID:RNyxjBqNH
>>610
16ビットはエミュレーションは利きません!
614デフォルトの名無しさん (ワッチョイ d307-tmeX)
2022/10/11(火) 18:50:36.59ID:D4ywmAPt0
>>613
なんで?
https://learn.microsoft.com/ja-jp/sql/odbc/microsoft/using-16-bit-applications-with-32-bit-drivers?view=sql-server-ver16
615デフォルトの名無しさん (ラクッペペ MM86-xYWY)
2022/10/11(火) 19:07:33.88ID:M2HX+v9qM
64bit Windowsでは16bitアプリは動かせない(エミュレーション環境は32bitだけ)
32bit版Win10 ならかろうじて可能性はあるがWinServer2019は64bitだけなので完全に無理
616ハノン ◆QZaw55cn4c (US 0Hba-d0ca)
2022/10/11(火) 19:10:36.62ID:RNyxjBqNH
>>614
それは 32 ビット版 Windows の話
64 ビット版 Windows は 16ビットアプリを捨てました、AMD64 アーキをもっと勉強してね!
617デフォルトの名無しさん (ワッチョイ d307-tmeX)
2022/10/11(火) 19:31:53.97ID:D4ywmAPt0
>>616
サードパーティだがWineVDMというのを使えば動くようだ
勉強になったか?
618デフォルトの名無しさん (ワッチョイ ca63-kHT+)
2022/10/11(火) 19:49:30.50ID:e/MLj7zo0
32ビット版の仮想を動かしてその中で16ビットアプリを動かす事は出来る
そういう多段ロケット使えば良いんだがそこまでして今動かすものがないw
619デフォルトの名無しさん (スッップ Sdea-S1ha)
2022/10/11(火) 20:01:38.90ID:1DnVcsvQd
>>616
64bitホストに32bitゲスト載せるとさ
普通に16bitアプリを実行できるんだけど
本当にハード的に不可能なんかね?
620デフォルトの名無しさん (スッップ Sdea-S1ha)
2022/10/11(火) 20:05:48.94ID:1DnVcsvQd
32bit OSでは4GB超えできないとかさ
マイクソの集団催眠にかかったやつの言う
ちったあ勉強しろってマウントは
呆れるの通り越して笑う価値もない
621デフォルトの名無しさん (ワッチョイ d307-tmeX)
2022/10/11(火) 20:10:22.58ID:D4ywmAPt0
エミュレータ使うならできない理由はないなあ
単にマイクロソフトが自前のエミュレータの提供をやめたというだけでAMD64がどうとか言うのは知識不足のマウンターの妄言としか思えないな
622デフォルトの名無しさん (ワンミングク MM3a-52T8)
2022/10/11(火) 20:51:12.11ID:X1iGovPsM
32ビットすら打ち切りたそうなのに?
623デフォルトの名無しさん (ワッチョイ caad-zauZ)
2022/10/11(火) 22:06:01.71ID:aJhELtxJ0
じゃあまずお好きな言語でエミュレータを作ってそこで動くZ80プログラムを作れ。
624デフォルトの名無しさん (ワッチョイ caad-zauZ)
2022/10/11(火) 22:06:38.42ID:aJhELtxJ0
リロード忘れた。間に山盛りに他の書き込みが。
削除できないからもういいや。わすれてくれ。
625デフォルトの名無しさん (ワッチョイ dbc2-zauZ)
2022/10/11(火) 22:31:48.32ID:aIs/ZXKV0
XP mode はエミュレータか? おいサル
626ハノン ◆QZaw55cn4c (US 0Hba-d0ca)
2022/10/11(火) 22:36:50.66ID:d6pThQK8H
>>617,619
それってエミュレータでしょ?仮想的なCPUをコードでガリガリ書いてインタプリタしているって奴、そんなのでもまともに動く時代になったんですねえ

>>618,619
私も 16 ビットを 64 ビットで動かすときはエミュっています
http://takeda-toshiya.my.coocan.jp が有名で私も便利に使っています
627デフォルトの名無しさん (ワッチョイ d307-tmeX)
2022/10/11(火) 22:46:46.46ID:D4ywmAPt0
>>626
AMD64の勉強したらこの話に関係ないことがわかったか?
628デフォルトの名無しさん (US 0Hba-d0ca)
2022/10/11(火) 23:02:05.82ID:d6pThQK8H
まあ私も「エミュレーション」という言葉を、ソフトウェアによるエミュレーションか、80386 がやり始めた仮想86モードという意味でのエミュレーションかをはっきり区別せずにパンパン書いたせいもありますね、ごめんなさいね
629デフォルトの名無しさん (ワッチョイ d307-tmeX)
2022/10/11(火) 23:04:40.15ID:D4ywmAPt0
WOW64とサンクはその話とはまた別だぞ
それはハードの話だろ
MSが提供しなくなったのはサンクだ
630デフォルトの名無しさん (ワッチョイ caad-zauZ)
2022/10/11(火) 23:21:05.30ID:aJhELtxJ0
thanks
631デフォルトの名無しさん (オッペケ Sr03-P+Ht)
2022/10/12(水) 01:05:29.68ID:P/bHT4Cpr
サークルKサンクス潰れたから提供のしようがない
632デフォルトの名無しさん (スップ Sdbf-AOuz)
2022/10/15(土) 18:58:46.26ID:fQccGg0Vd
なぜつまらないとわかっていてオヤジギャグを何故言ってしまうのか
チコちゃんで脳科学的に分析してて笑ったわw
633デフォルトの名無しさん (US 0Hbf-459s)
2022/10/15(土) 19:44:27.23ID:jaz9tT2QH
>>632
なんでなんで!
634デフォルトの名無しさん (ワッチョイ 9f59-vXl1)
2022/10/20(木) 03:24:32.42ID:y3K9DSVg0
ジジイだからだよ。
635デフォルトの名無しさん (ワッチョイ 9f63-y3r4)
2022/10/20(木) 11:13:15.74ID:SiOwIn850
ここはジジイしかいないからな
636デフォルトの名無しさん (スッップ Sdbf-AOuz)
2022/10/20(木) 19:25:01.75ID:aXExphHPd
>>633
歳を取ると語彙が増えていき頭の中でダジャレが浮かびやすくなる
それと同時にセンスが低下して面白いギャグかどうかがだんだんわからなくなる
結果的におっさんはつまらないダジャレを思いついたらすぐ言うようになる
637デフォルトの名無しさん (ワッチョイ 0fcf-y5HG)
2022/10/20(木) 19:54:53.72ID:UUAxnkpP0
オヤジギャグやダジャレより
連想したものをただ言ってれば、
例えツッコミ扱いしてくれて楽だろう
638デフォルトの名無しさん (ワッチョイ 4b46-iZx1)
2022/10/20(木) 19:58:46.29ID:4Jg9TvVE0
つまらなくても笑えよ。敬老精神が欠如しているのか。
639デフォルトの名無しさん (ワッチョイ 9f63-y3r4)
2022/10/20(木) 20:00:11.34ID:SiOwIn850
ソースにもだじゃれ入れてそう
640デフォルトの名無しさん (US 0Hbf-459s)
2022/10/20(木) 20:25:40.72ID:w47Nq7BKH
>>639
char aznable
641デフォルトの名無しさん (ワッチョイ 9f63-y3r4)
2022/10/20(木) 22:06:49.25ID:SiOwIn850
カウント変数にcuntは止めろとねんを押された
642デフォルトの名無しさん (ワッチョイ 2bb3-Jfgl)
2022/10/20(木) 22:28:20.65ID:NFETJM8p0
コーディング規約があるなら守りましょう
643デフォルトの名無しさん (ワッチョイ 2bb3-Jfgl)
2022/10/20(木) 22:29:14.08ID:NFETJM8p0
一瞬idがNEETかと思ったが違ったw
644デフォルトの名無しさん (ワッチョイ 9f63-y3r4)
2022/10/20(木) 22:48:13.58ID:SiOwIn850
ソースではなく、make終了時にBIGCOCKと表示させてた奴を知ってる
本人いたら、ゴメンナサイ、バラしました
645デフォルトの名無しさん (スッップ Sdbf-AOuz)
2022/10/21(金) 21:25:54.17ID:CZbur0iYd
そう、こういうの
全然どうでもいい事をさも重要な秘密のようにw
646デフォルトの名無しさん (ワッチョイ 69b3-cDFA)
2022/10/30(日) 07:10:33.74ID:9/1OGIJE0
独り言です
インデントは4を使ってきたのだがプロの世界?では2みたいだな
軽くショックを受けた
647デフォルトの名無しさん (ワッチョイ 69b3-cDFA)
2022/10/30(日) 07:12:57.69ID:9/1OGIJE0
ちなみにインデント2を使ってるのはcatコマンドのソースです
https://sources.debian.org/src/coreutils/9.1-1/src/cat.c/
648デフォルトの名無しさん (ワッチョイ 79c2-iO6U)
2022/10/30(日) 07:27:37.61ID:i1fpLCEI0
プロの現場にそういうところもあるというだけだよ
1つ目撃したからってそれが全てだと思うのは
早まった一般化という誤謬だ

誤謬を多発するやつは論理思考が苦手ってことだ
むろんプログラマとしての適性ではマイナス要素だ
649デフォルトの名無しさん (ワッチョイ 4907-gxoH)
2022/10/30(日) 07:32:06.64ID:A1wSH6ms0
昔は画面が狭かったからそういう主義のやつも割といた
そろそろ淘汰されてる頃じゃね
650デフォルトの名無しさん (ワッチョイ 79c2-iO6U)
2022/10/30(日) 07:39:15.76ID:i1fpLCEI0
一画面ルールってのもあったな
651デフォルトの名無しさん (ラクッペペ MMeb-YnjT)
2022/10/30(日) 08:27:39.75ID:HgiMaBnhM
今でもそこそこ使われてるだろ
一画面とは言わないまでも100行ルールとかの発展型も多い
ひとつの関数が何千行もあればコードレビューで問題にされる
652デフォルトの名無しさん (ワッチョイ 79c2-iO6U)
2022/10/30(日) 08:40:19.94ID:i1fpLCEI0
ダラダラ書くなって話が廃れたとは言ってないんだが
653デフォルトの名無しさん (ワッチョイ 8b46-g96c)
2022/10/30(日) 09:25:59.68ID:+gGQ3BRS0
GNUスタイルのインデントはゴミ
654デフォルトの名無しさん (ブーイモ MM8d-T9F3)
2022/10/30(日) 09:26:11.73ID:KYgyTmU4M
名前空間やクラスを使わないC言語は特に文が長くなりがちだから、2のほうが使い勝手がいいと思うことはよくある
655デフォルトの名無しさん (ワッチョイ 1363-HLP5)
2022/10/30(日) 10:52:42.74ID:vrlOFY0H0
>>647のcatソース見たけれど、
私にはブロックが分かりにくいと感じた
見慣れれば良いのかも知れないが
656デフォルトの名無しさん (スププ Sd33-cT4U)
2022/10/30(日) 17:05:35.10ID:wnFbyiurd
>>647
rms仙人の直筆か
プロ?と言って良いのかはさておきスーパーハッカーではあるね

関数呼び出しの()前の空白とかは結構独特なスタイルだと思うぞ
657デフォルトの名無しさん (スフッ Sd33-cT4U)
2022/10/30(日) 17:11:32.88ID:c3va8FLBd
✗直筆
✓監修

プロとは我らIT土方の事を指すのです
658おじ乳輪様 ◆IQ90.av/.Akz
2022/10/30(日) 17:12:30.77
中括弧の位置とか関数呼び出しのスペースとかなんでこんな独特なスタイルなの?
なんのメリットが?
659デフォルトの名無しさん (ワッチョイ 1302-ee5o)
2022/10/30(日) 17:24:51.13ID:xXAnW4UR0
もともとは egrep とかで使いやすい
とかいう理由だった気がする
660デフォルトの名無しさん (ワッチョイ d9e4-Ojdt)
2022/10/30(日) 17:30:55.10ID:1Zssd/uh0
http://web.sfc.wide.ad.jp/~sagawa/gnujdoc/standards-19981118/standards-ja_5.html
661デフォルトの名無しさん (ワッチョイ 81bb-Tk+f)
2022/10/30(日) 17:33:33.15ID:ZM6oqeKp0
GNUのソースは読もうと思って読んだがあのスタイルに拒否反応が出て駄目だったわ
662デフォルトの名無しさん (ワッチョイ 13ad-iO6U)
2022/10/30(日) 23:05:10.18ID:KHak5nKt0
( ´_ゝ`)フーン
663デフォルトの名無しさん (テテンテンテン MMeb-Ge/g)
2022/10/30(日) 23:45:46.77ID:QW7VZG88M
インデントごときで読む気が無くなるのは、単に向いてないだけだなw
664デフォルトの名無しさん (ワッチョイ 1363-HLP5)
2022/10/30(日) 23:52:22.08ID:vrlOFY0H0
うん、むいてないからお前がやってくれ
665デフォルトの名無しさん (ワッチョイ 13ad-iO6U)
2022/10/31(月) 00:03:46.32ID:EzTz1A6M0
 (
   ´_ゝ`
 )
フーン
666デフォルトの名無しさん (ワッチョイ 3302-cT4U)
2022/10/31(月) 00:23:37.56ID:8d/Em0+h0
スタイルがあるなら従うべきだけど、300-500行目に連発する
}
else
{
はさすがに目が滑る
スクロールして追うのも辛い
667デフォルトの名無しさん (ワッチョイ d935-uirP)
2022/10/31(月) 00:32:37.86ID:MKojko7I0
ブロックの前にインデントを入れてるのはブロックも文なんだから単一文の時と同じようにインデントを入れるべきという理屈かな?
668デフォルトの名無しさん (ワッチョイ 3302-cT4U)
2022/10/31(月) 01:42:04.37ID:8d/Em0+h0
>>667
それ自体は一貫してるからいい、ただしこの場合は対応するifから平気で50行以上も離れているので、elseだけじゃスクロールバックしないと条件が何か分からん

エディタのfold機能を活用するのもアリだけど、プレーンテキストとして読めるべきという姿勢のようだから、まさに>>660にある
#ifdef foo
...(長いコード)
#else /* not foo */
のようにelseにコメントを添えさえすれば、俺的にはオッケー

余談だけど
個人的にはプリプロセッサの条件も自由にインデントしてる
# ifdef foo
...
# ifdef bar
....
のように
殆ど見かけないから決して他人には勧めはしないけど
669デフォルトの名無しさん (テテンテンテン MMeb-Ge/g)
2022/10/31(月) 01:43:55.98ID:oYB2uzRMM
GNUのインデントは、Pythonを考慮すると利にかなってんだよな
if foo:
bar

if (foo)
{
bar;
}
という対応がある
Pythonはインデント自体にブロック要素があるから余計なカッコが要らないけど、Cはブロック要素にカッコが必要だから書いてあると考えれば、実はPythonと一緒なんだよ
これに気付いた時はrmsは天才なんだと思い知らされた
670デフォルトの名無しさん (ワッチョイ 3302-cT4U)
2022/10/31(月) 02:16:22.63ID:8d/Em0+h0
>>669
結果的に同じ形に落ち着いてるけど、pythonとは正反対の思想から生じている事もお忘れなきよう
尊師の第一言語はcでなく言語に構文要素自体が存在しないlispだから、改行のみからコードブロックとインデントレベルがフォーマッタを問わず一意に定められる

c系統(いわゆるブレース言語)は言語に構文を採用しつつ、フリーフォーム記述の許す折衷だから、フォーマッタとスタイルにバリエーションが生じる
671デフォルトの名無しさん (ワッチョイ 3302-cT4U)
2022/10/31(月) 02:24:22.85ID:8d/Em0+h0
翻って、エディタ入力支援/フォーマッタプログラム無しにlispを記述するのは事実上不可能に近いので賛美してるわけではないよ
念の為
672デフォルトの名無しさん (スフッ Sd33-cT4U)
2022/10/31(月) 11:19:45.88ID:0hSBCDEtd
))))))))くらいは序の口だし、括弧を数えてたら気が狂うわな
ネストレベルに応じて機械的に挿入されるインデントのみによって構造を把握するから、Lispは実質的にPython並にインデント強制
673はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7b3e-Tk+f)
2022/10/31(月) 11:43:48.99ID:HpV/6ZOj0
今となっては C だってエディタの支援なしに書く気にはならんけどな。
674デフォルトの名無しさん (ワッチョイ f15f-KdnH)
2022/10/31(月) 13:07:16.76ID:J5/naAYk0
>>673
それは慣れの問題
675デフォルトの名無しさん (ワッチョイ 1363-HLP5)
2022/10/31(月) 15:59:12.44ID:YDjtl0u50
そう言うのには慣れたくない
676デフォルトの名無しさん (ワッチョイ 8bcf-ee5o)
2022/10/31(月) 16:35:29.26ID:gpqFhr3z0
LISP は先にあるんだし、Python の文法は諸々の言語の影響結果だろ
ブロックの開閉で改行するってのは、ALGOL系のBEGIN~ENDの強い影響を感じる
Cではむしろ、少し自由な書式書法になっていたのが退化した
677デフォルトの名無しさん (ワッチョイ 1363-HLP5)
2022/10/31(月) 16:49:19.46ID:YDjtl0u50
Cが退化したのではなく、人間が退化したんだろう
678デフォルトの名無しさん (アウアウウー Sa9d-KdnH)
2022/10/31(月) 20:11:09.56ID:a6AXXlaBa
括弧の入れ子がひどいコードを作ることがやばい
679デフォルトの名無しさん (ワッチョイ 1363-HLP5)
2022/10/31(月) 21:12:31.27ID:YDjtl0u50
初心者のために、本来不要だけど括弧を付けるときはあった
680デフォルトの名無しさん (ワッチョイ d935-uirP)
2022/10/31(月) 21:55:34.36ID:MKojko7I0
ウザ
681デフォルトの名無しさん (ワッチョイ 1301-pRvw)
2022/10/31(月) 22:06:42.50ID:gNe27yrb0
>>679
俺は未来の自分のために言語仕様としては不要な括弧を付ける
682デフォルトの名無しさん (スップ Sd73-OvbD)
2022/11/01(火) 07:24:39.67ID:8mAHYLmxd
初心者でも務まる仕事か
683デフォルトの名無しさん (ワッチョイ 1363-HLP5)
2022/11/01(火) 15:13:43.68ID:hGXBrabD0
若手に優しい配慮は必要だと思う
いらないと言うことに気がつけば
それはそいつの進歩だ
684デフォルトの名無しさん (スップ Sd73-OvbD)
2022/11/01(火) 18:32:43.22ID:8mAHYLmxd
甘やかしでしかない
685デフォルトの名無しさん (ワッチョイ 1363-HLP5)
2022/11/01(火) 18:40:22.15ID:hGXBrabD0
たった1人で好きなシステム組んでみて
686デフォルトの名無しさん (スップ Sd73-OvbD)
2022/11/01(火) 18:45:14.28ID:8mAHYLmxd
議論になってない
687デフォルトの名無しさん (ワンミングク MMd3-pRvw)
2022/11/01(火) 20:23:05.05ID:Lnx9eR9fM
議論なんかしてないだろう
688デフォルトの名無しさん (ワッチョイ 79c2-iO6U)
2022/11/01(火) 21:17:55.24ID:hxzN6YDm0
ということにしたいのですね
689デフォルトの名無しさん (ワッチョイ 1363-HLP5)
2022/11/01(火) 22:30:37.78ID:hGXBrabD0
オッサンは呼んでない
690デフォルトの名無しさん (ワッチョイ 8bb0-QueQ)
2022/11/02(水) 11:37:22.22ID:1ThO0l2A0
はつみみです
691デフォルトの名無しさん (ワッチョイ 79c2-iO6U)
2022/11/02(水) 21:00:24.72ID:C3BaP9Oq0
焼き鳥の通だけが知ってる稀少部位?
692デフォルトの名無しさん (ワッチョイ 6202-2PQ5)
2022/11/07(月) 17:58:10.87ID:BvZ6DXqw0
>>658
呼び出し前スペースはプリプロセスをm4で強化するときに少し面倒になるな
GNUはm4大好きなのにな
693デフォルトの名無しさん (ワッチョイ e263-TaOI)
2022/11/20(日) 17:25:16.95ID:u5cvtrdO0
m4すらすら書ける人います?
694デフォルトの名無しさん (ワッチョイ e7f2-44JW)
2022/11/21(月) 03:19:48.32ID:Amw5zf2Y0
大昔、sendmail.cf を生成するのによく使われてな。久しぶりに名前を聞いた。
autoconf をがんがん使うプログラマがいればワンチャン。
695デフォルトの名無しさん (アウアウウー Sa3b-kfYZ)
2022/11/23(水) 15:53:36.98ID:U6TEG1mTa
sendmail.cf なつかしす
postfix に乗り換えちゃった
696デフォルトの名無しさん (ワッチョイ c363-TaOI)
2022/11/23(水) 19:55:29.66ID:aRKGS4gV0
CF使った事あるw
697デフォルトの名無しさん (ワッチョイ cf5f-ES6F)
2022/11/25(金) 12:32:01.04ID:FzNlCQf10
すまん、聞くことないわ
698デフォルトの名無しさん (アウアウウー Sa3b-kfYZ)
2022/11/25(金) 12:49:25.94ID:PV2ZG9bua
CF は m4 ではないやろ?
699デフォルトの名無しさん (ワッチョイ 972d-zuBb)
2022/12/01(木) 15:02:39.09ID:ZPuEPm3M0
https://atcoder.jp/contests/abc273/submissions/35667282
このコードを実行するとscanfで入力を待つはずなのですが即座に終了してしまいます
たまにそういうコードを見かけるのですが何が原因なのでしょうか
printfを入れても実行されないのでmainがスキップしているような。。
700デフォルトの名無しさん (スプッッ Sd8b-LL8a)
2022/12/01(木) 15:40:10.03ID:q8NQ5dwmd
あなたの環境のせいかと
701デフォルトの名無しさん (ワッチョイ 9f7c-RPwI)
2022/12/01(木) 16:09:51.97ID:JXDLC/Oi0
コードが酷くてワロタw
702デフォルトの名無しさん (ワッチョイ 9f01-YdBL)
2022/12/01(木) 16:26:50.49ID:jAeBwf3w0
>>699
典型的な scanf() あるあるだな
最初の scanf() で数字 + 改行が読み込まれるが"¥d"だと数字だけ取り出して改行が残っちゃう
2回目以降のscanf()は改行が残っているから入力をスキップしてしまう
scanf 改行 読み込み とかでぐぐると色々出てくる
https://hiroyukichishiro.com/scanf-problems-in-c-language/
回避方法はいくつかあるけど、個人的には
static b[100];
fgets(b, sizeof b, stdin);
N = atoi(b);
...
fgets(b, sizeof b, stdin);
d[i].key = atoi(b);
みたいにするかな

>>700
釣りか?
703デフォルトの名無しさん (アウアウウー Sa5b-DgGg)
2022/12/01(木) 16:29:17.59ID:LIu803lba
普通のマージソートを読んでるだけで別に酷くなくね?
エラーハンドリングしてないってことなら競プロではそれが常識だぞ
何を見て酷いと言ってるのか説明してくれ
704デフォルトの名無しさん (アウアウウー Sa5b-DgGg)
2022/12/01(木) 16:33:06.65ID:LIu803lba
>>702
\dじゃなく%dのことかな?
そのコードの下にACが30個並んでるだろ?
これは用意された30通りのテストケースにおいて想定通りに動いたということなんだよね
つまりコードのせいではないよ
705デフォルトの名無しさん (スプッッ Sd8b-LL8a)
2022/12/01(木) 16:36:36.47ID:q8NQ5dwmd
改行が問題になるのは%cのときくらいで
%dのあと%dだから空白類文字は問題ないよ
706デフォルトの名無しさん (アウアウウー Sa5b-DgGg)
2022/12/01(木) 16:42:55.52ID:LIu803lba
>>701
ちなみにこのコードを書いたのはオレンジコーダー
https://atcoder.jp/users/ygussany?contestType=algo

オレンジというのは一部上場企業でも一人もいないことが珍しくないレベルの高レベルプログラマを超える化け物レベルの超高レベルプログラマを超える頭おかしいレベルのプログラマ
707デフォルトの名無しさん (ワッチョイ ff63-RPwI)
2022/12/01(木) 16:47:51.25ID:knNtAgEU0
y[200001];とd[200001]がスタック壊してしまいます涙
708デフォルトの名無しさん (アウアウウー Sa5b-DgGg)
2022/12/01(木) 16:54:14.03ID:LIu803lba
>>707
Linuxではメモリの許す限りスタックが使えるから
709デフォルトの名無しさん (ワッチョイ 972d-zuBb)
2022/12/01(木) 16:54:27.16ID:ZPuEPm3M0
>>707
ありがとうございます
それでした
710デフォルトの名無しさん (ワッチョイ d75f-emCW)
2022/12/01(木) 17:04:51.34ID:IEkrCGic0
おま環定期
711デフォルトの名無しさん (スップ Sd9e-6RBv)
2022/12/04(日) 21:55:28.56ID:7byHd/K/d
>>708
とはいえmallocにしたほうがいいんでない?
712デフォルトの名無しさん (ワッチョイ 9fc2-He5u)
2022/12/04(日) 22:07:50.79ID:RAGda7mP0
VLAで足りることにmallocか
713デフォルトの名無しさん (US 0H31-fHn/)
2022/12/04(日) 22:16:11.60ID:Yt2fANdLH
>>712
C++ で見捨てられた VLA なんか使いたくないですね
714デフォルトの名無しさん (スッププ Sd02-94ar)
2022/12/04(日) 22:29:52.59ID:xXGWnQN3d
>>712
VLAはC99で採用されたけどC11でオプション仕様に格下げされたよ
715デフォルトの名無しさん (テテンテンテン MM34-kKzk)
2022/12/04(日) 22:31:57.30ID:JQ3spjvfM
>>708
それってどこ情報なん?
716デフォルトの名無しさん (ワッチョイ 3e04-g9pY)
2022/12/04(日) 23:03:10.81ID:UdvGlPZ+0
Cで通信系いじりたいんやけどなにからすればええ?
まずはゲームとか作ってC言語に慣れた方がええんやろか
「無線 C言語」と調べてもコロナ社の本しか出てこん
本買った方がええんか?
右も左もわからん、どなたか教えてください!!!
717デフォルトの名無しさん (ワッチョイ 0a46-1DcW)
2022/12/04(日) 23:04:19.10ID:AOlAqVGT0
まず何がやりたいのかはっきりさせろ
何もわからんぞ
718デフォルトの名無しさん (ワッチョイ 1a63-4FAg)
2022/12/04(日) 23:09:42.46ID:HgjSOVEG0
通信系って、無線通信?
C言語には電波を飛ばす機能はないよ
719デフォルトの名無しさん (ワッチョイ 3e04-g9pY)
2022/12/04(日) 23:14:41.99ID:UdvGlPZ+0
ネット通信とか無線通信はC言語だとどっかで耳にしたからとりあえずやりたくなったんや
なんかいい通信系の入門サイトとかあれば教えてほしい
720デフォルトの名無しさん (ワッチョイ 3e04-g9pY)
2022/12/04(日) 23:17:10.93ID:UdvGlPZ+0
>>718
無線通信系に興味ある
電波飛ばす機械をC言語でなんかするんじゃないん?
721デフォルトの名無しさん (ワッチョイ e2ad-4FAg)
2022/12/04(日) 23:26:26.75ID:MiJYA0Kr0
通信をする方法が無線かどうかはハードウェアの問題。
更にOSやデバイスドライバやOSのシステムコールをどのように呼べば良いかを知る必要がある。
C言語の知識が必要になるとすると通常はここからだ。

そうではなくてハードウェアはあるがOSがなくI/Oポートを直接読み書きするようなプログラムを
作る必要がある場合はアセンブラかC言語で作ることになると思う(必ずしもそうである必要は
ないが)。その場合はOSのデバイスドライバを自作するような感じになる。
722デフォルトの名無しさん (ワッチョイ 1a63-4FAg)
2022/12/04(日) 23:27:41.55ID:HgjSOVEG0
有線にしろ無線にしろ、通信という以上は相手があって
その相手とルールの取り決めをしてからそのルールにしたがってやり取りする
だから最初に、誰と、どういう取り決めでデータのやり取りをするかを決めないといけない
インターネットもそういうルールをみんなで決めてやり取りをしている
とりあえずインターネットの通信を学んでみたらどうだろう
この掲示板に書き込みをしているのだから、その通信が可能だし、
その機種を使って試すところから始めると良い
723デフォルトの名無しさん (スップ Sd9e-6RBv)
2022/12/05(月) 00:30:23.98ID:ddGzHpStd
>>712
スタックの仕様は機種依存が激しいから可搬性を考えたらスタックは無限にあると考えないほうがいい
というかLinuxではデフォルト8MBみたいだけど
724デフォルトの名無しさん (スップ Sd9e-6RBv)
2022/12/05(月) 00:47:01.63ID:ddGzHpStd
というかスタックというのは一番効率の悪いメモリの使い方なので
本を片っ端から積み上げて下の方は取れなくなってしまうイメージ
大規模な配列はスタックに置かないほうがいいというのは基本では
断片化があるとはいえmallocのほうが効率的
725デフォルトの名無しさん (ワッチョイ 1a63-4FAg)
2022/12/05(月) 00:55:05.00ID:d/jwcHzh0
一番上と、一番下でアクセスの速度は同じでしょう
726デフォルトの名無しさん (ワッチョイ 4697-KDKu)
2022/12/05(月) 01:09:57.27ID:rpvKYALB0
スタックが上のデータに埋もれて下のデータが取り出しにくくなるなら、ヒープでも全く同じことが発生するはず。
適当なアナロジーで間違った理解をしている典型例だと思う。
727デフォルトの名無しさん (オッペケ Src1-94ar)
2022/12/05(月) 01:14:21.69ID:ZI2+JeHur
デカいデータで最適化が効くことがあるのはグローバル変数
728デフォルトの名無しさん (ワッチョイ d8cf-R4o2)
2022/12/05(月) 01:15:32.38ID:m5vf/Aut0
Cのローカル変数は、マシン語レベルではスタック領域に生成されるが
相対アドレシングで自由にアクセスするので問題ない
729デフォルトの名無しさん (ワッチョイ 2135-1pGr)
2022/12/05(月) 01:21:11.87ID:op7KwCv70
領域の確保開放が上からしか出来ないだけで読み書きはどこでもできるもんな
730デフォルトの名無しさん (ワッチョイ 9fc2-He5u)
2022/12/05(月) 06:17:33.64ID:0xhTnbB50
>>723
え、無限にあると考えることがあるの?
・・・あれか、マイクソソフトが吹聴してる例の有害なやつか
731デフォルトの名無しさん (アウアウウー Sab5-RHwc)
2022/12/05(月) 08:28:01.18ID:d0zhDPVSa
>>711
競プロだぞ
732デフォルトの名無しさん (ワッチョイ eead-NN2n)
2022/12/05(月) 08:42:20.41ID:AHxKL62Z0
有限さん「おい、スタックが無限にあると考えられるとはどういうことだ?証明して見せろ!!」
ムゲンさん「わかりました。では無限なメモリを積んだコンピュータを用意してきてください。そしたら証明して見せます。」
有限さん「そんなことできるわけないだろ!」
ムゲンさん「ザンネン。じゃああなたのご希望に沿うことはできないですね。」

ボク「それってつまり、無限のスタックは存在しないってことなんじゃ?」

ムゲンさん「『無限なメモリを積んだコンピュータは存在しない』というのは悪魔の証明であって、存在しないと断言すること自体が不可能です。」

ボク「屏風の虎…一休さんかよ」
733デフォルトの名無しさん (ワッチョイ 9fc2-He5u)
2022/12/05(月) 09:23:30.88ID:0xhTnbB50
観測可能な宇宙に原子が8e79個あり、
DDR4のセル電荷が2.4e-14クーロンとすると
メモリは6.7e73バイトまでしか作れない
∴ 無限のメモリは存在しない
734デフォルトの名無しさん (ワッチョイ eead-NN2n)
2022/12/05(月) 09:27:43.41ID:AHxKL62Z0
観測不可能な宇宙領域がまだあるではないか
そこには無限の(ry
735デフォルトの名無しさん (ラクッペペ MM34-k0qw)
2022/12/05(月) 09:44:59.30ID:BaBCvHVhM
量子メモリであれば無限の状態を記憶できるか?
736デフォルトの名無しさん (スップ Sd9e-6RBv)
2022/12/05(月) 10:56:43.18ID:ddGzHpStd
>>725
速度の問題ではなく
用済みになっても開放できずにいつまでも抱え込んでいなければならないことが問題
737デフォルトの名無しさん (ワッチョイ 1a63-4FAg)
2022/12/05(月) 11:14:13.11ID:d/jwcHzh0
スタック上の変数って、その関数内でしか用は無いのだから
関数が終了と同時二メモリーから消え去ります
抱え込むことはありません
738デフォルトの名無しさん (ササクッテロラ Sp10-cIXn)
2022/12/05(月) 11:22:51.84ID:hYIKK9DOp
児童変数の事?
739デフォルトの名無しさん (スッップ Sd70-YdaX)
2022/12/05(月) 11:23:28.04ID:E9Ntil7Ed
効率悪い実装してれば効率悪くなるだけの話やな
スタックは一時変数の効率的確保の極みなんだけど関数化を怠った結果そうなる
740デフォルトの名無しさん (ササクッテロラ Sp10-cIXn)
2022/12/05(月) 11:24:48.36ID:hYIKK9DOp
児童変数を関数の戻り値にするのは実体渡しだけにしておかないと痛い目に逢ったなぁ
741デフォルトの名無しさん (ワッチョイ 1a63-4FAg)
2022/12/05(月) 11:28:42.22ID:d/jwcHzh0
>用済みになっても

と言うことだから、関数間の受け渡しは考慮しなくて良いでしょう
742デフォルトの名無しさん (ワッチョイ e2ad-4FAg)
2022/12/05(月) 18:42:27.81ID:M2dfOAYW0
自動変数用のスタックは本物のスタックポインタ無視して別に作っちゃってもできるな。
そういうコードを吐くコンパイラも作れるというだけのことではるが。
でもその方がリターンアドレスが詰まれている所に変数混ぜるより安全な感じはする。
特にC言語の場合は配列の範囲をオーバーしても平気でどんどん書き換えちゃって関数の終わりで明後日の方向にリターンなんてものも作れちゃうから。
743デフォルトの名無しさん (ワッチョイ 1a63-4FAg)
2022/12/05(月) 18:46:56.29ID:d/jwcHzh0
ワープ航法w
744デフォルトの名無しさん (ササクッテロラ Sp10-cIXn)
2022/12/05(月) 19:26:38.80ID:3chMJcRmp
8ビット時代にゃスタックジャンプは普通にやってたなぁ
745デフォルトの名無しさん (ラクッペペ MM34-k0qw)
2022/12/05(月) 19:33:53.84ID:XYzlQpP/M
スタック保護
https://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/c905.html
746デフォルトの名無しさん (ワッチョイ aa01-QZbE)
2022/12/05(月) 20:04:47.35ID:9YGPhFSH0
>>742
> 自動変数用のスタックは本物のスタックポインタ無視して別に作っちゃってもできるな。
当たり前だろ、その本物とやらのスタックポインタもたないマシン(例えば汎用機)もあるんだし

> でもその方がリターンアドレスが詰まれている所に変数混ぜるより安全な感じはする。
暴走するか変なデータになるかの違いしかない
どっちがマシかは状況による
747デフォルトの名無しさん (ワッチョイ eead-NN2n)
2022/12/05(月) 20:08:14.24ID:AHxKL62Z0
いや暴走のがマシなんて状況あるん?
変なデータは使用する時点でチェックすれば防げるけど
748デフォルトの名無しさん (ワッチョイ aa01-QZbE)
2022/12/05(月) 21:05:25.92ID:9YGPhFSH0
>>747
> いや暴走のがマシなんて状況あるん?
今時のプロセッサーなら暴走したら不当命令とか>>745のリンク先にあるデータ実行防止で止まる可能性が高い

> 変なデータは使用する時点でチェックすれば防げるけど
それが完全なら良いけど例えば金額が多少間違っててもチェックできないケースもあるだろ
749デフォルトの名無しさん (ワッチョイ 1a63-4FAg)
2022/12/05(月) 22:17:34.11ID:d/jwcHzh0
補助輪つき自転車みたいだ
750デフォルトの名無しさん (スップ Sd9e-6RBv)
2022/12/06(火) 00:15:19.77ID:XVvWtcz/d
>>737
抱えたまま他の関数を呼び出したり
あと再帰呼び出しとかスタックを利用する一番の利点とされてるけど?
問題なのは呼び出された関数がすでにスタックが残り少ないのを知る手段がなく
そこでクラッシュしても原因がわかりにくいという開発上のトラップだな
まあ大規模なソフト開発してみればわかるよ
751デフォルトの名無しさん (ワッチョイ 1a63-4FAg)
2022/12/06(火) 00:17:55.95ID:PYPomZFd0
それはメモリー不足が何時起きるか分からないと言ってるのと同じ事ですが
752デフォルトの名無しさん (ワッチョイ 0e02-R4o2)
2022/12/06(火) 00:44:18.64ID:8IYUkFNt0
スタックオーバーフローという
エラーメッセージがあるのでは?
753デフォルトの名無しさん (ワッチョイ 0e02-R4o2)
2022/12/06(火) 00:44:54.36ID:8IYUkFNt0
スタックオーバーフローという
エラーメッセージがあるのでは?
754デフォルトの名無しさん (ワッチョイ 2135-1pGr)
2022/12/06(火) 00:47:21.54ID:qZ0a8ZvK0
スタックオーバーフローという
エラーメッセージがあるのでは?
755デフォルトの名無しさん (ワッチョイ 2135-1pGr)
2022/12/06(火) 00:47:27.32ID:qZ0a8ZvK0
スタックオーバーフローという
エラーメッセージがあるのでは?
756デフォルトの名無しさん (ワッチョイ 1a63-4FAg)
2022/12/06(火) 00:48:27.88ID:PYPomZFd0
スタックオーバーフローは、大規模なソフト開発とはあまり関係ないデスね
大規模なソフト開発してて、スタックオーバーフローでプログラム落ちたら、
笑われると言うか、怒られるかも
757デフォルトの名無しさん (ワッチョイ 9610-8Kne)
2022/12/06(火) 01:09:59.63ID:LDJX4o340
スタック上に大領域確保するにしても
内部で余計な関数呼ばない結果だけ返す関数作って抱え込まない
深さを限定できない再帰呼び出しもありえないし
758デフォルトの名無しさん (ワッチョイ 9b5f-I/ml)
2022/12/06(火) 03:07:59.72ID:PbeCdWM30
699 デフォルトの名無しさん (ワッチョイ 972d-zuBb) sage 2022/12/01(木) 15:02:39.09 ID:ZPuEPm3M0
https://atcoder.jp/contests/abc273/submissions/35667282
このコードを実行するとscanfで入力を待つはずなのですが即座に終了してしまいます
たまにそういうコードを見かけるのですが何が原因なのでしょうか
printfを入れても実行されないのでmainがスキップしているような。。
759デフォルトの名無しさん (ワッチョイ 9b5f-I/ml)
2022/12/06(火) 03:09:09.32ID:PbeCdWM30
>>758
いまだにhを取るあたりがもう超絶無能
760デフォルトの名無しさん (ワッチョイ 9b5f-I/ml)
2022/12/06(火) 03:10:27.42ID:PbeCdWM30
>>758
25年くらい前のネットの書き方だな
761デフォルトの名無しさん (ワッチョイ d910-RX5i)
2022/12/06(火) 08:24:16.80ID:zdZ3zkNx0
Win98時代は1Mバイト程度の配列変数作っただけで動作がおかしくなってたな。
スタック増やせって言われてコンパイルオプション弄ったけど改善しなかった記憶・・・。

DOSからWinに来たときは64kバイト以上のメモリ確保さえ避けてた。
762デフォルトの名無しさん (ワッチョイ 9fc2-He5u)
2022/12/06(火) 08:27:50.69ID:63yxghiR0
そりゃー8086のセグメント方式なんだから64k超えは問題ありまくりんぐでそ
763デフォルトの名無しさん (アウアウウー Sab5-QZbE)
2022/12/06(火) 11:20:14.67ID:yvaEv+2ca
>>761
> Win98時代は1Mバイト程度の配列変数作っただけで動作がおかしくなってたな。
それは今でも一緒だろ
Windows の既定のスタックサイズは1MBのままだぞ
https://learn.microsoft.com/ja-jp/windows/win32/procthread/thread-stack-size
764デフォルトの名無しさん (ワッチョイ 1a63-4FAg)
2022/12/06(火) 11:30:06.24ID:PYPomZFd0
MS-DOSの頃は、メモリ1MB積んだPCってスゴイ豪華な印象だったな
搭載メモリーを使い切る様なプログラムを、オレは書けるんかって思ってた
765デフォルトの名無しさん (ワッチョイ 9fc2-He5u)
2022/12/06(火) 12:01:21.10ID:63yxghiR0
I/Oバンク方式かEMSかって時代か
766デフォルトの名無しさん (スッップ Sd70-AXrT)
2022/12/06(火) 14:59:37.11ID:iX2JPZR5d
本当のメインメモリとして使えたのは640kBまでで
残りの384kBはバンクかEMSの増設メモリだった
767デフォルトの名無しさん (ワッチョイ 1a63-4FAg)
2022/12/06(火) 19:43:39.61ID:PYPomZFd0
最初はハードウェアで実装してたけれど
そのうち仮想86モードだったかで、
特別なハードを追加せずにメモリアクセス出来る様になってたね
768デフォルトの名無しさん (ワッチョイ 463a-EnYx)
2022/12/06(火) 20:33:29.46ID:zjGx1PLy0
>>766
残りはハードウェアのIOやらROMやらVRAMなどだ
EMSウインドウはその開いている隙間アドレスにねじ込んだだけ
769デフォルトの名無しさん (ワッチョイ 9fc2-He5u)
2022/12/06(火) 21:49:14.42ID:63yxghiR0
>>767
あったねー、ソフトウエアEMS>ハードウエアEMSなんて珍現象
770デフォルトの名無しさん (ワッチョイ d9b3-SeIF)
2022/12/09(金) 05:45:28.61ID:QbuGAkRx0
#include <stdio.h>
#include <time.h>

void
main(void)
{
time_t now, now2;

now = time(NULL);
now2 = time(NULL);
struct tm *tm1 = localtime(&now);
struct tm *tm2 = localtime(&now2);

tm2->tm_mday = 1;
tm2->tm_mon = 1;

printf("%d %d\n", tm1->tm_mday, tm1->tm_mon);
printf("%d %d\n", tm2->tm_mday, tm2->tm_mon);
}
771デフォルトの名無しさん (ワッチョイ d9b3-SeIF)
2022/12/09(金) 05:46:27.95ID:QbuGAkRx0
tm2を変更するとtm1も同じ値になってしまいます。
回避方法を教えて下さい。
772デフォルトの名無しさん (ワッチョイ d9b3-SeIF)
2022/12/09(金) 05:47:05.17ID:QbuGAkRx0
OS:Linux Mint
コンパイラ:gcc です
773デフォルトの名無しさん (ワッチョイ f069-7kHv)
2022/12/09(金) 06:15:54.45ID:rdO0dbBS0
https://linuxjm.osdn.jp/html/LDP_man-pages/man3/ctime.3.html
localtime_r()を使いましょう

struct tm *tm1 = localtime(&now);
こんな使い方をするって時点でlocaltime()が「何」を返すのか、察しましょう
774デフォルトの名無しさん (ワッチョイ d9b3-SeIF)
2022/12/09(金) 06:58:19.07ID:QbuGAkRx0
>>773
サンクス、動いた
775デフォルトの名無しさん (ワッチョイ 9fc2-He5u)
2022/12/09(金) 07:14:28.04ID:aKtIUC7D0
このへん、言っちゃなんだけどクソだね
なんでこんな変な設計にしたんだろう
776デフォルトの名無しさん (ワッチョイ 2135-BGgp)
2022/12/09(金) 07:27:22.65ID:G83XZmEL0
ローカルで構造体を定義してそこへのポインタを返すとスタックから消えてデータが壊れますか?
777デフォルトの名無しさん (ワッチョイ aa01-QZbE)
2022/12/09(金) 07:54:25.65ID:DDM/thjI0
>>775
いちいち使う人に領域確保させる手間をかけさせたくなかったってことでしょ
マルチスレッドなんてない時代だし
778デフォルトの名無しさん (ワッチョイ aa01-QZbE)
2022/12/09(金) 07:57:34.07ID:DDM/thjI0
>>776
構造体に限らずローカル変数へのポインタを返すとポインタの指す先の内容は壊れる(かもしれない)
779デフォルトの名無しさん (スッップ Sd70-AXrT)
2022/12/09(金) 13:31:15.00ID:RVIOSi06d
未定義の動作という
780デフォルトの名無しさん (アウアウウー Sa08-g9pY)
2022/12/09(金) 15:26:27.10ID:Z1cscK2ka
>>775
strtok
781デフォルトの名無しさん (ワッチョイ d8cf-R4o2)
2022/12/09(金) 15:41:02.97ID:8zaQFmsV0
何らかの要因でテンパって煮詰まってコーディングしてて
変なものができてしまうこと、皆さんも経験あるのでは
782はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9e3e-7kHv)
2022/12/09(金) 17:25:23.52ID:Qnrm7z6h0
>>776
スタックから消えるというか、言語仕様的な用語でいうと生存期間が終了していることになる。
そんでオブジェクトを生存期間の外部で参照したときの動作は未定義なので何が起こるかわからん。
C でいう未定義ってのは「何が起きてもいい」なのでデータが壊れる (意味不明の値が読みだされる) だけでは済まないかもしれない。
783デフォルトの名無しさん (ワッチョイ 1a63-4FAg)
2022/12/09(金) 17:34:59.55ID:i/ZE6Izl0
恋と同じで、はかなく消える運命
784デフォルトの名無しさん (ワッチョイ dfad-KKgq)
2022/12/10(土) 01:00:03.41ID:ap6EnRqC0
>>776
すぐ消えないことがあるので読めてしまうかも知れない。しかし何かをすると一瞬にして破壊されて終わるかも知れない。
あてにしてはいけない。

ていうかこの頃のコンパイラってそういうのは警告出したりエラー扱いにしない?
785デフォルトの名無しさん (ワッチョイ df01-0RkQ)
2022/12/10(土) 08:35:32.63ID:0yWWcyiC0
コンパイル時に常に摘出できるわけじゃないし
786デフォルトの名無しさん (ワッチョイ 27c2-aipL)
2022/12/10(土) 08:43:06.25ID:VZKCrGXt0
いやバグは睾丸みたいに摘出はできないだろ
787デフォルトの名無しさん (ワッチョイ 679f-NKnn)
2022/12/10(土) 11:08:12.32ID:8LaJbp4o0
warning C4172: ローカル変数またはテンポラリのアドレスを返します: hoge

VS2022
788デフォルトの名無しさん (アウアウウー Sa6b-Fzhe)
2022/12/10(土) 11:18:10.60ID:W5v0KihFa
>>787
https://learn.microsoft.com/ja-jp/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4172?view=msvc-170
789デフォルトの名無しさん (ワッチョイ 7f63-KKgq)
2022/12/10(土) 11:34:37.41ID:FHzDIuwr0
そういうときはレジスタ変数のアドレスを返すようにコーディングしなさい
790デフォルトの名無しさん (ワッチョイ 6710-KKgq)
2022/12/10(土) 11:49:59.77ID:n733SMJ50
staticの出番は?
791デフォルトの名無しさん (アウアウウー Sa6b-uI1h)
2022/12/10(土) 12:13:19.32ID:9jPqI4Xva
そして>>773の仕様となるのであった…
792デフォルトの名無しさん (ワッチョイ 679f-NKnn)
2022/12/10(土) 12:55:16.29ID:8LaJbp4o0
int *fuga(void){
 register int i = 123;
 return &i;
}

error C2103: '&' レジスタ変数のアドレスを得ようとしました。

ふむ
793デフォルトの名無しさん (ワッチョイ a735-yK5Y)
2022/12/10(土) 13:24:22.34ID:HjLF/vvU0
>>788
説明とコードが対応してる気がしない
どういうこと?
794デフォルトの名無しさん (ワッチョイ a7ad-+fsS)
2022/12/10(土) 13:32:02.53ID:GuAR5Ny/0
>>348
レジスタに割り当てた変数には左辺値はないよ
だって、ハードウェアのレジスタだから
795デフォルトの名無しさん (ワッチョイ 27c2-aipL)
2022/12/10(土) 13:43:23.28ID:VZKCrGXt0
言いたいことはわかるけど日本語が変
左辺値はメモリアクセスを意味する式なので
レジスタに左辺値がないのではなく
記憶クラスがregisterの変数の識別子は左辺値ではない
796デフォルトの名無しさん (ワッチョイ a735-yK5Y)
2022/12/10(土) 13:46:04.91ID:HjLF/vvU0
>>789への疑問やろ
797デフォルトの名無しさん (ワッチョイ 8710-bPD3)
2022/12/10(土) 14:05:33.41ID:lr6mtoK80
>>793
floatからdoubleへ変換したうえでその参照を返してる
パッと見分かり辛くて人間の認知への挑戦かと思うなw
798はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-3TNT)
2022/12/10(土) 15:12:06.94ID:brInbnm70
>>792
register 指定が付いたらアドレスを取る操作自体が出来なくなるように制限されてるよ。
配列を register 付きで宣言したらなにも出来なさ過ぎてワロタwwwというのはよくあるネタ。
(言語仕様的には配列 (の要素) へのアクセスもポインタ演算の構文等になってるから暗黙にアドレスを取る操作。)

>>794-795
左辺値であるかどうかと記憶クラスは関係ない。
必ずしもメモリにアクセスすることを意味しない。
register 宣言でアドレスを取れなくなるのは左辺値でなくなるからではなく
& のオペランドは register 付きで宣言されたものであってはならないという直接的な制約。
どこをどう見ても左辺値の定義自体には register 指定は関係しない。

更に C99 の 6.5.3.2 から単項 & の制約について抜粋

> The operand of the unary & operator shall be either a function designator, the result of a
> [] or unary * operator, or an lvalue that designates an object that is not a bit-field and is
> not declared with the register storage-class specifier.

JIS の日本語だとこうなってる。

> 単項&演算子のオペランドは,関数指示子,[]演算子若しくは単項*演算子の結果,又は左辺値でな
> ければならない。左辺値の場合,ビットフィールドでもなく,register記憶域クラス指定子付きで宣言
> されてもいないオブジェクトを指し示さなければならない。

左辺値のときは register 指定されていてはいけないというのは逆に言えば register 指定されている左辺値というものも存在することを示唆する。
799デフォルトの名無しさん (ワッチョイ 27c2-aipL)
2022/12/10(土) 15:19:28.45ID:VZKCrGXt0
> register 指定されている左辺値というものも存在することを示唆する。

具体例ある?
800はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-3TNT)
2022/12/10(土) 15:24:22.50ID:brInbnm70
>>799
具体例というか、 register 指定は左辺値か右辺値かの定義に無関係なので
左辺値なものは register 指定されていようがいまいが左辺値って話。

変数の宣言のときに register 指定を付けたら全て register 指定のついた左辺値だよ。
801デフォルトの名無しさん (ワッチョイ 27c2-aipL)
2022/12/10(土) 15:44:01.19ID:VZKCrGXt0
メモリにアクセスすることを意味するでしょ。

6.3.2.1 左辺値
左辺値が評価されたときにオブジェクトを指し示していなければ,動作は未定義とする。

3.14 オブジェクト(object) その内容によって,値を表現することができる実行環境中の記憶域の部分。
参考オブジェクトを参照する場合,オブジェクトは,特定の型をもっていると解釈してもよい(6.3.2.1 参照)。

なんでそういう決まりになっているのかを理解せずに条文の字面に書いてあることだけ表面的に言う人とは歯車が噛み合わないな。
802デフォルトの名無しさん (ワッチョイ df7c-KKgq)
2022/12/10(土) 15:50:02.57ID:gyOVa4Se0
>>792みたいなのはレジスタ変数じゃなくてもやっちゃダメだけどw
803デフォルトの名無しさん (アウアウウー Sa6b-2vTk)
2022/12/10(土) 15:51:48.45ID:zHuXawkZa
昔の CPU はレジスタが少なくて
なんでもかんでも register 付けて宣言すると
CPU の持ってる実 register 数以上に宣言してしまうことが多い
では使い切った後の変数はどこに割り当てられるのか?
804はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-3TNT)
2022/12/10(土) 16:30:03.16ID:brInbnm70
>>801
話を >>794 といっしょくたにしたのが誤りだった。 すまぬ。

> ハードウェアのレジスタだから
の続きで
> メモリアクセスを意味する式なので
をハードウェア的なメモリアクセスの意味で解釈してしまった。
むしろそんなん関係なく言語仕様上の意味で反論してたんだね。

(後から読む人のために補足すると C の言語仕様でいう実行環境は言語仕様で規定する仮想的な実行環境の
ことであって実際の機械語とどう対応づけるか規定されない。 どういう機械語が生成されるかは
言語の意味の根拠にならないので言語仕様で再解釈しようとしたのが >>795 だと私は解釈した。)

が、言語仕様の解釈として

> registerの変数の識別子は左辺値ではない

の部分が誤っているということには変わりないよ。
805デフォルトの名無しさん (ワントンキン MMbf-0RkQ)
2022/12/10(土) 21:03:51.14ID:iVr3EzOTM
レジスターにもアドレスを割り当てておいたら良かったかも
806デフォルトの名無しさん (ラクッペペ MM8f-JsS5)
2022/12/10(土) 22:47:45.19ID:37vQL6PeM
昔6800系CPUはメモリの固定番地をレジスターと同格に扱うダイレクトメモリアドレッシングで見かけのレジスタ数を増やしていた
807デフォルトの名無しさん (ワッチョイ 7f63-KKgq)
2022/12/10(土) 22:55:13.62ID:FHzDIuwr0
レジスタを指すポインタをインクリメントすると、別のレジスタの値を書き換えられる、とか
808デフォルトの名無しさん (ラクッペペ MM8f-JsS5)
2022/12/10(土) 22:59:08.86ID:cw57tQlnM
組込み用の8ビットCPUでも同じような機能があるものもある
ダイレクトアドレッシング、ダイレクトページアドレッシングなど殆どは8ビットアドレスのゼロページ目をレジスタと見做して
メモリ経由することなく直接ALUで演算を行なうことが出来る
809デフォルトの名無しさん (ワッチョイ 7f63-KKgq)
2022/12/10(土) 23:32:50.32ID:FHzDIuwr0
レジスター配列とかプログラムコードをレジスタに置くとか
810デフォルトの名無しさん (ワッチョイ 27c2-aipL)
2022/12/11(日) 03:20:22.27ID:BIXjZcK80
>>804
左辺値がメモリアクセスを意味するのに?
811はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-3TNT)
2022/12/11(日) 03:56:09.23ID:ftKoc+Hh0
>>810
言語仕様では抽象計算機での動作として記述される。 (C99 なら 5.1.2.3?を参照)
記憶域として書かれているものは抽象的な意味の上での記憶域であって、
実際のメモリにアクセスするかどうかはコンパイラの裁量。
register 指定は変数の意味に関与せず、抽象機械の動作の上ではごく普通に記憶域に割り当てられているのと同じ。
その上で register 指定は「可能な限り速いアクセスを期待する」というヒントであることと、アドレスが取れなくなるという制約が付く。

register 指定は抽象機械の上での記憶域をハードウェアのレジスタに割り当てるなどして高速化してくれたらうれしいなぁ (/ω・\)チラッ
という指定であって、言語の理屈の上ではアドレスを取れない以外の何の意味も持たない。
812デフォルトの名無しさん (ワッチョイ 27c2-aipL)
2022/12/11(日) 06:45:02.24ID:BIXjZcK80
抽象計算機の記憶域がメモリではないって?
もういい、あんたとは話にならん
813はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-3TNT)
2022/12/11(日) 06:47:07.10ID:ftKoc+Hh0
>>812
根本的には register 指定で左辺値でなくなったりはしないという話をしてるんで。
814デフォルトの名無しさん (ワッチョイ 27c2-aipL)
2022/12/11(日) 07:35:55.41ID:BIXjZcK80
その話の根拠に疑問を示したんだけど、例の屁理屈に逃げるんでもういい
815はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-3TNT)
2022/12/11(日) 08:06:06.44ID:ftKoc+Hh0
>>814
言語仕様でそうなっているという以外に根拠が必要か?
816はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-3TNT)
2022/12/11(日) 08:12:25.56ID:ftKoc+Hh0
clang で抽象構文木を見る機能があったわ。
lvalue ってなってるだろ。

https://wandbox.org/permlink/j4csi19c5wVPE8ff
817デフォルトの名無しさん (ワッチョイ 27c2-aipL)
2022/12/11(日) 08:25:20.92ID:BIXjZcK80
>>815
しつこい
818デフォルトの名無しさん (ワッチョイ df01-0RkQ)
2022/12/11(日) 09:45:19.90ID:B9k8N7vL0
>>805
そういうプロセッサーはあるよ(ディスコンしてるけど)
C言語なら俺に聞け 159 ->画像>3枚
Z80 の裏レジスタは裏側のレジスタを直接触れなくてモヤモヤしたけどこいつは他のバンクのレジスタも直接さわれるからちょっと便利
PCとかもメモリー空間に見えてるプロセッサーもあったような気がするけど具体的なプロセッサー名を思い出せない

>>806
それはちょっと話が違う
単にアドレッシングモードとしてゼロページやダイレクトページが短いコードで扱えると言うだけのことでメモリーはあくまでもメモリー
例えば6800はPSH AでAレジスタをスタックにプッシュ出来るけどゼロページの内容を直接プッシュ出来るわけじゃない
6502 のインダイレクト・インデックストYぐらいの機能ならまあベースレジスタをメモリー上に置けるとは言えるけど
819デフォルトの名無しさん (ワッチョイ df01-0RkQ)
2022/12/11(日) 09:47:13.53ID:B9k8N7vL0
>>817
しつこいのは君かと
そもそも左辺値なんて言語仕様で定義されてるんだから仕様書で反論できない時点でお前の負け
820デフォルトの名無しさん (スッップ Sdff-c2mE)
2022/12/11(日) 10:26:09.32ID:2yXQoOg9d
IDコロコロ
821はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-3TNT)
2022/12/11(日) 10:45:16.87ID:ftKoc+Hh0
>>819
べつに勝ち負けを競っているわけじゃない。
根拠 (この場合は言語仕様) に基づく解釈の妥当性がそれで変わることはないので納得しない誰かがいても不都合もない。
5ch に書き込むのはただの暇つぶしだ。
どうせほかに話題もないんだからしつこくてもいいんじゃね。
反応するかどうかは知らんけど。
822デフォルトの名無しさん (ワッチョイ e701-0RkQ)
2022/12/11(日) 11:25:34.59ID:RuZtb54i0
>>821
そういうレスは流石にしつこいわ
823デフォルトの名無しさん (ワッチョイ 87bb-3TNT)
2022/12/11(日) 15:02:48.86ID:51+9+dkC0
ブレークブレークw
824デフォルトの名無しさん (ワッチョイ 7f63-KKgq)
2022/12/11(日) 15:25:03.37ID:jc+ZhrAU0
みんな仲良くしなよ
825デフォルトの名無しさん (ワッチョイ a705-u86g)
2022/12/11(日) 17:37:29.66ID:kiLLcra70
ポインタは卒業した。コンパイラあるんだから、ググるより書いて結果を見たほうが早いぞ。
何十回も繰り返せばわかるはず。
826デフォルトの名無しさん (ワッチョイ a705-u86g)
2022/12/11(日) 17:42:03.60ID:kiLLcra70
亀レスだが機械語を知らないと、いい高級言語は書けない、ってのはわからん。
機械語と高級言語は別物だろう。

機械語を簡単に理解できる知能水準の人は、高級言語を新しく学習したときも
たやすく理解できる、

というのが実態なのに、ネットでは背びれ尾ひれついて、「ハードウェアを知らないと、〜」みたいな
論調が市民権を得ているな。
827デフォルトの名無しさん (ワッチョイ df7c-KKgq)
2022/12/11(日) 18:08:31.63ID:3kpvLkL20
CやC++はアセンブラレベルが理解出来ないとそもそも実装が無茶苦茶だったりするけど
ポインタとかが無いJavaとかはそこまでアセンブラレベルでどうのこうのってのは無いが
それでもコンピュータ的な知識が皆無な奴は論理演算を理解出来なかったりするし
ビットシフトみたいなことやってると、何でこんな書き方しているの?みたいな事言う奴出てくるからなぁw
828デフォルトの名無しさん (ワッチョイ 7f63-KKgq)
2022/12/11(日) 18:39:34.39ID:jc+ZhrAU0
それがメモリー上二銅格納されてるか位は知っておいた方が良いよ
配列データをソートする時、どうやると効率的かがすぐ分かる
829デフォルトの名無しさん (ワッチョイ 7f63-KKgq)
2022/12/11(日) 18:40:10.49ID:jc+ZhrAU0
メモリー上にどう格納
830デフォルトの名無しさん (テテンテンテン MM8f-gr5V)
2022/12/11(日) 18:50:45.41ID:DhbhWaSTM
2の補数表現の知識は機械語の範疇だろう
スタックもそうだ
Cの仕様にスタックなんて言葉は出てこないからな
register指定も完全に機械語だ
タイマとか割り込みを扱う場合は機械語の知識も必要だな
setjmp longjmpも何が保存されてるのか理解するには機械語の知識が必要だ
要するに機械語の知識は必要だ
831はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-3TNT)
2022/12/11(日) 19:18:24.83ID:ftKoc+Hh0
>>825
ポインタ演算は未定義動作を簡単に引き起こせてしまうので
十分に理解できてない状態で実際に動作させてみるというのはあまりあてにならない。
ある程度は理解した上で実際にやってみたら納得しやすいってことならわかるけど。
832デフォルトの名無しさん (アウアウウー Sa6b-Fzhe)
2022/12/11(日) 19:19:01.91ID:HcYuyEaDa
何十年前の話題を蒸し返してるのか知らんけど今のコンパイラは賢いからregisterとか使う必要ないぞ
むしろ人間が余計な指示を出すことで効率が悪くなる可能性すらあるからハードウェアの知識が云々とかいう老害理論はパイプラインとかキャッシュとかを全て把握してから言ってくれ
君たちの時代は終わったんだよ
833デフォルトの名無しさん (ワッチョイ 7fcf-FUlb)
2022/12/11(日) 19:29:49.83ID:vn3Pz69o0
register なんてあてにならんもん、使ってる奴いなかったと思うよ
本当に速くしたい所は、それこそインラインアセンブラ使ったり
アセンブルしたルーチン呼んでたし
834デフォルトの名無しさん (アウアウウー Sa6b-Fzhe)
2022/12/11(日) 19:33:50.07ID:HcYuyEaDa
>>833
コンパイラが本当に愚直な時は最適化無しで使ってたぞ
835デフォルトの名無しさん (ワッチョイ 7fcf-FUlb)
2022/12/11(日) 19:38:52.22ID:vn3Pz69o0
それは失礼した
836はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-3TNT)
2022/12/11(日) 19:39:00.70ID:ftKoc+Hh0
少なくとも gcc とか clang くらいのモダンな処理系ではコンパイラの判断のほうが賢いわな。

低レイヤのコードだと人手で指定を付けたいときもあるかもしれんが
そういう分野ではどうせ処理系の拡張がなきゃどうにもならんので
register キーワード程度のあやふやなものひとつを言語仕様に入れてもあまり役に立たない。
C++ では register は削除された (機能は削除されたがキーワードとしては予約語のまま) わけだし、
C でもその内に削除されるんじゃないかな。
837デフォルトの名無しさん (アウアウウー Sa6b-VZV0)
2022/12/11(日) 20:04:06.71ID:8Gp9TgZBa
register なんて要らんとか昔からずーっと言われてるけど
つけたらつけたで速くなったのその目で見たやつも居るでしょ?
gcc と gprof だけで頑張ってたとき確かに速くなったけど
だから register は有効有用使うべきとは言わないけどね
838デフォルトの名無しさん (ワッチョイ a7e6-JdnI)
2022/12/11(日) 21:31:25.77ID:OhnENqmv0
>>830
>setjmp longjmpも何が保存されてるのか理解するには機械語の知識が必要だ
基本スタックポインタとプログラムカウンタだけだと思っていましたが、まあレジスタ全部と他何を保存してましたっけ?
839ハノン ◆QZaw55cn4c (ワッチョイ a7e6-JdnI)
2022/12/11(日) 22:26:47.72ID:OhnENqmv0
>>836
>C++ では register は削除された (機能は削除されたがキーワードとしては予約語のまま)
auto のように別の形で復活しそうですね
あと、asm はどうなりましたか?
840デフォルトの名無しさん (テテンテンテン MM8f-gr5V)
2022/12/11(日) 22:34:58.44ID:IkAIpxjPM
>>838
基本レジスタ全部だな(OSが使うレジスタは含まず)
他は無いはずだけど
ただ、戻り値にレジスタを使ってる場合は、そのレジスタは書き換えられてるだろう
841デフォルトの名無しさん (ワッチョイ 27c2-aipL)
2022/12/12(月) 06:30:06.98ID:ychPXO7Q0
メジャーどころのCPUは大抵、戻り値はレジスタだね
842デフォルトの名無しさん (ラクッペペ MM8f-JsS5)
2022/12/12(月) 07:28:31.07ID:v0et11DOM
呼出規約
https://ja.wikipedia.org/wiki/%E5%91%BC%E5%87%BA%E8%A6%8F%E7%B4%84
843デフォルトの名無しさん (スフッ Sdff-qs7g)
2022/12/12(月) 14:27:00.05ID:Y3syqvcfd
static記憶クラス指定子の理解はできますが、いざプログラムを組んでみると、使い方がわかりません。
844デフォルトの名無しさん (アウアウウー Sa6b-Fzhe)
2022/12/12(月) 14:36:59.78ID:jnrvptAKa
>>841
CPU関係あるか?
845デフォルトの名無しさん (ワッチョイ 7fcf-FUlb)
2022/12/12(月) 14:37:08.19ID:RmZ1ojDx0
わかるものを使えばいいよ
846デフォルトの名無しさん (ワッチョイ 7f63-KKgq)
2022/12/12(月) 15:05:24.79ID:BWUj5Mhq0
意訳
メジャーどころのCPU(に対応したCコンパイラ)は大抵、戻り値はレジスタだね

ではないかと
VCだとコンパイルオプションで変化した記憶がある
847はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-3TNT)
2022/12/12(月) 16:42:43.35ID:J7ftRWn10
>>844
呼び出し規約 (を含む ABI) の策定はアーキテクチャを設計したところが主導するもんじゃないのかな。
CPU の特性に反した使い方を基本にされても困るだろうし。
ざっと調べた感じだとよく使われている System V ABI はインテルが議長の委員会で決める体制っぽい。

マイクロソフト (Windows) は引数の渡し方がちょっと違う規約でやってて
文句も出てない (出てないよね?) からそんなに強い強制力があるわけでもないんだろうけど、
CPU ごとに常識的な使い方というものはあるだろう。
848デフォルトの名無しさん (ワッチョイ 7fcf-FUlb)
2022/12/12(月) 16:59:57.60ID:RmZ1ojDx0
B言語でも戻り値はレジスタだったし
849デフォルトの名無しさん (アウアウウー Sa6b-Fzhe)
2022/12/12(月) 19:01:13.79ID:xR631HBma
>>847
マイクロソフトが作ってるハードはSurfaceとかだろ?
850デフォルトの名無しさん (ワッチョイ df36-KKgq)
2022/12/12(月) 19:19:51.33ID:m7KoqGgA0
DOS時代にグラフィックライブラリとかをMASMでアセンブルして出来たobjファイルを
Cコンパイラで作ったobjとをリンクさせて
Cからアセンブラのルーチン呼び出したりしてたけど、
COBOLやFORTRANで作った関数をリンクさせて
Cで呼び出したりも出来るの?
851デフォルトの名無しさん (ワッチョイ 7f63-KKgq)
2022/12/12(月) 19:31:09.72ID:BWUj5Mhq0
FORTRANなら呼べると思うが、COBOLは分からない

FORTRANやCOBOLからならCの関数は呼べたと思う
852デフォルトの名無しさん (ワッチョイ df7c-KKgq)
2022/12/12(月) 19:34:09.58ID:2yJi4NkT0
objファイルは流石に無理があるけどDLLや静的ライブラリでも作れば良いだけでは?
gfortranならexe以外にもDLL等が作成出来る
853デフォルトの名無しさん (ワッチョイ 7f63-KKgq)
2022/12/12(月) 19:37:26.25ID:BWUj5Mhq0
受け渡しのデータ型も割と近くないかな?
854デフォルトの名無しさん (ワッチョイ a701-3npV)
2022/12/12(月) 19:39:34.73ID:qCai2YYC0
引数の積みかたやらスタックフレームの巻き戻しはどっちがやるか等の約束事が
シンプルに固定されてるDLLなら他所言語への持ち出しや持ち入れがやりやすいわね
855デフォルトの名無しさん (ワッチョイ a705-u86g)
2022/12/12(月) 20:17:18.59ID:munrOkPw0
>>828 まあ・・C言語を触るぐらいだから、一般的には大学とかのコンピュータサイエンス教科を
履修しているのが前提だろうから、そこはあえて省略したのですが・・

昔の高校生は頭がよかったけど。

今は「仕事でC言語を触らせてくれる身分」になるためには基本、情報系の大卒でしょうし・・
856デフォルトの名無しさん (ワッチョイ a705-u86g)
2022/12/12(月) 20:18:59.06ID:munrOkPw0
>>828 配列のソートってメモリ意識しますかね。フラグメンテーションとか考えたこともないな・・。
単純に演算オーダー(log O^n とか・・)そんな感じである程度予測を立てて、あとは扱うデータ次第かと。
857はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-3TNT)
2022/12/12(月) 21:58:34.14ID:J7ftRWn10
アルゴリズムのレベルではある程度の効率は事前に考えるけど
断片化とかキャッシュヒットとかはチューニングが必要な状況になるまで考えないな。
むしろ考慮したくなっても意識的に忘れるようにする。
いわゆる「早すぎる最適化」の一種だから。

当然ながら必要になったときには知っている必要はあるんだけどそんな機会は多くないよね。
普通の (アルゴリズムのレベルでは充分に配慮された) プログラムを書いて極端に効率が悪いようなら
メモリアロケータやキャッシュの設計のほうが悪い。
(そうは言っても目の前にあるものがそうなってるなら自分のほうが合わさないとしょうがないんだろうけどさ……)
858ハノン ◆QZaw55cn4c (ワッチョイ a7e6-JdnI)
2022/12/12(月) 22:18:23.35ID:1Of7Vyge0
>>847
win32api はなぜ PASCAL にしたんでしょうかね?
859ハノン ◆QZaw55cn4c (ワッチョイ a7e6-JdnI)
2022/12/12(月) 22:21:28.35ID:1Of7Vyge0
>>847
AMD64 は AMD が呼び出し規約まで決めちゃったけれども、普通は OS 屋が決めるものという気がしますけどね
860はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-3TNT)
2022/12/12(月) 23:05:07.66ID:J7ftRWn10
>>839
register というキーワードが将来に転用 (repurposing) 出来るようにというのは書かれている。
https://timsong-cpp.github.io/cppwp/n4659/diff.cpp14.dcl.dcl

auto という名前が新しい用途にぴったり (少なくとも不自然ではない) なので
それと同じくらいに register という名前が丁度良い場面というのは全く想像がつかないんだけど
思いもよらぬ形で上手いこと使われることはあるかもしれんね。

メンバ関数の宣言のときの default とか delete とかも考えたやつは天才じゃん……と私は思ったよ。
861デフォルトの名無しさん (ワッチョイ 7f63-KKgq)
2022/12/12(月) 23:08:20.90ID:BWUj5Mhq0
switch文のdefaultはたまに綴りを間違えてしまうw
862はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-3TNT)
2022/12/12(月) 23:14:51.65ID:J7ftRWn10
>>861
あれの問題点は綴りを間違えてもラベルという扱いになってしまってエラーとして検出されないところなんよね。
処理系やオプションによっては使われていないラベルとして警告が出たりはするんだけど。
863デフォルトの名無しさん (スフッ Sdff-d44j)
2022/12/12(月) 23:35:39.10ID:zHXfNaq5d
転用とかややこしいだけだから勘弁
自動でautoだからあんまり気にすんなよ、ちなc++ではこんな意味だよと、またややこしい補足が増えるだけ
むしろアンスコ付きの変な名前の方がかえってキーワードなんだなと分かりやすい、ソースは醜くなるけど、それは今更
864デフォルトの名無しさん (ワッチョイ 7fcf-FUlb)
2022/12/13(火) 00:08:19.11ID:HbzfEbfW0
auto も B言語の名残りだか後方互換だかで、
Bではデータ型がなくて、変数=整数が文脈により、ポインタとしても使われた
その storage classesとして、automatic, external, internal の3種類があった

main() {
extrn putchar, n, v;
auto i, c, col, a;
(略)
putchar('*n*n');
}

v[2000];
n 2000;

という風に auto で変数を宣言していた
865デフォルトの名無しさん (スフッ Sdff-d44j)
2022/12/13(火) 00:29:54.37ID:+JwZZYrvd
他に触る言語で明示的にauto宣言するのはbcかな、オモチャみたいなもんでPOSIXも有名無実で仕様なんぞ無いに等しいが

ポインタは明示的に触らないけど、エミュる時は配列の添字にauto変数(整数)突っ込むからむしろCよりBっぽい
866デフォルトの名無しさん (ワッチョイ 7f63-KKgq)
2022/12/13(火) 00:36:12.95ID:FXPyPtyo0
可変長で必要に応じて伸び縮みする配列とか、
桁数制限無しの整数型や計算誤差のない実数型とか

誰か作って(人任せ)
867デフォルトの名無しさん (ワッチョイ 27c2-aipL)
2022/12/13(火) 06:01:01.43ID:d0KqwuA/0
> 桁数制限無しの整数型

つGMP
868デフォルトの名無しさん (アウアウウー Sa6b-0RkQ)
2022/12/13(火) 07:11:07.69ID:ZjPntofYa
>>858
当時流行ってたからだろ
869デフォルトの名無しさん (ワッチョイ a7e6-JdnI)
2022/12/13(火) 07:11:26.57ID:4+XH+KhI0
>>866
>桁数制限無しの整数型
http://2chb.net/r/tech/1434079972/84
870デフォルトの名無しさん (テテンテンテン MM8f-gr5V)
2022/12/13(火) 13:48:16.74ID:aee1RRAhM
計算誤差の無い実数型って不可能だけどなw
decimalを使うと2進数は10進数の浮動小数点数を正確に表現出来ない問題を解消できる
ratio(分数)を使うと、1/3とかをそのまま保持出来るから誤差が出ない
ちなみに、Common Lispは分数を凄い簡単に扱えるしbignumも使える
Cでもそうなって欲しいもんだ
871デフォルトの名無しさん (アウアウウー Sa6b-Fzhe)
2022/12/13(火) 13:59:48.87ID:7PNjtjtua
なぜ分数や多倍長整数が必要な案件にCなんかを使うのか
872デフォルトの名無しさん (ワッチョイ 7f63-KKgq)
2022/12/14(水) 12:00:46.68ID:erx97Ujd0
虚数や複素数も扱えてたよね
あまり使い道はないかも知れないが
873デフォルトの名無しさん (ワッチョイ 7f02-d44j)
2022/12/14(水) 13:40:07.30ID:XaqmHtNn0
区間を分割して評価、終了判定がintegerpで判定とか細かい所で色々楽はできるだろう
単にスケールしても済むし、何回もやるなら任意精度でない有理型くらい構造体とgcdさえ書ければ誰でも書けるだろ

用途が違うし別にclは推さんが、標準の一つであるcltl2はあらゆるプログラマに貴重な書
浮動小数点演算に関しても複素関数の豊富なプロット載せて定義やブランチカット選びの良し悪しにかなりページ割いて、その図の生成に使ったpsコード生成コードも載ってる

つーか>>866はbcって言って欲しいだけでしょ、おまえら釣られすぎ
874デフォルトの名無しさん (ワッチョイ 7f02-d44j)
2022/12/14(水) 14:04:41.21ID:XaqmHtNn0
<cmath.h>徹底解剖みたいな文献って無いんだろうか
875デフォルトの名無しさん (ワッチョイ 7f02-d44j)
2022/12/14(水) 14:17:47.17ID:XaqmHtNn0
complex.hだった
最近触り始めたpythonでcmathだから素で間違えた
んでc++はmath.hが<cmath>と…
876はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-3TNT)
2022/12/14(水) 16:18:53.52ID:YAu9ihh40
math.h と cmath とは事情がややこしいので単に名前が変わっただけとは思わないほうがいい。
math.h の関数は多相化されてなくてマクロで多相化された版は tgmath.h にある。
cmath の多相化にはテンプレートが使われている。
877デフォルトの名無しさん (ワッチョイ 7f02-d44j)
2022/12/14(水) 19:29:35.78ID:XaqmHtNn0
Cのtgmathの方が(実装的な意味で)エグいよね
よくマクロの真髄みたいに色んな実装が紹介されるし、ちゃんと動いてるんだろうけど
ちょっと訳がわからないものは避けたい…

_Genericでスッキリ書けたりしないのだろうか
878デフォルトの名無しさん (スププ Sdff-d44j)
2022/12/14(水) 20:13:04.33ID:h6lYzG45d
ヘッダに直書きされてるから目につく機会が多いだけで、内部的にやっても同じロジックが隠れるだけか
気にし出せばきりがないようにも思う
879デフォルトの名無しさん (ワッチョイ 27c2-aipL)
2022/12/14(水) 20:45:14.60ID:QXbvEgmH0
>>874
<ccmath>?
880はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-3TNT)
2022/12/15(木) 14:40:26.12ID:xFKc8Du50
>>877
_Generic で素直に分岐すれば問題なくかけるよ。
tgmath.h が規格に入ったとき (C99) は規格の範囲内でやる方法は無かったので
処理系の拡張を使ったり新たな拡張を作ったりしてなんとかなったのだがやっぱりそれは
あかんやろと思ったのか C11 で _Generic を入れることになった。

ただ、処理系は C99 に厳密なモードを持つことがあるからそのモードで動かしたときに
ヘッダ内の _Generic についていちいち警告なりエラーなりが出るのもよろしくないし、
#ifdef で分けるのも二度手間だし、
旧来通りの実装で残すのはそれなりに合理的なんだと思う。

ありがたいことに普通に使う分には標準ヘッダの実体を気にする必要はないのだから忘れておくのが幸せだろう。
881デフォルトの名無しさん (ワッチョイ 2a04-e5AJ)
2022/12/21(水) 10:08:23.47ID:537DsEmx0
// エラーを報告するための関数
// printfと同じ引数を取る
void error(char *fmt, ...) {
va_list ap;
va_start(ap, fmt);
vfprintf(stderr, fmt, ap);
fprintf(stderr, "\n");
exit(1);
}
これってprintfをerrorに変えただけって認識でok
882デフォルトの名無しさん (ワッチョイ 2a04-e5AJ)
2022/12/21(水) 10:08:47.18ID:537DsEmx0
すまん誤爆した
883デフォルトの名無しさん (ワッチョイ 2a04-e5AJ)
2022/12/21(水) 10:11:35.91ID:537DsEmx0
これってprintfをerrorに変えただけって認識でok?
error("引数の個数が正しくありません");と
fprintf(stderr, "引数の個数が正しくありません\n");
の違いを誰か教えてくれ
884はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 3b3e-JDfe)
2022/12/21(水) 10:21:03.43ID:6CmfCawf0
>>881-883
その認識でいいけどそれに加えて最後に exit で終わっているから
復旧不可能なエラーを報告するための関数なんだろ。
885デフォルトの名無しさん (ワッチョイ be63-e5AJ)
2022/12/21(水) 10:21:33.71ID:LOXcnIHB0
呼び出したら、死ぬ?
886デフォルトの名無しさん (スフッ Sd8a-evpg)
2022/12/21(水) 10:31:04.10ID:Fs8T+fBed
そのerrorならexit以外そうじゃね
perror(msg)はもう少し賢くて
fprintf(stderror, "%s: %s\n", msg, strerror(errno))
相当(by k&r2e)
887デフォルトの名無しさん (ワッチョイ 2a04-e5AJ)
2022/12/21(水) 10:34:02.36ID:537DsEmx0
>>884
こんな時間にありがとう、助かる。
fprintf(stderr, "引数の個数が正しくありません\n");と同じってことやな
これにexitを加えて関数にしたのがerrorってことやね
わざわざerror関数にする必要性がわからんかったから助かったわ
888デフォルトの名無しさん (ワッチョイ be63-e5AJ)
2022/12/21(水) 10:37:12.34ID:LOXcnIHB0
私なら、error()を呼び出した側でexit()呼ぶなあ
889デフォルトの名無しさん (スフッ Sd8a-evpg)
2022/12/21(水) 10:39:53.43ID:Fs8T+fBed
ステータス選べるしな
わざわざexitに渡すステータス引数を拵えるくらいならexit読んだ方が早い
890デフォルトの名無しさん (スフッ Sd8a-evpg)
2022/12/21(水) 10:51:42.39ID:Fs8T+fBed
>>881
あ、地味にfprintf(stderr, "\n")でフラッシュしてるのに気付いた
あるいはfmtへの\n付け忘れ防止配慮か
基本stderrはこまめにフラッシュされるものと思ってるけど、fflushや"\n"で念を入れても損は無いな
891はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 3b3e-JDfe)
2022/12/21(水) 11:33:17.33ID:6CmfCawf0
言語仕様では exit で終了とか main の終端に到達した場合に全てのオープンされているファイルはクローズする
(そのときに全ての出力ストリームをフラッシュする) というのは保証してる。

エラーが起きている状況でどこまで信用できるかよくわからんから念押ししても損はないだろうけど。
892デフォルトの名無しさん (ワッチョイ 2a04-e5AJ)
2022/12/21(水) 15:19:19.23ID:537DsEmx0
http://codepad.org/noY0x7K2
これの70行目と79行目の*ってただただ関数でポインタを扱うよってだけ?
なんか関数ポインタと似ててどうなんやって思った
int (*func1)(char*, int);
893デフォルトの名無しさん (スップ Sd8a-UQjj)
2022/12/21(水) 15:23:54.32ID:WXW0EqS+d
なんか質問者はexit呼ばないんだったら関数化しないでええやろって思ってそうで怖いな
設計方針次第でもあるが心配になるな
894デフォルトの名無しさん (ワッチョイ 2a04-e5AJ)
2022/12/21(水) 15:35:25.72ID:537DsEmx0
>>893
今学習段階だからかなりの無知なんや、すまん
895デフォルトの名無しさん (ワッチョイ 2a04-e5AJ)
2022/12/21(水) 15:51:20.06ID:537DsEmx0
あと上のURLのプログラムのcallocではメモリ解放してないけど大丈夫なのか?
896はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 3b3e-JDfe)
2022/12/21(水) 15:56:02.50ID:6CmfCawf0
>>892
返却値の型が Token* であるという意味。
でも文法的には * は宣言子に含まれていて Token の側じゃなく関数名がある側のグループなんよ。
だから右側に寄せて書く習慣になってる。
C の宣言の文法が無茶苦茶なのはイマサラな話なので……。

可変長引数の扱いも低レイヤの事情が見え隠れするような古の設計なので
歴史的事情を知らんとわけわからんのもしょうがないとは思う。
897デフォルトの名無しさん (ワッチョイ 7e02-evpg)
2022/12/21(水) 16:08:16.37ID:5pWmYDMC0
一貫性が大事って意味ならそう思う、特にdiagnosticなエラー(最後まで残る)は

俺は手入力で適当なエラーメッセージ書くのは極力控えてる、例えば数学関数書いてるなら
errno = EDOM;
perror(__func__);
→my_func: Argument to the math function out of domain.
的な
手続き的なルーチン(main)なら__FILE__/__LINE__とかで

用意されてるシンボル定数で意味論が合うなら活用すべき

EDOMなんかは好きに使っていいけど、システム、IO関連のエラーは意味が直感的でなかったり、規約に厳密に従わないとerrno見るcallerが騙されたりでバグの素なので、ちゃんとマニュアル参照のこと
898デフォルトの名無しさん (ワッチョイ 2a04-e5AJ)
2022/12/21(水) 16:09:52.42ID:537DsEmx0
>>896
こりゃかなわん。
基礎から出直してくる
899デフォルトの名無しさん (ワッチョイ 7e02-evpg)
2022/12/21(水) 16:10:45.37ID:5pWmYDMC0
ああ、当たり前だけどerrnoを上書きする前に気付いてないフラグ立ってないかif(!errno)チェックは忘れずに
割と立ってる事がある()
900デフォルトの名無しさん (スップ Sd8a-UQjj)
2022/12/21(水) 16:16:43.94ID:WXW0EqS+d
>>895
勿論使い終わったら解放する必要があるので解放関数を用意してあげよう
901デフォルトの名無しさん (ワッチョイ 6a01-6ae9)
2022/12/21(水) 17:55:00.19ID:j8NGwdcp0
>>895
exit() したら解放されるからいいんじゃん

って言う層が一定数いる
902デフォルトの名無しさん (スッップ Sd8a-kgXK)
2022/12/21(水) 18:13:15.89ID:3kYobt3Gd
今、息してるのか?
903デフォルトの名無しさん (ワッチョイ be63-e5AJ)
2022/12/21(水) 18:21:41.76ID:LOXcnIHB0
一日一回再起動すれば大丈夫
904デフォルトの名無しさん (ワッチョイ 4bc2-Kqkv)
2022/12/21(水) 21:42:34.64ID:MxQdxJ6G0
再起動なんてちまちましたことやってられるかい
電源ぶっこ抜いて入れ直すんだよ、それか蹴れば直る
905デフォルトの名無しさん (ワッチョイ f310-e5AJ)
2022/12/22(木) 11:43:33.39ID:kpFE4WK60
アプリ(強制)終了後に使ったファイル削除→このファイルは使用中です。


OSで保証されてないならアプリ側でやるしか無いじゃん。
906デフォルトの名無しさん (ワンミングク MMda-6ae9)
2022/12/22(木) 13:27:28.75ID:LbsYIb+eM
誰かがこのPCを使っている
907デフォルトの名無しさん (スッップ Sd8a-kgXK)
2022/12/22(木) 13:35:11.18ID:KHPfY9lXd
LANなら充分にあり得ることだな
908デフォルトの名無しさん (ワッチョイ 9710-Hnc0)
2022/12/22(木) 19:42:13.17ID:/Ar1RYH70
プロセス終了に関しちゃ今時のOSでハンドル握りっぱなしにはならんでしょ
909デフォルトの名無しさん (スフッ Sd8a-O+Yo)
2022/12/22(木) 20:28:13.17ID:Q5govio9d
/* 文字列を逆順にして返す関数 */
#include <stdio.h>
#include <string.h>
void reverse(char *ss);
int main(void)
{
  char tt[]= "programing game"; 

reverse(tt);
printf("tt=%s\n",tt);
return 0;
}
void reverse(char *ss)
{
int wk,pos1=0,pos2;
pos2=strlen(ss)-1;
while (pos1<pos2) {
wk=*(ss+pos1)
*(ss+pos1)=*(ss+pos2);
*(ss+pos2)=wk;
++pos1;
--pos2;
}

}
このプログラム、gccだとコンパイル出来ますが、clangだと以下のエラーになります。なぜでしょうか?
~/CCR/UserFiles/sample26.c:22:3: error:
invalid operands to binary
expression ('int' and 'char *')
*(ss+pos1)=*(ss+pos2);
^~~~~~~~~~
1 error generated
910はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 3b3e-JDfe)
2022/12/22(木) 20:40:06.89ID:KT1tc7ko0
>>909
wk=*(ss+pos1) の後にセミコロンが抜けてる。
911デフォルトの名無しさん (スフッ Sd8a-O+Yo)
2022/12/22(木) 20:43:53.45ID:Q5govio9d
ありがとうございます。コピペミスでした。
912はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 3b3e-JDfe)
2022/12/22(木) 21:11:31.21ID:KT1tc7ko0
事例としては面白いよ。
セミコロンが抜けても一応は式の形式として成立するから
型が合わないというところがエラーとして報告されちゃうんだな。
913デフォルトの名無しさん (ワッチョイ 6a01-6ae9)
2022/12/22(木) 22:10:59.69ID:dL3lthyL0
昔のコンパイラならエラーなしで通してだろうな
914デフォルトの名無しさん (ワッチョイ 7e02-evpg)
2022/12/22(木) 22:43:34.75ID:K5vPIqXq0
ナウいヤングな文字列の掛け算はサポート外なんだわ
strcatで頑張れ
915デフォルトの名無しさん (ワッチョイ 4bc2-Kqkv)
2022/12/22(木) 23:40:21.52ID:bege0WAi0
昔のコンパイラだと=*が乗算代入だったんだけどな
916デフォルトの名無しさん (ワッチョイ f369-CLTW)
2022/12/23(金) 08:27:13.83ID:msM3WKDD0
exit on free 論争か・・・ そういう論争があったというのは知っているが
どっちに帰着したのか知らない
917デフォルトの名無しさん (スッップ Sd8a-kgXK)
2022/12/23(金) 08:52:05.54ID:FPNxo7old
RAIIでexitするやついたら匙投げる
918デフォルトの名無しさん (ワッチョイ b363-dxp0)
2022/12/24(土) 17:52:35.28ID:aYmW2hx40
プロセス終了を検知してOSで良きに測って欲しいよね
919デフォルトの名無しさん (ワッチョイ 1301-iijX)
2022/12/24(土) 20:25:27.94ID:xbH5VpiM0
>>917
膨大なリストなんかはいちいち解放しないで exit( ) でヒープごと解放する方が効率的なんて言う奴までいたんだよ...
920デフォルトの名無しさん (ワッチョイ b363-dxp0)
2022/12/24(土) 21:34:16.33ID:aYmW2hx40
いっそプログラム開始時に、
ドーンとでっかくメモリ確保して
自前でチマチマ割り当てて、
終了時にドーンと解放で良い気もする
921はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 6d3e-aH43)
2022/12/25(日) 00:15:12.94ID:8blj/qJt0
そういう戦略をとっている有名なプログラムもある。
確保したメモリが結局はプログラムの最後までほとんど使用されっぱなしだということがわかっているなら
ちまちま管理しなくても終了と同時に全部が回収されることをあてにしても総合的なメモリ使用量は変わらない
(むしろ free のコスト分だけ節約できる) という考えをすることはあって、
リンカの LLD や Mold がそういう戦略をとっていたはず。

http サーバの h2o はセッション単位でドカンとメモリの確保と解放をしてる。

つってもプログラム全体のメモリについて見通しが立てられるということと
実行環境の事情を把握してるからそういう戦略を取れるのであって、
普通は小さなモジュールに分割するし、モジュール単位でメモリ管理に矛盾がないように設計するので
結果的にチマチマした確保と解放になる。

そこそこの規模になるとプログラムを分割せずに把握するのは大変なので凡人は小さな単位で
確保と解放をするように設計するのはしょうがないよ。
922デフォルトの名無しさん (ワッチョイ 1301-iijX)
2022/12/25(日) 07:20:21.70ID:vLPFsJBC0
>>921
> 結果的にチマチマした確保と解放になる。
解放が必要なものまで>>920みたいなことしちゃダメだろ
リンカーのシンボル表みたいなのは処理中は追加オンリーで処理終了後に解放することになるから一気に解放が有効なわけで
923デフォルトの名無しさん (ワッチョイ b363-Ryvz)
2022/12/25(日) 08:37:13.23ID:AjsJE3fQ0
つまりメモリプールでしょ。昔からある戦略だ
924デフォルトの名無しさん (ワッチョイ ab36-dxp0)
2022/12/25(日) 08:49:15.44ID:gsvPl1RZ0
DOS時代の拡張子COMアプリは起動時に空いてるコンベンショナルメモリ全部(PC98ならVRAMの前まで)COMアプリに割り当てられるんだっけ。
925デフォルトの名無しさん (ワッチョイ a1c2-dmhP)
2022/12/25(日) 08:59:08.85ID:CcfMXDnS0
やればできるよ
EXEとの違いはリロケーションテーブルがないってだけ
コード次第で出来んことは無いィィィ
926デフォルトの名無しさん (ワッチョイ 1301-iijX)
2022/12/25(日) 09:03:42.49ID:vLPFsJBC0
>>923
考え方は近いがもっと特化した手法
なのでシンボル表みたいなものにしか適用できない
927デフォルトの名無しさん (アウアウウー Saed-aXTt)
2022/12/25(日) 10:31:57.80ID:NJW41kMTa
空いてるコンベンショナルメモリ全部というと大きなメモリが割り当てられるように聞こえるけどコンベンショナルメモリは640キロバイトしかないからな
逆に小細工しないと拡張メモリ(exeで使える大きなメモリ)が使えないと言った方が正しい
928デフォルトの名無しさん (ワッチョイ a1c2-dmhP)
2022/12/25(日) 11:06:28.12ID:CcfMXDnS0
リアルモードの「拡張メモリ」ならCOMでもEXEでも同じことだぞ
プロテクトモード用の「EXE」はまた別物だ
バイモーダルEXEなんてのもあったね
929デフォルトの名無しさん (ワンミングク MMff-iijX)
2022/12/25(日) 13:44:18.05ID:pgi9BcgIM
ラージモデルのexe、拡張子をcomに書き換えても動くのは秘密です。
930デフォルトの名無しさん (ラクッペペ MM97-k0TO)
2022/12/25(日) 15:44:19.19ID:mgz0dfZnM
exeとcomってファイル先頭のエントリーアドレスの解釈が違ってなかったっけ?
拡張子だけ変更しても暴走したような気がする
931デフォルトの名無しさん (US 0Hd7-ij7E)
2022/12/25(日) 16:11:57.52ID:zQEQkIp7H
>>924
自力でシステムコール(あるいは farmalloc()) と far ポインタを扱うんだったら出来る
932デフォルトの名無しさん (ワッチョイ b363-dxp0)
2022/12/25(日) 16:49:45.05ID:FlWfyDt20
OSは、EXEかCOMかの判定をファイル先頭2バイトで行うので
拡張子は同名実行ファイルの優先度以外には影響ありません
933デフォルトの名無しさん (ワッチョイ 495f-ma2h)
2022/12/25(日) 18:17:37.99ID:4l2e8mxL0
何のOSの話なんだよ?
934デフォルトの名無しさん (ワッチョイ ede6-ij7E)
2022/12/25(日) 22:36:13.77ID:R9zYhJab0
>>933
MS-DOS
935デフォルトの名無しさん (US 0Hd7-ij7E)
2022/12/25(日) 23:53:11.65ID:3pvnVlsWH
>>925
LSI-C試食版のコード64KB の制限はなんとかなりませんかね?
936デフォルトの名無しさん (ワッチョイ b363-dxp0)
2022/12/26(月) 00:03:12.26ID:eX0Ff8H70
試食版のコードで生成する実行プログラムを、動かす環境もってるの?
937デフォルトの名無しさん (US 0Hd7-ij7E)
2022/12/26(月) 01:36:38.31ID:xk9EZjkPH
>>936
http://takeda-toshiya.my.coocan.jp/msdos/index.html
938デフォルトの名無しさん (ワッチョイ b363-dxp0)
2022/12/26(月) 10:26:13.14ID:eX0Ff8H70
W32が動く環境があるなら、そこでネイティブに使えるコンパイラにした方が良くないかな?
試食版って事はそれを業務で使うわけではないんでしょ?
939デフォルトの名無しさん (ワッチョイ 1301-iijX)
2022/12/26(月) 11:02:09.22ID:+xP92Jxa0
8086 の SBC とか使って趣味でなんか作ってるんじゃね
俺も会社でだけど 80186 ボードのために Visual C++ 1.52c をずっと持ってた
940デフォルトの名無しさん (ワッチョイ 9d10-dxp0)
2022/12/26(月) 11:47:25.06ID:Gtnl1i7F0
C使用でも何も考えずにVC++無料版入れてるわ。
バージョンアップの度にプロジェクト作成項目に悩む・・・。
941デフォルトの名無しさん (スップ Sddb-fEIR)
2022/12/26(月) 11:49:12.88ID:rbZigseYd
関数のポインタの配列を返す関数の宣言を教えてくさい
942デフォルトの名無しさん (アウアウウー Saed-aXTt)
2022/12/26(月) 12:21:30.32ID:sWfTrmtka
残念だなのび太
C言語は配列を返せないんだ
943デフォルトの名無しさん (スプッッ Sdaf-tLuz)
2022/12/26(月) 12:24:01.49ID:XQluw9Ded
>>935
試食って書いてあるの見えない?
そういう類いには意図的に制限かけてあるんだよ
有料の正規バージョンを買ってねって意味

PS3のlinux封じとは訳が違う
怒る人のいないやり方なので
脱獄は誰も手伝ってくれないよ
944デフォルトの名無しさん (ワンミングク MMff-iijX)
2022/12/26(月) 12:48:43.97ID:gpJgKl24M
森公一郎さん、亡くなっているんだよな
945デフォルトの名無しさん (アウアウウー Sa1f-SvsN)
2022/12/26(月) 12:49:38.27ID:6bMfB0bxa
>>942
返す関数は定義出来るだろ
確保した領域の生存が関数内のみかそうじゃないかで結果は変わるが

>>941
思ってるものを描いてみ?
946デフォルトの名無しさん (ワッチョイ 0b9f-It8h)
2022/12/26(月) 12:54:26.08ID:VH0Lg5Zw0
まあ関数イテレータ的には使えるのか

int getNoTest1(int x, int y, int z){return x*100+y*10+z;}
int getNoTest2(int x, int y, int z){return x*200-y*20-z;}
int getNoTest3(int x, int y, int z){return x*1000-y*100+z;}
typedef int(*FuncType)(int, int, int);

FuncType *getFuncAddrArray(void){
 static FuncType fa[3];
 fa[0] = getNoTest1;
 fa[1] = getNoTest2;
 fa[2] = getNoTest3;
 return fa;
}

int main(int argc, char *argv[]){
 FuncType *funcAddr = getFuncAddrArray();
 for (int i = 0; i < 3; ++i){
  printf("%d\n", funcAddr[i](rand(), rand(), rand()));
 }
 return 0;
}
947デフォルトの名無しさん (ワッチョイ 4d07-aXTt)
2022/12/26(月) 15:36:06.25ID:tmqxSKGS0
>>945
できねーよ
配列が第一級オブジェクトじゃない珍しい言語
948デフォルトの名無しさん (スプッッ Sddb-tLuz)
2022/12/26(月) 16:49:38.00ID:URVWGre6d
void(*func(void)[2])(void);
できるとしたら、こうなるが
949デフォルトの名無しさん (ワッチョイ 9769-jXNG)
2022/12/26(月) 17:05:11.56ID:0DsOmzGV0
固定長配列を戻すなら struct を経由したくなるわ
950デフォルトの名無しさん (ワッチョイ 6d5f-MkkF)
2022/12/26(月) 17:05:36.17ID:F5Lcb5Ke0
const char *f() {return "関数のポインタの配列";}
951デフォルトの名無しさん (ワッチョイ b363-dxp0)
2022/12/26(月) 17:32:34.93ID:eX0Ff8H70
一休さんは、やめよう
952デフォルトの名無しさん (ワッチョイ 9769-jXNG)
2022/12/26(月) 17:34:43.38ID:0DsOmzGV0
https://ideone.com/DiokCM
strust ひっぺがして 戻り値が配列となる宣言だとおこられた
FUNC_PTR_T getFuncs(void)[3];
953デフォルトの名無しさん (ワッチョイ 1301-iijX)
2022/12/26(月) 18:26:36.88ID:+xP92Jxa0
>>949
てか struct で包めば配列も返せるよね
954デフォルトの名無しさん (ラクッペペ MM97-k0TO)
2022/12/26(月) 18:41:08.47ID:sEpxtj4KM
関数へのポインタの配列の構造体?
955デフォルトの名無しさん (ワッチョイ 612d-s0Sd)
2022/12/27(火) 00:19:48.06ID:8jh3A4jF0
>>944
近藤嘉雪 パーサ担当
森 公一郎 コードジェネレーター担当

近藤さんの本は20年くらい前本屋でよく見かけたな
956デフォルトの名無しさん (テテンテンテン MM97-t1KK)
2022/12/27(火) 01:28:35.56ID:1kPfWYrSM
配列も値型だったら一貫性が有っただろうな
でも、配列を丸ごとコピーするなんて普通しないから、利便性を優先したんだろう
それによって、ポインタと配列は似てるけど違いもあるみたいな、初学者泣かせな仕様が生まれてしまった
957デフォルトの名無しさん (ワッチョイ 1f02-Ugbw)
2022/12/27(火) 03:19:13.84ID:lusjSahA0
ベースアドレスが配列の初めの要素を指すCスタイルの配列には一貫性があるだろ、だから0-based indexを採用する蓋然性があるわけで

何らかのbookkeeping、サイズ、ストライドやランク情報等のメタデータをスカラで一緒に渡す明示的なもの、あるいはstructで包む、メンバに.flagを設けるのはdope arrayの再発明

一方、dope arrayをネイティブ採用する為には
ベースアドレス+0は配列要素ではなく、メタデータを指さねばならない
だから初めの配列要素はベースアドレス+1(いわゆる1-based index)であるべき、という蓋然性がある

最も邪悪な配列の設計はメタデータを持つにも関わらずC慣習にすり寄って来て0ベース採用のやつな、設計に何の一貫性も無い

アドレス計算はCスタイルの方がスッキリして好き、個人的にはだけど
958デフォルトの名無しさん (ワッチョイ 1f02-Ugbw)
2022/12/27(火) 03:42:16.62ID:lusjSahA0
array[0]がarrayの始めの要素を指す、という伝統を尊重しつつ整合的にメタデータを持たせる拡張をしたいなら、arrptr-1に持たせるって手もあるね
959デフォルトの名無しさん (ワッチョイ 07cf-4Ar3)
2022/12/27(火) 05:21:18.30ID:nX/ozHbV0
文字列はchar型の配列だし
文字列のコピーなんか、あらゆる言語で基本中の基本だ
960デフォルトの名無しさん (ワッチョイ 9d10-dxp0)
2022/12/27(火) 08:19:53.31ID:yfz0bOFn0
処理コスト軽減の為に配列自体ではなく配列の先頭ポインタでやり取りしましょう。
961デフォルトの名無しさん (ワッチョイ b363-dxp0)
2022/12/27(火) 11:14:55.49ID:FjfQte1M0
配列が固定長なのは仕方がないと言うか、当然かなと思うが
文字列は、編集がもっと自在に出来た方がありがたかったな
962デフォルトの名無しさん (ワッチョイ 612d-s0Sd)
2022/12/27(火) 11:19:00.19ID:8jh3A4jF0
>>960
同じことだぞ
式の中では配列はポインタそのものだ
963デフォルトの名無しさん (ワッチョイ 0b01-jXNG)
2022/12/27(火) 11:32:56.50ID:pT1qhH4d0
sizeof演算子「いや俺区別してるし」
964デフォルトの名無しさん (スプッッ Sdaf-tLuz)
2022/12/27(火) 11:34:00.98ID:2fUOYjFgd
&演算子: いい加減なこと言ってもらっちゃ困るな
965デフォルトの名無しさん (スプッッ Sdaf-tLuz)
2022/12/27(火) 11:36:45.19ID:2fUOYjFgd
昔、こんなバカいたよ
printf("%d", sizeof "abc");
見ろ、文字列はポインタだ(キリッ
966デフォルトの名無しさん (ワッチョイ 612d-s0Sd)
2022/12/27(火) 11:49:59.77ID:8jh3A4jF0
式の中の配列と書いたのが読めないバカが多すぎる
967デフォルトの名無しさん (アウアウウー Sa2f-aXTt)
2022/12/27(火) 12:20:51.00ID:3AXDXHupa
式がどういう意味かわかった上で他人をバカ扱いしてる?
968デフォルトの名無しさん (ワッチョイ 9769-jXNG)
2022/12/27(火) 12:21:02.33ID:o7XCQITF0
965なんかもあくまで式だよ

int a[100];
int *b;
(sizeof a) + (sizeof b); ←これも式であり、式の中に配列もポインタも居る

a++ 非合法
b++ 合法
これも式
969デフォルトの名無しさん (US 0Hd7-ij7E)
2022/12/27(火) 17:43:59.96ID:x3eVxeWPH
あの~
誰か excel マクロで動く cc を作ってくれませんか?
うちの会社、cygwin 禁止なんです、cygwin インストーラですら実行できないんです、すごく弱っています
コンパイラが手元にないと私は無力……
970デフォルトの名無しさん (アウアウウー Sa2f-aXTt)
2022/12/27(火) 18:03:44.42ID:/tVTIbQ7a
VBA使えよ
安心しろお前は自分で思ってるほどCが得意じゃないから
971デフォルトの名無しさん (スプッッ Sdaf-tLuz)
2022/12/27(火) 18:19:46.78ID:uvaA1liZd
visual studioの稟議を上げられない社畜?
972デフォルトの名無しさん (ワッチョイ b363-dxp0)
2022/12/27(火) 18:22:29.22ID:FjfQte1M0
C#のコンパイラなら、何もせずともWinのどっかにはいっているような気がした
973デフォルトの名無しさん (ワッチョイ 9347-ij7E)
2022/12/27(火) 19:41:50.61ID:tBCD9SD30
>>971
仕事に関係のない VS なんて認可されませんよ、べつにソフトウェアの人じゃないんだから

>>970
コンパイラが手元にないと、どうもやる気がでなくって…
974デフォルトの名無しさん (ワッチョイ 9347-ij7E)
2022/12/27(火) 19:42:45.86ID:tBCD9SD30
>>972
cs.exe なんて大っ嫌い
975デフォルトの名無しさん (ワッチョイ 0b01-jXNG)
2022/12/27(火) 20:26:44.18ID:pT1qhH4d0
>仕事に関係のない VS なんて認可されませんよ

>誰か excel マクロで動く cc を作ってくれませんか?
仮に誰か作ってもインストール認可されないんじゃないの?
そういう環境だと読み取ったけど
976デフォルトの名無しさん (スプッッ Sddb-tLuz)
2022/12/27(火) 20:30:03.68ID:NnGcg72Bd
>>973
勤務中にくだらねえことやってんじゃねえって上司に怒られるの?
977デフォルトの名無しさん (ワッチョイ 4d07-aXTt)
2022/12/27(火) 20:31:33.55ID:usWDFVvc0
まあ仕事に関係ないって自分で言っちゃってるからなぁ
978デフォルトの名無しさん (ワッチョイ b363-dxp0)
2022/12/27(火) 20:39:00.00ID:FjfQte1M0
じゃあ、無敵のシェルスクリプトだだだ・・・
979デフォルトの名無しさん (ワッチョイ 9347-ij7E)
2022/12/27(火) 22:26:37.16ID:tBCD9SD30
>>975
>仮に誰か作ってもインストール認可されないんじゃないの?
>そういう環境だと読み取ったけど
マクロはインストールするものじゃないから自由に使えるんですよ、インストール権限の必要なソフトはインストールできないってだけでして

>>976
そうはいっても、単一ディレクトリの全ファイルに対して、ファイル名の冒頭に連番を振るプログラムを 3 時間ほどでチョロっと書いて、業務に生かしているんですけどね
いちいち手作業でファイル名を変えるとかやってらんないでしょ?自分のために自分で書く分くらいは許容してほしいよね
980デフォルトの名無しさん (ワッチョイ 9347-ij7E)
2022/12/27(火) 22:29:39.01ID:tBCD9SD30
あと、巨大な csv ファイルを結合するプログラムも便利に使っていたんですけどね、大概の機械はデータを csv で吐いてくれますますからねえ
981デフォルトの名無しさん (ワッチョイ 4d07-aXTt)
2022/12/27(火) 22:31:04.10ID:usWDFVvc0
>>979
屁理屈なら上司に言って怒られてこい
なぜまともなソフトがインストール不可なのにお前の作ったソフトなら大丈夫と思うんだ
982デフォルトの名無しさん (ワッチョイ 4d07-aXTt)
2022/12/27(火) 22:35:10.73ID:usWDFVvc0
ファイル名の頭に連番打つとかPowerShellでもバッチでもVBAでもできるしそもそも打つ必要があるかどうかさえ怪しい

お前のやってることが本当にみんなにとっていいことなら業務効率化のためにコンパイラの申請を通すのは何も難しくない
拒否られてるところで気づけよマジで
職場に不和の種をまくんじゃねえ
983デフォルトの名無しさん (ワッチョイ b363-dxp0)
2022/12/27(火) 22:35:56.95ID:FjfQte1M0
こう言うわがままは却下されて当然ではないか
984デフォルトの名無しさん (ワッチョイ 9347-ij7E)
2022/12/27(火) 22:43:18.14ID:tBCD9SD30
>>976
操作記録をいちいち記録されて、裏でこっそり査定に響く仕組みですよ、たぶん
ああ、こんなところでここまで書いちまったらもう私の給料は来年は半額になっちまいますねえ、当の昔に諦めてるけど
985デフォルトの名無しさん (ワッチョイ 9fea-ij7E)
2022/12/27(火) 22:58:37.89ID:VvvSD8wK0
>>982
power-shell はたぶん入っていないと思いますよ、あったら使うに決まってますもん
VBA はいちいち excel を起動してマクロを走らせて、ああ、もうめんどくさくって死にそう
実行ファイルワンクリックで、ピシッと全ファイルを改名したいだけですよ、そうすればさくさく錯綜するメールスレッドを管理できますからね
バッチファイルで改名?できるというのなら見せてくださいな?

>>981
業務効率改善のため自分のために自分で作り自分が使うだけのソフトと、多数の人が使う商用の売り物のソフトとを一緒にしないでくれる?
986デフォルトの名無しさん (ワッチョイ 9fea-ij7E)
2022/12/27(火) 23:03:13.50ID:VvvSD8wK0
>>983
そりゃ、業務そっちのけで得体の知れないプログラムを書いてばかり(星新一の短編にそんなのがありましたね…)だったら叱られますけど、ぱっぱと3時間で書いて後はノーメンテ、それで半年実用になっているんだから遊んでいるわけじゃないんですけど
987デフォルトの名無しさん (ワッチョイ 9fea-ij7E)
2022/12/27(火) 23:06:57.48ID:VvvSD8wK0
>>982
>業務効率化のためにコンパイラの申請を通すのは何も難しくない

難しいんですよ…
あらかじめ効用をきちんと提示しなければならないなんてめんどくさくってやってらんない、
作りたいソフトが具体的に念頭にあるわけではなく、将来的に使いたい可能性が発生する可能性があります、で稟議を通るわけがないでしょう?
988デフォルトの名無しさん (ワッチョイ b363-dxp0)
2022/12/27(火) 23:25:57.12ID:FjfQte1M0
マ板で相談してみたら?
ここは大分場違いになってきてる
989デフォルトの名無しさん (ワッチョイ 07cf-4Ar3)
2022/12/27(火) 23:34:33.01ID:nX/ozHbV0
ブログにでも書けばいいのでは
990デフォルトの名無しさん (ワッチョイ 9fea-ij7E)
2022/12/28(水) 00:05:29.63ID:JeA8YDJe0
>>988
(職業)マじゃないただの一般人なので、マ板はたぶん板違い

>>989
ブログみたいな上等な場所に書くことではなく、便所のチラ裏で愚痴るに相応しい話題だと私は思いますけどね

まあ、もうやめます
991デフォルトの名無しさん (ワッチョイ b363-dxp0)
2022/12/28(水) 01:06:31.58ID:PyoNDBFu0
別に職業プログラマでなくても良いんだよ

プログラム(ロジック)についての悩みならここで良いが
プルグラムを書こうとする人の悩みは、マ板の方が相応しい
992デフォルトの名無しさん (テテンテンテン MM97-t1KK)
2022/12/28(水) 03:37:42.61ID:+f6n+5TtM
> バッチファイルで改名?
これが出来なきゃ何のためにバッチファイルが存在してんだよw
バッチやシェルスクリプトは、ファイルのコピーやリネームとか、ファイル関連の処理が簡単に出来る事が最大のメリットだ
兎に角グクれば山ほど出てくる
993デフォルトの名無しさん (ワッチョイ 9db3-tC+1)
2022/12/28(水) 05:55:41.03ID:VGHawTJO0
C
994デフォルトの名無しさん (ワッチョイ 9db3-tC+1)
2022/12/28(水) 05:56:03.28ID:VGHawTJO0
995デフォルトの名無しさん (ワッチョイ 9db3-tC+1)
2022/12/28(水) 05:56:54.31ID:VGHawTJO0
996デフォルトの名無しさん (ブーイモ MM5b-tRVC)
2022/12/28(水) 05:57:50.13ID:DPVYYyHtM
C
997デフォルトの名無しさん (ブーイモ MM5b-tRVC)
2022/12/28(水) 05:58:53.46ID:DPVYYyHtM
998デフォルトの名無しさん (ブーイモ MM5b-tRVC)
2022/12/28(水) 05:59:41.77ID:DPVYYyHtM
999デフォルトの名無しさん (ブーイモ MM5b-tRVC)
2022/12/28(水) 06:00:17.27ID:DPVYYyHtM
1000デフォルトの名無しさん (ブーイモ MM5b-tRVC)
2022/12/28(水) 06:00:51.24ID:DPVYYyHtM
-curl
lud20241209095810ca
このスレへの固定リンク: http://5chb.net/r/tech/1659623547/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「C言語なら俺に聞け 159 ->画像>3枚 」を見た人も見ています:
C言語なら俺に聞け 140
C言語なら俺に聞け 151
C言語なら俺に聞け 150
C言語なら俺に聞け 148
LinuxカーネルはC言語なのにオブジェクト指向
道州制は地域性や言語など語り継がれるべき
C言語を教えてください!!
[システム]プログラム言語など学習スレ[初心者]
C言語でRADって作れるんでしょうか?
言語学徒に聞きたいんだがチョムスキーってどのぐらい凄いの?
海外「なんて論理的な言語なんだ」 日本語の構造を簡易化した図が外国人に大好評
コンテンツ言語『 Curl 』情報交換スレ
久々にC言語触ってるけどクソすぎじゃねこれ
ラズパイ4でc言語開発する方法教えてくれ
野田クリスタルが使ってるプログラミング言語、HSPだった 20年ぶりに聞いたは
C言語はバイトオーダー等のハードウェア構造を意識しなければ
お前らC言語で通信ライブラリ作れって言われたら出来る?
【デイリー新潮】「熱帯」「紅茶」は日本語なのか、中国語なのか? 日本と中国の不思議な言語関係を物語る「和製漢語」の世界[12/27] [仮面ウニダー★]
C言語でツール作ろうと思うんだけど何かいい案ある?
C言語でTCP/IP通信勉強(プログラミング)したいんだが
玄人「まずC言語から覚えろ!」「Cはすべての基礎!」これまじ??
ネパール、日本の外国人奴隷問題が影響か人気言語1位が韓国語になる
おまえら「C言語は独学できない!!」 ぼく「いうほど難しいか?」
敵「プログラミングはやりたいことを見つけてからやれ」俺「よし見つけたぞ!C言語始めてみよう!」
【IT】Swiftがトップ10入り、Pythonは3位から4位へ--10月TIOBEの人気言語ランキング
【プログラミング】止まらないC言語の下落 - 12月言語ランキング [無断転載禁止]
【企業】「”C言語…?どこかで見た”程度でOK」 名古屋のアテック、求人広告が話題に エンジニアの人材不足、面白求人でカバーできる?
【SE】「C言語…?どこかで見た程度でOK」 名古屋のアテック、求人広告が話題に エンジニアの人材不足、面白求人でカバーできる?★3
次世代言語アンチスレ19
言語聴覚士になったことを後悔している人★9
宇部が自分にしか理解できない意味不明な幻覚妄想言語障害ヘリクツをほざいたらあげるスレ9 [無断転載禁止]
【天才】スーパー中学生誕生、プログラミング言語わずか数週間で開発、U-22プログラミング・コンテスト2019
【天才】スーパー中学生誕生、プログラミング言語わずか数週間で開発、U-22プログラミング・コンテスト2019 ★4
【八街・児童5人死傷】被害児童の祖母「“視力が無い、味覚も無い、言語もわからない、生きてるだけかもしれない”と医者に言われた…」★9 [potato★]
J言語
言語哲学
言語学史
歌詞英語なのに日本語に聞こえる懐洋曲を書くスレ
言語分析哲学
キャンプの事なら俺に聞け! [無断転載禁止]
D言語 Part35
言語学卒論スレ
言語の起源について
D言語ってどうなの?
関東弁はバカの言語
馬鹿が話す言語
言語に優劣はあるのか?
質問スレッド in 言語板
動的言語で大規模開発
ポケモン言語学w
新型コロナの言語学
人工言語を作りたい
数学を言語として考える
歴史言語学総合 ★3
Web言語ってどれがいいんだ
どの言語が一番優れているか
日本における言語学最大の問題
プログラミング言語
応用言語学・第二言語習得
人造言語を作りたいスレ
多言語間の完全自動翻訳技術
人工言語・淫夢語を作ろう
言語学的な俗説・トンデモ
言語障害があるかもしれない
21:16:21 up 18 days, 7:40, 1 user, load average: 9.89, 9.32, 9.29

in 2.172819852829 sec @2.172819852829@0b7 on 123011