!extend:checked:vvvvv:1000:512
(新スレ立ての際上記コマンドを2行書き込んでください)
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/
C17
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4713.pdf
C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf
C2x ドラフト
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2731.pdf
C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/
※前スレ
C言語なら俺に聞け 158
https://mevius.5ch.net/test/read.cgi/tech/1640401906/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
C言語なら俺に聞け 159
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (ワンミングク MMa2-RRwJ)
2022/08/04(木) 23:32:27.83ID:yWVViPyIM2はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9a3e-dSCr)
2022/08/04(木) 23:46:06.88ID:hPtMGH660 現時点んでの C2x 最新ドラフトはこっち
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2912.pdf
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 };
知らなかった・・・
これ↓
int arr[3] = { a, b, c };
知らなかった・・・
7デフォルトの名無しさん (ワッチョイ 45bb-5Ix7)
2022/08/13(土) 08:05:10.38ID:2Qk1ejrP08はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 813e-5Ix7)
2022/08/13(土) 09:53:55.13ID:RGh4OO0V0 >>6-7
言語仕様を確認してみたら、変数が静的記憶域期間を持つときは
初期化子に現れる全ての式が定数式でなければならない (変数を含められない) という制限はある。
自動記憶域期間なら初期化子に変数を使っても問題ない。
GCC でもそのような挙動になる。
言語仕様を確認してみたら、変数が静的記憶域期間を持つときは
初期化子に現れる全ての式が定数式でなければならない (変数を含められない) という制限はある。
自動記憶域期間なら初期化子に変数を使っても問題ない。
GCC でもそのような挙動になる。
9デフォルトの名無しさん (スッップ Sd62-arFQ)
2022/08/13(土) 09:54:36.52ID:F6UXSz0Jd >>6
staticやグローバルにすると・・・
staticやグローバルにすると・・・
10はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 813e-5Ix7)
2022/08/13(土) 10:02:52.43ID:RGh4OO0V0 関連する挙動を色々と試してたんだけど、
GCC では const 付きの変数の挙動が少し C++ 寄りに拡張されているっぽい。
C++ では const 付き変数の初期化子が定数式である場合にはその変数も定数式になるが、
C では単に代入できない変数という扱いのはずなんだけど、
GCC では定数式っぽい振る舞いをする場合がある (全面的に定数式扱いというわけではない) ように見える。
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
そんなので挫折するならもっと前に挫折するだろ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のその特性は完全に無視され、誰にも気づかれなかった。
お前らも気づいていない。
しかし、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書ければ自動生成できたりするし
それなりのツールもあるからBNF書ければ自動生成できたりするし
27はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 813e-5Ix7)
2022/08/15(月) 09:21:08.58ID:DfKndVH3028デフォルトの名無しさん (ワッチョイ 4201-8lLW)
2022/08/15(月) 09:27:22.60ID:zxOEKBbO0 >>27
難しいって一体どんな言語仕様を想定してるんだ?w
難しいって一体どんな言語仕様を想定してるんだ?w
30デフォルトの名無しさん (ワッチョイ 4201-8lLW)
2022/08/15(月) 10:35:55.74ID:zxOEKBbO031はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 813e-5Ix7)
2022/08/15(月) 11:11:29.28ID:DfKndVH30 >>30
今の主要なプログラミング言語はそう (処理段階の分離が極端に難しい仕様には) ならなかったという話をしてる。
だから昔のものから例になりそうなものを抽出しただけで、この頃の知見のまま設計された大きな言語があったら
現代的なツールでも扱いにくいだろうということ。
今の主要なプログラミング言語はそう (処理段階の分離が極端に難しい仕様には) ならなかったという話をしてる。
だから昔のものから例になりそうなものを抽出しただけで、この頃の知見のまま設計された大きな言語があったら
現代的なツールでも扱いにくいだろうということ。
32デフォルトの名無しさん (ワッチョイ 4201-8lLW)
2022/08/15(月) 11:28:00.05ID:zxOEKBbO033はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 813e-5Ix7)
2022/08/15(月) 11:39:32.94ID:DfKndVH3034デフォルトの名無しさん (ワッチョイ 4201-8lLW)
2022/08/15(月) 12:01:53.74ID:zxOEKBbO0 >>33
そもそもFORTRAN77以前でも
DO 100 I = 1. 5
なんて言う「代入文」を書く奴なんてほとんどいなかったわけで知見が確立しないまま言語仕様だけでかくなるとかまずありえんわ
まあ妄想に浸りたいだけなら勝手にやっててくださいな
そもそも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:zxOEKBbO037デフォルトの名無しさん (ワッチョイ 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 の処理系として必須なわけではないんよ。
おそらくは使っている処理系・実行環境で使っているお決まりのパターンがあると思うからそういうのを探して
真似するのが手っ取り早いと思う。
書いたプログラムのロジックは誤ってないと仮定して、
コンパイラによる最適化が割り込みに配慮しないなら思ったような動作にならないということはあり得る。
ある変数が途中で変更されることはないと確信できる状況なら
レジスタにロード済みの値を使いまわしたりするのはごく普通の動作。
場合によっては定数にまで畳み込まれることもある。
だけど、割り込みはそうしたメインの流れと関係なく問答無用でどこにでも割り込むから齟齬が生じる。
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設定がへたくそなのでしょうか?
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地獄でいいんだよ
switchが上手くはまらなかったらelse if地獄でいいんだよ
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
}
こんなんで充分だよ
例えば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やマクロでシンボリックな定数を定義、ロジックはビット演算に埋め込め
enumやマクロでシンボリックな定数を定義、ロジックはビット演算に埋め込め
51デフォルトの名無しさん (US 0H11-U0U7)
2022/08/17(水) 22:05:39.48ID:ISeM0IbeH >>42
volatile で保証された気分になっている方が問題、ちゃんと pthread を使えよ
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を使うべき問題ではない
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 は書かれた順に評価し、実行するので、起こりそうな条件を前に持ってくると効率化できる、かも
if else if は書かれた順に評価し、実行するので、起こりそうな条件を前に持ってくると効率化できる、かも
56デフォルトの名無しさん (テテンテンテン MM26-6e26)
2022/08/17(水) 23:03:29.34ID:YK1jCeWgM >>55
switchも連続比較する事が基本で、caseラベルの値の最小値と最大値が一定の範囲内だったら最適化でジャンプテーブルになるかもってだけでしょ
絶体にテーブルジャンプさせたければ、自前でやるしかない
switchも連続比較する事が基本で、caseラベルの値の最小値と最大値が一定の範囲内だったら最適化でジャンプテーブルになるかもってだけでしょ
絶体にテーブルジャンプさせたければ、自前でやるしかない
57はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 813e-5Ix7)
2022/08/17(水) 23:06:32.99ID:ito9w61P0 リッチな処理系なら switch も常にただのテーブルということはない。 状況に応じて最適化は入る。
ただ、頻出する分岐がどれなのか予測してくれるほど十分に賢くは無いので
条件があり得る頻度によってチューニングが必要なら if に置き換えるしかしょうがないな。
GCC だとプロファイルを取ってその成果をもとに最適化することも出来る。
頻出する条件を __builtin_expect で指定するとその分岐を優先的に検査する (ようなコードを生成する) という便利機能もある。
手作業で微調整するのは不毛な感じがするから使えるものならコンパイラの賢い機能に頼るのもアリだと思う。
(試したことがないから細かいことは知らない。 たいした効果は無いかもしれない。)
ただ、頻出する分岐がどれなのか予測してくれるほど十分に賢くは無いので
条件があり得る頻度によってチューニングが必要なら 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
}
みたいに書ければなぁって思わなくもない
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:ZfnRi5ov060デフォルトの名無しさん (スップ Sd62-arFQ)
2022/08/18(木) 11:23:58.91ID:C4YsUD/kd たまーに、いちいちbreak文を書かなきゃいけないのがダルいなって思うことはあるな
ちょっと自分が作業中断すべきときかなって
ちょっと自分が作業中断すべきときかなって
61デフォルトの名無しさん (スフッ Sd62-Khd/)
2022/08/18(木) 11:41:19.30ID:DF4FCk1vd62デフォルトの名無しさん (アウアウウー Saa5-8lLW)
2022/08/18(木) 11:44:02.06ID:u9P7LJR3a >>59
なるほどさすが GCC やね、標準に取り込んで欲しいわ
なるほどさすが 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言語最大の設計ミス
気付かず使うとデバッグ困難なバグになる落とし穴
switchをifにするか、forの外にgotoで飛ばすしかない
switch文はC言語最大の設計ミス
67デフォルトの名無しさん (スップ Sd62-arFQ)
2022/08/18(木) 15:55:41.52ID:C4YsUD/kd gotoは悪って前提だな
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 であっても不適当とはいえないのではないですか?
for からの脱出が break
while/do while からの脱出が break
で、あれば、
switch からの脱出も break であっても不適当とはいえないのではないですか?
71デフォルトの名無しさん (ワッチョイ 06ad-Lyl8)
2022/08/18(木) 23:03:17.54ID:1nHnTkCL0 行儀良くまじめなんてできやしなかった
夜の校舎窓ガラス壊してまわった
逆らい続けあがき続けた早く自由になりたかった
ひとつだけわかっていたこと
この支配からの~break♪
夜の校舎窓ガラス壊してまわった
逆らい続けあがき続けた早く自由になりたかった
ひとつだけわかっていたこと
この支配からの~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と同じなのか
switchはループ制御文ではないのになんでwhileやforと同じなのか
75デフォルトの名無しさん (ワッチョイ c202-mhOm)
2022/08/19(金) 05:12:37.71ID:2Y60evoq0 break は今いるブロック (波括弧といてもいい) から一つ外のブロックに出る
という意味を持つ
という意味を持つ
77デフォルトの名無しさん (スップ Sd62-jKaU)
2022/08/19(金) 10:12:45.49ID:FEOcjYNtd それならif文からも脱出できるはずだができない
あくまでswitchが特例でループ文扱いされてるので脱出できる
あくまで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");
}
}
これらを使うときにブロックを作らないことも出来るし、
逆に関係ないところでブロックを作ることも出来るので
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文の外に飛んでいく
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: {
やりたいこと
}
なんかもアリなんだな
やりたいこと
}while(0);
っていう構造に変換するマクロは良く使われるが
switch(0) default: {
やりたいこと
}
なんかもアリなんだな
82デフォルトの名無しさん (テテンテンテン MM4f-lfty)
2022/08/20(土) 00:31:59.15ID:YrrCECg9M83デフォルトの名無しさん (ワッチョイ 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:3JIuIXQv088デフォルトの名無しさん (スップ 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:AaGiqQjO094デフォルトの名無しさん (スップ Sd9f-I18W)
2022/08/22(月) 10:11:25.02ID:xRj4VImad Z80や6800でそんなことしてたけど
今時のCPUはnopでさえ速度が変動するからな
今時のCPUはnopでさえ速度が変動するからな
95はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9f3e-tEjH)
2022/08/22(月) 10:15:31.51ID:/BwQkwng0 インラインアセンブラも最適化の対象になることがある。
現代的な開発環境なら intrinsic 関数が提供されてないか?
現代的な開発環境なら intrinsic 関数が提供されてないか?
96デフォルトの名無しさん (ワッチョイ 7f69-dbST)
2022/08/22(月) 11:43:22.34ID:sosiPY3F0 最適化するなよw
そういうのを消すための最適化だろ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__()
__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.て言ってたね
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万
freeCodeCamp.org
チャンネル登録者数 619万
105デフォルトの名無しさん (アウアウウー Sa8b-Ro21)
2022/09/04(日) 10:23:39.44ID:RQxkFcRFa >>104
1本で9時間超えてるのかすげー
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;
}
コンパイル通らないだろうと思って、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 で調べてね。
私見だけど、その関数内でのみ呼び出すことを強調しているのかもしれない。
あと余計なこと。お遊びのネタ。本番で使うなキケン。
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内で使うのであれば
プロトタイプ宣言が必要であることはわかるんですが、なんで関数内でプロトタイプ
宣言しているのかなと。
『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 が述べている通り限られた範囲での使用を想定しているということだと思う。
範囲を限りたいのが何故かなのかというのはプログラム全体の構成によるので全体を見ないと意図を推し量ることは出来ない。
なので正確な事情はわからないけども、あえて一例として私がそういう書き方をするとしたらという前提で空想すると
・ あまり色々なところで呼ばれたくない関数がある
・ しかし呼び出し箇所は他の翻訳単位にあるので内部リンケージにすることも出来ない
というようなときにはヘッダにもファイルスコープにも宣言を書きたくないと思うことはあるかもしれない。
言語仕様にもある有効な文法だけれど、それほど使われることはない。
宣言はそのスコープで有効になるから直接的な理由としては >>107 が述べている通り限られた範囲での使用を想定しているということだと思う。
範囲を限りたいのが何故かなのかというのはプログラム全体の構成によるので全体を見ないと意図を推し量ることは出来ない。
なので正確な事情はわからないけども、あえて一例として私がそういう書き方をするとしたらという前提で空想すると
・ あまり色々なところで呼ばれたくない関数がある
・ しかし呼び出し箇所は他の翻訳単位にあるので内部リンケージにすることも出来ない
というようなときにはヘッダにもファイルスコープにも宣言を書きたくないと思うことはあるかもしれない。
111デフォルトの名無しさん (ワッチョイ c710-bBdM)
2022/09/05(月) 01:40:28.48ID:TNrcEOZR0 >>110
確かにそのコードはstatic宣言を各所に織り交ぜており、他ファイルからは関数が
呼び出せないようにしてありました。公開する関数は最小限にという感じ。
関数内でも関数のプロトタイプ宣言できるというのも、C言語の中では単なる変数宣言
double p;
と同じ扱いみたいに考えればいいのかもしれないと思いました。
typedef で関数型定義できますが、それと同じような扱いということです。
とりあえず納得しました。ありがとうございます。
確かにそのコードは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);
}
理由は昔のいわゆる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:TAdoM7Dg0124デフォルトの名無しさん (ワッチョイ 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;ではなく一つ一つ所属物を初期化すればちゃんと初期化できるのですが、
できればこの一括で初期化する方法のどこがまずいのか教えてほしいです。
#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};
でここの初期化がまずいみたいですがよくわかりません。
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;
の違いがわかりません。
ポインタに対してなんでアドレスを渡す形だとまずいことが理解できません。
うまくいきましたが、すいません。
*self=initState;
と
self = &initState;
の違いがわかりません。
ポインタに対してなんでアドレスを渡す形だとまずいことが理解できません。
128デフォルトの名無しさん (スップ Sd7f-8uVF)
2022/09/07(水) 02:27:51.81ID:FvUlSDCrd129デフォルトの名無しさん (ワッチョイ 27bb-Iguz)
2022/09/07(水) 03:14:26.39ID:7wpEGaL10 *selfはselfの実体の参照
&initStateはアドレスの参照
&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関数の実行結果に反映される
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 * に読み替えた場合が質問のケース
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 のまま
int b = 50;
func(b);
とやっても b は 10 にならず b は 50 のまま
133デフォルトの名無しさん (ワッチョイ e769-9TNW)
2022/09/07(水) 10:16:34.68ID:S6Oj2ikO0 ・ポインタを渡して関数内ではその指し先を利用して内容を書き換える (scanf みたいな感じ)
・戻り値で内容をどかっと戻す (=呼び出し元で代入してね)
Cの文法ではこの2パターン
・戻り値で内容をどかっと戻す (=呼び出し元で代入してね)
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で実体参照しているわけやね。
いやさすがにそこはわかるんで・・・。
ポインタ変数を格納している仮引数に新しいアドレス値を代入しても
関数から出たら破棄されるので意味ないってことやね。
ポインタ変数宣言してたんで勝手に実体参照されるものかと思ってた。
当初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構造体のポインタのアドレス参照したものを
渡さないといけないですが、これなんでポインタじゃまずいんですか。
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の中でメモリ確保しててそのポインタの数値を確保したアドレスに書き換えてるの
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というアドレスに変更したいんだったらポインタ自体渡しても
変更できないことですね。*つけてポインタにならないと変更できないと。
なるほど。
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; }
これが全く同じアセンブリ言語にコンパイルされるのを見て、参照を理解した
int hoge(int &a) { a = 1; }
これが全く同じアセンブリ言語にコンパイルされるのを見て、参照を理解した
142デフォルトの名無しさん (ワッチョイ c710-CzlZ)
2022/09/07(水) 23:35:11.50ID:nFqp2Ghc0143デフォルトの名無しさん (ワッチョイ c710-CzlZ)
2022/09/07(水) 23:39:24.34ID:nFqp2Ghc0 何回も質問しているものです。
base64エンコーディングのプログラムを作っていました。
エンコード部分は作れた、と思ったのですが、certutil -f -encode の結果と
突き合わせると後半合いません。
1行目もなぜか幅が合いません。
状態マシンを初めて作って実装したのでどこが問題かわからないのでだれか見ていただけませんか。
https://ideone.com/rPlXWX
base64エンコーディングのプログラムを作っていました。
エンコード部分は作れた、と思ったのですが、certutil -f -encode の結果と
突き合わせると後半合いません。
1行目もなぜか幅が合いません。
状態マシンを初めて作って実装したのでどこが問題かわからないのでだれか見ていただけませんか。
https://ideone.com/rPlXWX
144はちみつ餃子 ◆8X2XSCHEME (ワッチョイ c73e-Iguz)
2022/09/07(水) 23:39:37.84ID:51dNe1to0145デフォルトの名無しさん (ワッチョイ 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
/tmpですか?
なんかそれらしきファイル無いんですが
OS:Linux Mint
147はちみつ餃子 ◆8X2XSCHEME (ワッチョイ c73e-Iguz)
2022/09/08(木) 01:00:19.58ID:MG9wnc1h0148143 (ワッチョイ c710-CzlZ)
2022/09/08(木) 02:30:52.24ID:MgWIrRAL0 コードの構造が自分でもわかり難かったので、フルスクラッチで書き直しました。
https://ideone.com/ddQPJy
でも相変わらずどこかにゴミデータが入り込んでいるようです。
C言語特有の問題に由来していると思うのですが。。
https://ideone.com/ddQPJy
でも相変わらずどこかにゴミデータが入り込んでいるようです。
C言語特有の問題に由来していると思うのですが。。
149デフォルトの名無しさん (テテンテンテン MM8f-F4W3)
2022/09/08(木) 02:56:32.93ID:m+If4M0FM >>148
上から下までスクロールしたら一瞬で分かったw
上から下までスクロールしたら一瞬で分かったw
150デフォルトの名無しさん (ワッチョイ 87b3-Am0N)
2022/09/08(木) 08:55:08.15ID:0dKPxAYF0 >>147
サンクス
読み書きは出来るので作業ファイルは作られているんだろうけど・・・
getchar()でプロセスが終了しないようにしててもP_tmpdirの場所(/tmp)に作業ファイルは作られてないわ
なんかモヤモヤするな
サンクス
読み書きは出来るので作業ファイルは作られているんだろうけど・・・
getchar()でプロセスが終了しないようにしててもP_tmpdirの場所(/tmp)に作業ファイルは作られてないわ
なんかモヤモヤするな
151はちみつ餃子 ◆8X2XSCHEME (ワッチョイ c73e-Iguz)
2022/09/08(木) 09:15:06.66ID:MG9wnc1h0152デフォルトの名無しさん (アウアウウー Sa8b-Ro21)
2022/09/08(木) 09:25:12.09ID:JEMfdspaa153デフォルトの名無しさん (ワッチョイ e769-9TNW)
2022/09/08(木) 09:54:46.94ID:NWgtv/6U0 8bit目が立ってるデータだと char を size_t にキャストするとよろしくない可能性
あと末尾のパディング処理
最新は rfc4648 か
あと末尾のパディング処理
最新は rfc4648 か
154デフォルトの名無しさん (ワッチョイ 5f01-yqJ9)
2022/09/08(木) 10:12:47.05ID:dSUuwrfW0 >>148
わざわざenum定義してるのに使うための変数をsize_tで宣言するとか意味わからんw
わざわざ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
作った直後に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:0dKPxAYF0158デフォルトの名無しさん (ワッチョイ 87b3-Am0N)
2022/09/08(木) 10:35:11.25ID:0dKPxAYF0159デフォルトの名無しさん (テテンテンテン MM8f-F4W3)
2022/09/08(木) 23:34:00.51ID:QimgDhZ1M160デフォルトの名無しさん (ワッチョイ c710-CzlZ)
2022/09/09(金) 00:38:56.32ID:eFldOldK0 >>159
ありがとう。まだ未解決。格闘中。
なんとかそこには気づいたんですが、どうすればeofまでの分読み込ませればいいかわからず、
結局1バイトづつ読み込ませるしかないのかと思ってましたが、nread分読み込ませればいいのか。
ただ、最終行以外もゴミデータが紛れ込んでいるようなのでそこの原因がなんなのか。
ありがとう。まだ未解決。格闘中。
なんとかそこには気づいたんですが、どうすればeofまでの分読み込ませればいいかわからず、
結局1バイトづつ読み込ませるしかないのかと思ってましたが、nread分読み込ませればいいのか。
ただ、最終行以外もゴミデータが紛れ込んでいるようなのでそこの原因がなんなのか。
161148 (ワッチョイ c710-CzlZ)
2022/09/09(金) 01:45:37.54ID:eFldOldK0 読み込むデータによってゴミデータが入ったり入らなかったりすることがわかった。
すごい厄介なバグだわ。某所から2進数表示する関数パクッて全部表示させてみると
ある特定の箇所でスタックデータが0b11111....に初期化されているみたい。
https://ideone.com/HRogms
読み込みデータはこのプログラム”base64s.c”だとこの現象がでる。
何がまずいのかな。
すごい厄介なバグだわ。某所から2進数表示する関数パクッて全部表示させてみると
ある特定の箇所でスタックデータが0b11111....に初期化されているみたい。
https://ideone.com/HRogms
読み込みデータはこのプログラム”base64s.c”だとこの現象がでる。
何がまずいのかな。
162148 (ワッチョイ c710-CzlZ)
2022/09/09(金) 01:56:18.41ID:eFldOldK0 わかった。日本語部分が処理できてなかったことが原因だ。
vscodeでWindows、clangでコンパイルしているんだけど、freadで単純に読み込んで
出力すると日本語部分が文字化けしてしまうのはなぜ?
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....のビット列を単純に書き込んでいるという理解だったのですが、
そういうわけではないんですかね?
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;
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 ってどう違うのか、ざっと調べたんですけどよくわかんないですね・・・。
スタックデータが11111・・・に初期化されるという問題は直りました。
charだと11111111の取り扱いまずいんですね。
char 0~255 の値を格納できるという素朴な理解で使ってたんですが、
unsigned char と char ってどう違うのか、ざっと調べたんですけどよくわかんないですね・・・。
167148 (ワッチョイ c710-CzlZ)
2022/09/09(金) 02:53:47.99ID:eFldOldK0168デフォルトの名無しさん (ワッチョイ 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かもしれない
他の整数型にキャストしたり比較したりする時は特に注意が必要
>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
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を使うべきだろうね
バイト列を使いたければ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:JkEyHRIQ0176デフォルトの名無しさん (ワッチョイ 87ad-8Iqg)
2022/09/09(金) 23:22:11.84ID:qKP12tcq0 自分はvb→C言語→機械語だけど
機械語知らないとダメだよなって思ったわ
大体CPUの仕様と合わせるんだよな
8bitも昔のCPUの慣習出しさ
だからプレステのCPU大好きとかライゼンサイコー、いやいややはりインテルだろう
なんて言う自作オタがやり始めるとかなり速いんだよな
自作PCの構造はCPUの中身に似てるから
機械語知らないとダメだよなって思ったわ
大体CPUの仕様と合わせるんだよな
8bitも昔のCPUの慣習出しさ
だからプレステのCPU大好きとかライゼンサイコー、いやいややはりインテルだろう
なんて言う自作オタがやり始めるとかなり速いんだよな
自作PCの構造はCPUの中身に似てるから
177デフォルトの名無しさん (テテンテンテン MM3e-tdss)
2022/09/10(土) 00:37:03.60ID:d6i83HiwM178148 (ワッチョイ 5d10-V+uT)
2022/09/10(土) 02:16:33.70ID:bSy2C3T30 文字化けのところは手に負えないですが、おかげさまでbase64エンコーディングプログラムが完成しました。
ここで言われたことは全部含めてみました。
構造体のタグ、enum型、charじゃなくてuint8_t、終端処理など。
https://ideone.com/7wolLZ
コードが汚いなど直すところありましたらどしどしご意見ください。
とりあえず、最初に使ってみる言語はbase64エンコーディングプログラムを組んでみて
なれてみようという方針なので。
次はVBAで組んでみるか、sha256プログラムをC言語で組んでみようか考えてます。
ここで言われたことは全部含めてみました。
構造体のタグ、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 にもなれる
こういう矛盾がある場合の扱いって規格票のどっかに書いてあったっけ?
たとえば 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 は無視するとも書いてあるぞ。
tm_yday は無視するとも書いてあるぞ。
182デフォルトの名無しさん (ワッチョイ adc2-+Wio)
2022/09/11(日) 14:32:58.51ID:LP1WepGR0 レス㌧x
カレンダー時間で表現できるか否かということは
tm_year, tm_mon, tm_mdayのことで、tm_ydayには該当しない議論だよね
逆にtm_ydayに合わせるように補正はしないとなると
ここに優先順位があるのかな
カレンダー時間で表現できるか否かということは
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スタートじゃないのか...
そもそも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
警告なし
宣言された変数を参照するのは規格上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行目の初期化対象は配列じゃないでしょ
3行目の初期化対象は配列じゃないでしょ
189デフォルトの名無しさん (ワッチョイ adc2-+Wio)
2022/09/16(金) 06:50:50.62ID:jyhWPRLZ0 int main(void)
{
int a = a;
}
これもOKなんだが
{
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:alBs0lLWd192デフォルトの名無しさん (ワッチョイ 7d01-Mjbb)
2022/09/16(金) 19:59:25.14ID:u2ZYVkG20 一見
スタックに実体をもつ配列の先頭はセーフで (3行目)
スタックに実体をもつ変数のポインタはアウトというふうに見えるけど (4行目)
{ } の中か否かの差もあるんやね
スタックに実体をもつ配列の先頭はセーフで (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なんですが
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
抽象的すぎて全然わからんw
198デフォルトの名無しさん (アウアウウー Sa5b-Di2O)
2022/09/17(土) 20:04:45.56ID:fgoWI+8da199デフォルトの名無しさん (アウアウウー Sa5b-Di2O)
2022/09/17(土) 20:08:18.29ID:fgoWI+8da 因みにこっちのwin環境だと
上サイトで24byteになるはずの所が10byteになります
上サイトで24byteになるはずの所が10byteになります
200デフォルトの名無しさん (ワッチョイ ffbb-xFG9)
2022/09/17(土) 20:22:45.77ID:ZRyqS0700 strlenのことか?
文字列と違ってchar配列の末尾には自動的にnull挿入されたりしないから、nullまで数え上げる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を呼んではいけません
そのコードが誤り
ゼロで終端されていないものにstrlenを呼んではいけません
そのコードが誤り
203デフォルトの名無しさん (アウアウウー Sa5b-Di2O)
2022/09/17(土) 20:51:16.94ID:I+4Vfslra うーん
そう言うことじゃなくて・・・
なんでメモリアドレスの格納が逆になるの?
と言うところです
cの規格的な話じゃなくてですね・・・
そう言うことじゃなくて・・・
なんでメモリアドレスの格納が逆になるの?
と言うところです
cの規格的な話じゃなくてですね・・・
204デフォルトの名無しさん (ワッチョイ ff46-EKt7)
2022/09/17(土) 20:58:26.77ID:LY5v/fLv0 そのページを作った人の環境(コンパイラとバージョン)ではarr,arr2の順で
あなたの環境ではarr2,arrの順なんでしょ
たまたまそうなっただけです
あなたの環境では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 以外とか
環境依存は他にも、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/fk0212デフォルトの名無しさん (US 0H7f-G1yF)
2022/09/18(日) 02:40:43.36ID:3nFqfKLUH >>209
UTF-8 に BOM は本質的に不要です
なぜならば BOM = Byte Order Mark ですが、UTF にバイトオーダーなど存在しません
BOM なし、と断ること自体、頭が悪い証拠を如実に表出していると愚考させていただきます
馬鹿は死ね
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チャンネル
91,121 回視聴
freeCodeチャンネル
214デフォルトの名無しさん (ワッチョイ 973e-E+l9)
2022/09/18(日) 03:28:52.56ID:OVhdQ/fk0 >>212
BOM はエンコード方式の識別に使われる場合もあると公式 (unicode consortium) の資料に書かれている。
BOM が BOM という名前である以上は本来の用途からの転用ではあるが、
バイトオーダーだけを根拠にして不要と断じるのはエンジニアリング的に良い姿勢ではないな。
BOM はエンコード方式の識別に使われる場合もあると公式 (unicode consortium) の資料に書かれている。
BOM が BOM という名前である以上は本来の用途からの転用ではあるが、
バイトオーダーだけを根拠にして不要と断じるのはエンジニアリング的に良い姿勢ではないな。
215デフォルトの名無しさん (ワッチョイ ff10-Zv9H)
2022/09/18(日) 04:26:41.31ID:GkyrVNWr0216デフォルトの名無しさん (スッププ Sdbf-UZdd)
2022/09/18(日) 05:15:19.35ID:fdsnSmbGd217デフォルトの名無しさん (スッププ Sdbf-UZdd)
2022/09/18(日) 05:26:48.38ID:fdsnSmbGd >>205
よく見るとそのページ内容がむちゃくちゃだなw
データが格納される順番はコンパイラ依存なのでそんなサンプルコードは作ってはいけない
「まず、arr のオブジェクトサイズは 24 バイトと表示されますが、」じゃねえよw
「内部の詳細を無視してしまうと恐ろしいエラーが発生する可能性があります。」もう起こっているw
以上
よく見るとそのページ内容がむちゃくちゃだなw
データが格納される順番はコンパイラ依存なのでそんなサンプルコードは作ってはいけない
「まず、arr のオブジェクトサイズは 24 バイトと表示されますが、」じゃねえよw
「内部の詳細を無視してしまうと恐ろしいエラーが発生する可能性があります。」もう起こっているw
以上
218デフォルトの名無しさん (ワッチョイ 9fad-52V3)
2022/09/18(日) 10:38:22.56ID:kY5VkQwD0219デフォルトの名無しさん (アウアウウー 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:Rev08jtKa222デフォルトの名無しさん (スッププ Sdbf-UZdd)
2022/09/18(日) 18:22:49.00ID:JcdidFMxd 機械翻訳まるだしだし
Pythonのおまけで載ってるだけだから
そんなページあてにするなとしか
Pythonのおまけで載ってるだけだから
そんなページあてにするなとしか
223デフォルトの名無しさん (ワッチョイ 9fad-dwAj)
2022/09/18(日) 18:23:22.20ID:rN2/Bhfe0224デフォルトの名無しさん (ワッチョイ 973e-E+l9)
2022/09/18(日) 19:08:21.37ID:OVhdQ/fk0 >>223
UTF-8 ではない形で保存されている可能性はいつでもあるわけだが……。
UTF-8 ではない形で保存されている可能性はいつでもあるわけだが……。
225デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/18(日) 19:35:00.75ID:CIgAfYZs0226デフォルトの名無しさん (スププ Sdbf-MXZj)
2022/09/18(日) 20:14:09.21ID:tcByEu8Hd wcharはutf8圧に負けて廃れるんかね
Cのようなロートル言語使ってると固定幅(但し幅は決まっていない)エンコの有り難みをひしひしと感じる
Cのようなロートル言語使ってると固定幅(但し幅は決まっていない)エンコの有り難みをひしひしと感じる
227デフォルトの名無しさん (ワッチョイ 9f01-bNpc)
2022/09/18(日) 21:11:58.46ID:/3elu/X80 ストレージはutf-8
メモリーはwchar_t
じゃね?
メモリーはwchar_t
じゃね?
228デフォルトの名無しさん (ワッチョイ 9fad-dwAj)
2022/09/18(日) 22:03:00.04ID:rN2/Bhfe0 >>225
それでBOM付き選んじゃうやつが居るんだろうな。選択肢無くして欲しいものだ。
それでBOM付き選んじゃうやつが居るんだろうな。選択肢無くして欲しいものだ。
229デフォルトの名無しさん (ワッチョイ 9fad-dwAj)
2022/09/18(日) 22:05:23.89ID:rN2/Bhfe0230デフォルトの名無しさん (ワッチョイ 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 は、新し目の文字に対応していないので、ダメ
BOM無しUTF-8は、VSCode, サクラエディタなどを使う。
TeraPad は、新し目の文字に対応していないので、ダメ
232デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/18(日) 23:06:51.28ID:CIgAfYZs0 メモ帳、デフォルトでBOM無しで保存する
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は悪くない
逆に無いと推測に頼るしかない
メモ帳は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しか存在しない美しい世界」を目指している活動家だからな。
説明したところで話が?み合わない。
「UTF-8しか存在しない美しい世界」を目指している活動家だからな。
説明したところで話が?み合わない。
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 がおすすめ
そんなあなたに Nim がおすすめ
242デフォルトの名無しさん (ワイーワ2 FFdf-8eP5)
2022/09/19(月) 11:11:36.70ID:NE4NRLG3F >>233
ASCII (8bit以内) しかないテキストに BOM 付いてたらさすがにうざいと思う
ASCII (8bit以内) しかないテキストに BOM 付いてたらさすがにうざいと思う
243ハノン ◆QZaw55cn4c (US 0H7f-G1yF)
2022/09/19(月) 11:21:09.68ID:PpMrjNAJH >>242
ですよね!
コードは普通コメントも英語で書くし、なんで BOM がつかなきゃならないのか意味不明なんですよ、ましてや UTF-8 に BOM つけてもいい規約なんて後付けなんでしょう?
美しい世界(爆笑)のために今日もがんばります!
ですよね!
コードは普通コメントも英語で書くし、なんで 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:M3xsgC0JM248デフォルトの名無しさん (ワッチョイ 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向けアプリの大半はそうだな。
日本語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のデータを読めるようにプログラムを修正したいのか
プログラムを作ったやつに復讐したいのか
どれだ
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 をつけてしまうウンコエディターを量産している奴等に問題があるんですよ…
また、正直にいって、規格で決めればいいとかいう思考停止にも我慢ならないんですよ
美しい世界(爆笑)のために今日もがんばります!
それを、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との相性は悪くない。
でもそのおかげで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を優先することになってなかったっけ?
たしか規格でBOMを優先することになってなかったっけ?
266デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/19(月) 16:33:42.03ID:zeLiCYh20 文字列としてバイトオーダーが実際に問われるのは、
UTF-16やUTF-32のケースだけです
その場合は必要ですね
UTF-16やUTF-32のケースだけです
その場合は必要ですね
267デフォルトの名無しさん (ワッチョイ 5701-W3aP)
2022/09/19(月) 16:34:41.81ID:Z9ZARiSG0 確認したところ、なってたわ。
HTMLパーサー書いたことがあるから、おぼろげに覚えてた。
HTMLパーサー書いたことがあるから、おぼろげに覚えてた。
268デフォルトの名無しさん (ワッチョイ 5701-W3aP)
2022/09/19(月) 16:46:36.41ID:Z9ZARiSG0 ・BOMがある場合、BOMに従う。
・ない場合、500ms、あるいは1024バイト読み込むまで待機し、エンコーディング走査アルゴリズムを呼び出す。
エンコーディング走査アルゴリズム内で、ヘッダー内の情報が読み取られる場合もある。
(このアルゴリズムでも、他に優先される情報がある。)
やはり、HTMLにおいては、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無し野郎が!」と言うことを提案いたします。
今後は「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:Z9ZARiSG0273デフォルトの名無しさん (ワッチョイ 5701-W3aP)
2022/09/19(月) 16:52:03.62ID:Z9ZARiSG0 BOMをつけないとセキュリティ上の問題がある。
274デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/19(月) 16:52:15.94ID:zeLiCYh20 付けたWebサイトをここで公開して下さい
楽しみにしています
楽しみにしています
275デフォルトの名無しさん (ブーイモ MMcf-xFG9)
2022/09/19(月) 17:25:06.78ID:UNULYZvbM すべてのUTF-8にBOMがついてたらSJISはもっと早く消えてくれたと思うんだよね
276デフォルトの名無しさん (ワッチョイ 5701-W3aP)
2022/09/19(月) 17:31:57.08ID:Z9ZARiSG0 この話題は、BOMをつけましょうということで、良いのでは?
277ハノン ◆QZaw55cn4c (US 0H7f-G1yF)
2022/09/19(月) 18:02:53.27ID:PpMrjNAJH278デフォルトの名無しさん (ワッチョイ 5701-W3aP)
2022/09/19(月) 18:05:47.85ID:Z9ZARiSG0 BOMを付けていない人を見かけたら、注意して差し上げましょう。
ということで、良いのでは?
ということで、良いのでは?
279デフォルトの名無しさん (スプッッ Sd3f-EKt7)
2022/09/19(月) 18:12:09.41ID:iQkZER0Ad テキストファイルを開いたとき最初の三文字がゴミかどうかいちいち判断するの?
2つのテキストファイルを結合するときゴミをひとつにまとめる処理するの?
BOMという考えが誤りなんだよ
2つのテキストファイルを結合するときゴミをひとつにまとめる処理するの?
BOMという考えが誤りなんだよ
280デフォルトの名無しさん (ワッチョイ 5701-W3aP)
2022/09/19(月) 18:14:42.87ID:Z9ZARiSG0 法令でBOMを義務付けるべきでは?
BOMが無かったら通報するみたいな。
BOMが無かったら通報するみたいな。
281デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/19(月) 18:15:00.74ID:zeLiCYh20 Windowsの一部アプリでBOMがないと動作不具合起こすんだよ
Officeとか、Officeとか、その辺
この辺への思いやりが必要な時は付けてあげると良い
Officeとか、Officeとか、その辺
この辺への思いやりが必要な時は付けてあげると良い
282デフォルトの名無しさん (US 0H7f-G1yF)
2022/09/19(月) 18:19:47.40ID:BENNO3a0H >>278
それに加えて BOM を無駄につけている人を見かけたら、注意して差し上げましょう、も追加してください。
それに加えて BOM を無駄につけている人を見かけたら、注意して差し上げましょう、も追加してください。
283デフォルトの名無しさん (US 0H7f-G1yF)
2022/09/19(月) 18:20:53.56ID:BENNO3a0H284はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 973e-E+l9)
2022/09/19(月) 18:22:38.11ID:npVSxydm0285デフォルトの名無しさん (US 0H7f-G1yF)
2022/09/19(月) 18:23:22.11ID:BENNO3a0H >>281
たしかに office とか office とか office とか office とかに思いやりを示す寛大な処置ということであれば、付けて差し上げることにやぶさかではないのですけれどもね
たしかに office とか office とか office とか office とかに思いやりを示す寛大な処置ということであれば、付けて差し上げることにやぶさかではないのですけれどもね
286デフォルトの名無しさん (ワッチョイ ffb0-okD4)
2022/09/19(月) 18:27:12.50ID:YVA4ZVOh0 >>277
後半に関して言えば、そのテキストがどのエンコードを用いているかが他の手段で示されているなら
BOMは用いるべきではないとされているからそれに従えばいい話だね。
「俺が扱うテキストは全部UTF-8に決まってるんだからBOMは要らない」という自己中心的な主張と
混同してくれなければいい。
後半に関して言えば、そのテキストがどのエンコードを用いているかが他の手段で示されているなら
BOMは用いるべきではないとされているからそれに従えばいい話だね。
「俺が扱うテキストは全部UTF-8に決まってるんだからBOMは要らない」という自己中心的な主張と
混同してくれなければいい。
287デフォルトの名無しさん (ワッチョイ 5701-W3aP)
2022/09/19(月) 18:28:42.31ID:Z9ZARiSG0 まあ私はどちらでも良いんですけれども。
(レイヤード・ストリームをつこてますので)
gccがBOMに対応したのだから、BOM付ける陣営の勝利では?
(レイヤード・ストリームをつこてますので)
gccがBOMに対応したのだから、BOM付ける陣営の勝利では?
288デフォルトの名無しさん (ワッチョイ 5701-W3aP)
2022/09/19(月) 18:33:34.93ID:Z9ZARiSG0 ところで明日は地下鉄が止まるかもしれないので、調べておいた方が良いですよ。
289デフォルトの名無しさん (ワッチョイ 5701-W3aP)
2022/09/19(月) 18:35:51.09ID:Z9ZARiSG0 わたくし思うのですが、BOMに対応しないソフトウェアを企画してしまう技術者って、もはや技術者で無いのでは?
ユーザーが必要としてるわけですからね。
ユーザーが必要としてるわけですからね。
290デフォルトの名無しさん (ワッチョイ 775f-3ts6)
2022/09/19(月) 19:59:29.61ID:x76VqF340 WindowsはBOMがあった方が判別しやすいが、LinuxやUNIXはBOMがあると余計なものが付いているという感じになる。
マルチバイト圏への配慮が足らなかったマイクロソフトが一番悪い。
だいたい2バイトで漢字がすべて収まると思ったアメリカ人に対して、早く日本人が漢字は何万字もあると教えなかったのが失敗だった。
マルチバイト圏への配慮が足らなかったマイクロソフトが一番悪い。
だいたい2バイトで漢字がすべて収まると思ったアメリカ人に対して、早く日本人が漢字は何万字もあると教えなかったのが失敗だった。
291デフォルトの名無しさん (スッププ Sdbf-UZdd)
2022/09/19(月) 20:35:04.98ID:EmjBwTYRd BOMキチガイども
292デフォルトの名無しさん (ワントンキン MM7f-bNpc)
2022/09/19(月) 20:42:51.60ID:F9okSTEiM MS-DOSの頃は、これで十分って思ってたからな。
293デフォルトの名無しさん (US 0H7f-G1yF)
2022/09/19(月) 21:05:32.45ID:BENNO3a0H294デフォルトの名無しさん (ワッチョイ ffb0-okD4)
2022/09/19(月) 22:08:36.69ID:YVA4ZVOh0 「俺が扱うテキストは全部UTF-8に決まってるんだからBOMは要らない」というのが自己中心的な主張だと言ったんだが?
こんな単純な日本語の文章すらまともに読解できない奴に間違ってるとか言われても困惑するわ。
こんな単純な日本語の文章すらまともに読解できない奴に間違ってるとか言われても困惑するわ。
295デフォルトの名無しさん (US 0H7f-G1yF)
2022/09/19(月) 22:24:33.90ID:BENNO3a0H >>294
同じことを繰り返しますが、
①過去、エンコードの違うテキストを各種取り扱っていたからといって、「テキストの内部に恣意的にエンコードを示すマークを入れる」などという自己中心的なことをした歴史はなかったのです。
特にそういうことをしたいときは、ソースコードにその言語のコメントでエンコードを示す、くらいの配慮をしていたものです
②UTF-8 でエンコードされている限り、そのコンテンツがアスキーコードのみで構成されているのならば、特にバイトオーダーコードは不要で、as is で使えるように、欧米諸国に配慮した設計です
特に②が重要で、バイトオーダーコードを要れずとも、C のソースコードは UTF-8 であれば普通にコンパイルできる、はず、なのに、なぜわざわざバイトオーダーコードを付加して既存の処理系がそのままでは使えなくなってしまったのか?
コンパイラは MS-VC だけではなく、gcc も clang も lsi-c (w)もあるというのに、既存のコンパイラの動作を妨害してまで、バイトオーダーコードを付加するエディター側の方が自己中心的といえるのではないでしょうか?
そしてエンコードを示すマークなどではないバイトオーダーマークをエンコード種を示すマークに乱用するしている二重の矛盾も指摘しなければなりますまい
私の言っていることがわかりますか?
同じことを繰り返しますが、
①過去、エンコードの違うテキストを各種取り扱っていたからといって、「テキストの内部に恣意的にエンコードを示すマークを入れる」などという自己中心的なことをした歴史はなかったのです。
特にそういうことをしたいときは、ソースコードにその言語のコメントでエンコードを示す、くらいの配慮をしていたものです
②UTF-8 でエンコードされている限り、そのコンテンツがアスキーコードのみで構成されているのならば、特にバイトオーダーコードは不要で、as is で使えるように、欧米諸国に配慮した設計です
特に②が重要で、バイトオーダーコードを要れずとも、C のソースコードは UTF-8 であれば普通にコンパイルできる、はず、なのに、なぜわざわざバイトオーダーコードを付加して既存の処理系がそのままでは使えなくなってしまったのか?
コンパイラは MS-VC だけではなく、gcc も clang も lsi-c (w)もあるというのに、既存のコンパイラの動作を妨害してまで、バイトオーダーコードを付加するエディター側の方が自己中心的といえるのではないでしょうか?
そしてエンコードを示すマークなどではないバイトオーダーマークをエンコード種を示すマークに乱用するしている二重の矛盾も指摘しなければなりますまい
私の言っていることがわかりますか?
296デフォルトの名無しさん (ワッチョイ 9fad-dwAj)
2022/09/19(月) 23:05:07.14ID:/08McGz80297はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 973e-E+l9)
2022/09/19(月) 23:10:53.08ID:npVSxydm0 >>290
エンコード切り替えの規格は ISO/IEC 2022 がある。
PC-9801 時代あたりにはマニュアルで KI/KO コードという名前で説明されていた。
ヨーロッパ言語も ISO/IEC 8859 として十種類以上の文字セットが定義されているんだ。
日本での事情以上に混在は深刻な問題であって、対処する規格は当然ある。
エンコード切り替えの規格は ISO/IEC 2022 がある。
PC-9801 時代あたりにはマニュアルで KI/KO コードという名前で説明されていた。
ヨーロッパ言語も ISO/IEC 8859 として十種類以上の文字セットが定義されているんだ。
日本での事情以上に混在は深刻な問題であって、対処する規格は当然ある。
298デフォルトの名無しさん (US 0H7f-G1yF)
2022/09/19(月) 23:18:33.90ID:a+e8LTLZH >>296
おっしゃるとおり、そこまでは、ただのアスキー7bit で記述するんですよ
大概は第一行目にエンコード種をアスキーで書くものでしたけれどもね
厳密っていうけれども、あなたのおっしゃる厳密の意味がよくわかりませんね
おっしゃるとおり、そこまでは、ただのアスキー7bit で記述するんですよ
大概は第一行目にエンコード種をアスキーで書くものでしたけれどもね
厳密っていうけれども、あなたのおっしゃる厳密の意味がよくわかりませんね
299デフォルトの名無しさん (US 0H7f-G1yF)
2022/09/19(月) 23:19:31.82ID:a+e8LTLZH >>297
英語が一番簡単で、ウムラウトとか苦労していたと思いますよ、ウムラウトは確か 7 ビット領域に侵食していたような気が
英語が一番簡単で、ウムラウトとか苦労していたと思いますよ、ウムラウトは確か 7 ビット領域に侵食していたような気が
300デフォルトの名無しさん (US 0H7f-G1yF)
2022/09/19(月) 23:23:44.77ID:a+e8LTLZH >>297
おっと、私のいっていたことが少し不正確でしたね、たしかに KI/KO は生 JIS にありましたね
おっと、私のいっていたことが少し不正確でしたね、たしかに KI/KO は生 JIS にありましたね
301はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 973e-E+l9)
2022/09/19(月) 23:40:42.70ID:npVSxydm0 自然言語なんて数千年単位の歴史的経緯の塊だ。 その文字も。
綺麗に整理しようとしたって元がグダグダなんだからどこかしらでグダグダになる。
そんでそのグダグダをひとつに寄せ集めたのが Unicode なんだぞ。
そりゃグダグダで当たり前だし、そういうもんだと思うしかしょうがないだろ。
そんでもって Unicode がかなり広まったといっても従来の文字コードが消滅したわけでもない。
https://xkcd.com/927/
綺麗に整理しようとしたって元がグダグダなんだからどこかしらでグダグダになる。
そんでそのグダグダをひとつに寄せ集めたのが Unicode なんだぞ。
そりゃグダグダで当たり前だし、そういうもんだと思うしかしょうがないだろ。
そんでもって Unicode がかなり広まったといっても従来の文字コードが消滅したわけでもない。
https://xkcd.com/927/
302デフォルトの名無しさん (US 0H7f-G1yF)
2022/09/19(月) 23:43:18.98ID:a+e8LTLZH >>240
チャイナ規格ですか‥‥(差別意識満々)
調べてみましたが基本的に4ビット固定長であり、UTF-8 を包含してはいないようですね、UTF-8 の上位規格というのはどういう根拠でそういっているのですか?
どっちかというと 現行中国漢字エンコード規格の上位規格でしょう
私の理解
・7 ビット圏は 1 バイト
・拡張部分は可変長ではなく 4 バイト固定
・現行の中国の漢字エンコード規格 GBK(シフトJIS と同じ仕組み)を包含するように第二・第四バイトの範囲を GBK と被らない範囲に制限している。
チャイナ規格ですか‥‥(差別意識満々)
調べてみましたが基本的に4ビット固定長であり、UTF-8 を包含してはいないようですね、UTF-8 の上位規格というのはどういう根拠でそういっているのですか?
どっちかというと 現行中国漢字エンコード規格の上位規格でしょう
私の理解
・7 ビット圏は 1 バイト
・拡張部分は可変長ではなく 4 バイト固定
・現行の中国の漢字エンコード規格 GBK(シフトJIS と同じ仕組み)を包含するように第二・第四バイトの範囲を GBK と被らない範囲に制限している。
303デフォルトの名無しさん (ワッチョイ 5701-W3aP)
2022/09/19(月) 23:48:55.05ID:Z9ZARiSG0304デフォルトの名無しさん (US 0H7f-G1yF)
2022/09/19(月) 23:52:42.86ID:A/Pc+E3NH >>301
How standards have been overproducted とか易しい英語にしてほしいなあ
How standards have been overproducted とか易しい英語にしてほしいなあ
305デフォルトの名無しさん (US 0H7f-G1yF)
2022/09/19(月) 23:55:05.42ID:A/Pc+E3NH306デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/19(月) 23:55:54.72ID:zeLiCYh20 EBCDIC なんていうコード体系もあるんだよな
これはASCIIよりも古い
このコードで動いていたPCもあった(今もあるかは知らない)
これはASCIIよりも古い
このコードで動いていたPCもあった(今もあるかは知らない)
307デフォルトの名無しさん (ワッチョイ 17c2-okD4)
2022/09/20(火) 05:35:11.57ID:JyAf+et+0 N5200か
308デフォルトの名無しさん (ワッチョイ ff46-B8bZ)
2022/09/20(火) 05:38:15.50ID:AtHbCf2+0309デフォルトの名無しさん (ワッチョイ ffb0-okD4)
2022/09/20(火) 07:29:23.63ID:4R7D1dED0310デフォルトの名無しさん (アウアウウー Sa5b-8eP5)
2022/09/20(火) 09:59:52.88ID:2fXkGtCja >>270
PHP+SJIS全盛の頃にBOMの代わりに「美乳」が使われてた時代があったな
PHP+SJIS全盛の頃にBOMの代わりに「美乳」が使われてた時代があったな
311デフォルトの名無しさん (アウアウウー Sa5b-8eP5)
2022/09/20(火) 10:02:30.30ID:2fXkGtCja312デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/20(火) 10:04:55.52ID:Sk0Tcp2N0 MSならやりかねない
313デフォルトの名無しさん (ブーイモ MMfb-hJeG)
2022/09/20(火) 10:08:20.39ID:x6uHKNFtM >>311
asciiなら不要だよ
asciiなら不要だよ
314デフォルトの名無しさん (アウアウウー Sa5b-8eP5)
2022/09/20(火) 10:19:31.19ID:2fXkGtCja >>313
BOM付けろ派はASCIIかどうかもBOM付いてないと判らないみたいだし
BOM付けろ派はASCIIかどうかもBOM付いてないと判らないみたいだし
315デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/20(火) 10:27:10.48ID:Sk0Tcp2N0 MSの事だから、UTF-16使いそう
316デフォルトの名無しさん (ワッチョイ 9f47-G1yF)
2022/09/20(火) 22:46:15.84ID:oGqR16NY0 >>309
>>>286で自己中心的と書いた内容と全然関係ない内容
>>286
>「俺が扱うテキストは全部UTF-8に決まってるんだからBOMは要らない」という自己中心的な主張と混同してくれなければいい。
まあ、活動家のなりきりをしているので、そういうスタンスをとっているけれども、本質的には
>>295
1. 過去、エンコードの違うテキストを各種取り扱っていたからといって、「テキストの内部に恣意的にエンコードを示すマークを入れる」などという自己中心的なことをした歴史はなかった
2. UTF-8 でエンコードされている限り、そのコンテンツがアスキーコードのみで構成されているのならば、特にバイトオーダーコードは不要で、as is で使えるように、欧米諸国に配慮した設計
が言いたいことですね
UTF-8 ならば通常は as is で使えるんですよ、特に C/C++ のコード(コメントは英語・これって普通でしょ?)をそのまま使えるのに、どこぞのエディターが勝手につけるバイトオーダーマークまで正当化する風潮に苛立ちを感じているんですよ
長いものに巻かれよ、みたいなみっともない風潮を正当化するあさましさにあきれ果てているのです
あなたがそうだ、とはいいませんけれどもね
>>>286で自己中心的と書いた内容と全然関係ない内容
>>286
>「俺が扱うテキストは全部UTF-8に決まってるんだからBOMは要らない」という自己中心的な主張と混同してくれなければいい。
まあ、活動家のなりきりをしているので、そういうスタンスをとっているけれども、本質的には
>>295
1. 過去、エンコードの違うテキストを各種取り扱っていたからといって、「テキストの内部に恣意的にエンコードを示すマークを入れる」などという自己中心的なことをした歴史はなかった
2. UTF-8 でエンコードされている限り、そのコンテンツがアスキーコードのみで構成されているのならば、特にバイトオーダーコードは不要で、as is で使えるように、欧米諸国に配慮した設計
が言いたいことですね
UTF-8 ならば通常は as is で使えるんですよ、特に C/C++ のコード(コメントは英語・これって普通でしょ?)をそのまま使えるのに、どこぞのエディターが勝手につけるバイトオーダーマークまで正当化する風潮に苛立ちを感じているんですよ
長いものに巻かれよ、みたいなみっともない風潮を正当化するあさましさにあきれ果てているのです
あなたがそうだ、とはいいませんけれどもね
317デフォルトの名無しさん (スッップ Sdbf-UZdd)
2022/09/20(火) 22:50:52.98ID:an1sf52Dd どこでも演説をおっぱじめるガキにいらだちを感じてる
318デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/20(火) 23:07:44.32ID:Sk0Tcp2N0 多国語が混在しても扱えるところが気に入ってる
319デフォルトの名無しさん (ワッチョイ d7b3-rZTD)
2022/09/21(水) 00:15:08.73ID:z4iK/HUS0 gdbについて質問いいですか?
ステップ実行でfopenを通過しようとすると
"iofopen.c: そのようなファイルやディレクトリはありません"
とメッセージがでて先に進めません。どうすれば回避できますか?
OS:Linux
ステップ実行でfopenを通過しようとすると
"iofopen.c: そのようなファイルやディレクトリはありません"
とメッセージがでて先に進めません。どうすれば回避できますか?
OS:Linux
320デフォルトの名無しさん (ワッチョイ d7b3-rZTD)
2022/09/21(水) 00:17:32.94ID:z4iK/HUS0 ちなみにソースは以下の感じです
fopenで開くファイルは実行ファイル(a.out)と同じ場所に置いてあります。
#include <stdio.h>
void main(void){
FILE *fp;
fp =fopen("aa.txt", "r");
fclose(fp);
}
fopenで開くファイルは実行ファイル(a.out)と同じ場所に置いてあります。
#include <stdio.h>
void main(void){
FILE *fp;
fp =fopen("aa.txt", "r");
fclose(fp);
}
321デフォルトの名無しさん (ワッチョイ 1710-W3aP)
2022/09/21(水) 00:45:37.65ID:itvuUNqP0322デフォルトの名無しさん (ワッチョイ d7b3-q6Lr)
2022/09/21(水) 06:00:40.75ID:z4iK/HUS0 >>321
サンクス
サンクス
323デフォルトの名無しさん (ワッチョイ 1f02-MXZj)
2022/09/21(水) 06:25:52.07ID:tW9j9RfF0 includeガードって割と使われてるように思いますが、エラい人の批評とかありません?
依存関係を把握しきれてないヤバい状態の発覚を先延ばしにするだけのハックだと個人的な経験から思うのですが…
依存関係を把握しきれてないヤバい状態の発覚を先延ばしにするだけのハックだと個人的な経験から思うのですが…
324デフォルトの名無しさん (スフッ Sdbf-MXZj)
2022/09/21(水) 06:39:05.65ID:6JiKBcvPd とりあえず各ソースファイルの実行部、なければinit_xxxみたいなエントリーポイント作って
#ifdef XXX perror("xxx loaded twice"); exit(XXX);
みたいの置いたりしてます
#ifdef XXX perror("xxx loaded twice"); exit(XXX);
みたいの置いたりしてます
325デフォルトの名無しさん (スフッ Sdbf-MXZj)
2022/09/21(水) 06:47:28.88ID:6JiKBcvPd init_xxxを呼び忘れると無意味なので、文法エラーで落とせたら良いと思うんですが、分かりやすいメッセージ吐いて落ちてくれる違法構文(あるいはそうするときの標準的なイディオム)あったら教えて欲しいです
326デフォルトの名無しさん (ワッチョイ 17c2-okD4)
2022/09/21(水) 07:18:22.65ID:sLC8V8J20 >>323
エロい人の批判ねえ。。。
#pragma onceなんか色んなコンパイラの中の人が真似してるけど?
依存関係を把握っていうけど、じゃあ
#include <stddef.h>
#include <stdio.h>
なんて書かされたいわけ?
ライブラリだって-lstdcじゃなく
fputc.o iobuf.o fprintf.o printf.oなんて書くべきだと思う?
何かを使いたいときの窓口を1つにまとめておくのは
作る側として行儀のいいことだと思うぞ
エロい人の批判ねえ。。。
#pragma onceなんか色んなコンパイラの中の人が真似してるけど?
依存関係を把握っていうけど、じゃあ
#include <stddef.h>
#include <stdio.h>
なんて書かされたいわけ?
ライブラリだって-lstdcじゃなく
fputc.o iobuf.o fprintf.o printf.oなんて書くべきだと思う?
何かを使いたいときの窓口を1つにまとめておくのは
作る側として行儀のいいことだと思うぞ
327デフォルトの名無しさん (スフッ Sdbf-MXZj)
2022/09/21(水) 07:47:36.87ID:6JiKBcvPd >>326
むしろグッドプラクティスとされてる感じですか、確かにシステムヘッダにも見掛けますね
標準ライブラリは使うものを共通ヘッダにまとめてますね
ライブラリとして公開する場合は当然慣習に従うべきだと思いますが、書いてる時には丁度必要十分でなく、余計なヘッダがあると何処に何があったか混乱したりしません?
コードを弄らずスタティックアナライザとか道具に頼った方がいいのかな
むしろグッドプラクティスとされてる感じですか、確かにシステムヘッダにも見掛けますね
標準ライブラリは使うものを共通ヘッダにまとめてますね
ライブラリとして公開する場合は当然慣習に従うべきだと思いますが、書いてる時には丁度必要十分でなく、余計なヘッダがあると何処に何があったか混乱したりしません?
コードを弄らずスタティックアナライザとか道具に頼った方がいいのかな
328はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 973e-E+l9)
2022/09/21(水) 09:18:02.72ID:tPUkcfIa0 >>323
ライブラリはそのライブラリの使用者に対して
インターフェイス部分だけを公開したいのが普通で、
細かい依存関係が見えてしまうのは悪い設計だろ。
でも C のヘッダファイルの仕組みは隠蔽しきれない部分が出てしまうので
そもそも C の言語としての仕組みが悪い。
C を使う以上は悪い部分ともつきあわないとしょうがないし、
インクルードガードは比較的マシな解決方法だと誰もが考えているからこそそうなってる。
C++ にはモジュールが導入されたけど今のところはヘッダファイルとも共存し続ける必要があるから
完全な移行にかかる時間は数十年単位かもしれんな……。
ライブラリはそのライブラリの使用者に対して
インターフェイス部分だけを公開したいのが普通で、
細かい依存関係が見えてしまうのは悪い設計だろ。
でも C のヘッダファイルの仕組みは隠蔽しきれない部分が出てしまうので
そもそも C の言語としての仕組みが悪い。
C を使う以上は悪い部分ともつきあわないとしょうがないし、
インクルードガードは比較的マシな解決方法だと誰もが考えているからこそそうなってる。
C++ にはモジュールが導入されたけど今のところはヘッダファイルとも共存し続ける必要があるから
完全な移行にかかる時間は数十年単位かもしれんな……。
329デフォルトの名無しさん (ワッチョイ 9fad-okD4)
2022/09/21(水) 09:58:34.67ID:hjFc1SVt0 新言語作った方が早いw
330デフォルトの名無しさん (アウアウウー Sa5b-8eP5)
2022/09/21(水) 18:18:19.49ID:E8IgYMeHa331デフォルトの名無しさん (アウアウウー Sa5b-8eP5)
2022/09/21(水) 18:19:32.68ID:E8IgYMeHa >>328
FILE * とかって結局使う方からしたら void * でも動くしな
FILE * とかって結局使う方からしたら void * でも動くしな
332デフォルトの名無しさん (アウアウウー Sa5b-8eP5)
2022/09/21(水) 18:21:06.66ID:E8IgYMeHa >>329
Nimがある
Nimがある
333デフォルトの名無しさん (ワッチョイ d7b3-rZTD)
2022/09/22(木) 19:42:13.93ID:6Jou56UH0 #include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <memory.h>
typedef struct {
int year;
int mon;
int mday;
int hour;
int min;
double high;
double open;
double close;
double low;
} CSV_T;
void f(CSV_T *csv){
CSV_T *work;
for(int i=1; i<1001; i++){ //★
work = realloc(csv, sizeof(CSV_T)*i);
if(work == NULL){
puts("error");
exit(0);
}
if(work != csv) {
puts("ココ通過でアウト"); //▲
csv = work;
}
}
#include <string.h>
#include <stdlib.h>
#include <memory.h>
typedef struct {
int year;
int mon;
int mday;
int hour;
int min;
double high;
double open;
double close;
double low;
} CSV_T;
void f(CSV_T *csv){
CSV_T *work;
for(int i=1; i<1001; i++){ //★
work = realloc(csv, sizeof(CSV_T)*i);
if(work == NULL){
puts("error");
exit(0);
}
if(work != csv) {
puts("ココ通過でアウト"); //▲
csv = work;
}
}
334デフォルトの名無しさん (ワッチョイ d7b3-rZTD)
2022/09/22(木) 19:42:52.92ID:6Jou56UH0 csv[0].year = 1;
csv[0].low = 1.1;
csv[998].year = 9;
csv[998].low = 9.9;
printf("%d %f\n", csv[0].year, csv[0].low);
printf("%d %f\n", csv[998].year, csv[998].low);
}
void main(void){
CSV_T *csv;
csv = realloc(NULL, 1);
f(csv);
printf("%d %f\n", csv[0].year, csv[0].low);
printf("%d %f\n", csv[998].year, csv[998].low);
free(csv);
}
csv[0].low = 1.1;
csv[998].year = 9;
csv[998].low = 9.9;
printf("%d %f\n", csv[0].year, csv[0].low);
printf("%d %f\n", csv[998].year, csv[998].low);
}
void main(void){
CSV_T *csv;
csv = realloc(NULL, 1);
f(csv);
printf("%d %f\n", csv[0].year, csv[0].low);
printf("%d %f\n", csv[998].year, csv[998].low);
free(csv);
}
335デフォルトの名無しさん (ワッチョイ d7b3-rZTD)
2022/09/22(木) 19:43:37.01ID:6Jou56UH0 ・やりたいこと
CSVファイルを1行読み込むごとに構造体のエリアをreallocで拡張して格納
元のソースをそのままアップするには長いのでファイルの読み込み部分を削除したソースが上のやつです
・悩んでいるところ
コメント★のとこのループが1000程度なら動きます。
しかし10000を超えるループにするとコメント▲部分を通過するようになり
mainのprintfが正しい値を表示しなくなります。
なぜ?
CSVファイルを1行読み込むごとに構造体のエリアをreallocで拡張して格納
元のソースをそのままアップするには長いのでファイルの読み込み部分を削除したソースが上のやつです
・悩んでいるところ
コメント★のとこのループが1000程度なら動きます。
しかし10000を超えるループにするとコメント▲部分を通過するようになり
mainのprintfが正しい値を表示しなくなります。
なぜ?
336デフォルトの名無しさん (ワッチョイ 9f7c-E+l9)
2022/09/22(木) 19:58:17.91ID:z6cxsZX20 領域拡張がそのままでは出来ずに新たな領域に指定サイズで取り直すからでは?
どっちにしてもそんなに細かくrealloc()するものでは無いし
ある程度の大きさで取っておいて足りなくなったらrealloc()するのが本来の使い方
どっちにしてもそんなに細かくrealloc()するものでは無いし
ある程度の大きさで取っておいて足りなくなったらrealloc()するのが本来の使い方
337デフォルトの名無しさん (ワッチョイ ff46-EKt7)
2022/09/22(木) 19:58:48.48ID:p2gwdjIg0 reallocが別のメモリを確保して返す場合
▲のほうを通ります
このときfの内部でcsvを変更しても
mainのcsvは変化しません。
返り値にするかfの引数をCSV_T**にするか
変更すればよいです。
▲のほうを通ります
このときfの内部でcsvを変更しても
mainのcsvは変化しません。
返り値にするかfの引数をCSV_T**にするか
変更すればよいです。
338デフォルトの名無しさん (ワッチョイ 775f-3ts6)
2022/09/22(木) 21:54:30.38ID:x7eBA3430 >>293
昔はデータ容量を節約する必要があったから、データ容量が増えることは避けたかっただけ。
昔はデータ容量を節約する必要があったから、データ容量が増えることは避けたかっただけ。
339デフォルトの名無しさん (ワッチョイ 775f-3ts6)
2022/09/22(木) 21:56:10.71ID:x7eBA3430 >>295
①や②を使っている時点で日本人の都合を世界に押し付けていることがわからないのか?
①や②を使っている時点で日本人の都合を世界に押し付けていることがわからないのか?
340デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/22(木) 22:34:09.45ID:4dXBB0gP0 丸数字はUnicodeに登録されてるから心配ないよ
㋿ですら存在するし
㋿ですら存在するし
341デフォルトの名無しさん (テテンテンテン MM8f-2Jl6)
2022/09/22(木) 23:15:55.13ID:9LVV18M9M >>293
そんなこと言ってたらUnicodeには肌色を指定する文字があって、これは通常表示されない
これらを組み合わせると家族絵文字はたった1文字を表示するのに最大で41byteになる
もはや文字を正しく表示する事は簡単じゃない
BOMの有無なんてかわいいもんだ
そんなこと言ってたらUnicodeには肌色を指定する文字があって、これは通常表示されない
これらを組み合わせると家族絵文字はたった1文字を表示するのに最大で41byteになる
もはや文字を正しく表示する事は簡単じゃない
BOMの有無なんてかわいいもんだ
342はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 973e-E+l9)
2022/09/22(木) 23:47:09.65ID:He0eupRY0 私が Unicode のグダグダさについて言いたいことは >>301 が全てなので繰り返しになるんだが
そもそも自然言語がグダグダなのが問題の根源。
文句があるなら自然言語を規格化して普及させてみせろや。
そもそも自然言語がグダグダなのが問題の根源。
文句があるなら自然言語を規格化して普及させてみせろや。
343デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/22(木) 23:50:49.90ID:4dXBB0gP0 人それぞれなんだが、
自分が一番困るのは
~
これの扱いでいつもトラブル
自分が一番困るのは
~
これの扱いでいつもトラブル
344デフォルトの名無しさん (テテンテンテン MM8f-2Jl6)
2022/09/23(金) 00:53:58.54ID:oded7icuM 「が」と「か゛」が混ざってる事もある(見た目じゃ判別付かない)から、先ずはUnicode正規化しないと、なぜか文字列が一致しないとかもある
345デフォルトの名無しさん (アウアウウー Sa5b-8eP5)
2022/09/23(金) 01:35:24.44ID:gD4It3Aba346デフォルトの名無しさん (アウアウウー Sa5b-8eP5)
2022/09/23(金) 01:37:21.11ID:gD4It3Aba ここと
work = realloc(*csv, sizeof(CSV_T)*i);
ここも
if(work != *csv) {
変更汁
work = realloc(*csv, sizeof(CSV_T)*i);
ここも
if(work != *csv) {
変更汁
347デフォルトの名無しさん (ワッチョイ 9f01-bNpc)
2022/09/23(金) 06:31:49.61ID:exFn1ITS0348デフォルトの名無しさん (ワッチョイ d710-E+l9)
2022/09/23(金) 08:25:09.61ID:wfJAcbE20 >339
日本の都合に合わせたOSを作ったらアメリカから(ry
日本の都合に合わせたOSを作ったらアメリカから(ry
349デフォルトの名無しさん (ワッチョイ 9fad-52V3)
2022/09/23(金) 08:38:34.03ID:JWInDr1o0 BOMはいるとかいらないとか
自分を中心に語っている間は自己中心的、なんじゃないですか?
BOMあったほうが良い環境と無いほうが良い環境があるなら、それに合わせて利用するでは?
自分を中心に語っている間は自己中心的、なんじゃないですか?
BOMあったほうが良い環境と無いほうが良い環境があるなら、それに合わせて利用するでは?
350デフォルトの名無しさん (ワッチョイ 9701-W3aP)
2022/09/23(金) 08:55:36.44ID:7gKq4Utr0351デフォルトの名無しさん (ワッチョイ d7b3-rZTD)
2022/09/23(金) 09:05:36.75ID:CJ5Vu8e/0 >>336-347
動きました。
指摘頂いた箇所を直してコンパイルすると、コンパイラが
error: ‘*csv’ is a pointer; did you mean to use ‘->’?
っと吐くので、コンパイルメッセージ通り
csv[0]->year = 1;
csv[0]->low = 1.1;
csv[998]->year = 9;
csv[998]->low = 9.9;
と修正したら Segmentation fault (コアダンプ) となるので随分悩みましたが
以下のようにすることで望む動作となりました。サンクスです。おわり。
csv[0][0].year = 1;
csv[0][0].low = 1.1;
csv[0][998].year = 9;
csv[0][998].low = 9.9;
printf("%d %f\n", csv[0][0].year, csv[0][0].low);
printf("%d %f\n", csv[0][998].year, csv[0][998].low);
動きました。
指摘頂いた箇所を直してコンパイルすると、コンパイラが
error: ‘*csv’ is a pointer; did you mean to use ‘->’?
っと吐くので、コンパイルメッセージ通り
csv[0]->year = 1;
csv[0]->low = 1.1;
csv[998]->year = 9;
csv[998]->low = 9.9;
と修正したら Segmentation fault (コアダンプ) となるので随分悩みましたが
以下のようにすることで望む動作となりました。サンクスです。おわり。
csv[0][0].year = 1;
csv[0][0].low = 1.1;
csv[0][998].year = 9;
csv[0][998].low = 9.9;
printf("%d %f\n", csv[0][0].year, csv[0][0].low);
printf("%d %f\n", csv[0][998].year, csv[0][998].low);
352デフォルトの名無しさん (スッププ Sdbf-UZdd)
2022/09/23(金) 10:00:54.82ID:N+YYHg9hd >>348
そんな幻覚を信じてる奴がC言語使うなw
そんな幻覚を信じてる奴がC言語使うなw
353デフォルトの名無しさん (ワッチョイ 9701-W3aP)
2022/09/23(金) 10:17:08.51ID:7gKq4Utr0 中国がやられていることを、以前は日本がやられていた。
354デフォルトの名無しさん (スッププ Sdbf-UZdd)
2022/09/23(金) 10:36:16.17ID:N+YYHg9hd 中国のはただのLINUXもどきだろw
355デフォルトの名無しさん (ワッチョイ 9701-W3aP)
2022/09/23(金) 10:43:48.77ID:7gKq4Utr0 アメリカは許さん。
いつかアメリカが弱くなった時、必ず仕返しをする。
いつかアメリカが弱くなった時、必ず仕返しをする。
356デフォルトの名無しさん (ワッチョイ b7bb-E+l9)
2022/09/23(金) 10:46:24.11ID:mieuEbaK0 アメリカはほんとジャイアンだよな
色々な国から恨み買ってると思うわ
色々な国から恨み買ってると思うわ
357デフォルトの名無しさん (スッププ Sdbf-UZdd)
2022/09/23(金) 11:04:10.31ID:N+YYHg9hd そういう下らない話はどっかの陰謀論スレでやれ
CもUNIXもパソコンもどこの国が作ったんだよw
CもUNIXもパソコンもどこの国が作ったんだよw
358デフォルトの名無しさん (ワッチョイ b7bb-E+l9)
2022/09/23(金) 11:14:08.38ID:mieuEbaK0 だから国産のCやUNIXが必要なんだよ
アメリカにずっと依存してたらいつか痛い目を見ると思うわ
アメリカにずっと依存してたらいつか痛い目を見ると思うわ
359デフォルトの名無しさん (ワッチョイ 17c2-okD4)
2022/09/23(金) 11:24:24.02ID:Ztvb6Y4W0 Cのどこに陰謀なんかあるんだよ
ちゃんと理解して使ってる人なら絶対にありえない妄想だな
いつまで経ってもHello worldの域を出られないウルトラ低脳だけだろそんなこと言ってるのは
ちゃんと理解して使ってる人なら絶対にありえない妄想だな
いつまで経ってもHello worldの域を出られないウルトラ低脳だけだろそんなこと言ってるのは
360デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/23(金) 12:04:08.03ID:d/Vr8qA70 ビジコンの小島社長が技術だけでなく、世界を目指していたら
今頃は世界を制覇して太ろうに
今頃は世界を制覇して太ろうに
361デフォルトの名無しさん (スププ Sdbf-rRHG)
2022/09/23(金) 13:05:01.09ID:hRyY5Ouqd >>351
そこまで csv[0] 多用するなら
引数を void f(CSV_T **pcsv) にして
関数内で CSV_T *csv = *pcsv; すると良い
最後に *pcsv = work; だけ気を付ける
そこまで csv[0] 多用するなら
引数を void f(CSV_T **pcsv) にして
関数内で CSV_T *csv = *pcsv; すると良い
最後に *pcsv = work; だけ気を付ける
362デフォルトの名無しさん (スッププ Sdbf-UZdd)
2022/09/23(金) 13:28:27.27ID:UtiZ09eAd363デフォルトの名無しさん (ワッチョイ d710-E+l9)
2022/09/23(金) 14:25:39.25ID:wfJAcbE20 世界初のCPUは(ry
364デフォルトの名無しさん (ワッチョイ ffb0-okD4)
2022/09/23(金) 14:59:32.72ID:4W75W0wl0 イギリス人のノイマンが考えてアメリカのEDVACに搭載されたのが最初だっけ
365デフォルトの名無しさん (ワッチョイ 9fad-okD4)
2022/09/23(金) 15:24:24.40ID:U+A60u3d0 ジョン・フォン・ノイマンはハンガリー出身のアメリカの数学者。
両親はハンガリーに移住したユダヤ系ドイツ人。
両親はハンガリーに移住したユダヤ系ドイツ人。
366デフォルトの名無しさん (ワッチョイ 9701-W3aP)
2022/09/23(金) 16:25:05.41ID:7gKq4Utr0367デフォルトの名無しさん (ワッチョイ 9fad-okD4)
2022/09/23(金) 17:04:19.95ID:U+A60u3d0 >>363
何を以てCPUと呼ぶかという定義の違いによってどれが世界初のCPUかが変わる。
何を以てCPUと呼ぶかという定義の違いによってどれが世界初のCPUかが変わる。
368デフォルトの名無しさん (テテンテンテン MM8f-2Jl6)
2022/09/23(金) 17:15:38.41ID:JPfPvbHpM ノイマンは原爆は地上100mで爆発させるのが最もダメージを与えられるという計算を一生懸命してた人
369デフォルトの名無しさん (ワッチョイ 9701-W3aP)
2022/09/23(金) 17:59:34.63ID:7gKq4Utr0 技術が政府を必要なくするという妄想を主軸に据えた改定アナーキズムを提唱します。
国を細分化し、一つの国の力を十分に小さくすれば、戦争は消え去ります。
それも改定アナーキズムの効果のひとつです。
国を細分化し、一つの国の力を十分に小さくすれば、戦争は消え去ります。
それも改定アナーキズムの効果のひとつです。
370デフォルトの名無しさん (ワッチョイ b7bb-E+l9)
2022/09/23(金) 18:46:47.28ID:mieuEbaK0371デフォルトの名無しさん (ワッチョイ 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とかダウンロードできなくなるんじゃないの?
えーまじかよ
将来アメリカと戦争になったらどうすんの
gccとかダウンロードできなくなるんじゃないの?
374デフォルトの名無しさん (ワッチョイ 97e6-G1yF)
2022/09/23(金) 19:02:00.96ID:IIvpOqM90375デフォルトの名無しさん (ワッチョイ ff26-G1yF)
2022/09/23(金) 19:02:59.42ID:H9J4nWLH0376デフォルトの名無しさん (ワッチョイ ff26-G1yF)
2022/09/23(金) 19:04:14.91ID:H9J4nWLH0 >>341
絵文字はねえ‥‥、絵文字をねじ込んだのは日本人ですし、確かに酷いことになっていますよね、ご意見に同意します
絵文字はねえ‥‥、絵文字をねじ込んだのは日本人ですし、確かに酷いことになっていますよね、ご意見に同意します
377デフォルトの名無しさん (ワッチョイ 9701-W3aP)
2022/09/23(金) 19:04:28.38ID:7gKq4Utr0 >>374
そうだな。
文字コードは一番詳しい日本が主軸となって作り直す必要があるな。
まず、新しい文字コードの名前から考えよう。
ところで、JISが日本工業規格ではなくなったって知ってるか?
まずそこからだぞ。
そうだな。
文字コードは一番詳しい日本が主軸となって作り直す必要があるな。
まず、新しい文字コードの名前から考えよう。
ところで、JISが日本工業規格ではなくなったって知ってるか?
まずそこからだぞ。
378デフォルトの名無しさん (ワッチョイ 9701-W3aP)
2022/09/23(金) 19:05:35.56ID:7gKq4Utr0 >>370
日本にはLSI-C86試食版があるじゃあないか!
日本には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:7gKq4Utr0382デフォルトの名無しさん (ラクッペペ 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言語の話題が投稿されるまで。
真面目なC言語の話題が投稿されるまで。
386デフォルトの名無しさん (ワッチョイ 9f26-G1yF)
2022/09/23(金) 19:30:27.24ID:TJPY0mvX0 >>370
Linux はスウェーデン系フィンランド人(ムーミンの作者トーベ・ヤンソン(女性)もそうですね)で、アメリカ人とはいいがたいですねえ
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:7gKq4Utr0390デフォルトの名無しさん (ワッチョイ 17c2-okD4)
2022/09/23(金) 19:59:37.68ID:Ztvb6Y4W0391デフォルトの名無しさん (ワッチョイ 9701-W3aP)
2022/09/23(金) 20:09:09.70ID:7gKq4Utr0 そうだ、これからインドは伸びる。
392デフォルトの名無しさん (ワッチョイ 97e6-G1yF)
2022/09/23(金) 20:18:58.64ID:SZRvCFuj0393デフォルトの名無しさん (ワントンキン MM7f-bNpc)
2022/09/23(金) 20:43:24.59ID:7jlcG+vZM ラマヌジャンが見つけたπの計算式は他の人では不可能じゃないかな
394デフォルトの名無しさん (ラクッペペ MM8f-8oD0)
2022/09/23(金) 20:53:50.26ID:nZMEnIrnM 世界のIT系企業中心の三大都市として
米国のシリコンバレー
中国の深セン
印度のバンガロール
は有名な話ではある
米国のシリコンバレー
中国の深セン
印度のバンガロール
は有名な話ではある
397デフォルトの名無しさん (ワッチョイ b7bb-E+l9)
2022/09/23(金) 21:44:22.73ID:mieuEbaK0 >>390
科学技術はまーそうだけど
依存してる状態はよくないでしょ?
まぁC言語については国産のコンパイラ作ればそれでいいけど
たとえばトップが中国人になって日本にだけ冷遇してくるとかさ
そういのってあるでしょ?
科学技術はまーそうだけど
依存してる状態はよくないでしょ?
まぁ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:Ztvb6Y4W0401デフォルトの名無しさん (ワッチョイ b7bb-E+l9)
2022/09/23(金) 22:01:55.13ID:mieuEbaK0402デフォルトの名無しさん (ワッチョイ 9701-W3aP)
2022/09/23(金) 22:04:33.75ID:7gKq4Utr0 全く間違っていない。
自給率確保は日本の安全保障の大原則だし。
「日本をぶっ壊す」とか言い始めた、ここ30年の日本政府は別として。
自給率確保は日本の安全保障の大原則だし。
「日本をぶっ壊す」とか言い始めた、ここ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が良いと思います。
全てを過去に変える偉大な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:7gKq4Utr0409デフォルトの名無しさん (ワッチョイ d7b3-rZTD)
2022/09/23(金) 23:45:27.33ID:CJ5Vu8e/0410デフォルトの名無しさん (ワッチョイ 9701-W3aP)
2022/09/23(金) 23:58:56.17ID:7gKq4Utr0 >>409
Laser5の一件を忘れたのか!
Laser5の一件を忘れたのか!
411デフォルトの名無しさん (ワッチョイ 37b3-toBK)
2022/09/24(土) 00:05:10.37ID:GpR8CZ+m0412デフォルトの名無しさん (ワッチョイ 5f01-JEMU)
2022/09/24(土) 00:09:08.45ID:75jIGLYK0 >>411
バトルプログラマーシラセ「五橋研究所 Redhat」
バトルプログラマーシラセ「五橋研究所 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:6vPOYH6k0417デフォルトの名無しさん (ワッチョイ 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を自社販売した。
充分な日本語化を達成して時点で、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
・明日から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
米国が制裁の中国ファーウェイ 日本のスマホ事業撤退せず
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搭載機器を販売できなくなっていないと言いたいのか?
ファーウェイはAndroid搭載機器を販売できなくなっていないと言いたいのか?
430デフォルトの名無しさん (ワッチョイ 12ad-r4yT)
2022/09/24(土) 02:26:06.48ID:6vPOYH6k0 >>426
そもそも日本は敗戦国だから少なくともアメリカに対しては自由はない。
お爺ちゃんの代からCIAと繋がっていようがいまいが日本はアメリカンの属国だ。
この事は逆の立場になって考えてみれば分かると思う。戦争してやっと勝った相手に対して戦後に自由を認めるか?そんなことは普通に考えてあり得ないだろう。
そもそも日本は敗戦国だから少なくともアメリカに対しては自由はない。
お爺ちゃんの代からCIAと繋がっていようがいまいが日本はアメリカンの属国だ。
この事は逆の立場になって考えてみれば分かると思う。戦争してやっと勝った相手に対して戦後に自由を認めるか?そんなことは普通に考えてあり得ないだろう。
431デフォルトの名無しさん (ワッチョイ 12ad-r4yT)
2022/09/24(土) 02:37:00.43ID:6vPOYH6k0 >>429
Android そのものはフリーだから Android のスマホが作れないことはない。
ただ Google のサービスは全滅なのでその辺を独自に作る必要がある。
中国国内からは検閲の都合で Google へは繋がらないだろうから最初からそういう独自のサービスは用意しているのではないかと思う。
ロシアで売れる理由はそれのロシア語版があるからではないか。
日本ではまだ売ってるだろうが普通に Google のサービスが使えないのでは商品価値がないのでほとんど売れず、また日本で新機種投入はしないということだろう。
Android そのものはフリーだから Android のスマホが作れないことはない。
ただ Google のサービスは全滅なのでその辺を独自に作る必要がある。
中国国内からは検閲の都合で Google へは繋がらないだろうから最初からそういう独自のサービスは用意しているのではないかと思う。
ロシアで売れる理由はそれのロシア語版があるからではないか。
日本ではまだ売ってるだろうが普通に Google のサービスが使えないのでは商品価値がないのでほとんど売れず、また日本で新機種投入はしないということだろう。
432デフォルトの名無しさん (ワッチョイ 12ad-r4yT)
2022/09/24(土) 02:41:06.82ID:6vPOYH6k0 Amazon の Fire タブレットも似たような状態だな。Android ベースのOSだけれど GooglePlay からのアプリ取得はできない。
で、Amazon が独自にアプリダウンロード出来るようにしている。
で、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のアプリが使えるようになるらしいぞ。
あと数週間で日本でもWindows11でAmazonのアプリが使えるようになるらしいぞ。
435デフォルトの名無しさん (ワッチョイ 5f01-JEMU)
2022/09/24(土) 02:44:39.66ID:75jIGLYK0 ちなみに私はファーウェイのタブレット使ってたけどね。
ペンが使えるちょっといいやつ。
アメリカの規制以降、Androidは8から更新できないままになってた。
ペンが使えるちょっといいやつ。
アメリカの規制以降、Androidは8から更新できないままになってた。
436デフォルトの名無しさん (ワッチョイ 23da-ibxr)
2022/09/24(土) 02:48:12.34ID:l1NUECho0437デフォルトの名無しさん (ワッチョイ 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:75jIGLYK0440デフォルトの名無しさん (ワッチョイ 37b3-toBK)
2022/09/24(土) 02:51:18.33ID:GpR8CZ+m0 なんだ最後は他人任せか
「俺が独自OS作ってやるぜ!」とか「俺が政党を立ち上げるから支援してくれ!」とはならないのか?
でなきゃ「口だけなやつだな」で終わるぞ
「俺が独自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:75jIGLYK0444デフォルトの名無しさん (ワッチョイ 5f01-JEMU)
2022/09/24(土) 02:55:09.21ID:75jIGLYK0 >>442
他国の支援を受けていない政党は共産党しかないが、共産党はダメだ。
他国の支援を受けていない政党は共産党しかないが、共産党はダメだ。
445デフォルトの名無しさん (ワッチョイ 5f01-JEMU)
2022/09/24(土) 02:57:45.28ID:75jIGLYK0446デフォルトの名無しさん (ワッチョイ 5f01-JEMU)
2022/09/24(土) 02:59:57.20ID:75jIGLYK0 自民党は統一教会の支援受けてるし、日本のために働くことが出来ない。
447デフォルトの名無しさん (ワッチョイ 12ad-r4yT)
2022/09/24(土) 03:04:02.31ID:6vPOYH6k0448デフォルトの名無しさん (ワッチョイ 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:52DloiQc0452デフォルトの名無しさん (ワッチョイ 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
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
岸田ロボットを操作している木原官房副長官も、東大・財務省だから中華。
楽天も中華資本が入ってる。
だから、ガーシーに叩かれている
御用学者の浜田・伊藤などが、日本の借金が千兆円あると嘘を流して、
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
これはラプト様を使っての、ロリ谷・木原の逆襲かも
むしろ、中華のハニートラップは林。
大王製紙の井川が、安倍から聞いたと言ってた。
たぶん、林はハニトラに掛かっていると
ガーシーは中共のハニトラ工作員!! 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;
};
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では_で繋ぐ
それでええやん
int Hoge_x;
だな
C++的には::で繋ぐところを、Cでは_で繋ぐ
それでええやん
458デフォルトの名無しさん (ワッチョイ 1201-ut7I)
2022/09/24(土) 12:15:29.27ID:52DloiQc0 >>455
static struct Hoge hoge; じゃダメなの?
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はシングルトンっぽく
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:52DloiQc0462デフォルトの名無しさん (ワッチョイ 5f01-JEMU)
2022/09/24(土) 13:35:25.97ID:PoJJisuz0 >>453
10年以上かけて、ドイツにGDPを追い抜かれるんだから、アベノミクスは大失敗だよ。
専業主婦だった人はもとより、70歳以上の人まで働いてるんだよ。
そこまでして、国際的地位が落ちて行ってる。
これはもう、力の差を認めて、地道に教育に力を入れるしかない。
30年後の復活を目指して。
10年以上かけて、ドイツにGDPを追い抜かれるんだから、アベノミクスは大失敗だよ。
専業主婦だった人はもとより、70歳以上の人まで働いてるんだよ。
そこまでして、国際的地位が落ちて行ってる。
これはもう、力の差を認めて、地道に教育に力を入れるしかない。
30年後の復活を目指して。
463デフォルトの名無しさん (ワッチョイ 5f01-JEMU)
2022/09/24(土) 13:38:33.45ID:PoJJisuz0 女性や老人を働かせたことで、子供を見る人が居なくなり、出生率がさらに低下してる。
20年後の見通しもさらに悪化した。
20年後の見通しもさらに悪化した。
464デフォルトの名無しさん (テテンテンテン MMde-0S4t)
2022/09/24(土) 17:34:53.08ID:uYCDlyGwM465デフォルトの名無しさん (テテンテンテン 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:52DloiQc0468はちみつ餃子 ◆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の意味を他の言語と勘違いしてるっぽい
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変数みたいな奴ってことだろ
関数内の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:2HWwrIyG0476デフォルトの名無しさん (ワッチョイ 0202-LaAE)
2022/09/25(日) 01:07:06.13ID:97XvxZke0 >>431
Huawei App GalleryはAppleストアやGoogle Playを凌ぐ世界最大市場らしいが、少し考えれば当たり前の事だけど
かくいう俺のHuawei製スマホにはHuaweiとPlay両方入ってた、まあ日本向けアプリはPlayの方が充実してるのであまり使ってない
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:5FaXssIeM480デフォルトの名無しさん (ワッチョイ 2701-tX/F)
2022/09/25(日) 13:14:31.77ID:weLer2R50 生後6ヶ月以上4歳以下もワクチン打たないと駄目だぞ
https://www.mhlw.go.jp/content/000985239.pdf
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文字になる。
英語で日本語を打つときは濁音、半濁音記号を文字として打つ方が楽なのでそうしていることがある。
それは単に日本語みたいな言語が世界の主流ではないから起こる現象。
半角のカナ文字だと濁点、半濁点はそれだけで1文字になる。
英語で日本語を打つときは濁音、半濁音記号を文字として打つ方が楽なのでそうしていることがある。
484デフォルトの名無しさん (ワッチョイ b35f-4fyb)
2022/09/25(日) 20:38:08.74ID:g7GNUN1K0485デフォルトの名無しさん (ワントンキン 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
役所とかでフリガナ振る時、升目が有ると濁点を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
も準備してほしいなあ
白丸に黒字で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}
\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:g7GNUN1K0494デフォルトの名無しさん (ワッチョイ 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:PDKGWlWe0500デフォルトの名無しさん (ワッチョイ 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ですら英語キーボードで統一している。
ファーストリテイリング社は日本でもすべて英語キーボード。
日本語、英語、中国語が社内公用語で、日本語特有の文字は使わない。
日本のグローバル企業は、PCですら英語キーボードで統一している。
ファーストリテイリング社は日本でもすべて英語キーボード。
日本語、英語、中国語が社内公用語で、日本語特有の文字は使わない。
505デフォルトの名無しさん (ワッチョイ b35f-4fyb)
2022/09/26(月) 18:51:46.46ID:4uVE3Hdr0506デフォルトの名無しさん (ワッチョイ 429b-+bWc)
2022/09/26(月) 19:13:51.47ID:m6MfDOb60507デフォルトの名無しさん (ワッチョイ 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)
それぞれの国用キーボードだと入力は簡単なんだろうが
ドイツ語のエスツェット(βに似ている奴)、フランス語のシーセディーユ(ヒゲのあるC)
それぞれの国用キーボードだと入力は簡単なんだろうが
512デフォルトの名無しさん (ワッチョイ 16b0-r4yT)
2022/09/27(火) 21:09:33.13ID:/UUTRmF20513デフォルトの名無しさん (ワッチョイ 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.
ß "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とか決め打ち?
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がそれを処理し
該当のウィンドウのイベントキューにキーイベントを設定するみたいな流れかと思う
ボタンなどは大体が親ウィンドウから伝播される流れかと思う
(大昔のゲームならボタンなどが押されたか判断する為に、レジスタをVBlank中にチェックするみたいなのはあった)
>>516が言う通り、OSがキーイベントが発生してGUI部品にも伝播されるからOSの処理に依存しているという感じかと
もっと細かく言えば、キーボードを押されると割込みが発生してOSがそれを処理し
該当のウィンドウのイベントキューにキーイベントを設定するみたいな流れかと思う
ボタンなどは大体が親ウィンドウから伝播される流れかと思う
518はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-tX/F)
2022/09/28(水) 22:37:47.62ID:koSj9wX00 >>515
昔のデバイスではハードウェア割込みを使っていたが USB はホスト側からのポーリングが必要で、ポーリング周期は 1 ミリ秒。
監視の周期は 1 ミリ秒といえると思う。
私も詳しいことは知らんから規格を読んで。
昔のデバイスではハードウェア割込みを使っていたが 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
かなりの高頻度でポーリングしてんだな
USB3.0ポートに繋いでるからかもね
安もんマウスなんで高頻度過ぎて多分無意味w
522デフォルトの名無しさん (ワッチョイ 175f-Wb48)
2022/09/29(木) 02:33:05.99ID:LGluMbhi0 ここで聞いていいかわからないんですが、↓こういうことをCでできますか?
https://ideone.com/TqQjef
func1〜3を並列で動かしたいということです。
おかしな質問だったらごめんなさい。
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にある。
そもそも並列処理にする必要があるのかという疑問。
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:LGluMbhi0526デフォルトの名無しさん (テテンテンテン 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オンチが進んだのか。
とにかくおそろしい。
日本人は機械がなくても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へ割り込みの発生もやってるっぽい (ホットプラグ関連)
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フレームワークじゃイベントはキューに貯まると思うけども。
質問者がそう思うのも不思議じゃないかな。
普通のGUIフレームワークじゃイベントはキューに貯まると思うけども。
536デフォルトの名無しさん (テテンテンテン MMd2-0S4t)
2022/09/30(金) 20:39:03.45ID:wR7Vqe0SM 家庭用ゲーム機の場合は入力をポーリングしてる気がしないな
ゲームコード側から1/60秒毎に要求が有るからそれに対応すれば良いだけだし
ま、確証は無いけどね
ゲームコード側から1/60秒毎に要求が有るからそれに対応すれば良いだけだし
ま、確証は無いけどね
537デフォルトの名無しさん (ワッチョイ 2f97-5djn)
2022/09/30(金) 20:54:41.19ID:J+iH2myB0 実際処理落ちするとフレームが更新されるまでボタンを押し続けないと駄目なゲームって結構あるでしょ。そういうことだよね。OpenGLなんかでプログラム書くと普通にグラフィック更新とキー処理なんかは同じスレッドでするしね。
普通のGUIアプリでもOSのカーネルタスクがめちゃくちゃ重くなるとキー入力を取りこぼしたりするのは、ポーリングが人間の入力に間に合ってないからだと思うな。遅れるわけじゃなくて初めと最後だけ入力されたりとかする。
普通のGUIアプリでもOSのカーネルタスクがめちゃくちゃ重くなるとキー入力を取りこぼしたりするのは、ポーリングが人間の入力に間に合ってないからだと思うな。遅れるわけじゃなくて初めと最後だけ入力されたりとかする。
538はちみつ餃子 ◆8X2XSCHEME (ワッチョイ e33e-pIDl)
2022/10/01(土) 01:21:56.84ID:yMZ0QeEO0 アプリケーションレイヤでの話としては Windows のコントロールは基本的にメッセージを介した非同期的な
処理なので周期もくそもないんだけどこのスレに現れて GUI フレームワークの知識があるくらいの人 (>>515) が
イベントドリブンの理念を知らないなんてことあるだろうか?
根本的な勘違いをしているのか質問が下手なのか。
どういう事情があってこういう質問をしたのか気になる。
一応はある瞬間に状態を取得する API (GetAsyncKeyState) もあってゲームとかではそれを使うこともあるが……
その場合にはディスプレイのフレームレート (というかそのソフトで画面を書き換える頻度) 以上の頻度で読んでもあまり意味がないから
フレームレートに合わせるということはあるかもしれんね。
処理なので周期もくそもないんだけどこのスレに現れて GUI フレームワークの知識があるくらいの人 (>>515) が
イベントドリブンの理念を知らないなんてことあるだろうか?
根本的な勘違いをしているのか質問が下手なのか。
どういう事情があってこういう質問をしたのか気になる。
一応はある瞬間に状態を取得する API (GetAsyncKeyState) もあってゲームとかではそれを使うこともあるが……
その場合にはディスプレイのフレームレート (というかそのソフトで画面を書き換える頻度) 以上の頻度で読んでもあまり意味がないから
フレームレートに合わせるということはあるかもしれんね。
539デフォルトの名無しさん (ワッチョイ 7f36-pIDl)
2022/10/01(土) 01:42:40.84ID:QBMbIy+T0 ある8bitPCのBASICでVsync割り込み時にキーボード信号読み取ってたの思い出した。
(INPUT、INKEY$等キーバッファ関連用)
(INPUT、INKEY$等キーバッファ関連用)
540デフォルトの名無しさん (ワッチョイ ff7c-pIDl)
2022/10/01(土) 01:53:45.14ID:6Ogoexfu0 ファミコンやスーパーファミコン時代はVSync割込みが始まってVBlank期間内に
あらゆるレジスタの入出力をしないといけないので、キー関連はそのタイミングで取得して
内部の特定ワークに保存(一つ前の情報も残しておいて押しっぱなしかどうかの判断も出来るようにする)してた
最近だとUnityでもキーの状態を取得する処理があるので
ゲームだと処理タイミングの時点で取得も普通にあるという事なのだろう
あらゆるレジスタの入出力をしないといけないので、キー関連はそのタイミングで取得して
内部の特定ワークに保存(一つ前の情報も残しておいて押しっぱなしかどうかの判断も出来るようにする)してた
最近だと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とかの場合でしょ?、
それDirectXとかの場合でしょ?、
543デフォルトの名無しさん (スッププ Sd1f-o6p2)
2022/10/02(日) 14:33:41.09ID:HMtDa2gtd >>540
ハードウェア上の要求というより
画面上のキャラが1単位動く間に2回以上キー入力できても意味がないから…
ゲームセンターあらしではパックマンのモンスターが1/60秒に一回しか動けないことを見きってそれ以上の速度で動いてかわしてたっけなw
ハードウェア上の要求というより
画面上のキャラが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の違いとか)によって挙動(操作感覚)
が変わるの防ぐには必要な仕様なんだと思った。
してるってインタビューあったわ。
当時はすげぇと思ったけど、PCの場合モニタのフレーム数(60/144Hzの違いとか)によって挙動(操作感覚)
が変わるの防ぐには必要な仕様なんだと思った。
547デフォルトの名無しさん (ワッチョイ e314-5PZ2)
2022/10/03(月) 09:27:43.78ID:f3Oj1zc00 この話に標本化定理って関係ある?
548デフォルトの名無しさん (アウアウウー Sa27-G9OZ)
2022/10/03(月) 11:06:24.59ID:BGisZcina549デフォルトの名無しさん (アウアウウー Sa27-G9OZ)
2022/10/03(月) 11:12:07.71ID:BGisZcina550デフォルトの名無しさん (ワッチョイ 2369-7uza)
2022/10/03(月) 14:41:28.96ID:ZBLf3Dcq0551デフォルトの名無しさん (テテンテンテン MM1f-57Au)
2022/10/03(月) 16:42:09.20ID:wqwjoJ6ZM >>546
物理エンジンは1フレーム内でほんのちょっとずつ動かしながら何10回も計算するよ
現実を模倣するには無限大回数計算しないといけないけど、コンピューターでそんなこと不可能だし、floatの精度の問題も有るから適当なところで妥協しないといけない
その辺が工夫のしどころなんだろう
物理エンジンは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+Hjk1b8M555デフォルトの名無しさん (スッププ 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程度の違いしかなかった
今では画面リフレッシュ・画面レンダリング・ゲームメインのすべてフレームレートが違うこともあり得る
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]。
フレームレート (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の用語では、この処理レートを「フレームレート」と呼ぶ場合があったため、混乱が生じた。
>CGの用語では、この処理レートを「フレームレート」と呼ぶ場合があったため、混乱が生じた。
564デフォルトの名無しさん (アウアウクー MM47-7Wg9)
2022/10/07(金) 22:30:13.84ID:XEr8QNZEM VRAMにあるデータを決まった間隔でモニターに表示する。
VRAMのデータの書き換え速度はビデオボードによる。
C言語そのものは画面表示の速度の規約がない。
C言語は画面表示のライブラリすら持っていない。
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:ymYjs6gE0570デフォルトの名無しさん (ワッチョイ 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とか、色々あったっけな
8000シリーズでもこれに合わせてたような
VGAはPS/2あたりから出てきたんじゃなかったかな
EGA, MCGA, VGA, SVGA, XGAとか、色々あったっけな
571デフォルトの名無しさん (ワッチョイ dbc2-zauZ)
2022/10/08(土) 21:21:27.32ID:HMr71tmI0572デフォルトの名無しさん (テテンテンテン MM86-j/Y8)
2022/10/08(土) 22:15:12.93ID:ZFrVAqsjM VGAと言ったら320x200だな
1ドット1バイトなので丁度64KBになって、16bitコードがリニアにアクセス出来た
ただ、1ドットが正方形じゃないので、正方形のMode X(320x240)を使うにはDOSエクステンダーが必要だったな
1ドット1バイトなので丁度64KBになって、16bitコードがリニアにアクセス出来た
ただ、1ドットが正方形じゃないので、正方形のMode X(320x240)を使うにはDOSエクステンダーが必要だったな
573デフォルトの名無しさん (スッップ Sdea-of8B)
2022/10/08(土) 23:35:22.44ID:+S45qfPzd574デフォルトの名無しさん (ワッチョイ 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等の高級言語で書いてるんじゃないかと邪推してた。
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:MI3uCIAzM578デフォルトの名無しさん (ワッチョイ caad-zauZ)
2022/10/09(日) 04:58:58.93ID:PpV7AUpt0 そういや昔インターレースなのを利用して400ドットを表示するなんてことやってなかった?
チラチラして見れたもんじゃないが一応表示はされるという。
チラチラして見れたもんじゃないが一応表示はされるという。
579デフォルトの名無しさん (ワッチョイ ca01-52T8)
2022/10/09(日) 06:16:13.64ID:pElHhn0J0580デフォルトの名無しさん (スプッッ 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をプログラムでハード破壊
なんか、こういうの色々あったな
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:pElHhn0J0587はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cb3e-kHT+)
2022/10/10(月) 00:47:38.73ID:95zl+JNn0 >>585
C の言語仕様は言語仕様上で規定する仮想的な機械の挙動として記述されていて
現実の処理系がどのような機械語を生成するのかは規定してない。
見かけ上の挙動が仕様通りならどういう機械語が生成されてもよいことになってる。
現代的な処理系はすごく高度な最適化をするのでどういう機械語が生成されるのか事前に想像するのは難しいし。
どうしてもすごく高速に動いてほしいプログラムを気合い入れてチューニングしたりする場合には
ハードウェアの知識が必要になることも有るし、
他の言語との接続が必要なときにはメモリの管理方法を協調させないとおかしなことになったりもするけど
結局のところやりたいこと次第だし、入門レベルでは気にする必要はない。
今ならアプリケーションレイヤで動くプログラムでクロックを意識するようなことはまずない。
現代のパソコンやスマホくらいの高級な CPU では機械語を分解して
最適化した内部命令 (インテルだと μop と呼んでいるようだがメーカーによって名称はいろいろ) を生成したりする
工程があるので、クロックも一定とは限らない。
そこまで高度なことをしない CPU でもだいぶん前からパイプラインは採用されてるから、
単純に命令ごとのクロック数を合算した値が処理時間になったりはしないし。
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:ICu0RgND0591デフォルトの名無しさん (ワッチョイ d307-tmeX)
2022/10/10(月) 08:21:20.44ID:C38R1GQo0 おそらくそこまで高度なことは求めてないよ
クロックという言葉を知ってたから口走ってしまっただけで意図としてはハードウェアの知識をつけないとC言語は使えないのかと聞きたかっただけだと思う
クロックという言葉を知ってたから口走ってしまっただけで意図としてはハードウェアの知識をつけないと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を持ってきて使ってみるというのはどうでしょうか?
とりあえず速度が正常に戻ってくれれば十分なのですが、やめたほうがいいでしょうか?
微妙にスレチっぽいですが、このスレの人が一番詳しそうなのでご容赦ください。
最近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に参照するようになっていたらそもそも無理ですね。
開発元に聞けたらいいのだけど諸事情でそれが不可能です。
やっぱりそうですかね・・・
リソースモニターとかで調べてはみたものの原因がさっぱり分かりません。
特にIOが遅いように感じるんですが、ハイグレードなSSDを積んでいるのでハードとしては問題ないと思います。
100万円クラスのマシンですし他のハードもスペック的には問題ないはずです。
ちなみに試しにWindows10のmsvcrt.dllをexeと同じフォルダに置いてみたのですが、どうも使われていなさそう。
dll検索順ってカレントディレクトリが最優先じゃなかったでしたっけ?
できるか知りませんが、System32のdllをspecificに参照するようになっていたらそもそも無理ですね。
開発元に聞けたらいいのだけど諸事情でそれが不可能です。
595デフォルトの名無しさん (スッップ Sdea-of8B)
2022/10/10(月) 13:06:26.88ID:+EPzVvoud 微妙じゃなくて完全にスレチw
Windowsシステム関連のスレで聞いたほうがいいと思う
Windowsシステム関連のスレで聞いたほうがいいと思う
596はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cb3e-kHT+)
2022/10/10(月) 13:19:57.79ID:95zl+JNn0 >>594
> dll検索順ってカレントディレクトリが最優先
もし単純にそういう順序を適用するとマルウェアがファイルをそこに置くだけでプロセスを乗っ取れてしまう。
レジストリのどこかに登録されているやつは別扱いにするとかのややこしいルールがあったはず。
> 特に IO が遅いように感じる
IO が遅いというのが事実だとしたら
① 物理的に乗っているのが SSD でもハードウェアの自動認識が誤っていて古いインターフェイスでやり取りしている
② たまたまそのアプリケーションがデバイスドライバかコントローラのバグを踏むような制御になっている
② HDD で性能が出るようにアプリケーション内で凝った制御をしていたが SSD が速すぎて狂った
などの事情は思いつくけど……
> dll検索順ってカレントディレクトリが最優先
もし単純にそういう順序を適用するとマルウェアがファイルをそこに置くだけでプロセスを乗っ取れてしまう。
レジストリのどこかに登録されているやつは別扱いにするとかのややこしいルールがあったはず。
> 特に IO が遅いように感じる
IO が遅いというのが事実だとしたら
① 物理的に乗っているのが SSD でもハードウェアの自動認識が誤っていて古いインターフェイスでやり取りしている
② たまたまそのアプリケーションがデバイスドライバかコントローラのバグを踏むような制御になっている
② HDD で性能が出るようにアプリケーション内で凝った制御をしていたが SSD が速すぎて狂った
などの事情は思いつくけど……
597デフォルトの名無しさん (ワッチョイ 8a7c-O9y3)
2022/10/10(月) 14:32:16.59ID:5N3s1AfQ0598デフォルトの名無しさん (ワッチョイ 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+0603デフォルトの名無しさん (ワッチョイ 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:+IdMirEn0609デフォルトの名無しさん (アウアウウー Sa2f-tmeX)
2022/10/11(火) 09:44:54.24ID:S5uegLjFa msvcrtってMicroSoft Visual C/c++ RunTimeなんだよね
C言語ってライブラリを静的リンクすることが多いけど共通部分をdllにしたらディスク容量が少なくて済むんじゃねって発想で作られた過去の遺物
今は積極的に使うべきものじゃない
おそらく古い古いソフトなんじゃね
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ビットはエミュレーションは利きません!
16ビットはエミュレーションは利きません!
614デフォルトの名無しさん (ワッチョイ d307-tmeX)
2022/10/11(火) 18:50:36.59ID:D4ywmAPt0615デフォルトの名無しさん (ラクッペペ MM86-xYWY)
2022/10/11(火) 19:07:33.88ID:M2HX+v9qM 64bit Windowsでは16bitアプリは動かせない(エミュレーション環境は32bitだけ)
32bit版Win10 ならかろうじて可能性はあるがWinServer2019は64bitだけなので完全に無理
32bit版Win10 ならかろうじて可能性はあるがWinServer2019は64bitだけなので完全に無理
616ハノン ◆QZaw55cn4c (US 0Hba-d0ca)
2022/10/11(火) 19:10:36.62ID:RNyxjBqNH617デフォルトの名無しさん (ワッチョイ d307-tmeX)
2022/10/11(火) 19:31:53.97ID:D4ywmAPt0618デフォルトの名無しさん (ワッチョイ ca63-kHT+)
2022/10/11(火) 19:49:30.50ID:e/MLj7zo0 32ビット版の仮想を動かしてその中で16ビットアプリを動かす事は出来る
そういう多段ロケット使えば良いんだがそこまでして今動かすものがないw
そういう多段ロケット使えば良いんだがそこまでして今動かすものがないw
619デフォルトの名無しさん (スッップ Sdea-S1ha)
2022/10/11(火) 20:01:38.90ID:1DnVcsvQd620デフォルトの名無しさん (スッップ 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がどうとか言うのは知識不足のマウンターの妄言としか思えないな
単にマイクロソフトが自前のエミュレータの提供をやめたというだけで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 が有名で私も便利に使っています
それってエミュレータでしょ?仮想的なCPUをコードでガリガリ書いてインタプリタしているって奴、そんなのでもまともに動く時代になったんですねえ
>>618,619
私も 16 ビットを 64 ビットで動かすときはエミュっています
http://takeda-toshiya.my.coocan.jp が有名で私も便利に使っています
627デフォルトの名無しさん (ワッチョイ d307-tmeX)
2022/10/11(火) 22:46:46.46ID:D4ywmAPt0 >>626
AMD64の勉強したらこの話に関係ないことがわかったか?
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が提供しなくなったのはサンクだ
それはハードの話だろ
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
チコちゃんで脳科学的に分析してて笑ったわ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
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
全然どうでもいい事をさも重要な秘密のようにw
646デフォルトの名無しさん (ワッチョイ 69b3-cDFA)
2022/10/30(日) 07:10:33.74ID:9/1OGIJE0 独り言です
インデントは4を使ってきたのだがプロの世界?では2みたいだな
軽くショックを受けた
インデントは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/
https://sources.debian.org/src/coreutils/9.1-1/src/cat.c/
648デフォルトの名無しさん (ワッチョイ 79c2-iO6U)
2022/10/30(日) 07:27:37.61ID:i1fpLCEI0 プロの現場にそういうところもあるというだけだよ
1つ目撃したからってそれが全てだと思うのは
早まった一般化という誤謬だ
誤謬を多発するやつは論理思考が苦手ってことだ
むろんプログラマとしての適性ではマイナス要素だ
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行ルールとかの発展型も多い
ひとつの関数が何千行もあればコードレビューで問題にされる
一画面とは言わないまでも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:vrlOFY0H0656デフォルトの名無しさん (スププ Sd33-cT4U)
2022/10/30(日) 17:05:35.10ID:wnFbyiurd657デフォルトの名無しさん (スフッ Sd33-cT4U)
2022/10/30(日) 17:11:32.88ID:c3va8FLBd ✗直筆
✓監修
プロとは我らIT土方の事を指すのです
✓監修
プロとは我ら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
{
はさすがに目が滑る
スクロールして追うのも辛い
}
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
....
のように
殆ど見かけないから決して他人には勧めはしないけど
それ自体は一貫してるからいい、ただしこの場合は対応する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は天才なんだと思い知らされた
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系統(いわゆるブレース言語)は言語に構文を採用しつつ、フリーフォーム記述の許す折衷だから、フォーマッタとスタイルにバリエーションが生じる
結果的に同じ形に落ち着いてるけど、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並にインデント強制
ネストレベルに応じて機械的に挿入されるインデントのみによって構造を把握するから、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ではむしろ、少し自由な書式書法になっていたのが退化した
ブロックの開閉で改行するってのは、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:BvZ6DXqw0693デフォルトの名無しさん (ワッチョイ 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 をがんがん使うプログラマがいればワンチャン。
autoconf をがんがん使うプログラマがいればワンチャン。
695デフォルトの名無しさん (アウアウウー Sa3b-kfYZ)
2022/11/23(水) 15:53:36.98ID:U6TEG1mTa sendmail.cf なつかしす
postfix に乗り換えちゃった
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 ttps://atcoder.jp/contests/abc273/submissions/35667282
このコードを実行するとscanfで入力を待つはずなのですが即座に終了してしまいます
たまにそういうコードを見かけるのですが何が原因なのでしょうか
printfを入れても実行されないのでmainがスキップしているような。。
このコードを実行すると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
釣りか?
典型的な 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:LIu803lba705デフォルトの名無しさん (スプッッ Sd8b-LL8a)
2022/12/01(木) 16:36:36.47ID:q8NQ5dwmd 改行が問題になるのは%cのときくらいで
%dのあと%dだから空白類文字は問題ないよ
%dのあと%dだから空白類文字は問題ないよ
706デフォルトの名無しさん (アウアウウー Sa5b-DgGg)
2022/12/01(木) 16:42:55.52ID:LIu803lba >>701
ちなみにこのコードを書いたのはオレンジコーダー
https://atcoder.jp/users/ygussany?contestType=algo
オレンジというのは一部上場企業でも一人もいないことが珍しくないレベルの高レベルプログラマを超える化け物レベルの超高レベルプログラマを超える頭おかしいレベルのプログラマ
ちなみにこのコードを書いたのはオレンジコーダー
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ではメモリの許す限りスタックが使えるから
Linuxではメモリの許す限りスタックが使えるから
709デフォルトの名無しさん (ワッチョイ 972d-zuBb)
2022/12/01(木) 16:54:27.16ID:ZPuEPm3M0710デフォルトの名無しさん (ワッチョイ 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にしたほうがいいんでない?
とはいえ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 なんか使いたくないですね
C++ で見捨てられた VLA なんか使いたくないですね
714デフォルトの名無しさん (スッププ Sd02-94ar)
2022/12/04(日) 22:29:52.59ID:xXGWnQN3d >>712
VLAはC99で採用されたけどC11でオプション仕様に格下げされたよ
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言語」と調べてもコロナ社の本しか出てこん
本買った方がええんか?
右も左もわからん、どなたか教えてください!!!
まずはゲームとか作って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言語には電波を飛ばす機能はないよ
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+0721デフォルトの名無しさん (ワッチョイ e2ad-4FAg)
2022/12/04(日) 23:26:26.75ID:MiJYA0Kr0 通信をする方法が無線かどうかはハードウェアの問題。
更にOSやデバイスドライバやOSのシステムコールをどのように呼べば良いかを知る必要がある。
C言語の知識が必要になるとすると通常はここからだ。
そうではなくてハードウェアはあるがOSがなくI/Oポートを直接読み書きするようなプログラムを
作る必要がある場合はアセンブラかC言語で作ることになると思う(必ずしもそうである必要は
ないが)。その場合はOSのデバイスドライバを自作するような感じになる。
更に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:ddGzHpStd724デフォルトの名無しさん (スップ Sd9e-6RBv)
2022/12/05(月) 00:47:01.63ID:ddGzHpStd というかスタックというのは一番効率の悪いメモリの使い方なので
本を片っ端から積み上げて下の方は取れなくなってしまうイメージ
大規模な配列はスタックに置かないほうがいいというのは基本では
断片化があるとはいえmallocのほうが効率的
本を片っ端から積み上げて下の方は取れなくなってしまうイメージ
大規模な配列はスタックに置かないほうがいいというのは基本では
断片化があるとはいえ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:0xhTnbB50731デフォルトの名無しさん (アウアウウー 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バイトまでしか作れない
∴ 無限のメモリは存在しない
DDR4のセル電荷が2.4e-14クーロンとすると
メモリは6.7e73バイトまでしか作れない
∴ 無限のメモリは存在しない
734デフォルトの名無しさん (ワッチョイ eead-NN2n)
2022/12/05(月) 09:27:43.41ID:AHxKL62Z0 観測不可能な宇宙領域がまだあるではないか
そこには無限の(ry
そこには無限の(ry
735デフォルトの名無しさん (ラクッペペ MM34-k0qw)
2022/12/05(月) 09:44:59.30ID:BaBCvHVhM 量子メモリであれば無限の状態を記憶できるか?
736デフォルトの名無しさん (スップ Sd9e-6RBv)
2022/12/05(月) 10:56:43.18ID:ddGzHpStd737デフォルトの名無しさん (ワッチョイ 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言語の場合は配列の範囲をオーバーしても平気でどんどん書き換えちゃって関数の終わりで明後日の方向にリターンなんてものも作れちゃうから。
そういうコードを吐くコンパイラも作れるというだけのことではるが。
でもその方がリターンアドレスが詰まれている所に変数混ぜるより安全な感じはする。
特に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/M746デフォルトの名無しさん (ワッチョイ 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:9YGPhFSH0749デフォルトの名無しさん (ワッチョイ 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
ttps://atcoder.jp/contests/abc273/submissions/35667282
このコードを実行するとscanfで入力を待つはずなのですが即座に終了してしまいます
たまにそういうコードを見かけるのですが何が原因なのでしょうか
printfを入れても実行されないのでmainがスキップしているような。。
ttps://atcoder.jp/contests/abc273/submissions/35667282
このコードを実行するとscanfで入力を待つはずなのですが即座に終了してしまいます
たまにそういうコードを見かけるのですが何が原因なのでしょうか
printfを入れても実行されないのでmainがスキップしているような。。
759デフォルトの名無しさん (ワッチョイ 9b5f-I/ml)
2022/12/06(火) 03:09:09.32ID:PbeCdWM30 >>758
いまだにhを取るあたりがもう超絶無能
いまだにhを取るあたりがもう超絶無能
760デフォルトの名無しさん (ワッチョイ 9b5f-I/ml)
2022/12/06(火) 03:10:27.42ID:PbeCdWM30 >>758
25年くらい前のネットの書き方だな
25年くらい前のネットの書き方だな
761デフォルトの名無しさん (ワッチョイ d910-RX5i)
2022/12/06(火) 08:24:16.80ID:zdZ3zkNx0 Win98時代は1Mバイト程度の配列変数作っただけで動作がおかしくなってたな。
スタック増やせって言われてコンパイルオプション弄ったけど改善しなかった記憶・・・。
DOSからWinに来たときは64kバイト以上のメモリ確保さえ避けてた。
スタック増やせって言われてコンパイルオプション弄ったけど改善しなかった記憶・・・。
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
> 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の増設メモリだった
残りの384kBはバンクかEMSの増設メモリだった
767デフォルトの名無しさん (ワッチョイ 1a63-4FAg)
2022/12/06(火) 19:43:39.61ID:PYPomZFd0 最初はハードウェアで実装してたけれど
そのうち仮想86モードだったかで、
特別なハードを追加せずにメモリアクセス出来る様になってたね
そのうち仮想86モードだったかで、
特別なハードを追加せずにメモリアクセス出来る様になってたね
768デフォルトの名無しさん (ワッチョイ 463a-EnYx)
2022/12/06(火) 20:33:29.46ID:zjGx1PLy0769デフォルトの名無しさん (ワッチョイ 9fc2-He5u)
2022/12/06(火) 21:49:14.42ID:63yxghiR0 >>767
あったねー、ソフトウエアEMS>ハードウエアEMSなんて珍現象
あったねー、ソフトウエア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);
}
#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 です
コンパイラ: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()が「何」を返すのか、察しましょう
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/thjI0778デフォルトの名無しさん (ワッチョイ 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
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 でいう未定義ってのは「何が起きてもいい」なのでデータが壊れる (意味不明の値が読みだされる) だけでは済まないかもしれない。
スタックから消えるというか、言語仕様的な用語でいうと生存期間が終了していることになる。
そんでオブジェクトを生存期間の外部で参照したときの動作は未定義なので何が起こるかわからん。
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
VS2022
788デフォルトの名無しさん (アウアウウー Sa6b-Fzhe)
2022/12/10(土) 11:18:10.60ID:W5v0KihFa789デフォルトの名無しさん (ワッチョイ 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: '&' レジスタ変数のアドレスを得ようとしました。
ふむ
register int i = 123;
return &i;
}
error C2103: '&' レジスタ変数のアドレスを得ようとしました。
ふむ
793デフォルトの名無しさん (ワッチョイ a735-yK5Y)
2022/12/10(土) 13:24:22.34ID:HjLF/vvU0794デフォルトの名無しさん (ワッチョイ a7ad-+fsS)
2022/12/10(土) 13:32:02.53ID:GuAR5Ny/0795デフォルトの名無しさん (ワッチョイ 27c2-aipL)
2022/12/10(土) 13:43:23.28ID:VZKCrGXt0 言いたいことはわかるけど日本語が変
左辺値はメモリアクセスを意味する式なので
レジスタに左辺値がないのではなく
記憶クラスがregisterの変数の識別子は左辺値ではない
左辺値はメモリアクセスを意味する式なので
レジスタに左辺値がないのではなく
記憶クラスがregisterの変数の識別子は左辺値ではない
796デフォルトの名無しさん (ワッチョイ a735-yK5Y)
2022/12/10(土) 13:46:04.91ID:HjLF/vvU0 >>789への疑問やろ
797デフォルトの名無しさん (ワッチョイ 8710-bPD3)
2022/12/10(土) 14:05:33.41ID:lr6mtoK80798はちみつ餃子 ◆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 指定されている左辺値というものも存在することを示唆する。
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 指定のついた左辺値だよ。
具体例というか、 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 参照)。
なんでそういう決まりになっているのかを理解せずに条文の字面に書いてあることだけ表面的に言う人とは歯車が噛み合わないな。
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 数以上に宣言してしまうことが多い
では使い切った後の変数はどこに割り当てられるのか?
なんでもかんでも register 付けて宣言すると
CPU の持ってる実 register 数以上に宣言してしまうことが多い
では使い切った後の変数はどこに割り当てられるのか?
804はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-3TNT)
2022/12/10(土) 16:30:03.16ID:brInbnm70 >>801
話を >>794 といっしょくたにしたのが誤りだった。 すまぬ。
> ハードウェアのレジスタだから
の続きで
> メモリアクセスを意味する式なので
をハードウェア的なメモリアクセスの意味で解釈してしまった。
むしろそんなん関係なく言語仕様上の意味で反論してたんだね。
(後から読む人のために補足すると C の言語仕様でいう実行環境は言語仕様で規定する仮想的な実行環境の
ことであって実際の機械語とどう対応づけるか規定されない。 どういう機械語が生成されるかは
言語の意味の根拠にならないので言語仕様で再解釈しようとしたのが >>795 だと私は解釈した。)
が、言語仕様の解釈として
> registerの変数の識別子は左辺値ではない
の部分が誤っているということには変わりないよ。
話を >>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で演算を行なうことが出来る
ダイレクトアドレッシング、ダイレクトページアドレッシングなど殆どは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 指定は抽象機械の上での記憶域をハードウェアのレジスタに割り当てるなどして高速化してくれたらうれしいなぁ (/ω・\)チラッ
という指定であって、言語の理屈の上ではアドレスを取れない以外の何の意味も持たない。
言語仕様では抽象計算機での動作として記述される。 (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 指定で左辺値でなくなったりはしないという話をしてるんで。
根本的には 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+Hh0817デフォルトの名無しさん (ワッチョイ 27c2-aipL)
2022/12/11(日) 08:25:20.92ID:BIXjZcK80 >>815
しつこい
しつこい
818デフォルトの名無しさん (ワッチョイ df01-0RkQ)
2022/12/11(日) 09:45:19.90ID:B9k8N7vL0 >>805
そういうプロセッサーはあるよ(ディスコンしてるけど)
https://i.imgur.com/Lqs3ejR.jpg
Z80 の裏レジスタは裏側のレジスタを直接触れなくてモヤモヤしたけどこいつは他のバンクのレジスタも直接さわれるからちょっと便利
PCとかもメモリー空間に見えてるプロセッサーもあったような気がするけど具体的なプロセッサー名を思い出せない
>>806
それはちょっと話が違う
単にアドレッシングモードとしてゼロページやダイレクトページが短いコードで扱えると言うだけのことでメモリーはあくまでもメモリー
例えば6800はPSH AでAレジスタをスタックにプッシュ出来るけどゼロページの内容を直接プッシュ出来るわけじゃない
6502 のインダイレクト・インデックストYぐらいの機能ならまあベースレジスタをメモリー上に置けるとは言えるけど
そういうプロセッサーはあるよ(ディスコンしてるけど)
https://i.imgur.com/Lqs3ejR.jpg
Z80 の裏レジスタは裏側のレジスタを直接触れなくてモヤモヤしたけどこいつは他のバンクのレジスタも直接さわれるからちょっと便利
PCとかもメモリー空間に見えてるプロセッサーもあったような気がするけど具体的なプロセッサー名を思い出せない
>>806
それはちょっと話が違う
単にアドレッシングモードとしてゼロページやダイレクトページが短いコードで扱えると言うだけのことでメモリーはあくまでもメモリー
例えば6800はPSH AでAレジスタをスタックにプッシュ出来るけどゼロページの内容を直接プッシュ出来るわけじゃない
6502 のインダイレクト・インデックストYぐらいの機能ならまあベースレジスタをメモリー上に置けるとは言えるけど
819デフォルトの名無しさん (ワッチョイ df01-0RkQ)
2022/12/11(日) 09:47:13.53ID:B9k8N7vL0820デフォルトの名無しさん (スッップ 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 に書き込むのはただの暇つぶしだ。
どうせほかに話題もないんだからしつこくてもいいんじゃね。
反応するかどうかは知らんけど。
べつに勝ち負けを競っているわけじゃない。
根拠 (この場合は言語仕様) に基づく解釈の妥当性がそれで変わることはないので納得しない誰かがいても不都合もない。
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
ポインタとかが無い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も何が保存されてるのか理解するには機械語の知識が必要だ
要するに機械語の知識は必要だ
スタックもそうだ
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 でもその内に削除されるんじゃないかな。
低レイヤのコードだと人手で指定を付けたいときもあるかもしれんが
そういう分野ではどうせ処理系の拡張がなきゃどうにもならんので
register キーワード程度のあやふやなものひとつを言語仕様に入れてもあまり役に立たない。
C++ では register は削除された (機能は削除されたがキーワードとしては予約語のまま) わけだし、
C でもその内に削除されるんじゃないかな。
837デフォルトの名無しさん (アウアウウー Sa6b-VZV0)
2022/12/11(日) 20:04:06.71ID:8Gp9TgZBa register なんて要らんとか昔からずーっと言われてるけど
つけたらつけたで速くなったのその目で見たやつも居るでしょ?
gcc と gprof だけで頑張ってたとき確かに速くなったけど
だから register は有効有用使うべきとは言わないけどね
つけたらつけたで速くなったのその目で見たやつも居るでしょ?
gcc と gprof だけで頑張ってたとき確かに速くなったけど
だから register は有効有用使うべきとは言わないけどね
838デフォルトの名無しさん (ワッチョイ a7e6-JdnI)
2022/12/11(日) 21:31:25.77ID:OhnENqmv0 >>830
>setjmp longjmpも何が保存されてるのか理解するには機械語の知識が必要だ
基本スタックポインタとプログラムカウンタだけだと思っていましたが、まあレジスタ全部と他何を保存してましたっけ?
>setjmp longjmpも何が保存されてるのか理解するには機械語の知識が必要だ
基本スタックポインタとプログラムカウンタだけだと思っていましたが、まあレジスタ全部と他何を保存してましたっけ?
839ハノン ◆QZaw55cn4c (ワッチョイ a7e6-JdnI)
2022/12/11(日) 22:26:47.72ID:OhnENqmv0840デフォルトの名無しさん (テテンテンテン MM8f-gr5V)
2022/12/11(日) 22:34:58.44ID:IkAIpxjPM841デフォルトの名無しさん (ワッチョイ 27c2-aipL)
2022/12/12(月) 06:30:06.98ID:ychPXO7Q0 メジャーどころのCPUは大抵、戻り値はレジスタだね
842デフォルトの名無しさん (ラクッペペ MM8f-JsS5)
2022/12/12(月) 07:28:31.07ID:v0et11DOM843デフォルトの名無しさん (スフッ Sdff-qs7g)
2022/12/12(月) 14:27:00.05ID:Y3syqvcfd static記憶クラス指定子の理解はできますが、いざプログラムを組んでみると、使い方がわかりません。
844デフォルトの名無しさん (アウアウウー Sa6b-Fzhe)
2022/12/12(月) 14:36:59.78ID:jnrvptAKa >>841
CPU関係あるか?
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だとコンパイルオプションで変化した記憶がある
メジャーどころのCPU(に対応したCコンパイラ)は大抵、戻り値はレジスタだね
ではないかと
VCだとコンパイルオプションで変化した記憶がある
847はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-3TNT)
2022/12/12(月) 16:42:43.35ID:J7ftRWn10 >>844
呼び出し規約 (を含む ABI) の策定はアーキテクチャを設計したところが主導するもんじゃないのかな。
CPU の特性に反した使い方を基本にされても困るだろうし。
ざっと調べた感じだとよく使われている System V ABI はインテルが議長の委員会で決める体制っぽい。
マイクロソフト (Windows) は引数の渡し方がちょっと違う規約でやってて
文句も出てない (出てないよね?) からそんなに強い強制力があるわけでもないんだろうけど、
CPU ごとに常識的な使い方というものはあるだろう。
呼び出し規約 (を含む 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とかだろ?
マイクロソフトが作ってるハードはSurfaceとかだろ?
850デフォルトの名無しさん (ワッチョイ df36-KKgq)
2022/12/12(月) 19:19:51.33ID:m7KoqGgA0 DOS時代にグラフィックライブラリとかをMASMでアセンブルして出来たobjファイルを
Cコンパイラで作ったobjとをリンクさせて
Cからアセンブラのルーチン呼び出したりしてたけど、
COBOLやFORTRANで作った関数をリンクさせて
Cで呼び出したりも出来るの?
Cコンパイラで作ったobjとをリンクさせて
Cからアセンブラのルーチン呼び出したりしてたけど、
COBOLやFORTRANで作った関数をリンクさせて
Cで呼び出したりも出来るの?
851デフォルトの名無しさん (ワッチョイ 7f63-KKgq)
2022/12/12(月) 19:31:09.72ID:BWUj5Mhq0 FORTRANなら呼べると思うが、COBOLは分からない
FORTRANやCOBOLからならCの関数は呼べたと思う
FORTRANやCOBOLからならCの関数は呼べたと思う
852デフォルトの名無しさん (ワッチョイ df7c-KKgq)
2022/12/12(月) 19:34:09.58ID:2yJi4NkT0 objファイルは流石に無理があるけどDLLや静的ライブラリでも作れば良いだけでは?
gfortranならexe以外にも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なら他所言語への持ち出しや持ち入れがやりやすいわね
シンプルに固定されてるDLLなら他所言語への持ち出しや持ち入れがやりやすいわね
855デフォルトの名無しさん (ワッチョイ a705-u86g)
2022/12/12(月) 20:17:18.59ID:munrOkPw0 >>828 まあ・・C言語を触るぐらいだから、一般的には大学とかのコンピュータサイエンス教科を
履修しているのが前提だろうから、そこはあえて省略したのですが・・
昔の高校生は頭がよかったけど。
今は「仕事でC言語を触らせてくれる身分」になるためには基本、情報系の大卒でしょうし・・
履修しているのが前提だろうから、そこはあえて省略したのですが・・
昔の高校生は頭がよかったけど。
今は「仕事でC言語を触らせてくれる身分」になるためには基本、情報系の大卒でしょうし・・
856デフォルトの名無しさん (ワッチョイ a705-u86g)
2022/12/12(月) 20:18:59.06ID:munrOkPw0 >>828 配列のソートってメモリ意識しますかね。フラグメンテーションとか考えたこともないな・・。
単純に演算オーダー(log O^n とか・・)そんな感じである程度予測を立てて、あとは扱うデータ次第かと。
単純に演算オーダー(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 にしたんでしょうかね?
win32api はなぜ PASCAL にしたんでしょうかね?
859ハノン ◆QZaw55cn4c (ワッチョイ a7e6-JdnI)
2022/12/12(月) 22:21:28.35ID:1Of7Vyge0 >>847
AMD64 は AMD が呼び出し規約まで決めちゃったけれども、普通は OS 屋が決めるものという気がしますけどね
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 とかも考えたやつは天才じゃん……と私は思ったよ。
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:J7ftRWn10863デフォルトの名無しさん (スフッ Sdff-d44j)
2022/12/12(月) 23:35:39.10ID:zHXfNaq5d 転用とかややこしいだけだから勘弁
自動でautoだからあんまり気にすんなよ、ちなc++ではこんな意味だよと、またややこしい補足が増えるだけ
むしろアンスコ付きの変な名前の方がかえってキーワードなんだなと分かりやすい、ソースは醜くなるけど、それは今更
自動で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 で変数を宣言していた
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っぽい
ポインタは明示的に触らないけど、エミュる時は配列の添字に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
つ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+KhI0870デフォルトの名無しさん (テテンテンテン MM8f-gr5V)
2022/12/13(火) 13:48:16.74ID:aee1RRAhM 計算誤差の無い実数型って不可能だけどなw
decimalを使うと2進数は10進数の浮動小数点数を正確に表現出来ない問題を解消できる
ratio(分数)を使うと、1/3とかをそのまま保持出来るから誤差が出ない
ちなみに、Common Lispは分数を凄い簡単に扱えるしbignumも使える
Cでもそうなって欲しいもんだ
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って言って欲しいだけでしょ、おまえら釣られすぎ
単にスケールしても済むし、何回もやるなら任意精度でない有理型くらい構造体と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>と…
最近触り始めた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 の多相化にはテンプレートが使われている。
math.h の関数は多相化されてなくてマクロで多相化された版は tgmath.h にある。
cmath の多相化にはテンプレートが使われている。
877デフォルトの名無しさん (ワッチョイ 7f02-d44j)
2022/12/14(水) 19:29:35.78ID:XaqmHtNn0 Cのtgmathの方が(実装的な意味で)エグいよね
よくマクロの真髄みたいに色んな実装が紹介されるし、ちゃんと動いてるんだろうけど
ちょっと訳がわからないものは避けたい…
_Genericでスッキリ書けたりしないのだろうか
よくマクロの真髄みたいに色んな実装が紹介されるし、ちゃんと動いてるんだろうけど
ちょっと訳がわからないものは避けたい…
_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>?
<ccmath>?
880はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-3TNT)
2022/12/15(木) 14:40:26.12ID:xFKc8Du50 >>877
_Generic で素直に分岐すれば問題なくかけるよ。
tgmath.h が規格に入ったとき (C99) は規格の範囲内でやる方法は無かったので
処理系の拡張を使ったり新たな拡張を作ったりしてなんとかなったのだがやっぱりそれは
あかんやろと思ったのか C11 で _Generic を入れることになった。
ただ、処理系は C99 に厳密なモードを持つことがあるからそのモードで動かしたときに
ヘッダ内の _Generic についていちいち警告なりエラーなりが出るのもよろしくないし、
#ifdef で分けるのも二度手間だし、
旧来通りの実装で残すのはそれなりに合理的なんだと思う。
ありがたいことに普通に使う分には標準ヘッダの実体を気にする必要はないのだから忘れておくのが幸せだろう。
_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
// 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");
の違いを誰か教えてくれ
error("引数の個数が正しくありません");と
fprintf(stderr, "引数の個数が正しくありません\n");
の違いを誰か教えてくれ
884はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 3b3e-JDfe)
2022/12/21(水) 10:21:03.43ID:6CmfCawf0885デフォルトの名無しさん (ワッチョイ 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)
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関数にする必要性がわからんかったから助かったわ
こんな時間にありがとう、助かる。
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読んだ方が早い
わざわざexitに渡すステータス引数を拵えるくらいならexit読んだ方が早い
890デフォルトの名無しさん (スフッ Sd8a-evpg)
2022/12/21(水) 10:51:42.39ID:Fs8T+fBed >>881
あ、地味にfprintf(stderr, "\n")でフラッシュしてるのに気付いた
あるいはfmtへの\n付け忘れ防止配慮か
基本stderrはこまめにフラッシュされるものと思ってるけど、fflushや"\n"で念を入れても損は無いな
あ、地味に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);
これの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 の宣言の文法が無茶苦茶なのはイマサラな話なので……。
可変長引数の扱いも低レイヤの事情が見え隠れするような古の設計なので
歴史的事情を知らんとわけわからんのもしょうがないとは思う。
返却値の型が 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が騙されたりでバグの素なので、ちゃんとマニュアル参照のこと
俺は手入力で適当なエラーメッセージ書くのは極力控えてる、例えば数学関数書いてるなら
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:537DsEmx0899デフォルトの名無しさん (ワッチョイ 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:j8NGwdcp0902デフォルトの名無しさん (スッップ 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で保証されてないならアプリ側でやるしか無いじゃん。
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
#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) の後にセミコロンが抜けてる。
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で頑張れ
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( ) でヒープごと解放する方が効率的なんて言う奴までいたんだよ...
膨大なリストなんかはいちいち解放しないで 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 はセッション単位でドカンとメモリの確保と解放をしてる。
つってもプログラム全体のメモリについて見通しが立てられるということと
実行環境の事情を把握してるからそういう戦略を取れるのであって、
普通は小さなモジュールに分割するし、モジュール単位でメモリ管理に矛盾がないように設計するので
結果的にチマチマした確保と解放になる。
そこそこの規模になるとプログラムを分割せずに把握するのは大変なので凡人は小さな単位で
確保と解放をするように設計するのはしょうがないよ。
確保したメモリが結局はプログラムの最後までほとんど使用されっぱなしだということがわかっているなら
ちまちま管理しなくても終了と同時に全部が回収されることをあてにしても総合的なメモリ使用量は変わらない
(むしろ free のコスト分だけ節約できる) という考えをすることはあって、
リンカの LLD や Mold がそういう戦略をとっていたはず。
http サーバの h2o はセッション単位でドカンとメモリの確保と解放をしてる。
つってもプログラム全体のメモリについて見通しが立てられるということと
実行環境の事情を把握してるからそういう戦略を取れるのであって、
普通は小さなモジュールに分割するし、モジュール単位でメモリ管理に矛盾がないように設計するので
結果的にチマチマした確保と解放になる。
そこそこの規模になるとプログラムを分割せずに把握するのは大変なので凡人は小さな単位で
確保と解放をするように設計するのはしょうがないよ。
922デフォルトの名無しさん (ワッチョイ 1301-iijX)
2022/12/25(日) 07:20:21.70ID:vLPFsJBC0923デフォルトの名無しさん (ワッチョイ 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との違いはリロケーションテーブルがないってだけ
コード次第で出来んことは無いィィィ
EXEとの違いはリロケーションテーブルがないってだけ
コード次第で出来んことは無いィィィ
926デフォルトの名無しさん (ワッチョイ 1301-iijX)
2022/12/25(日) 09:03:42.49ID:vLPFsJBC0927デフォルトの名無しさん (アウアウウー Saed-aXTt)
2022/12/25(日) 10:31:57.80ID:NJW41kMTa 空いてるコンベンショナルメモリ全部というと大きなメモリが割り当てられるように聞こえるけどコンベンショナルメモリは640キロバイトしかないからな
逆に小細工しないと拡張メモリ(exeで使える大きなメモリ)が使えないと言った方が正しい
逆に小細工しないと拡張メモリ(exeで使える大きなメモリ)が使えないと言った方が正しい
928デフォルトの名無しさん (ワッチョイ a1c2-dmhP)
2022/12/25(日) 11:06:28.12ID:CcfMXDnS0 リアルモードの「拡張メモリ」ならCOMでもEXEでも同じことだぞ
プロテクトモード用の「EXE」はまた別物だ
バイモーダル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 ポインタを扱うんだったら出来る
自力でシステムコール(あるいは 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
MS-DOS
935デフォルトの名無しさん (US 0Hd7-ij7E)
2022/12/25(日) 23:53:11.65ID:3pvnVlsWH >>925
LSI-C試食版のコード64KB の制限はなんとかなりませんかね?
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:xk9EZjkPH938デフォルトの名無しさん (ワッチョイ 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 をずっと持ってた
俺も会社でだけど 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言語は配列を返せないんだ
C言語は配列を返せないんだ
943デフォルトの名無しさん (スプッッ Sdaf-tLuz)
2022/12/26(月) 12:24:01.49ID:XQluw9Ded >>935
試食って書いてあるの見えない?
そういう類いには意図的に制限かけてあるんだよ
有料の正規バージョンを買ってねって意味
PS3のlinux封じとは訳が違う
怒る人のいないやり方なので
脱獄は誰も手伝ってくれないよ
試食って書いてあるの見えない?
そういう類いには意図的に制限かけてあるんだよ
有料の正規バージョンを買ってねって意味
PS3のlinux封じとは訳が違う
怒る人のいないやり方なので
脱獄は誰も手伝ってくれないよ
944デフォルトの名無しさん (ワンミングク MMff-iijX)
2022/12/26(月) 12:48:43.97ID:gpJgKl24M 森公一郎さん、亡くなっているんだよな
945デフォルトの名無しさん (アウアウウー Sa1f-SvsN)
2022/12/26(月) 12:49:38.27ID:6bMfB0bxa946デフォルトの名無しさん (ワッチョイ 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;
}
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:tmqxSKGS0948デフォルトの名無しさん (スプッッ 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:0DsOmzGV0953デフォルトの名無しさん (ワッチョイ 1301-iijX)
2022/12/26(月) 18:26:36.88ID:+xP92Jxa0 >>949
てか struct で包めば配列も返せるよね
てか struct で包めば配列も返せるよね
954デフォルトの名無しさん (ラクッペペ MM97-k0TO)
2022/12/26(月) 18:41:08.47ID:sEpxtj4KM 関数へのポインタの配列の構造体?
955デフォルトの名無しさん (ワッチョイ 612d-s0Sd)
2022/12/27(火) 00:19:48.06ID:8jh3A4jF0956デフォルトの名無しさん (テテンテンテン 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スタイルの方がスッキリして好き、個人的にはだけど
何らかの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:8jh3A4jF0963デフォルトの名無しさん (ワッチョイ 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");
見ろ、文字列はポインタだ(キリッ
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++ 合法
これも式
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 インストーラですら実行できないんです、すごく弱っています
コンパイラが手元にないと私は無力……
誰か excel マクロで動く cc を作ってくれませんか?
うちの会社、cygwin 禁止なんです、cygwin インストーラですら実行できないんです、すごく弱っています
コンパイラが手元にないと私は無力……
970デフォルトの名無しさん (アウアウウー Sa2f-aXTt)
2022/12/27(火) 18:03:44.42ID:/tVTIbQ7a VBA使えよ
安心しろお前は自分で思ってるほどCが得意じゃないから
安心しろお前は自分で思ってるほど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:tBCD9SD30974デフォルトの名無しさん (ワッチョイ 9347-ij7E)
2022/12/27(火) 19:42:45.86ID:tBCD9SD30 >>972
cs.exe なんて大っ嫌い
cs.exe なんて大っ嫌い
975デフォルトの名無しさん (ワッチョイ 0b01-jXNG)
2022/12/27(火) 20:26:44.18ID:pT1qhH4d0 >仕事に関係のない VS なんて認可されませんよ
>誰か excel マクロで動く cc を作ってくれませんか?
仮に誰か作ってもインストール認可されないんじゃないの?
そういう環境だと読み取ったけど
>誰か 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:tBCD9SD30980デフォルトの名無しさん (ワッチョイ 9347-ij7E)
2022/12/27(火) 22:29:39.01ID:tBCD9SD30 あと、巨大な csv ファイルを結合するプログラムも便利に使っていたんですけどね、大概の機械はデータを csv で吐いてくれますますからねえ
981デフォルトの名無しさん (ワッチョイ 4d07-aXTt)
2022/12/27(火) 22:31:04.10ID:usWDFVvc0982デフォルトの名無しさん (ワッチョイ 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:tBCD9SD30985デフォルトの名無しさん (ワッチョイ 9fea-ij7E)
2022/12/27(火) 22:58:37.89ID:VvvSD8wK0986デフォルトの名無しさん (ワッチョイ 9fea-ij7E)
2022/12/27(火) 23:03:13.50ID:VvvSD8wK0 >>983
そりゃ、業務そっちのけで得体の知れないプログラムを書いてばかり(星新一の短編にそんなのがありましたね…)だったら叱られますけど、ぱっぱと3時間で書いて後はノーメンテ、それで半年実用になっているんだから遊んでいるわけじゃないんですけど
そりゃ、業務そっちのけで得体の知れないプログラムを書いてばかり(星新一の短編にそんなのがありましたね…)だったら叱られますけど、ぱっぱと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:JeA8YDJe0991デフォルトの名無しさん (ワッチョイ b363-dxp0)
2022/12/28(水) 01:06:31.58ID:PyoNDBFu0 別に職業プログラマでなくても良いんだよ
プログラム(ロジック)についての悩みならここで良いが
プルグラムを書こうとする人の悩みは、マ板の方が相応しい
プログラム(ロジック)についての悩みならここで良いが
プルグラムを書こうとする人の悩みは、マ板の方が相応しい
992デフォルトの名無しさん (テテンテンテン MM97-t1KK)
2022/12/28(水) 03:37:42.61ID:+f6n+5TtM > バッチファイルで改名?
これが出来なきゃ何のためにバッチファイルが存在してんだよw
バッチやシェルスクリプトは、ファイルのコピーやリネームとか、ファイル関連の処理が簡単に出来る事が最大のメリットだ
兎に角グクれば山ほど出てくる
これが出来なきゃ何のためにバッチファイルが存在してんだよ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 葉
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 145日 6時間 28分 24秒
新しいスレッドを立ててください。
life time: 145日 6時間 28分 24秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- テレビ朝日 本社から男性が転落し死亡。関連会社社員か 当たった通行人が左肩軽傷 [阿弥陀ヶ峰★]
- 高市首相、トランプ米大統領に「早期に会いたい」 日中関係悪化受け… ★4 [BFU★]
- 【コメ】卸売業者「簡単に安売りできない」「大暴落起きれば大赤字に」 JA「新米の販売進度が近年になく遅い。コメの回転が悪い」 ★5 [Hitzeschleier★]
- 「これいいじゃん!!!」 セブン-イレブンの1620円で買える“1人用クリスマスケーキ”🎂に注目殺到「天才すぎる」 [パンナ・コッタ★]
- 高市早苗首相が天理教系企業に“巨額発注” 総額5000万円 本人は「政治団体の活動に必要な支出」と回答 ★2 [Hitzeschleier★]
- テレビ朝日本社から20~30代の関連会社社員とみられる男性が転落し死亡 六本木けやき坂通りの通行人にはけが人なし [少考さん★]
- 【速報】テレビ朝日本社から20代〜30代の男性が飛び降り自殺して死亡 東京・六本木 [597533159]
- お前らダウナー系だよな
- 現役JKのお茶会スレ( ¨̮ )︎︎𖠚ᐝ182
- 精液がゼリー状で黄ばんでるせいで女と付き合う勇気ない
- 女はSNSで乳揺らして踊ってりゃラクにカモ集まるから羨ましい
- 【高市速報】中国、最後通牒 [308389511]
