C言語なら俺に聞け 160at TECH
C言語なら俺に聞け 160 - 暇つぶし2ch200:デフォルトの名無しさん
23/01/24 23:29:13.35 1YOqlgJ1d.net
>>196
淫乱とか性器を見せろとかなんなんだね君はいい加減にしたまえ!

201:デフォルトの名無しさん
23/01/25 20:45:01.15 8z5wZ+1pM.net
卑猥な言葉に反応する大人を見てはしゃいでいる子供って感じ

202:デフォルトの名無しさん
23/01/26 07:05:46.47 epYCai+9d.net
プログラム技術板で猥談にしか参加できないやつpgr

203:デフォルトの名無しさん
23/01/26 11:50:43.36 xdWnPQo8r.net
>>185
普通のハッシュが非単射なのはその通りだが、
完全ハッシュというものも一応ある。

204:デフォルトの名無しさん
23/01/26 23:06:32.72 HOinztZt0.net
何に使うものなんですか?

205:デフォルトの名無しさん (ワッチョイ ff02-Jpma)
23/01/27 05:48:59.42 Ia5Vv5I40.net
セキュリティがどうでもいい時に
速度を要求されるとき

206:デフォルトの名無しさん
23/01/27 08:04:21.64 DHOIN7NEM.net
パスワードなどを暗号化して保存する時ハッシュ値を保存する
他のパスワード値と重複することが無いように完全ハッシュとする
万一衝突すれば他人のパスワードが誤ってすり抜ける可能性が生じる

207:デフォルトの名無しさん
23/01/27 09:53:14.54 hWSIv7AR0.net
んなアホな
完全ハッシュの説明はともかく、パスワードに関してはIDとペアで使うんだから他人のパスワードと被ろうがどうだろうが関係がない
そもそもソルト使うんだからuser1とuser2が同じパスワードを使ってもハッシュ値は別になる

208:デフォルトの名無しさん (ラクッペペ MM7f-qqxO)
23/01/27 10:07:50.70 GgXEpiKGM.net
いや完全ハッシュの前提が崩れると違うパスワードが同じハッシュ値で衝突して区別できないので破綻する
ソルトは完全ハッシュを担保するための手段

209:デフォルトの名無しさん
23/01/27 10:42:53.11 MqPTrKVr0.net
URLリンク(en.wikipedia.org)
> Disadvantages of perfect hash functions are that S needs to be known for the construction of the perfect hash function.
無理やろ

210:デフォルトの名無しさん
23/01/27 10:59:53.36 WUhobyCY0.net
暗号学的ハッシュ関数
URLリンク(ja.wikipedia.org)

211:デフォルトの名無しさん
23/01/27 11:02:54.46 hWSIv7AR0.net
MM7f-qqxOは衝突がないっていうのがどういうことなのかなんか勘違いしてるんだろう
そういうもんを用意したとして>>203のいう通り強度なんかめちゃくちゃ弱くなるんだからさ
いずれにしても破綻するとか言われたところで世の中は衝突ありのSHA-2使ってんだからもうちょい勉強しとけ

212:デフォルトの名無しさん
23/01/27 12:35:15.87 ctyQpdLuM.net
>>206
ハッシュ値とハッシュテーブルを混同しててクソワロタw

213:デフォルトの名無しさん
23/01/27 18:34:56.90 I0K5YroCd.net
>>199
ちょっとした変換ミスだろ?
あるシードを与えてそこから連続的に乱数を大量に取得してそれらを並べてみたら、あら不思議 平均0分散1のヒストグラムができました、てなモノが欲しいだけなのに・・・

214:デフォルトの名無しさん
23/01/27 19:16:01.14 ctyQpdLuM.net
正規分布乱数でググれば幾らでも出てくる
ちゃんと理解するのは容易じゃないがな

215:デフォルトの名無しさん
23/01/27 23:07:01.65 Nd07Ngynd.net
>>204
説明としておかしい
他人のパスワードが誤ってじゃなくて
悪意ある他人が総当たり的に適当なパスワードを試して当たってしまう可能性が高くなるんだろ

216:デフォルトの名無しさん
23/01/28 13:25:21.47 5Vj/XtKl0.net
それはどのパスワードでも同じ

217:デフォルトの名無しさん
23/01/28 14:42:34.89 dMjf5U6fa.net
>>214
平文ならパスワードが違えばマッチすることはない
ハッシュだとパスワード違うのにハッシュ値が同じになる(ことが理論的にはあり得る)から違うパスワードでも通っちゃうって話だろ

218:デフォルトの名無しさん
23/01/28 15:06:06.84 ys7yM/+j0.net
パスワード程度の小さなデータなら
原データよりもビット数が多いハッシュを使えば安全だろ

219:蟻人間
23/01/28 15:09:44.90 bcwoFDyEd.net
おまいらにちょっと質問。
URLリンク(github.com)
SHA-256でシェアウェアのパスワード設定をしているけど、このハッシュとソルトでブルートフォースできますか?

220:デフォルトの名無しさん
23/01/28 15:29:16.38 x6yOEZAM0.net
攻撃に非現実的な時間が必要ってだけであって可否を問うなら可能に決まってんだろうよ
ちょっと考えれば分かると思うんだが、できますかとか脳ミソ幾分欠損でもしてんのかね?

221:蟻人間
23/01/28 15:44:01.84 bcwoFDyEd.net
スーパーハッカーならスパッと解けると思ったが、つまらないな

222:デフォルトの名無しさん
23/01/28 15:45:30.65 jdKvyKGa0.net
口の汚さはアタマ悪くても可能に決まってます

223:デフォルトの名無しさん
23/01/28 16:39:52.59 NqcfPhRT0.net
>>216
ビット数が多くても偏りの多いハッシュ関数使ってたらダメってことすらわからんのか?

224:デフォルトの名無しさん
23/01/28 17:23:18.26 btPcpkQFM.net
パスワードは間違いが続くと、暫く時間たたないとログイン出来なくすればブルートフォースもほとんど不可能になる
なのでハカーは総当たりなんてせずに、何処かで漏れたIDとパスワードを違うサイトで試すだけだ

225:デフォルトの名無しさん
23/01/28 20:47:48.08 NqcfPhRT0.net
>>222
ドコモ口座でリバースブルートフォースされまくっただろ
今更ハカーとか何言ってるんだかw

226:デフォルトの名無しさん
23/01/28 21:54:17.79 jdKvyKGa0.net
最近のサイトはメッセージで認証番号送ってくる方式が増えた

227:デフォルトの名無しさん
23/01/28 23:13:06.15 1IGwH4nq0.net
laslpassのやらかしを見るがよい

228:デフォルトの名無しさん
23/01/29 03:30:21.89 FVd++fbJM.net
>>223
リバースブルートフォースなんて大層な名前が付いてるけど、単なるブルートフォースだろ
凍結直前までチャレンジして、失敗したら次を狙うのと何も確率は変わらん

229:デフォルトの名無しさん
23/01/29 07:05:12.39 ksaPk66E0.net
何回で凍結するのかはサイトによって違うのに凍結直前までとかスーパーハカーかよw

230:デフォルトの名無しさん
23/01/29 07:32:46.54 6KJkihSb0.net
>>221
あんたにはそう聞こえたのか
人の言葉をいちいち曲解する底意地の悪い耳してんな
人格欠陥者め

231:デフォルトの名無しさん
23/01/29 07:33:20.09 8/1FN9ANM.net
ブルートフォースはパスワードの総当たり攻撃
リバースブルートフォースはIDの総当たり攻撃

232:デフォルトの名無しさん
23/01/29 07:52:37.42 ksaPk66E0.net
>>228
指摘されて人格攻撃w
技術板に向いてないからよそに行った方がいいぞ

233:デフォルトの名無しさん
23/01/29 09:01:19.16 6KJkihSb0.net
おまえの勝手な仮定が前提だからな
こっちにゃ指摘に聞こえてねえんだよ
ストローマン攻撃なんて幼稚な誤謬をするやつが
どの口で技術板に向いているとかぬかすんだアホが

234:デフォルトの名無しさん
23/01/29 09:20:35.03 ksaPk66E0.net
歪めてるんじゃなくて考慮不足を指摘されてるってことすら理解できてないのかw

235:デフォルトの名無しさん
23/01/29 09:45:54.12 6KJkihSb0.net
勝手な仮定といわれていることも何のことかわからんようだな
やべーやつw

236:はちみつ餃子
23/01/29 11:02:35.45 2OIx0YXk0.net
>>217
そういう使い方だとハッシュの強度は無意味。
判定している箇所を書き換えるだけで通ってしまうから。

237:デフォルトの名無しさん (ワッチョイ 0b01-hj3w)
23/01/29 12:32:40.26 ksaPk66E0.net
>>233
偏りの多いハッシュ関数の話だろ
そういう条件を考慮してないアホって言う指摘

238:蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdba-yGaH)
23/01/29 12:41:06.40 GBa/Exsdd.net
>>235
だったら、こういう場合どうすればいいの?
教えて下さい。お願いします。

239:デフォルトの名無しさん
23/01/29 13:39:20.19 ksaPk66E0.net
偏りの少ないハッシュ関数使えばいいだけだろ
知能ないの?

240:デフォルトの名無しさん
23/01/29 13:45:16.85 CAd5BAJYM.net
ブルートフォースって一人だけ狙って、失敗したら他のアカウントを狙っちゃいけないのかよw

241:デフォルトの名無しさん
23/01/29 13:53:11.49 5EeyamesM.net
むしろ同じパスワードに対してアカウントを次々に変え続けて総当たりで狙うのがリバースブルートフォース

242:はちみつ餃子
23/01/29 15:19:25.16 2OIx0YXk0.net
>>236
機能するために必要なデータ (プログラム) を暗号化してしまうとかいった方法が考えられる。
必要なデータを得るために正しい鍵が必要なら正しい鍵がないとどうしようもない。
そのへんの一連の技術は「耐タンパー」とか呼ばれてるからググってみて。
ライセンスで制約を付けるから技術的なロックは頑張らないと割り切るのもひとつの手だし、個人製作のシェアウェアはそんなもんだよ。

243:デフォルトの名無しさん
23/01/29 15:24:38.66 ksaPk66E0.net
>>238
だからお前がそれもブルートフォースだと思うのは自由だけど人と会話する時はちゃんとリバースブルートフォースという用語を使わないとはあ?って言われるだけの話

244:蟻人間
23/01/29 19:12:22.05 GBa/Exsdd.net
>>241
ありがとうございます

245:デフォルトの名無しさん (ワッチョイ b75e-5WkL)
23/01/29 19:43:28.13 8uY3AZce0.net
>>237
知能ないと思いたければ
そう思っとけばいいじゃん

246:デフォルトの名無しさん
23/01/29 20:29:50.78 ksaPk66E0.net
>>243
うん、お前が誰かは知らんけどID:6KJkihSb0の知能は低いと思うよw

247:デフォルトの名無しさん
23/01/29 20:41:38.56 ZKIt/npKM.net
>>241
じゃあ、一人に付きパスワードを固定せずに数回試す事を全アカウントに行うのは何て言うんだよ?

248:デフォルトの名無しさん
23/01/29 21:03:50.50 teTK5f4i0.net
マルチリバースブルートフォース
とか、言ってみるテスト

249:デフォルトの名無しさん (ワッチョイ 0b01-hj3w)
23/01/29 21:18:32.78 ksaPk66E0.net
>>245
そんなアホなやつしかやらないような行動にまで名前が付いてるわけじゃないw

250:デフォルトの名無しさん (テテンテンテン MMb6-YANd)
23/01/29 21:42:40.12 ZKIt/npKM.net
>>247
IDと同じパスワードや逆にしてみて試す価値は有るだろ

251:デフォルトの名無しさん (ワッチョイ 4e63-+rQD)
23/01/29 21:45:50.48 teTK5f4i0.net
せっかくここまでアホな行為に名付けているんだから、途中で止めないで

252:デフォルトの名無しさん (スップ Sdba-7Y05)
23/01/29 21:50:17.04 BQ9oQ4XFd.net
ここまで不毛な議論ができるもんだなあw

253:デフォルトの名無しさん
23/01/29 21:57:38.60 ksaPk66E0.net
>>248
それはパスワード類推攻撃
お前みたいなアホ向けの攻撃方法だなw

254:デフォルトの名無しさん
23/01/29 22:04:36.79 CAd5BAJYM.net
>>251
じゃあブルートフォースとパスワード類推攻撃の違いを言ってみろ
わざわざ分けてるようだから、明確な違いがあるのだろう

255:デフォルトの名無しさん
23/01/29 22:36:52.56 EsKjhbWpM.net
国会クイズ大会かよ

256:デフォルトの名無しさん
23/01/30 06:58:02.02 xP88kyoga.net
>>252
ググればすぐわかることをいちいち聞くアホw
URLリンク(e-words.jp)
URLリンク(e-words.jp)

257:デフォルトの名無しさん
23/01/30 07:09:32.64 BI3s5DYMd.net
おまえに聞いてるんだろ
教えを請うのではなく
おまえをベリファイする意味で
答えがリンクじゃ失笑されるぞ

258:デフォルトの名無しさん
23/01/30 07:43:23.26 xP88kyoga.net
>>255
馬鹿過ぎて笑う

259:デフォルトの名無しさん
23/01/30 07:51:37.04 qAfCKr8z0.net
ID総当たりは回数制限をすり抜けられるんじゃないかな?

260:デフォルトの名無しさん (スップ Sd5a-VuUV)
23/01/30 09:35:36.72 BI3s5DYMd.net
>>256
直球の罵倒語だけか
失笑

261:デフォルトの名無しさん
23/01/30 09:59:45.60 deB8/dXTa.net
質問が馬鹿すぎて>>252が失笑されてるだけだぞw
俺が書いても同じようなこと書くし

262:デフォルトの名無しさん
23/01/30 10:00:48.80 deB8/dXTa.net
>>257
そりゃそのためにパスワード固定してId変えながらトライするんだし

263:デフォルトの名無しさん (スップ Sd5a-VuUV)
23/01/30 12:26:35.86 BI3s5DYMd.net
>>259
だから質問じゃねえっての
おまえ頼られてるとでも思ってんの?
プッバッカジャネエノ

264:デフォルトの名無しさん
23/01/30 12:48:34.85 vnpMotzDa.net
もう答え書いてるのにアホなのかな
そもそもLevel低すぎって言われてるだろw

265:デフォルトの名無しさん
23/01/30 14:15:02.42 dm4YanUU0.net
米国家安全保障局 (NSA) は 10 日、メモリ安全性の問題に対応するためのガイダンスを公開し、
可能な限りメモリ安全なプログラミング言語を使用するよう推奨した

266:デフォルトの名無しさん
23/01/30 14:15:26.05 BI3s5DYMd.net
他人の文書を持ってくるだけで説明したつもりになってるのか
健康美容の悪徳ビジネスに騙されるBBAと同じたなw
てめーは空っぽだと説明したに過ぎないんだが

267:デフォルトの名無しさん
23/01/30 16:10:08.09 cLMc+Aima.net
>>264
ならどう間違ってるのか指摘してみ
自分では何もできないチキンのくせにw

268:デフォルトの名無しさん
23/01/30 16:49:59.62 BI3s5DYMd.net
>>264
は? 間違っていようがいまいが関係ない
おまえは何も言ってないからな
なんか高卒くせえなおまえ
レポートだの論文だの書いてなさそう

269:デフォルトの名無しさん
23/01/30 16:50:32.46 BI3s5DYMd.net
アンカーミスった
>>265

270:デフォルトの名無しさん (ワッチョイ 4e63-+rQD)
23/01/30 17:22:08.99 dm4YanUU0.net
 グーグルによればAndroidに存在した深刻なセキュリティー脆弱性の70%近くがメモリー安全に関するバグに
起因するという。同様にマイクロソフトも、同社製品に存在したセキュリティー脆弱性の70%がメモリー安全に関
するバグに起因すると述べている。C/C++を使う限りセキュリティー脆弱性を根絶するのは不可能と考えて、
Rustを採用するに至ったというわけだ。

271:デフォルトの名無しさん (オッペケ Sr3b-3un5)
23/01/30 17:56:21.35 XUR4uSv7r.net
また他人の文書を?

272:デフォルトの名無しさん
23/01/30 18:51:38.71 uxYUj7Ria.net
>>267
まだやるのかよ...
> 俺が書いても同じようなこと書くし
> 俺が書いても同じようなこと書くし
> 俺が書いても同じようなこと書くし
そもそもこんなの常識だろw

273:デフォルトの名無しさん
23/01/30 19:36:


274:39.96 ID:BI3s5DYMd.net



275:デフォルトの名無しさん
23/01/30 19:55:53.55 uxYUj7Ria.net
>>271
お前にレスしてるんだが?w

276:デフォルトの名無しさん
23/01/30 20:14:51.74 BI3s5DYMd.net
俺が言ってないことを引用してか?
幼稚な誤謬が止まらんやつだな

277:デフォルトの名無しさん
23/01/30 20:39:01.29 uC26F0Aa0.net
>>273
アホなの?
お前がわからんこと言ってるから再度書いてあげたわけだが
もしかして意図を汲み取れないってオチかなw

278:デフォルトの名無しさん
23/01/30 20:54:03.20 REdBvt7e0.net
おまえの勝手な妄言に意図なんてあったのかすらわからんな

279:デフォルトの名無しさん
23/01/30 21:08:25.32 uC26F0Aa0.net
結局>>252みたいな低レベルなレスして顔真っ赤ってかw

280:デフォルトの名無しさん
23/01/30 21:16:42.29 REdBvt7e0.net
>>276
>>273
おまえの頭蓋骨ぶち割って脳ミソがどんな奇形なのか見てみたいわw

281:デフォルトの名無しさん
23/01/30 21:35:36.15 wssO+tMCa.net
そんなクソみたいなレスしか返せないなら黙ってりゃいいのにw

282:デフォルトの名無しさん
23/01/30 21:54:10.97 REdBvt7e0.net
横レス君よ、231あたりのやり取り見てみな?
まあ本人だろうけどw

283:デフォルトの名無しさん
23/01/30 22:18:56.13 uC26F0Aa0.net
>>279
指摘されたアホがファビョってるだけだろw

284:デフォルトの名無しさん
23/01/30 22:29:46.75 REdBvt7e0.net
ねらー語100%でど真ん中な正体を現してんなw

285:デフォルトの名無しさん
23/01/31 07:05:48.06 YNMDboNb0.net
ねらー語とか言うねらー語使う>>281w

286:デフォルトの名無しさん
23/01/31 12:50:49.15 xZwYkSvIa.net
煽りじゃなくて率直に疑問なんだが
君ら何歳?

287:デフォルトの名無しさん
23/01/31 12:57:03.34 tu4JRhBG0.net
発達障害は精神年齢が極端に低い病気なんだぜ

288:デフォルトの名無しさん
23/01/31 14:42:28.64 YNMDboNb0.net
いきなり自己紹介されてもw

289:デフォルトの名無しさん
23/01/31 21:15:54.96 k9I+OMIE0.net
マウント取りたがるくせに大したこと言ってなくて
誰ひとり尊敬なんか集まらない寒ーいやつw

290:デフォルトの名無しさん
23/02/01 06:43:31.84 7PejvYvYa.net
まだまだ続く自己紹介w

291:デフォルトの名無しさん
23/02/01 07:42:58.57 cqn38iow0.net
Q.アスペルガーは嘘をつかないの?
A.嘘をつきまくる。本人は「嘘をついた自覚がない」と主張するが自覚はある。嘘を認めると立場が悪くなるので屁理屈を言って一向に認めない
Q.どうして文章を書くとき難しい単語を使いたがるの?
A.自分を賢く見せようとしているから。しかし内容がスカスカだったり矛盾しているので全然賢く見えない
Q.どうして攻撃的なの?
A.アドレナリン放出量が健常者に比べて多く、また人生が上手く行っていない場合が多いので他人に八つ当たりする(我慢できない)傾向が強いから
Q.どうしてひねくれたズレた回答ばかりするの?
A.アスペルガーは他人と被ることを嫌う。自分が特別な存在でありたいという願望が表れている。健常者の言う妥当な回答はアスペルガーにとっては平凡なつまらない回答。何か特別な凄いことを言おうとしてもそのような知恵がないので悪口とか意味の分からないことを口走ってしまう。

292:デフォルトの名無しさん (アウアウウー Sa47-hj3w)
23/02/01 08:24:41.56 Hf88nfPHa.net
病院の先生に言われたのか?w

293:デフォルトの名無しさん
23/02/01 12:53:11.72 MThDxGPg0.net
コードで語れ

294:デフォルトの名無しさん
23/02/01 13:33:50.91 NwXljVovd.net
goto hell;

295:デフォルトの名無しさん
23/02/02 04:21:08.56 +vgs1l/J0.net
サイズの決まっていない配列はスタックとヒープどちらに確保されますか?

char* file = ファイルデータ;
char copy[fileのlength]; // この配列
みたいなやつ

296:デフォルトの名無しさん
23/02/02 06:26:11.41 0H/6GH320.net
スタックじゃね
それ関数内の一時変数だろ

297:デフォルトの名無しさん
23/02/02 09:53:18.47 HFa0iCTPd.net
規格では未既定
現実はアセンブラ出力させて嫁

298:デフォルトの名無しさん
23/02/02 10:03:10.97 UVkNbOZP0.net
Cにサイズの決まってない配列は存在しないのだ

299:デフォルトの名無しさん
23/02/02 10:20:10.06 gL9XQdRL0.net
>fileのlength
ここに回答者をひっかけ様とする意図がありそう

300:デフォルトの名無しさん
23/02/02 10:22:42.67 Ww3cMMp8d.net
あれ可変長okになってなかったっけって思ったら変わっていってるのね

301:デフォルトの名無しさん
23/02/02 10:24:57.02 UVkNbOZP0.net
最近のCはできるん?じじいだから古いのしか知らんのだ

302:デフォルトの名無しさん
23/02/02 10:32:02.50 Ww3cMMp8d.net
適当にぐぐるとc99で対応してc11でoptinal扱い
以降はしらぬ

303:デフォルトの名無しさん
23/02/02 11:50:33.16 UVkNbOZP0.net
マジか、知らんかったわ
sizeofとかも可変になるんやね

304:デフォルトの名無しさん
23/02/02 12:28:52.64 HFa0iCTPd.net
>>295
extern FILE __iob[];

305:デフォルトの名無しさん
23/02/02 14:22:32.00 UVkNbOZP0.net
>>301
それ宣言ですやんか

306:デフォルトの名無しさん
23/02/02 14:37:47.00 3ThHJ/C20.net
sizeofて最近では()で対象を囲まなくてもいいんだってな
知らなかったw

307:デフォルトの名無しさん
23/02/02 14:52:29.74 aiTy/mzg0.net
最近もくそもANSI以降sizeof演算子に括弧が必要な時期ってあったの?
K&Rの頃でも要らなかった気がするけど

308:デフォルトの名無しさん
23/02/02 14:55:50.18 aiTy/mzg0.net
変数か単項式の場合な
型名とかはエラーだろうけど

309:デフォルトの名無しさん
23/02/02 14:56:34.41 H/TFSr7b0.net
型とオブジェクト(を表す式)のサイズを混同してるんじゃね?
複雑な式だと()があった方が読みやすい場合もあるけど、できる限りは明示的に使い分けたほうが

310:デフォルトの名無しさん
23/02/02 14:56:36.71 HFa0iCTPd.net
>>302
不完全型が「存在しない」ってこと?

311:デフォルトの名無しさん
23/02/02 15:03:22.53 HFa0iCTPd.net
別な話、BITMAPINFO構造体とかね

312:デフォルトの名無しさん
23/02/02 15:15:47.14 c8p/A0200.net
char*とvoid*なら問題ないのに
char**とvoid**だと代入時に警告が出るのはおかしい
ちなみにchar**とvoid*だと警告は出ない

313:デフォルトの名無しさん
23/02/02 15:19:10.22 yftorlUH0.net
char
お前らこれ、なんて読んでる(呼んでる)?

314:デフォルトの名無しさん
23/02/02 15:26:34.49 c8p/A0200.net
テスト

315:デフォルトの名無しさん
23/02/02 15:27:11.52 3ThHJ/C20.net
>>304
いらなかったのを勘違いして付けてたのかもしれん
ちなみに1990年代HP-UX上で開発してた時代の話です

316:デフォルトの名無しさん
23/02/02 16:06:25.05 0H/6GH320.net
>>310
チャー
>>294
つうかヒープに確保するのはmalloc,calloc,reallocだけだと思ったら未規定なのか

317:はちみつ餃子
23/02/02 18:25:47.28 hGGP2LZA0.net
>>313
言語仕様上は寿命が規定されているだけで、どこから確保するなどという詳細はない。
スタックとかヒープとかいう用語すら出てこないよ。

318:デフォルトの名無しさん
23/02/02 18:27:38.70 0H/6GH320.net
>>314
なるほどね

319:デフォルトの名無しさん
23/02/02 19:09:34.25 UVkNbOZP0.net
>>307
いや、なんかすまんかった
許してくれ

320:デフォルトの名無しさん
23/02/02 21:53:34.66 UmPclByQ0.net
>>315
世の中には汎用機みたいにハードウェアスタック持たないマシンもあるしね

321:デフォルトの名無しさん
23/02/02 22:48:09.79 hiwLlcVmd.net
void hoge( char *src )
{
char hogebuf[strlen(src)+1];
strcpy( hogebuf, src );
...
}
みたいな使い方か
仕様にはないけど慣例としてローカル変数はスタックに取られるだろう
static char hogebuf[strlen(src)+1];
とするとデータセグメントに取られるがコンパイル時にサイズが決定できないのでコンパイルエラーになる

322:デフォルトの名無しさん
23/02/02 22:58:23.69 gL9XQdRL0.net
_alloca 使ってみるとか

323:デフォルトの名無しさん
23/02/03 02:49:42.07 y/daVwxe0.net
普通スタックに取られるallocaがfree要らずでプロトタイピングに簡便だね
スタックだからBOするし、しない保証も得られないけど
ちゃんと固定長バッファ用意したり、ヒープ利用を考えるのは、とりあえず動くもんが出来てからやる派

324:デフォルトの名無しさん
23/02/03 11:57:56.75 31rfnruOM.net
c言語の標準入出力ストリームの
本当に基本的なことなんですが
わからずに困っています。
教えてください。
std::ofstream stream;
ostream << "ABCEFG";
この入力した文字列の"ABCEFG"を
右側3文字を削除して"ABC"にするには
どうすれば良いのでしょうか?

325:デフォルトの名無しさん
23/02/03 12:14:25.95 J/8wCXdid.net
C++スレへ池
スレリンク(tech板)

326:デフォルトの名無しさん
23/02/03 12:29:37.05 31rfnruOM.net
再度スレ書込み致しました。
ご迷惑おかけ致しました。

327:デフォルトの名無しさん (スッププ Sdba-Ik/S)
23/02/03 20:02:26.07 MxUVRWYAd.net
>>318
この、外道が!
こんなんコンパイルエラーにしたる

328:デフォルトの名無しさん (ワッチョイ 7a4a-5WkL)
23/02/03 22:09:59.33 JOOyDdlj0.net
ハッシュ君うるさいよ

329:デフォルトの名無しさん
23/02/04 18:01:20.17 8KrfBFTv0.net
>>321
それはC言語ではない。

330:デフォルトの名無しさん (ワッチョイ cf79-p19T)
23/02/04 23:59:34.16 Av2vQos/0.net
C++は最初のアホなstream仕様から抜け出せずいまだに書式出力にすら苦労するのいいよね

331:デフォルトの名無しさん
23/02/05 00:32:35.28 T8+euhoq0.net
文字列に埋め込んで置き換えるほうが楽だもんね

332:デフォルトの名無しさん
23/02/05 00:58:06.90 7rKpaUoS0.net
文字配列(へのポインタ値)は普通デカいから、ostreamのビット幅以上に左シフトすると0になるか、signedなら多分UD

333:デフォルトの名無しさん
23/02/05 02:05:11.68 5cc7+aVs0.net
君の言っていることがよく分からない。

334:デフォルトの名無しさん
23/02/05 02:13:54.95 N1CrWJVM0.net
C++でも一度もiostreamなんか使ったこと無いわw
かっこいいとでも思ったのかな?w

335:デフォルトの名無しさん
23/02/05 14:25:38.00 5cc7+aVs0.net
そういや C++ の cout みたいなやつには printf() みたいなメソッドはないの?
Java だと System.out (java.io.PrintStreamクラス)に printf() が Java 1.5 から追加されたが。

336:デフォルトの名無しさん
23/02/05 14:52:22.62 T8+euhoq0.net
C++20からformatってのが追加されたそうな

337:デフォルトの名無しさん
23/02/05 14:56:17.20 D7iSXwqj0.net
>>332
c++20 から std::format
c++23 から std::print と std::println

338:デフォルトの名無しさん
23/02/05 15:16:48.89 5cc7+aVs0.net
>>333 >>334
ありがとう。あるにはあったか。

339:デフォルトの名無しさん
23/02/05 16:27:06.84 3hYaBabsM.net
C++20でstd::formatが追加されたよ

340:デフォルトの名無しさん
23/02/05 16:27:42.01 3hYaBabsM.net
リロードしてなかったのか…失礼

341:デフォルトの名無しさん
23/02/05 22:53:24.77 Xg2vo6vu0.net
char x=1
char y=2
上記のchar型変数のxとyを比較する際に関して質問させていただきます。
上記の変数に格納されている変数を比較する際はif文で問題ありませんか?
if(x==y)
それともmemcmpやstrcmpで比較するべきでしょうか?

342:デフォルトの名無しさん (ワッチョイ 3f7c-4osW)
23/02/05 23:00:33.79 N1CrWJVM0.net
問題無いよ
memcmp()は使えても
strcmp()は流石に無いわw
メモリにどう格納されているかなんてエンディアンやらで違うし
memcmp()はcharの配列での比較に普通は使うだろう

343:デフォルトの名無しさん (ワッチョイ 7f63-4osW)
23/02/05 23:06:30.35 aB7ZC8J00.net
strcmp使うと、yもxも文字列である想定で比較するから
メモリー上の配置次第で変な結果が出る可能性がある

344:デフォルトの名無しさん (ワッチョイ cfab-wNzk)
23/02/05 23:20:42.10 Xg2vo6vu0.net
ご教授いただきありがとうございました。

345:デフォルトの名無しさん
23/02/05 23:41:43.70 7rKpaUoS0.net
>>338
charは(ちょっと変わってるけど)整数型なので、当然数値比較でok
何か付け加えるとすれば、整数型だからといってcharと他の整数型と比較/同値テストを行うのは、Cの自明でない算術変換が落とし穴になりがちなので避けた方が賢明
>>339
!memcmp(&a, &b, 1)
的な?
その発想に感心
何の役に立つのか俺には思い付けないけど、面白いからヨシ!

346:デフォルトの名無しさん
23/02/05 23:51:31.50 N1CrWJVM0.net
>>342
memcmp()も良く考えてみたらどうメモリに格納されているか分からないから使えないよね
intelなどのリトルエンディアンならそれで比較可能だろうけど
今ビッグエンディアンのマシンがあるのか分からないけど、昔あったpowerpcなんかはビッグエンディアンだったね

347:デフォルトの名無しさん
23/02/05 23:59:54.19 7rKpaUoS0.net
>>343
aがアドレスの取れない変数なら&aの時点で自明にダメだね
上で提示した比較バイト数が1の特殊ケースに限っては単なるunsigned charとしての比較だから、エンディアンネスは関係ないのでは

348:デフォルトの名無しさん
23/02/06 00:52:52.00 X/MVAKzo0.net
>>343
ビッグエンディアンだろうとリトルエンディアンだろうと1バイトのcharの比較に影響しないんじゃね?

349:デフォルトの名無しさん
23/02/06 00:53:39.48 X/MVAKzo0.net
ちんこ被った

350:デフォルトの名無しさん
23/02/06 01:11:21.66 yYJiH9Ihd.net
複数byteから成るwordには並べ方の任意性はあるけど、単一byteからなるword内にbyteを並べる方法は一通りしかない、って事だね

351:デフォルトの名無しさん
23/02/06 01:12:53.01 7Y+tRqBu0.net
>>345
charで例えばchar a = 1でリトルエンディアンだとmemcmp()で1バイト比較でも大丈夫だろうけど
ビッグエンディアンの場合、プロセッサの制約次第だろうけど必ずしも
01と1バイトのみでデータが入っているとは限らず
00 00 00 01みたいに4バイトで格納されてるかも知れないから
どんなマシンでも動くという前提で作るなら辞めておいた方が無難かなという風に思った

352:デフォルトの名無しさん
23/02/06 01:14:24.69 7Y+tRqBu0.net
実際の所は分からないけど、char同士の比較は単にa == bで問題無いし
蛇足だったな・・・

353:デフォルトの名無しさん
23/02/06 01:38:26.50 LWec8Zrw0.net
エンディアンなんか関係ねーだろアホか

354:デフォルトの名無しさん
23/02/06 02:12:44.74 Dw7rHwSO0.net
>>348
処理系/マシンが同一なら問題無い
Cのcharをuint_32相当として保持するマシンが仮に有ったとして、Cがcharのつもりで書き出し/読み返しを行い、unsigned char(とその配列)として比較する限りはCから違いは見えないよ
だって高級言語だもの()
バイナリデータのやり取り、詰め物あり、他言語プロセスとの共有メモリなら適切に変換するルーチンが必要だけど、それはCに限らず全てのプログラムに当てはまる事

355:デフォルトの名無しさん
23/02/06 02:49:15.07 Dw7rHwSO0.net
32bit以下のデータを全て32bit値として扱うマシンを想定してるのかな?
それは最小アドレス単位、cで言うCHAR_BITSが32のマシンと言い換えられるよね
CHAR_BITSが何bitであろうが、cから見ればsizeof(char)==1である事には変わりがない
と言えば分かりやすいだろうか

356:デフォルトの名無しさん
23/02/06 06:44:27.92 xFQJ/1dca.net
>>340
変な結果どころかそもそも&xや&yの次のアドレスを読もうとすることあるから未定義動作だし

357:デフォルトの名無しさん
23/02/06 08:54:18.69 KoRl3hvD0.net
おそらく初心者であろう質問を深読みして暇をつぶすお前らに乾杯

358:デフォルトの名無しさん
23/02/06 11:15:52.75 t0SsOUx4a.net
MISRA-C 2004 の本がある。
MISRA-Cをやっていないと、2004の潜在型/2012の本質型が分からないはず
int 型未満の型を、4バイトに変換してから、元に戻す仕組み。
CPU には、int型未満のレジスタが無いので、使わない部分をマスクするしかない
こういう内部の仕組みは、C/C++ の本には載っていない
こういう変換を知っている香具師は、
むしろ初心者じゃなくて、かなり研究している香具師
普通の香具師は、こういう仕組みを知っているはずがないから。
C/C++の本には載っていないはず

359:デフォルトの名無しさん
23/02/06 11:23:50.95 KoRl3hvD0.net
そりゃ絶対とは言わないけどさ、詳しいのにあんな質問の仕方ならかなりひねくれてるわ

360:デフォルトの名無しさん
23/02/06 15:55:39.76 Pcm2g4vQ0.net
1 byte は 8 bit とは限らないってことだな。
1 octet は 8 bit 固定と決まっているが。

361:デフォルトの名無しさん
23/02/06 17:55:31.90 KoRl3hvD0.net
いやでもマシンによってバイトのサイズは変わるかもしれないけど、
少なくともC言語のchar型は8ビットでしょ?違うの?

362:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cf3e-F1up)
23/02/06 18:07:02.20 uFl4yuTv0.net
>>358
ちがうよ。 CHAR_BIT がなんのためにあると思ってんの。

363:デフォルトの名無しさん
23/02/06 18:13:28.24 X/MVAKzo0.net
>>355
そういうCPUの制約を気にしなくていいのが高級言語だと思うけど違うんかね?
そういうCPU相手のコンパイラならマスクするなり0埋めするなりしてるんじゃない?
想定外のCPU相手なら起こりえるかもしれないけど、それはしょうがないよね

364:デフォルトの名無しさん (スップ Sddf-WS7p)
23/02/06 18:36:57.74 Zh5BYfUjd.net
Cは処理系定義が至る所にあるからな
intが2byteの環境もあるし

x86(x64)しか使わないと決め打ちできりゃいいけど
しょぼいCPU向けのしょぼいコンパイラのこと考えなきゃいけないとかなり面倒くさい

365:デフォルトの名無しさん
23/02/06 19:21:28.86 zDYmZQkKa.net
>>360
> そういうCPUの制約を気にしなくていいのが高級言語だと思うけど違うんかね?
そういう人はJavaなりC#なりを使えばいいと思うよ

366:はちみつ餃子
23/02/06 20:45:09.59 uFl4yuTv0.net
>>360
システム記述言語として使うことが想定内にあるので高級言語の中では低級なほう。
半世紀前に登場した時点では高級だったかもしれんがそのときの事情を引きずり続けてたら高級になりきれないのもしょうがない。

367:デフォルトの名無しさん
23/02/06 21:35:59.24 T2gDixZS0.net
中の下あたり?

368:デフォルトの名無しさん
23/02/06 21:49:50.35 LM+FnE4L0.net
>>363
> 半世紀前に登場した時点では高級だったかもしれんが
当時すでにPL/1とかPascalとかあったのに何を言ってるんだか

369:デフォルトの名無しさん
23/02/07 04:23:47.45 pZBVLYXq0.net
高級比べなんてウルトラしょーもない比較してんの初めて見たwww

370:デフォルトの名無しさん (JP 0Hbf-lzBW)
23/02/07 08:13:05.30 RNTsodhvH.net
格納サイズが1octetな符号無し/符号付きの型

371:デフォルトの名無しさん (JP 0Hbf-lzBW)
23/02/07 08:15:09.01 RNTsodhvH.net
>>349
等しいかどうかだけなら
そこまで神経質にならなくても良いんじゃなかろうかと

372:デフォルトの名無しさん
23/02/07 08:51:22.05 X22gDAEx0.net
>>355
> CPU には、int型未満のレジスタが無いので
x86にはAL/AHレジスタがあるぞ

373:デフォルトの名無しさん
23/02/07 09:53:53.00 DwAJ4k/cd.net
>>359
つまりcharはマシンのバイトなのでmemcmpではバイトオーダーなんて気にしなくていいって話だろ

374:デフォルトの名無しさん
23/02/07 13:10:28.46 3xIDowU30.net
>>359
すまん、8ビット固定じゃなくて8ビット以上なんだな
>>370
char型は1バイト固定だからエンディアンは関係ないよな

375:デフォルトの名無しさん
23/02/07 17:31:48.89 I8JfvgXk0.net
>>360
Cは色々なCPUで使える使いやすいアセンブラのようなものと思った方が良い。
色々な工夫をしてあたかも高級言語であるかのように見える状態にまで持ち込んだのだ。

376:デフォルトの名無しさん
23/02/07 17:35:32.67 oBLl+Yrl0.net
高級アセンブラ

377:デフォルトの名無しさん
23/02/07 19:08:47.78 0Pg2e1tw0.net
名誉高級言語

378:デフォルトの名無しさん
23/02/08 04:20:38.79 sW7k1sH00.net
なるほどね

379:デフォルトの名無しさん (ワッチョイ 4f10-4osW)
23/02/08 08:22:16.03 iOvDDO6c0.net
UNIXの解説書に「UNIX OSの移植の為にC言語を開発した」的なことが書かれてたなぁ。

380:デフォルトの名無しさん (ワッチョイ 3fad-2sfl)
23/02/08 23:07:52.52 tLamaggb0.net
そうそう。

381:デフォルトの名無しさん (ワッチョイ 7fcf-EOzK)
23/02/08 23:18:47.11 IYzO9kXQ0.net
へーそうなんだ
デニスリッチーはそうは思ってないみたいだけど

382:デフォルトの名無しさん (ワッチョイ 7f63-4osW)
23/02/09 00:04:11.97 u6buTta60.net
デニスリッチーはゲームで遊びたくてC言語を開発した

383:デフォルトの名無しさん
23/02/09 06:30:22.83 p7lzjqd+M.net
>>376
その辺りの経緯はK&R本でも触れられてなかったっけ?

384:デフォルトの名無しさん
23/02/10 01:35:56.41 y8U7vNGg0.net
形にしたのはken, dmrだろうけど、個人的にはCの精神とCS的な観点はbwkに帰したい
the practice of programing, software tools (in pascal), the awk programing language、あたりからプロファイリング
ライターとしてずば抜けている、unixには特に拘らず節操無し、スタイルに拘りが強い、形式言語大好き
しかしk&rではセカンドオーサーだから、著作自体にどれだけ影響力あったかは?(言及あったっけ)
まあk&rは汚いコードを得意気に語るあたり、dmr成分多めな気がするなあ…

385:デフォルトの名無しさん
23/02/10 01:48:35.12 y8U7vNGg0.net
いやk&rなんだからファーストオーサーはkernighanだわ、素で間違えた

386:デフォルトの名無しさん
23/02/10 02:07:22.27 y8U7vNGg0.net
俺はunix系ソフトウェアツールはベル研が出してるカジュアル資料で学んだ口だけど、手元の年季入ってくたびれたハードコピーを漁るとほぼbwk著
URLリンク(i.imgur.com)
著者は意識してなかったけど、マジ伝道師

387:デフォルトの名無しさん
23/02/10 03:12:31.86 3+3yiXM/0.net
書籍はともかくC自体誰が作ったってデニスリッチーが1人で作ったんだろうが
なんで勝手にカーニハンに帰してんだよおまえの所業は朝鮮人よりヒドイだろw

388:デフォルトの名無しさん
23/02/10 04:20:45.54 y8U7vNGg0.net
>>384
日本PC市場でのPC向けUNIX(minix/bsd/linux)本格参戦前(90'後半?)の情報源は、彼に負う所が多かったろう、というバイアスはまあある
大学にでも所属してないとUNIX機に触る機会も無かったし、俺のように>>383のようなサンプルを見て仕様を想像しただろうアマチュア実装(だからmanページは付いてない)が流布していた
なぜCはUNIX文化から脱却できたのか?という(>>376を念頭に置いた)考察ね
bwkの著作にはCP/M, DOS, winプログラ厶の例が多いし、アーキテクチャ/OS間のポータビリティやアルファベット圏以外への進出を真剣に考えてた稀有な人なのは間違いなかろう
wchar_tやらを提唱したのはその一例だし、それを許容するためにC独特の柔軟な(=至る所unspecified)型/メモリモデルを拵えたわけで
あれ、今やどっちも負債になってるような…
いや理論上頑張ればできるけど、まあ頑張ればね?

389:デフォルトの名無しさん (テテンテンテン MM4f-1Ruw)
23/02/10 08:31:20.48 /qli6azmM.net
カーニハンのWikipediaのページには、C言語の作成には全く関わっていないと書いてあるぞ
出典のインタビューにはリッチーが全部やったと言っている

390:デフォルトの名無しさん
23/02/10 09:02:55.50 IpbZJCuZd.net
なんか色々とそれっぽい事書いてるけど中身全くないのにワロタ

391:デフォルトの名無しさん
23/02/10 13:52:45.73 u7Z+Ehuld.net
>>386
だからライターとしての側面を述べてるのだが

392:デフォルトの名無しさん
23/02/10 14:24:32.35 rXRs96IF0.net
相方を持ち上げるために
自分は何もしてないよと謙るやつか

393:デフォルトの名無しさん
23/02/10 15:51:06.46 OadphjcVd.net
wchar_tに関しては確か日本語版2版に訳者がKへ吹き込んだ、という記述が
いわゆるK&R以外にもK&R共著は無数にあるが、おおむねイノベーターがRでKがまとめ役というのは察せられるし、そこに異論はないよ

394:デフォルトの名無しさん
23/02/10 20:03:34.55 fRHwVLJ/a.net
おまえらかっこつけんな

395:デフォルトの名無しさん
23/02/10 21:52:14.87 CNGsx6gg0.net
LISPに言ってくれ

396:デフォルトの名無しさん
23/02/10 22:02:01.42 ECKlR5jZ0.net
カギ括弧で勘弁

397:デフォルトの名無しさん (ワッチョイ 8a79-sQVB)
23/02/11 17:33:42.32 naJCJAFi0.net
名前カニチャーハンぽいから仕事してなくても許すね

398:デフォルトの名無しさん
23/02/11 21:40:15.68 vXc/j/A4d.net
>>394
はずしたなw

399:デフォルトの名無しさん
23/02/12 05:54:47.01 DTNrGkO70.net
>>394
かに飯じゃないんだ。charは何処へ消えたの。

400:デフォルトの名無しさん (ワッチョイ 8aad-D0vN)
23/02/13 03:01:58.65 euuzmFvH0.net
Kani & chaRhan

401:デフォルトの名無しさん (テテンテンテン MMc6-Dj+E)
23/02/13 03:07:30.87 ww0US2bcM.net
こん平を思い出すな…

402:デフォルトの名無しさん
23/02/14 09:52:16.15 SWO7K81V0.net
カニ入ってる、あぁんリッチ~

403:デフォルトの名無しさん
23/02/14 15:36:46.24 aItu9g/Ad.net
ファミ通のお習字コーナーかよw

404:デフォルトの名無しさん
23/02/15 16:00:13.19 ficf9YEj0.net
最近、Cが熱いのは、どのフィールドですか?
pythonなら、人工知能、みたいな

405:デフォルトの名無しさん
23/02/15 16:1


406:5:56.41 ID:qFuD6UUNM.net



407:デフォルトの名無しさん
23/02/15 16:24:04.96 aDsLy0wQ0.net
純粋なCって実際使われている気がしないんだがなぁ
結局C++使ってるんじゃね?
組み込みとかでさえC/C++じゃなくなりつつあるような

408:デフォルトの名無しさん
23/02/15 16:44:40.14 FSuJDOWl0.net
LinuxはC一筋です

409:デフォルトの名無しさん
23/02/15 19:45:43.63 yIa7rkEJ0.net
Linux は Rust も使われ始めた。
URLリンク(codezine.jp)

410:デフォルトの名無しさん
23/02/15 20:07:02.73 D5gZ9dH30.net
>>403
自動車関係の組み込み開発してるけど純粋なC使ってるね

411:デフォルトの名無しさん
23/02/15 22:41:28.51 PTreX2Lr0.net
不純なCって...

412:デフォルトの名無しさん
23/02/15 22:43:54.06 FSuJDOWl0.net
年齢確認をちゃんとしましょう

413:デフォルトの名無しさん
23/02/16 08:38:15.82 XJzboKn0a.net
不純なCってObjective-Cとかかな
C++はもうCじゃないし

414:デフォルトの名無しさん
23/02/16 10:11:37.88 G6Y1BfCz0.net
表向きCってことにしてるけど、C++コンパイラでコンパイルしてて、ひっそりstringだけ使ってるみたいな?

415:デフォルトの名無しさん
23/02/16 11:50:52.25 xQKS9LtVM.net
0bリテラルやビットフィールド順序指示子などの独自拡張あり

416:デフォルトの名無しさん
23/02/16 11:53:11.52 jE/BygjJ0.net
C言語仕様に取り込んでほしかった

417:デフォルトの名無しさん
23/02/16 13:40:46.45 kLJI764s0.net
0bを0xに変換するフィルタくらいなら、すぐできるだろ

418:デフォルトの名無しさん
23/02/16 13:50:49.50 5p7a/1XmM.net
0bはC23で標準化されるよ

419:デフォルトの名無しさん
23/02/16 13:54:29.69 5p7a/1XmM.net
digit separatorも追加されたから
0b1100'0011'0101'0011
みたいな書き方が出来る

420:デフォルトの名無しさん
23/02/16 15:47:22.38 oZu+eRtF0.net
'がセパレーターなのか。
組み込みで0bが使える処理系は以前からあるけど、
VerilogやVHDLみたく0b1101_0100のようなセパレーターが使えなくてバグの元でしかなかった。

421:デフォルトの名無しさん
23/02/16 17:05:43.13 5AcA3bi5a.net
不純な C って Win32API のことかな

422:デフォルトの名無しさん
23/02/16 17:21:05.96 XEsPtkpG0.net
セパレータに'は文字リテラルとの曖昧性でパースが面倒そうな…
0b表記はtccでさえサポートしてる(セパレータ_, 'は不可)し、俺の普段使いで0b表記を受け付けないのは多分pccくらい
C界隈では区切り文字と桁数はロケールの管轄(闇)という事になってるけど、簡潔に明示指定できるだけで単純にデバッグ出力も読みやすくなるよね?
オクテット区切りなら
ooo_ooo、xx_xxやbbbbbbbb_bbbbbbbb
ニブル区切りはbbbb_bbbb

先行例としてlisp系のformatディレクティブを参考までに
"~[:][base,wid,pad,delim,]R"
Rは専用のb,o,d,xか、rで任意進数を指定
:はデフォルト(wid=3, delim=',)
例: "~:d"→123,456,789

423:デフォルトの名無しさん
23/02/16 17:37:10.74 CsQoVivgd.net
>>413
リテラル導入よりまずはprintf/scanfの強化が先かなと、コンパイラやプログラマがすり替えのも楽になるし
一々baseで割ってfputc、i%sep==0の時にはdelimを吐く、なんてコードを何回書捨てたか分からん
リテラル記法導入は文法に関わるので、あくまで標準は保守的に
formatディレクティブはもう既に混沌としてるから、独自拡張もサポート落とすも自由でいいかと

424:デフォルトの名無しさん
23/02/16 18:37:34.78 jE/BygjJ0.net
2進表記は8進表記より使い道多いと思う

425:デフォルトの名無しさん
23/02/16 19:38:40.25 LB1U3BvE0.net
>>419
printf はともかく scanf なんて使わんだろ

426:デフォルトの名無しさん
23/02/16 19:40:44.28 LB1U3BvE0.net
>>420
てか8進表記なんてun*xのファイルモードでしか使ったことないわ
しかも普通はdefineされたやつ使うから直接書くことはないし

427:デフォルトの名無しさん (ワッチョイ 6a36-D0vN)
23/02/17 10:35:53.81 49a3FDgU0.net
8進数なんて8bitPC時代のグラ512色関連以外で使用する場面あるのかと思ってたけど・・・そうか、アレか。

428:デフォルトの名無しさん
23/02/17 11:02:28.45 DgZQWw4l0.net
octal(リテラル表記)はutf-8の台頭でCで使う機会はかなり増えたと思うが
陽に扱うならだけど
msb2つを多バイト文字の継続フラグ等に割いてるから本質的には6bitで、hexだと人力では読むのも書くのも厳しい

429:デフォルトの名無しさん
23/02/17 11:27:19.29 DgZQWw4l0.net
xx表示だとffbb_bbbbの上4bitに対応するx=ffbbが任意な値に化ける
ooo表記だとff_bbb_bbbで良い感じ

430:デフォルトの名無しさん
23/02/17 13:16:42.61 w2wgHjMGM.net
10進数のテーブルデータ記述するのに桁合わせのつもりで先頭に0を書いた苦い思い出

431:デフォルトの名無しさん
23/02/17 13:53:50.60 2H95YDcjr.net
なんで8進定数のプレフィックスは0oじゃなくて0なんかね?

432:デフォルトの名無しさん
23/02/17 14:15:10.27 fMLNQIVeM.net
人間の指が4本だったら、普段使う数字が8進数になって、コンピューターとの相性も良かったのになw

433:デフォルトの名無しさん
23/02/17 14:24:53.50 vP8p7Q2U0.net
>>422
システムコールを使ったちょっとしたコーディングの場合、オープンモードはdefineされたやつ使うけど、ファイルモードは8進の値を直接指定することが多かった
open("foo", O_CREAT|O_RDWR, 0644)
ここに S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH なんて書いたことはないな
ちゃんとしたコーディングの場合にはファイルモードを指定する別途関数なり定数定義を用意してたりするからそっちの定義ではdefineされた値を使うことはあったけど

434:デフォルトの名無しさん
23/02/17 14:44:42.94 vP8p7Q2U0.net
直接openシステムコール使ってるオープンソースのプログラム、シェルあたりならやってそうだと思って簡単にアクセスできそうなソースコード探してみた
bash見つからなくてzshは見つかったので見てみたらやっぱり直接0600とか書いてるな
URLリンク(sourceforge.net)
その上でumask(0177)とかもやってる

435:デフォルトの名無しさん
23/02/17 18:22:15.54 G6mVZKAVd.net
ESCシーケンスを使うときは¥033

436:デフォルトの名無しさん
23/02/17 20:16:44.94 KJxAAApA0.net
>>430
まあ、コピーライト見たらわかる通りそういう時代だったしね
> * Copyright (c) 1992-1997 ポール・ファルスタッド
マジックナンバー警察じゃないけど流石に今時0777なんて書いてたらレビューで指摘するわ

437:デフォルトの名無しさん
23/02/17 20:50:25.13 vP8p7Q2U0.net
>>432
git のソースコードのリポジトリを clone したのがあったので、git grep O_CREATとかgit grep umask とかするとみんな0600とか書きまくりだった
git blame してみると2021年とか最近でもやりまくり
66e905b7dd0 (XXX 2021-08-25 22:16:46 +0200 82) fd = xopen(index_name, O_CREAT|O_EXCL|O_WRONLY, 0600


438:); 66e905b7dd0 (XXX 2021-08-25 22:16:46 +0200 252) fd = xopen(rev_name, O_CREAT|O_EXCL|O_WRONLY, 0600);



439:デフォルトの名無しさん
23/02/18 09:01:47.10 4a504/qwa.net
C#について教えてください! URLリンク(smartlabo-hp.com) 上記ページを見てログインボタンを作成しました。 このページ内にあるcsvファイルの内容に加えて同csvファイルの[2]にログイン状態という列を足したいです。 ログインしてない状態では[2]は常に0、ログイン成功したら[2]に1が書かれるようにするにはどうすればいいのでしょうか? ご教授よろしくお願いします。

440:デフォルトの名無しさん
23/02/18 09:17:57.34 /Gi8XN260.net
>>434
スレ違い
こっちでやれ
スレリンク(tech板)

441:デフォルトの名無しさん
23/02/18 09:20:32.20 /rOnqr64d.net
ハノイの塔 再帰のアルゴリズムがさっぱりわからない

442:デフォルトの名無しさん
23/02/18 09:21:30.09 /rOnqr64d.net
ハノイの塔 再帰のアルゴリズムがさっぱりわからない

443:デフォルトの名無しさん
23/02/18 09:36:15.97 AfjXtSgB0.net
スタックから覚えようね

444:デフォルトの名無しさん
23/02/18 10:11:08.15 4a504/qwa.net
>>435
すいません

445:デフォルトの名無しさん
23/02/18 12:46:07.82 /8v09ncn0.net
>>426
8進数なのに8と9が使える驚異の仕様だよ

446:デフォルトの名無しさん
23/02/18 12:50:39.59 /Gi8XN260.net
ctype.hに
isdigitとisxdigitがあるのに
isodigitがないというのが
その問題の根にある

447:デフォルトの名無しさん (ワッチョイ 1501-rc3u)
23/02/18 13:42:13.38 c4QxGie20.net
>>433
何を必死になってるのかよくわからんが老害の悪癖は治らないってだけの話かと

448:デフォルトの名無しさん (ワッチョイ 1501-rc3u)
23/02/18 13:44:46.64 c4QxGie20.net
>>440
規格では使えないことになってるしまともなコンパイラならエラーにすると思うぞ

449:デフォルトの名無しさん (ワッチョイ a397-vL47)
23/02/18 14:09:47.51 BJBnPVcc0.net
>>440
規格決めた人に問題がある
ゼロは避けるべきだった

450:デフォルトの名無しさん (ワッチョイ 3d12-+91A)
23/02/18 14:13:43.35 /Gi8XN260.net
みんな日常的によく使う8進定数「0」

451:デフォルトの名無しさん
23/02/18 15:46:52.83 ke/LtjiK0.net
そうか、オレは二進数の0をよく使う

452:デフォルトの名無しさん
23/02/18 16:01:46.62 /Gi8XN260.net
ソースコード上での記数法と
実行環境での表現を混同してる?

453:デフォルトの名無しさん
23/02/18 16:04:29.75 dElKqib40.net
>>444
じゃあ8で。

454:デフォルトの名無しさん
23/02/18 16:16:07.43 /Gi8XN260.net
なんでオーにしなかったのかとは俺も思う
特に小文字オーなら誤読しにくいし

455:デフォルトの名無しさん
23/02/18 16:31:09.02 nz9Z1NDi0.net
1文字でもキーワードを少なくしたかった当時のお洒落だったんだよ
8進表記はunix系OSが全滅すれば廃止でもいいと思うね

456:デフォルトの名無しさん
23/02/18 16:35:07.64 ke/LtjiK0.net
全滅するのに数百年はかかりそう

457:デフォルトの名無しさん
23/02/18 16:40:17.45 /Gi8XN260.net
キーワードつーてもサフィックスだからね
繋がった単語の中の部分なわけで
他の識別子との衝突の虞はない

458:デフォルトの名無しさん
23/02/18 16:42:06.93 /Gi8XN260.net
あ、しかし
int o33 = o33;
みたいになったらマズいのか
英字サフィックスは

459:デフォルトの名無しさん
23/02/18 16:47:35.72 J9rEVsST0.net
>>442
gitのソースコード、openだけじゃなくてファイルモードを引数に取る関数なんかもあるけど、誰もマクロ定数なんて使って無いや
全員老害か

460:デフォルトの名無しさん
23/02/18 16:47:37.88 ke/LtjiK0.net
"%05d" こんな風な指定して出力した10進数を、読み取らせても大丈夫だろうか?

461:デフォルトの名無しさん
23/02/18 16:49:48.25 c4QxGie20.net
>>453
馬鹿なの?
普通に 0o01234567 だろ

462:デフォルトの名無しさん
23/02/18 16:50:05.14 FZadOySQ0.net
>unix系OSが全滅すれば
泥もiOSもunix系だよね?
ゲーム機も基本OSは・・・

463:デフォルトの名無しさん
23/02/18 16:52:50.83 6dDb+no40.net
(8じゃなく)6の倍数bitワードのマシンで産まれた痕跡だっけか
>>443
8と9が混じってるかどうかで8進か10進か勝手に解釈を変える方がよっぽど厄介だから、不正として弾くのが正しいね
俺は8進が好きだし、幸いやらかした経験も無いけど
他言語では明示的な0oプレフィックスもよく見掛けるし、もちろん使えるなら使おう

464:デフォルトの名無しさん
23/02/18 17:02:18.46 c4QxGie20.net
>>454
しつこいね
具体的にどのコードの話でそいつがいつから作られてるのか書いてみ

465:デフォルトの名無しさん
23/02/18 17:08:03.05 QF/qRD4Qd.net
>>443
bad numberとか言われて
なんで特定の数字を差別するのか?キリスト教のなんかか?とまじで悩んだw

466:デフォルトの名無しさん
23/02/18 17:13:05.59 nz9Z1NDi0.net
IT業界でもwhitelist→allowlistとか言葉狩り起きてるしそのうち言語にまでLBGT配慮()きそうだわな
int ニガー = 07214545;
エラー:差別用語です

467:デフォルトの名無しさん
23/02/18 17:15:09.07 J9rEVsST0.net
>>459
例えばリポジトリ直下の copy.c で定義されている copy_file(dst,src,mode) その関数自身の定義に 0666 とか直接使っている
まあこの関数は 2008 年とかに作られたものだけど、その関数を使うコードが今月コミットされていて引数に 0666 直指定
a5792e9d092 xxxxxxxxxx 2023-02-06 20:08:11 +0100 2293) if (copy_file(dest, rebase_path_squash_msg(), 0666)) {
他 copy_file 使っているところも全部直指定

468:デフォルトの名無しさん
23/02/18 17:19:06.07 c4QxGie20.net
>>460
確かに最初見た時は俺も はあ?ってなったわw

469:デフォルトの名無しさん
23/02/18 17:19:18.78 J9rEVsST0.net
>>442
比較的新しめ?のnginxなんかは流石に関数の引数に 0600 とか書いてないけど、それでもOSのヘッダファイルの定数定義は使ってないな
自前の定義に #define NGX_FILE_DEFAULT_ACCESS 0644 とかだ
これも老害になっちゃう?

470:デフォルトの名無しさん
23/02/18 17:26:26.26 c4QxGie20.net
>>462
git は 15年以上前に初版が作られたソフトだしリーナスはもっと前からソフト開発してるだろ
ポリシーによるけどソースコードのコーディング方法を変えないことは珍しくないよ
>>464
nginx も 18年前のソフトだし作者のイーゴリ・ウラジーミロヴィチ・シソエフ
50歳超えな

471:デフォルトの名無しさん
23/02/18 17:27:46.90 nz9Z1NDi0.net
>>464
OS側の定義を使わないのは特定のOS依存をしたくないか見切りを付けてるからだな
むしろ老害避けなんじゃないの

472:デフォルトの名無しさん
23/02/18 19:21:30.21 hE3AXWNH0.net
0x 0o 0b (0d)

473:デフォルトの名無しさん
23/02/19 06:15:13.00 B9Nm4zxk0.net
否定から入ったり無礼な言葉ばかり使う人って他人から相談されなくなるよね

474:デフォルトの名無しさん
23/02/19 10:30:13.08 85faJvYM0.net
それって思いっきりアスペの特徴なんだよな

475:デフォルトの名無しさん
23/02/19 10:43:35.95 xrmlsZvMa.net
だからネットでイキってるんだろ

476:デフォルトの名無しさん
23/02/19 10:58:14.43 5TCni8wB0.net
ダヴィンチもエジソンもアインシュタインもモーツァルトもイチローも
みなアスペルガーなんだ

477:デフォルトの名無しさん
23/02/19 11:07:26.13 xSIr/CQB0.net
>>471
まあ、それはそうだと思うよ
長嶋(一茂じゃねーぞ)なんかもそうだと思う

478:デフォルトの名無しさん
23/02/19 12:33:47.26 rUsPVZJ7a.net
ダヴィンチもエジソンもアインシュタインもモーツァルトもイチロー並みの才能があれば煙たがられることなく受け入れられるということよ。

479:デフォルトの名無しさん
23/02/19 12:50:21.37 oybarVkGd.net
無知丸出しはこっちでやれ
スレリンク(tech板)

480:デフォルトの名無しさん
23/02/19 12:53:18.65 F5EkyCpBH.net
ムチムチ

481:デフォルトの名無しさん
23/02/19 13:01:28.32 yOeRloac0.net
>>449
英語では 0 (ゼロ) と書いて o (おー) と読むこともあるので、それが影響したのかも知れないね。

482:デフォルトの名無しさん
23/02/19 14:04:50.86 xSIr/CQB0.net
>>476
printf("%o\n", 1234);
とかできるからその説はちょっと弱いかな

483:デフォルトの名無しさん
23/02/19 14:48:58.38 5TCni8wB0.net
アスペルガーは自分に対しても他人に対しても容赦しないから
凡人に嫌われる
才能のせいではない

484:デフォルトの名無しさん
23/02/19 14:55:52.34 BF2g/YB8d.net
ギフテッドは必ずしも自閉症を伴わない

485:デフォルトの名無しさん
23/02/20 04:15:44.39 +uPK1ifA0.net
>>436
再帰をしないなら、コードを書けるの?

486:デフォルトの名無しさん
23/02/20 09:47:26.91 N/iEiUCGd.net
>>480 チャレンジしたことはないけど、たぶん再帰なしでも書けません。どうか御教示をお願いします。

487:デフォルトの名無しさん
23/02/20 09:50:41.85 N/iEiUCGd.net
ハノイの塔は再帰でしか解けない

488:デフォルトの名無しさん
23/02/20 09:51:19.24 cTmdkEXkd.net
んなこたあない

489:デフォルトの名無しさん
23/02/20 09:57:18.63 KyZtaEjed.net
待ち行列やLIFOは再帰的な処理を非再帰にするときの友

490:デフォルトの名無しさん
23/02/20 11:00:02.06 Htkx1bCsd.net
再帰呼び出しする所をpushに変えてgoto最初
returnの所をpopに変えてgoto最初
時間があればそこからgotoを取り除く
gotoが輝く場面

491:デフォルトの名無しさん
23/02/20 11:21:38.14 N/iEiUCGd.net
>>485 goto文を使うのですね 覚えておきます

492:デフォルトの名無しさん
23/02/20 11:58:19.08 KyZtaEjed.net
アンチgoto教信者は近頃減ってきているが
絶滅はまだ先のようだな

493:デフォルトの名無しさん
23/02/20 12:38:57.43 sAm6cEmU0.net
スパゲティGotoをたんと召し上がれ!

494:デフォルトの名無しさん
23/02/20 13:04:25.72 Htkx1bCsd.net
再帰からループへの変換はgotoのある言語なら機械的にできるからね
存在すら許さない言語は発想を阻害してると言える

495:デフォルトの名無しさん
23/02/20 13:35:56.24 JqcJZDsUd.net
while(スタックが空になるまで){
  pop();
  ...
}
って書き始めるけどな

496:デフォルトの名無しさん
23/02/20 21:19:52.57 I5iz8R+L0.net
>>490
戻りのpopはそれでいいけど呼び出しのpushは処理がぶった切れるから
gotoがないとかなりややこしい変換になるよ

497:デフォルトの名無しさん
23/02/20 23:51:00.80 7qph/rf50.net
>>485
push/pop はルール違反
それに二方向、多方向への再帰はそう簡単じゃないですけどね
二分木の全要素を列挙する非再帰プログラムを書いてください

498:デフォルトの名無しさん
23/02/21 00:08:57.34 Cn1Xq+JJ0.net
がんばってgoto無しで作ったりしてたなあ

499:デフォルトの名無しさん
23/02/21 06:59:46.53 1n1W4gUgd.net
push/popはルール違反て何それ?

500:デフォルトの名無しさん
23/02/21 09:59:11.37 MGN7/c1b0.net
「俺がルールブックだ」

501:デフォルトの名無しさん
23/02/21 10:33:24.95 5S8ZyEUUd.net
「ウリが蟹飯リッチニダ」

502:デフォルトの名無しさん
23/02/21 10:51:10.49 NudgdpLh0.net
豪華な蟹飯が思い浮かんだ

503:デフォルトの名無しさん (スプッッ Sd43-avQ1)
23/02/21 13:43:23.05 1n1W4gUgd.net
苫小牧だっけ?

504:デフォルトの名無しさん (アウアウエー Sa13-1XUy)
23/02/21 16:27:46.36 dWpsoJfPa.net
>>436
>>481
テスト
URLリンク(ideone.com)

505:デフォルトの名無しさん (ワッチョイ 755f-rVJW)
23/02/21 16:50:09.17 ncQgkmT30.net
チャットジピティれカ�


506:X



507:デフォルトの名無しさん (スププ Sd43-CAVk)
23/02/21 17:05:45.18 j4WOJdo9d.net
>>499 見事です 私はまだ初級なのでvectorだのcstdioなど見たこともありません

508:デフォルトの名無しさん (スップ Sd43-Tk/Z)
23/02/21 17:54:02.02 5S8ZyEUUd.net
>>499
お、動いた動いた!

509:デフォルトの名無しさん (ワッチョイ cb63-BTrK)
23/02/21 17:55:02.20 MGN7/c1b0.net
goto が一つもない・・・

510:デフォルトの名無しさん (アウアウウー Sa49-UkxH)
23/02/21 19:30:27.79 oAMbgY5Ra.net
goto文は禁じてではないかな?
C言語では

511:デフォルトの名無しさん (スプッッ Sd43-avQ1)
23/02/21 19:48:08.10 1n1W4gUgd.net
俺様ルールは興味ないから

512:デフォルトの名無しさん (ワッチョイ cb63-BTrK)
23/02/21 19:50:05.73 MGN7/c1b0.net
CPUレベルまで行くと、GOTOは使いまくりだろう

513:デフォルトの名無しさん (スプッッ Sd43-avQ1)
23/02/21 19:57:40.07 1n1W4gUgd.net
機械語1命令ごとにPCを更新するのもgotoかw

514:デフォルトの名無しさん (テテンテンテン MMcb-7AbM)
23/02/21 20:39:53.11 pHGJPw2cM.net
gotoなんて所詮関数内にしか飛べない
関数が小さければなんて事はない
巨大な関数はgoto以前に悪

515:デフォルトの名無しさん (ワッチョイ cb63-BTrK)
23/02/21 21:02:34.32 MGN7/c1b0.net
昔いた現場は、1関数ごとに設計書を何枚も書かされてたな
それでみんな、関数の数を極力減らしてた
行き着くところ初期とメインと終了の三つ
それぞれが何百行にもなってしまったw

516:デフォルトの名無しさん (ワッチョイ 2379-u8a6)
23/02/21 22:12:19.48 QJTSRl8U0.net
そういうのいいから

517:デフォルトの名無しさん (ワッチョイ e379-+91A)
23/02/21 22:59:26.21 fpEKur8e0.net
硬直化して目的を忘れた「管理」に泣かされたもんだけど
それは昭和も今も変わっとらんだろ

518:デフォルトの名無しさん (ワッチョイ cb63-BTrK)
23/02/21 23:48:29.43 MGN7/c1b0.net
プロジェクト管理はそのうちAIがやるようになるんだろうか

519:デフォルトの名無しさん
23/02/22 03:11:04.32 ZjvNTHuW0.net
AI「壊れるまで働け、人間共よ」

520:デフォルトの名無しさん
23/02/22 06:39:57.73 6aYkdgkrd.net
>>491
continueを知らないのか?

521:デフォルトの名無しさん
23/02/22 15:13:03.32 rwr+6TWF0.net
>>415
やはり構文解析器(プリプロセッサ含む)に手を入れないとデリミタに'は難しそうに思うの
暇だったので>>413を(ナイーブに)
# define b(n) (strint(#n, 1u))
# define t(n) (strint(#n, 2u))
# define o(n) (strint(#n, 3u))
# define x(n) (strint(#n, 4u))
unsigned
strint(const char cs[], const unsigned wt){
long d;
unsigned u=0;
do { // valid digis: ascii '0'..'^'
if((d=*cs)<0||d>'_'-'0'+1) continue;
u<<=wt, u+=d;
} while(*cs++)
return u
}
b('1100'1010'1111'1110)
b(1100_1010_1111_1110)
o(145;366)
x(<:!?>)
全て0xCAFEに等しい、ただし' が奇数個のケース、 b(1100'1010'1111'1110)
マクロ引数を区切る,の使用はプリプロセッサがエラー吐く(cc -Eの段階)
missing terminating '/" character
too much argument
etc. (pcc/tcc)
ex/m4とか外部ツールでプリプロセスするなら別だけど、c/cプリプロセッサの構文内では不可能に思う(当然リテラルとして自然な仕様拡張も)

522:デフォルトの名無しさん
23/02/22 15:22:17.41 mafEi4nvd.net
>>467
アセンブリやいにしえの言語は明示的なdecimal prefixを持ってるね
forthだと#123と変種?の&123
#の方がthe (decimal) 123と読めて個人的に好み

523:デフォルトの名無しさん
23/02/22 15:23:53.30 mafEi4nvd.net
the (decimal) number 123です

524:デフォルトの名無しさん
23/02/22 15:28:02.92 mafEi4nvd.net
299,792,458と書けたら素敵だけど
ds(299,792,458)が引数を区切る,と区別出来ないから無理だね

525:デフォルトの名無しさん
23/02/22 16:23:34.63 GDrSYSMbM.net
ほかの言語では、123_456_789の様にアンダーバーで区切るのが多い
Cでも出来たと思うけどなぜか'なんだよな…
アンダーバーが良かった

526:デフォルトの名無しさん
23/02/22 16:41:13.08 3MJ5isf30.net
C++に合わせたんでしょその方が都合がいいだろうし

527:デフォルトの名無しさん
23/02/22 16:52:25.15 3MJ5isf30.net
規格の紹介をしてる>>415に対してそれは解析器を変えないと難しいとか言ってる>>515は何なんだ?
C23でこうなります、なんだから難しいもクソもないと思うんだが笑

528:デフォルトの名無しさん
23/02/22 18:12:39.68 /HhOnmf9d.net
規格を批判してるんだが

529:デフォルトの名無しさん
23/02/23 02:20:36.04 zOdHjjZs0.net
まだワーキングドラフトだから対応するもしないのも自由だと思うし、c2xはアトリビュート関連くらいしか追ってないが、一応意見を
せめて不正なトークンとして弾ける約物にしてほしいな
0b10101011未対応(0cでも何でも)は不正な8進
トークン構成文字0b1010_1011なら不正な型サフィックスとして不正なトークンを報告できるので、ユーザに手直しさせるのも自明
パース状態をトグルする'はEOFまで食うので、エラーが報告されたとしてもcryptic
頻用したと仮定すれば、1/2の確率で釣り合うって字句解析をパスしてしまうのも厄介

530:デフォルトの名無しさん
23/02/23 04:08:08.64 zOdHjjZs0.net
>>416
俺は16bit程度なら一行で書いてしまうけど、より大きい整数型なら行を分けて書いてるな
(u)int64/128_tなんかで二次元データエンコードする時はこんな感じで
uint64_t plaid = 0b\
01010101\
10101010\
...\
;
ゲーム盤、行列、画像、畳み込みカーネル、マスク等、重宝する機会は多い
pbmそのままだからstatic変数にスクリプトでブチ込むのも楽で非常に重宝
普通(2)/8/10/16のみで任意進数(ビット深度)を指定できないのが歯痒いところ

531:デフォルトの名無しさん
23/02/25 15:46:50.99 2A7WVGnna.net
C++におけるユーザー定義の接尾辞で
_数字 みたいな奴を許可していなかったら桁区切り文字はアンダースコアになってた

532:デフォルトの名無しさん
23/02/26 07:07:10.46 Gr0Cvu5K0.net
だな

533:デフォルトの名無しさん
23/02/26 07:37:36.32 oQAKiXWbd.net
自己参照構造体を、テキストのコードが難しくて理解できない

534:デフォルトの名無しさん
23/02/26 07:49:42.99 ymHOkbuH0.net
>>525
まさか4567_8(→4567 of type "8")?
珍妙な…

535:デフォルトの名無しさん
23/02/26 07:58:07.27 ymHOkbuH0.net
extern "C"で混ぜるにはもう違いが多過ぎるし、c++と足並み揃えるのやめればいいのに

536:デフォルトの名無しさん
23/02/26 08:42:57.62 Gr0Cvu5K0.net
C++が流行りだした当時のCの財産を捨てずに済むってだけの話で
これから新しく作るものの足かせになるのは本末転倒だよな

537:デフォルトの名無しさん
23/02/26 12:16:51.44 0OyaNSrI0.net
C言語で構造体の双方リンク理解する前にテキストエディタ作るようなことあったら
激重エディタつくってただろうなぁと経験してもないことを妄想。
1文字挿入→その後ろの文章を全部コピーでずらして・・・

538:デフォルトの名無しさん
23/02/26 18:12:24.76 zCQzTRZzM.net
>>531
emacs なんかは1文字挿入のたびに後ろ全部コピーしなくても良いようにギャップバッファという手法を使っていた

539:デフォルトの名無しさん
23/02/26 18:34:27.49 akN/HRard.net
>>532
emacs!
Esc x compile
に何度も助けられた
一人で五万行くらいのコードを書いてたからな
ヘッダーファイルだけで50くらいあった

540:デフォルトの名無しさん (テテンテンテン MM0e-CSgJ)
23/02/26 20:20:17.76 Qgs0XTsDM.net
>>532
過去形だけど今もだぞw
ギャップバッファは、最近流行りの複数カーソル使って離れた複数箇所を一気に編集すると、大量にコピーが発生して重くなる可能性がある
なのでこれからテキストエディタを実装するには、Piece Tableを使う方がいいと思われる

541:デフォルトの名無しさん (ワッチョイ 76cf-okFi)
23/02/26 20:22:02.57 OdlyZwjm0.net
Slackware+JEに入ってたMuleを3年くらい使ってたけど別のエディタに移っちゃったな
悪くないと思うんだけど時代に合ってないというか、貧相な環境の方が使い出があるエディタだったな

542:デフォルトの名無しさん (テテンテンテン MM0e-CSgJ)
23/02/26 20:31:33.93 Qgs0XTsDM.net
EmacsとかVimを貧相と思うのは、端末内で動かせるようになってるからだ
GUIはオマケみたいな扱いだ
でも、それはそれで存在意義はある

543:デフォルトの名無しさん (ワッチョイ da79-Arif)
23/02/26 20:37:35.64 gahU4Yv80.net
viは来世紀にも残ってそうだから最初に覚えたなあ
eなんとかはデベロッパーのオナニーが透けて見えて気持ち悪すぎた

544:デフォルトの名無しさん (ワッチョイ 7663-W5vA)
23/02/26 21:16:43.25 fbmwPkIL0.net
viの様にコマンド覚えなくても使えたから便利だったぞ

545:デフォルトの名無しさん (ワッチョイ 76cf-okFi)
23/02/26 22:04:54.83 OdlyZwjm0.net
>>536
ちゃう、Emacsを貧相だと思ってるんじゃなくて計算機資源が豊かでない環境の方が使い出があるって言ってるんだよ

546:デフォルトの名無しさん (ワッチョイ 7db3-sBbk)
23/02/26 22:36:28.47 0m6hfJUV0.net
最初に使い込んだエディタの話?
俺はVZだったな

547:デフォルトの名無しさん
23/02/27 04:08:09.05 naBje3l2d.net
スレちがいだし
わりとしょうもないレベルの自慢話になってることを警告しておくぞ

548:デフォルトの名無しさん
23/02/27 07:30:50.50 U2h1s9M4d.net
ダム端末使ってた頃はviが有り難かったけど
今となっては当時慣らした人はともかく
若いやつにお奨めするもんじゃない
と俺は思うな

549:デフォルトの名無しさん
23/02/27 09:43:18.06 jlyK/+pC0.net
>>531
素のCだと何もないからデータ型を一つ一つ自分で理解していけていいという意味?
例えばC++ならlistがあるから理解しないままになる?
でもlistとvectorの違いを知らなければ結局

550:デフォルトの名無しさん
23/02/27 12:21:44.99 3zla3lE+0.net
>543
Cやる前はアセンブラだったからねぇ。アセンブラでの処理方法をそのままC言語に持ち込んでた。
当時はでっかく領域確保したらその領域で全部処理するって思考しか無かった(自動変数って概念も無し)。

551:デフォルトの名無しさん
23/02/27 12:29:45.17 U2h1s9M4d.net
ダミーセクションは使ってたけどね

552:デフォルトの名無しさん
23/02/27 17:11:48.94 3MgFEhuya.net
>>543
そこはdequeですよ常考

553:デフォルトの名無しさん
23/02/28 10:24:33.59 7/0mM3ia0.net
>>544
>自動変数って概念も無し
自分はデバッグでディスアセンブルを読むぐらいしか用事がないんだけど、
ゼロからアセンブリを書く場合はスタックの操作で領域管理したりはしないと?

554:デフォルトの名無しさん
23/02/28 10:32:54.86 7/0mM3ia0.net
>>546
listやvectorはほとんど使わない感じ?

555:デフォルトの名無しさん
23/02/28 12:10:45.99 dNNgH11Kd.net
スタックはレジスタのバックアップが主な用途で
メモリ変数はグローバルがデフォだった
だから変数表を作ってた

556:デフォルトの名無しさん
23/02/28 16:07:40.92 Ki6W+L2N0.net
あの 先頭に戻って検索 するかどうかを維持する変数名ってどんなのがいい?

557:デフォルトの名無しさん
23/02/28 16:44:22.88 295BsPXb0.net
>スタックの操作で領域管理
8086系だとスタックレジスタ直接使うと遅いんじゃなかったっけ?
MOV AX、[SP+10]
とかやるより
MOV AX、[TEMP]
...
TEMP: DW 0000h
ってやる方が速いとか。

BASIC時代のマシン語CALL時のレジスタエリアは16バイトってトラウマが・・・。

558:デフォルトの名無しさん
23/02/28 21:38:56.96 EshvOxGGa.net
ダミーセクションって、IBMのメインフレームのアセンブリ言語の DSECTですか?

559:デフォルトの名無しさん
23/02/28 21:47:36.63 svcsEAcG0.net
うん

560:デフォルトの名無しさん
23/03/01 20:42:10.06 fErXdR4ud.net
>>550
auto_reverse
絶対これにしなさい

561:デフォルトの名無しさん
23/03/01 23:36:37.44 5C60qBo90.net
>>550
cyclic

562:はちみつ餃子
23/03/02 00:05:39.48 pZfd6NSK0.net
そういうのはいわゆる自転車小屋の議論になりがち。
そこそこ盛り上がりはすることもあるかもしれないけどあまり意味のある結論は出ないよ。

563:デフォルトの名無しさん
23/03/02 03:04:30.24 eGjuMjwU0.net
するか否か、1ビットのフラグの命名に他者を巻き込む議論が本当に必要ですかということか
すなわち名前はflagとかで変数宣言部に日本語コメントでも添えた方が建設的ということだな?違うか?

564:デフォルトの名無しさん
23/03/02 07:06:54.36 xa7MSIOTd.net
変数名の付け方は案件による
無論、一般論などない
主観と思い込みで強弁するやつはいるけどね

565:デフォルトの名無しさん
23/03/02 09:03:08.54 GoAAqo+J0.net
C-gengo wa mada nihon-go kakenai no?
bool 先頭に戻って検索 = 真 ;

566:デフォルトの名無しさん
23/03/02 16:32:03.69 N0PfEOQ90.net
質問の仕方でどういうコード書いてるか垣間見えるのはあるな
int searchtype = FROM_TOPとかBOTTOMとかBACKWARDみたいな持ち方ならそんな質問出ないだろうし

567:デフォルトの名無しさん
23/03/02 17:21:24.58 y83mRLNqd.net
>>551
どのCPUでもダイレクト指定が速いに決まっとりまんがな
レジスタ相対はレジスタにディスプレースメントを加算してからアドレス出力するんだから

568:はちみつ餃子
23/03/03 01:19:24.14 5ZXS0iFm0.net
>>561
個々の命令の速度で考えればその通りだが今どきの CPU だと
パイプラインに隠れて差が出ない (差があっても観測不能なほどの極小) ってことも普通にあるんじゃないの?

569:デフォルトの名無しさん
23/03/03 08:02:43.32 an7QtCXRd.net
1Hzぐらいの速度で計測すれば何かわかるかもしれない

570:デフォルトの名無しさん
23/03/03 08:14:12.93 jW6Dg0m70.net
1Hzだと速度的には1秒周期なので測定の意味がない

571:デフォルトの名無しさん (ワッチョイ 7663-W5vA)
23/03/03 22:40:53.27 1TAJ9GtV0.net
もしかするとCPUクロックをそこまで落としてデバッグしたいとかw

572:デフォルトの名無しさん
23/03/04 06:01:07.88 2lfmGWRw0.net
[sp+10]はメモリアクセス1回だが
[temp]は2回だな
8086だとキャッシュないからメモリのウエイト数の影響をモロに受ける
どciscでパイプラインなんかないし

573:デフォルトの名無しさん (スッププ Sd33-0t2P)
23/03/04 19:01:51.83 siYz8HOgd.net
Cのコードを書くのにアセンブラまで意識するのか、、
立派な心がけあるな
精進しなされ

でも、CPUやコンバイラで違うじゃん、、、

574:デフォルトの名無しさん
23/03/04 21:31:31.02 mhQJa69K0.net
>>566
勘違いしてない?

575:デフォルトの名無しさん
23/03/04 21:33:37.98 K3zEUrJN0.net
[sp+10]が1回なら[temp]も1回じゃね
命令のフェッチは数えないんでしょ?
プリフェッチはパイプラインみたいなもんじゃね?

576:デフォルトの名無しさん
23/03/04 23:58:44.62 D8X7oasM0.net
素の8086にsp使えるアドレッシングはないのでbpで…
mov ax, [bp+disp] 命令3~4バイト 8+9クロック
mov ax, [TEMP] 命令4バイト 8+6クロック
と実効アドレスの計算時間に差があったという大昔のお話

577:デフォルトの名無しさん
23/03/05 06:15:37.72 nSao/Dea0.net
>>568
何が?

578:デフォルトの名無しさん
23/03/05 06:58:01.26 94fNx05VM.net
8086には現在のような深いパイプラインは無いがそれでもEU(Execution Unit : 実行ユニット)とBIU(Bus Interface Unit : バスインタフェースユニット)は独立しており
メモリアクセスと内部のALUはそれぞれ別々に動作する
ある意味初歩的な2段パイプラインとも言える構造で単純なクロックサイクルの加算とはならない

579:デフォルトの名無しさん
23/03/05 07:13:34.61 cmZGkkdl0.net
>>571
>[temp]は2回だな
なぜ2回?

580:デフォルトの名無しさん
23/03/05 08:11:12.86 nSao/Dea0.net
>>573
temp: dw 0000h
つまりtempはメモリに置かれている
tempのREADで1回、
[]によるインダイレクトでもう1回
だろ

581:デフォルトの名無しさん (ワッチョイ 13ad-NCuH)
23/03/05 12:43:47.21 nmaj3sub0.net
>>567
昔昔はそういうものだったんよ。
Cは、
・プログラマの責任において何でもできる
・コンパイラはプログラマの意思に忠実であれ(余計な最適化なんかするんじゃねえ!)
ってこと。だから、
a=a+1;と、a++;は違う。
前者は加算命令、後者はインクリメント命令になってほしいというのが、プログラマの意志。
ただ、Cが色々な場で広く使われるようになって、最適化を進めるしかなくなったから、そんなのどうでもいいことになったけど。

582:デフォルトの名無しさん (ワッチョイ 1969-zdzo)
23/03/05 12:47:05.12 s1YdjeUN0.net
>>574
だからさ……それを2回っていうなら、[sp+10]も2回だろ

583:デフォルトの名無しさん (ワッチョイ d163-PMd1)
23/03/05 13:30:59.36 nSao/Dea0.net
>>576
何で?
即値はフェッチ時点で取り込まれているのに

584:デフォルトの名無しさん (ワッチョイ 1969-zdzo)
23/03/05 15:05:57.71 s1YdjeUN0.net
>>577
tempもtemp自体は即値だよ
[sp+10]と[temp]の違いはレジスタ相対かどうかだけ

585:デフォルトの名無しさん (ワッチョイ 13ad-Qpn1)
23/03/05 15:07:29.13 YlwUczDE0.net
>>575
ま、しかし、昔はコンパイラの最適化がしょぼかったというのもあるな。
CPU (特に 8 bit CPU とか) がC言語等のいわゆる高級言語を全く意識して作られていないというのが最大の問題だったのかも知れないが。

586:デフォルトの名無しさん (ワッチョイ d163-PMd1)
23/03/05 15:41:40.37 nSao/Dea0.net
>>578
DWディレクティブで定義してるんだからリテラルの類だよ
命令コードと一緒にフェッチされる即値とは根本的に違う

587:デフォルトの名無しさん
23/03/05 16:48:35.64 0aHQQO/od.net
>>577
CPU仕様によるが
68000では8ビット範囲以内のディスプレースメントは命令中に含まれてたが
8086はどうだっけ…

588:デフォルトの名無しさん
23/03/05 17:03:05.50 nSao/Dea0.net
>>581
いやここはCPU仕様には関係ないぞ
68kにしたってdc.lディレクティブで置いた定数はディスプレースメントじゃないし

589:デフォルトの名無しさん
23/03/05 17:27:59.49 0aHQQO/od.net
間違い、>>581は6809の話だった…

ややこしくなってるが
MOV AX、[SP+10]
がspレジスタから10バイト後を読むなら
MOV AX、[TEMP]
はアドレスTEMPを読む意味だろ
8086ニーモニックをよく知らないが

590:デフォルトの名無しさん
23/03/05 17:44:11.51 nSao/Dea0.net
>>583
6809にしたってFDBディレクティブで置いた定数はディスプレースメントじゃないし

591:デフォルトの名無しさん
23/03/05 18:29:27.81 On/jxRV/0.net
#include <stdio.h>
#include <math.h>
void main(void){
double a, b, c;
double x1;
a = 4;
b = -3;
c = 1;
x1 = (-b + sqrt(pow(b,2) - 4*a*c)) / (2 * a);
printf("%f\n", x1);
}
printfが-nanて表示します。これはどういう意味でしょうか?

592:デフォルトの名無しさん
23/03/05 18:43:57.85 KnQWIUK4d.net
>>585
コンバイラかて人間や
こんなつまらん二次方程式の解をなんぞ解きたくない
そう言う意思表示や

593:デフォルトの名無しさん
23/03/05 18:53:30.15 M62PQQGq0.net
>>585
printf("(%f)\n",pow(b,2) - 4*a*c);

594:デフォルトの名無しさん
23/03/05 19:03:21.29 On/jxRV/0.net
あー、なんかわかってきました
そういうことか
サンクス

595:はちみつ餃子
23/03/05 19:07:20.35 AE3nXsIn0.net
>>585
sqrt に負数を渡した場合には定義域エラーとなり、定義域エラーのときは処理系定義の値を返す。
その処理系では処理系定義の値というのが nan だということになる。
言語仕様では詳細は規定されていないけれど
一般に浮動小数点の表現として使われる IEEE 754 などでは非数 (not a number) を表現のひとつとして持ち、
意味のある計算結果にならなかったときは非数がセットされる。
not a number の略で NaN 。
処理系によっては定義域エラーをハンドリングする方法を用意してあることもあるけど、
発生させないように事前にチェックしたほうが基本的には簡単だと思う。

596:デフォルトの名無しさん
23/03/05 19:21:09.18 0aHQQO/od.net
よくわからないんだが
>>574が勘違いだな
TEMP: dw 0000h
はデータ0000hをメモリに置いてそのアドレスをTEMPと定義するという命令(アセンブラ疑似命令)
MOV AX,TEMP
はAXレジスタにそのアドレス値を入れる
MOV AX,[TEMP]
はAXレジスタにそのアドレスの内容(0000H)を入れる
さらに[0000H]の内容を読むにはもう1命令必要になる…はず
6809なら1命令で読めるがあまり使われなかったと思うどっちにしろ遅くなるので

597:デフォルトの名無しさん
23/03/05 19:26:59.51 eomhsMcE0.net
6809の用語でいうとメモリ間接参照アドレッシングだな

598:デフォルトの名無しさん
23/03/05 19:30:46.77 eomhsMcE0.net
ちなみに1命令で読むのはダイレクトページ参照アドレッシングな
6809ではあまり使われなかったけど、6502などではこれが使えないと実質何も出来ない

599:デフォルトの名無しさん
23/03/05 23:40:03.63 yUIw0mIIM.net
>>585
nanは、何処かでnanになると、その後の演算全てがnanになる
なのでsqrtのnanが伝搬してprintfがnanを表示した
ゲーム(特に3D)は、油断するとnanを伝搬させてしまう事があって、キャラがグチャグチャに壊れて表示されるのは、それが原因
nanを伝搬させるとデバッグが大変なので、nanを出さないように細心の注意が必要だ
sqrtとか特に割り算(/)に気を付けないといけない

600:デフォルトの名無しさん
23/03/06 02:42:50.81 Ht1FmqqLd.net
>>593
え、割り算でNaN出る?と一瞬思ったけど、0.0/0.0かな?多分
珍しいケースに思える
非ゼロ/0.0でinfが出るのは関数の根を簡易に求めるのに重宝するけど(逆数が極)、NaNが出る可能性にまでは気を配って無かったのでナイス指摘


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch