[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/22 11:29 / Filesize : 258 KB / Number-of Response : 1018
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C言語なら俺に聞け 158



1 名前:デフォルトの名無しさん mailto:sage [2021/12/25(土) 12:11:46.61 ID:xxeaCAplM.net]
!extend:checked:vvvvv:1000:512
(新スレ立ての際上記コマンドを2行書き込んでください)
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
codepad.org/

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

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

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

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

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

※前スレ
C言語なら俺に聞け 157
https://mevius.5ch.net/test/read.cgi/tech/1624846971/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured

208 名前:デフォルトの名無しさん mailto:sage [2022/02/22(火) 20:27:50.66 ID:affn0mKeM.net]
「メルキオール (MELCHIOR)」「バルタザール (BALTHASAR)」
「カスパー (CASPER)」 という3つの独立したシステムによる
合議制をとっていた。

209 名前:デフォルトの名無しさん mailto:sage [2022/02/22(火) 20:56:32.44 ID:IWqq52SNa.net]
>>202
チェッサムやパリティビット的な用途なんか
なぜチェックサムを使わないのか……って聞くのは野暮?

>>192>>204
パックや共用体にしとこうぜ

210 名前:デフォルトの名無しさん mailto:sage [2022/02/22(火) 21:00:04.31 ID:mN73zrRIM.net]
>>204
コンパイラによるけど警告レベル上げれば検出できるぞ

211 名前:デフォルトの名無しさん [2022/02/22(火) 21:02:51.52 ID:9avL3EWo0.net]
>>200
3箇所の変数で多数決だった。3つ違う場合はアプリ終了。
ちなみにOSのメモリ保護された普通なプログラムです。
組み込みマイコンでも、DMAアクセスされるメモリーでも有りません。

212 名前:デフォルトの名無しさん [2022/02/22(火) 21:10:15.11 ID:9avL3EWo0.net]
>>203
>>アプリケーションからは気にせずに済んでるだけで……
なのでOSで保護された上で動くアプリケーションはデータの冗長化は必要ないのでは?

というか、データを冗長化するという方針で作られたシステムもいわゆる神経質という
設計思想があり。 データ認定?された物は3重化されて変数に保管されるが
ループのi,j,kや一時的にデータを取得するaと言った変数は多重化されていなかった。

仮に変数の冗長化が重要だと言うことになった場合。なぜデータ認定されたものだけ冗長化され
ループ変数は冗長化せずに単体で使うのかって部分に気持ち悪さを感じる。

どの変数も「平等に」食らう可能性はあると思うから。

213 名前:デフォルトの名無しさん [2022/02/22(火) 21:17:01.78 ID:9avL3EWo0.net]
>>201
「変数をバイナリーでファイルに出力する」と聞いてリーダーに求めたのは
メモリーマップ。当然、準備しているものだと思っていた。

ただ、メモリーマップなど知らないし意味も分からない、サンプルを見てくれ?
という指示だった。

バイナリーでのデータ交換をするのにメモリーマップを定めないことに関しては今でも気持ち悪さを感じている。

214 名前:はちみつ餃子 mailto:sage [2022/02/22(火) 21:27:02.48 ID:xH13yj0x0.net]
>>209
> OSで保護された上で動くアプリケーションは

OS では解決できない。 だからリーナスはインテルにマジムカという話。

変数を何か所にも増やすのが意味ないというのは、それはそう。
どうやったってどうにもならんので考えるだけ無駄。
職人技でどうにかできるような規模の小さな組み込み分野ならともかく、
複雑高度なコンピュータで低レイヤが信頼できないなら信頼できない箇所にコストをかけて改善すべき。

215 名前:デフォルトの名無しさん mailto:sage [2022/02/22(火) 21:56:15.32 ID:ntDF8W1ma.net]
>>208
それなら気持ちは分かる
意味は解せぬが

216 名前:デフォルトの名無しさん mailto:sage [2022/02/22(火) 21:59:25.84 ID:fFHtSmjBd.net]
>>209
ハードウェアエラーが原因ならプログラムの実行バイナリも平等に化ける可能性あるよね



217 名前:デフォルトの名無しさん mailto:sage [2022/02/22(火) 22:00:17.02 ID:FDkOG5bL0.net]
>>204
そんなんテスト通るんか?
テストもせずに放置?

218 名前:デフォルトの名無しさん mailto:sage [2022/02/22(火) 22:07:46.87 ID:6JePgkF30.net]
アポロ計画だったか、3台のコンピュータに計算させて多数決で決めてたな

219 名前:デフォルトの名無しさん mailto:sage [2022/02/22(火) 22:18:57.41 ID:6JePgkF30.net]
それとCのようにロジックが追え、時間さえあれば
人でも答えが出せる場合ではなく、
AIシステムのようにブラックボックス化していると、
複数台による合議制もあるかも知れない

220 名前:はちみつ餃子 mailto:sage [2022/02/22(火) 22:31:59.79 ID:xH13yj0x0.net]
深層学習ってニューラルネットワークを多層構造にしたモデルなんだよね。
AI の仕組みの中に (重みづけされた) 多数決が既に組み込まれていると言えなくもない。

221 名前:デフォルトの名無しさん [2022/02/22(火) 23:00:22.43 ID:9avL3EWo0.net]
>>215
それなら分かる。計算結果を多数決専用のワイヤロジックで決め
また、3台の入力に戻して計算していれば。

222 名前:デフォルトの名無しさん [2022/02/22(火) 23:05:44.26 ID:9avL3EWo0.net]
>>213
そう思う。本当に冗長化するなら、ストアされているプログラムも
カウンタ変数も信頼性は平等だと思う。

レジスタに収納されてればより信頼性が上がると言われそうだが、
ループ変数だってメモリに退避されていることが多いから信頼性は同じだと思う。

223 名前:デフォルトの名無しさん mailto:sage [2022/02/22(火) 23:14:07.01 ID:AiPUeoxY0.net]
>>211
> OS では解決できない。 だからリーナスはインテルにマジムカという話。
Xeon 使えばいいだけだろ
サーバーによってはECCだけじゃなくてミラーリングも使えたりするし
https://jp.fujitsu.com/platform/server/primergy/technical/pcserver-description/memory.html

224 名前:はちみつ餃子 mailto:sage [2022/02/22(火) 23:21:36.39 ID:xH13yj0x0.net]
>>220
この場合は出来るハードウェアもあるってのは反論にならないんだよ。
出来ないハードウェアが世の中に溢れてるってのが問題なんだから。

225 名前:デフォルトの名無しさん mailto:sage [2022/02/22(火) 23:34:31.66 ID:AiPUeoxY0.net]
>>221
溢れてて何が問題なんだ?
リーナスは金持ってるかもしれんが世の中ECCマシンを買える奴ばかりじゃないんだし

226 名前:はちみつ餃子 mailto:sage [2022/02/23(水) 00:08:53.35 ID:o4j3GXmb0.net]
>>222
安ければデメリットもあるのもしょうがないといえばしょうがない話ではあるけどね。
デメリットはない (あるいは十分に小さい) と言い張ってインテルは ECC なし製品を推し進めたけど、
実際にはそうじゃないことがわかったとなれば文句を言いたくもなるだろう。



227 名前:デフォルトの名無しさん mailto:sage [2022/02/23(水) 07:03:47.68 ID:6oKgGQho0.net]
>>223
> 実際にはそうじゃないことがわかったとなれば文句を言いたくもなるだろう。
そうじゃないと言ってるけど実際どれくらいあるんだ?
仕事で上に書いたようなサーバーでシステム構築してたけどメモリーエラーなんて見たことないし

228 名前:デフォルトの名無しさん mailto:sage [2022/02/23(水) 08:03:17.13 ID:FxZT1eeTd.net]

229 名前:el="noopener noreferrer" target="_blank" class="reply_link">>>210
WindowsでのBITMAPFILEHEADERとか主要なファイルヘッダの構造は全部構造体で定義されてるから気にしたことないなあ
ダミーパディング込みで
気になるなら定義部分を見てみるといい
余計なパディング入れないプラグマとかも使われているはず
[]
[ここ壊れてます]

230 名前:デフォルトの名無しさん mailto:sage [2022/02/23(水) 08:27:04.99 ID:JOM9/OKLa.net]
https://www.itmedia.co.jp/news/articles/0602/13/news037.html

MS「ECCメモリを標準搭載にしろ」
インテル「やだ」

231 名前:デフォルトの名無しさん mailto:sage [2022/02/23(水) 08:44:18.35 ID:FxZT1eeTd.net]
>>226
> それは、Microsoftは今調べているドライバの問題から、Windows XPのシステム・アプリケーションのクラッシュの主な原因がメモリの欠陥にあることを知ったからだ。

えっ?w

232 名前:デフォルトの名無しさん mailto:sage [2022/02/23(水) 09:11:50.93 ID:pngadACwM.net]
リーナスもMSもECCメモリーがーって騒ぐ前にやることがあるだろw

233 名前:デフォルトの名無しさん [2022/02/23(水) 09:34:02.54 ID:vebGIGPQ0.net]
>>224
20年間プログラマをやってたが、勝手に値が変わっていたことは一度もない。
(全てOSで保護されたアプリケーションレベルの経験)

234 名前:デフォルトの名無しさん [2022/02/23(水) 09:37:11.21 ID:vebGIGPQ0.net]
>>225
https://docs.microsoft.com/ja-jp/windows/win32/api/wingdi/ns-wingdi-bitmapfileheader
これでファイルの読み書きしても良いんだ。
MS公式文書で書かれているということで、今まで引っかかっているところが解消した感じ。

235 名前:デフォルトの名無しさん mailto:sage [2022/02/23(水) 09:42:44.82 ID:hrDKDc9G0.net]
昔宇宙線だかなんだかがメモリデータを破壊するとかそんな記事を読んだ気がそこはかとなく(ry

236 名前:デフォルトの名無しさん mailto:sage [2022/02/23(水) 10:39:13.43 ID:6oKgGQho0.net]
>>229
万が一書き換わってても気付かない事の方が多いだろ



237 名前:デフォルトの名無しさん mailto:sage [2022/02/23(水) 10:44:14.42 ID:6oKgGQho0.net]
>>231
アルファ線とか宇宙線中性子とか
https://www.hitachi.co.jp/rd/glossary/jp_so/sofutoeraa.html

メモリーを心配するならFPGAも心配しろよ
https://www.hitachi.co.jp/rd/sc/story/softerr/index.html

238 名前:はちみつ餃子 mailto:sage [2022/02/23(水) 11:25:09.62 ID:o4j3GXmb0.net]
>>229
勝手に書き換わっているかどうかどうやって検証したんだ?
ICE とかでわかるもんなの?

239 名前:デフォルトの名無しさん mailto:sage [2022/02/23(水) 12:31:11.32 ID:v1sPphh80.net]
Windowsならメモリーエラーでブ

240 名前:ルースクリーンになるよな []
[ここ壊れてます]

241 名前:デフォルトの名無しさん mailto:sage [2022/02/23(水) 12:39:56.12 ID:stefKGxD0.net]
ならねえよ
「何となく調子悪い」PCがmemtest86で問題発覚はあるけどな

242 名前:デフォルトの名無しさん mailto:sage [2022/02/23(水) 12:54:35.71 ID:FxZT1eeTd.net]
再現性がまったくないから
端子の接触不良か熱暴走で片付けられると思う

243 名前:デフォルトの名無しさん [2022/02/23(水) 13:35:22.91 ID:vebGIGPQ0.net]
Cで変数を分散するって話は人生で一回だけ。
それ以降は、どの言語でも意図して変更していなければ絶対に変数は変わらないという事を前提にコーディングしている。
でも、問題は無い。

244 名前:デフォルトの名無しさん mailto:sage [2022/02/23(水) 13:42:56.07 ID:n4QLtIZ70.net]
eccメモリ積んだサーバー使えばいいじゃん

245 名前:デフォルトの名無しさん [2022/02/23(水) 13:44:37.23 ID:vebGIGPQ0.net]
>>231
ケースをシールドしたり、信号ラインを絶縁して対応していると思われる。

246 名前:デフォルトの名無しさん [2022/02/23(水) 16:46:51.15 ID:vebGIGPQ0.net]
while(1){

a(&x);
if(x==1) break;
b();
}

ってコーディングを禁止している案件もあった。break文じゃなく、しっかりと条件式がfalseになるように書けとのことだった。
ただ、このやり方って入門書にも書いてある普通な方法だと思うけど。ループの中間くらいで抜けたいときはその後の処理をifで実行できないようにしていたので可読性は悪かった。
もちろん continue も封印されていた。

while(x!=1){
a(&x);
if(x!=1) b();
}

みたいに



247 名前:デフォルトの名無しさん mailto:sage [2022/02/23(水) 16:49:25.49 ID:n4QLtIZ70.net]
whileの中で関数呼べばいいじゃん

248 名前:デフォルトの名無しさん mailto:sage [2022/02/23(水) 17:07:12.12 ID:FxZT1eeTd.net]
inline関数ならオーバーヘッドもないはずだしな
それで何が聞きたいんじゃ?

249 名前:デフォルトの名無しさん mailto:sage [2022/02/23(水) 17:08:55.71 ID:6oKgGQho0.net]
俺なら
a(&x);
while(x == 1){
b();
a(&x);
}
って書くかな

250 名前:デフォルトの名無しさん mailto:sage [2022/02/23(水) 19:16:45.48 ID:Q2o1N4Td0.net]
理不尽だと思われるコーディングルールも歴史があってそうなってたりするから
長いものに巻かれるしかない

251 名前:デフォルトの名無しさん mailto:sage [2022/02/23(水) 22:15:21.75 ID:PssNo99E0.net]
俺なら嫌味のように
{
bool need_break=false;
while(... && !need_break){
//前半処理
if(!(need_break=...)){
//後半処理
}
}
}
とでも書くかな

252 名前:デフォルトの名無しさん mailto:sage [2022/02/23(水) 22:33:27.74 ID:ek+gncWLM.net]
for (;;)

なんでみんなこれ使わないの?

253 名前:デフォルトの名無しさん mailto:sage [2022/02/23(水) 22:36:06.79 ID:v1sPphh80.net]
泣いてるみたいで悲しい

254 名前:デフォルトの名無しさん mailto:sage [2022/02/23(水) 23:22:31.05 ID:lJym8p+qM.net]
あと制御文の括弧前にスペース入れるのは少数派なんだろうか…

255 名前:はちみつ餃子 mailto:sage [2022/02/23(水) 23:26:41.88 ID:o4j3GXmb0.net]
個々の場面で不適切でもチーム全員が適切に判断できないようなら
比較的マシそうな側に統一するルールにも合理性はある。

それとか「わからんかったらこうしとけ」みたいな口伝が
拡大解釈されていったりするのもありそうな話だ。

256 名前:はちみつ餃子 mailto:sage [2022/02/24(木) 00:03:57.70 ID:KIw+63Ii0.net]
>>249
Google のガイドでは if や for の後に空白を入れる方針になってる。
私は入れないけど。



257 名前:はちみつ餃子 mailto:sage [2022/02/24(木) 00:21:21.22 ID:KIw+63Ii0.net]
>>247
それが無限ループになるというのが読み取り難いからではないかな。
初期化やインクリメントの部分を省略したら単に何もしないのだろうと類推できるけど、
省略された条件式が真に判定されるのか偽に判定されるのかというのは例外規則として知ってなきゃわからない。

慣用句 (イディオム) と化してるので慣れてしまうと普通に読めるけど、
while(1) のほうが明示的な分だけわかりやすいのかもしれない。

258 名前:デフォルトの名無しさん mailto:sage [2022/02/24(木) 00:27:00.80 ID:DLFV0+Dqa.net]
関数っぽさをなくすためにスペース空ける方がいいと思う

259 名前:デフォルトの名無しさん mailto:sage [2022/02/24(木) 02:22:52.59 ID:9O+r6lMKM.net]
>>252
while文で無限ループを作れるにも関わらず
Rustではloop式を導入してる点が興味深いよね
loop文ではなくloop式なのでbreak 値; で値を返せて凄く便利

260 名前:はちみつ餃子 mailto:sage [2022/02/24(木) 02:31:22.55 ID:KIw+63Ii0.net]
>>254
ループとしては無限ループにしておいて break で抜けるような構造は良くないといえばあんまり良くないんだけど、
そうは言っても存在する以上はその場合を明示的に表せるような構文があると便利ってのも確かで、
そのあたりは設計思想の違いとしか言いようがないよな……。

261 名前:デフォルトの名無しさん mailto:sage [2022/02/24(木) 02:44:45.66 ID:9O+r6lMKM.net]
>>255
その構造が良くないというのは自分も昔はそうだったが単なる思い込みだと気付いたw
さらにwhileは先頭でif break、do whileは最後でif breakしているだけであるし
ある程度計算を進めてから途中でようやくif breakできないとwhileだと困ることもloop式で解決された
さらにループを抜けてbreakしたい時は値を返したい時が多いからloop文ではなくloop式が非常に便利

262 名前:ハノン mailto:sage [2022/02/24(木) 05:13:17.42 ID:SpBJKMB7H.net]
>>251,249
K&R2 では if や for, switch の後にはスペースを入れますね
私は基本的に K&R2 に沿って書きますが、関数の始まりを示す { は例外的に宣言に続けて書きます

int main() {
return 0;
}

263 名前:デフォルトの名無しさん mailto:sage [2022/02/24(木) 06:47:25.50 ID:iDpw9I/70.net]
>>247
俺は使うよ
while(1) だと警告出るから

264 名前:デフォルトの名無しさん mailto:sage [2022/02/24(木) 06:53:42.23 ID:MBzpszCI0.net]
俺もマジックナンバーがないほうが好き

265 名前:デフォルトの名無しさん mailto:sage [2022/02/24(木) 08:03:43.62 ID:PbuedMT9d.net]
#define FOREVER for(;;)

266 名前:デフォルトの名無しさん mailto:sage [2022/02/24(木) 08:20:28.13 ID:MBzpszCI0.net]
>>260
こう書くとbreakやgotoが嘘つきに見えるな



267 名前:デフォルトの名無しさん [2022/02/24(木) 11:30:55.34 ID:XK2EQ9NF0.net]
#define DEATH_MARCH for(;;)

268 名前:デフォルトの名無しさん mailto:sage [2022/02/24(木) 12:02:15.07 ID:7WoYZRJzd.net]
#define DISALLOW_BREAK for(;;)
#define FOREVER for(;;)

DISALLOW_BREAK FOREVER{
...
if(...)break;
}

269 名前:デフォルトの名無しさん [2022/02/24(木) 17:23:09.91 ID:bIfpVEhP0.net]
>>261
正規表現ライブラリとか使って、複雑な制御を見えなくするのも一つの手かも?
自分のところのbreak continueは嫌がられるが、他所なら見えないので。

結局機械語になれば、中でGoto(jmp)しまくっているわけなので。

270 名前:デフォルトの名無しさん mailto:sage [2022/02/24(木) 17:32:25.81 ID:MBzpszCI0.net]
jmp命令は構造化プログラミングで問題視されるgotoとは違うぞ

271 名前:はちみつ餃子 mailto:sage [2022/02/24(木) 17:36:24.61 ID:KIw+63Ii0.net]
抽象度が違う話だからなぁ。

272 名前:デフォルトの名無しさん mailto:sage [2022/02/24(木) 17:36:30.96 ID:MBzpszCI0.net]
ダイクストラは「高級言語では」という限定をつけてgotoを問題視していたのであって
アセンブラや機械語に出てくる分岐命令はあの議論の対象外だ

273 名前:はちみつ餃子 mailto:sage [2022/02/24(木) 17:38:56.51 ID:KIw+63Ii0.net]
>>267
だから >>264 は見えないところでやってる分には知らんって言ってるんだろ。

274 名前:デフォルトの名無しさん mailto:sage [2022/02/24(木) 17:43:46.24 ID:MBzpszCI0.net]
>>268
てことは結局何も言ってないのと同じだな
Cを使えばjmpが見えなくなるなんてくだらん話は
break continueを禁止する理由とは無関係だ

275 名前:デフォルトの名無しさん mailto:sage [2022/02/24(木) 17:44:23.55 ID:5fQRd2wi0.net]
SQL埋め込みのC言語goto使いまくってた

276 名前:デフォルトの名無しさん mailto:sage [2022/02/24(木) 17:50:29.88 ID:PbuedMT9d.net]
K&Rでもgotoは醜いが使わないと余計な変数や不自然な構造が必要になるからねーとクギをさしてる



277 名前:デフォルトの名無しさん mailto:sage [2022/02/24(木) 17:53:57.59 ID:8VCxJpwXa.net]
コードが80x120に収まれば俺はgotoなんて気にしない

278 名前:デフォルトの名無しさん mailto:sage [2022/02/24(木) 17:55:30.50 ID:9O+r6lMKM.net]
>>271
そういうのもloop式導入で解決するから導入しよう

279 名前:デフォルトの名無しさん mailto:sage [2022/02/24(木) 21:02:28.06 ID:Qe3Dm4uv0.net]
抜け出しgotoは分かる
飛び込みgotoはつらい

280 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 13:00:32.72 ID:2Pynziee0.net]
構造化プログラミングを盲信する気は毛頭ないが
それは違うぞ

抜けだしであろうが飛び込みであろうが
ループの端に設定された条件に従わない分岐は
ダイクストラが問題視する対象だ

281 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 13:19:00.10 ID:Eg3DloqN0.net]
MISRA-C でも、制御パスを変える、
goto, 複数return, (多重脱出からの?)break/continue などは禁止。
だから、ループ内で、やたらとフラグを持ち回る

でも、Linux では、
早期return, goto でエラー処理をまとめたりするから、フラグを持ち回らない

282 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 13:35:54.50 ID:aDhOSI3tM.net]
>>275
そんな無意味な制約を課しているとダメなプログラマーになってしまうね

>>276
MISRA-Cは本末転倒としか言いようがないね
結局その無意味な制約によって目的としたメモリ安全性などの成果を得られなかった
その長年の未解決だった課題はRustが全く別方向からようやく解決した

283 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 16:58:20.86 ID:2Pynziee0.net]
>>277
おまえさんもダイクストラみたいに学会誌に投稿したら?

284 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 11:42:38.47 ID:iGO9Qf02a.net]
break;とかcontinue;はいいの?

285 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 12:15:17.30 ID:qblu1Z+O0.net]
switch以外のbreakは制御式にない条件での脱出
continueは違う

286 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 12:24:02.66 ID:QP0iZO8FM.net]
どこでもexit



287 名前:デフォルトの名無しさん [2022/03/03(木) 13:53:35.02 ID:2Y1y5HDI0.net]
グローバル変数禁止プロジェクトがあって、固定値が全てリテラルでばらまかれていたので、仕様変更でチーム員は苦労してた。
自分の担当箇所は謎関数を一つ作り、そこから値を得ていた。

288 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 14:05:48.79 ID:o7MH0vY5M.net]
グローバル変数禁止なのになんで定数まで禁止なんだ

289 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 14:16:38.79 ID:bgg8zGG60.net]
>>282
グローバル「変数」と「固定」値がリテラルでばら撒かれてるのは全然違う話だが?
苦労してるのはお前さんの能力に問題があるんじゃ…

290 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 14:18:42.95 ID:iO+E/Lewd.net]
マクロは使わんのか?
ただの素人のスパゲッティだな

291 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 15:16:49.50 ID:dDnSjvDO0.net]
センス悪いやつがいるせいで
必要なものまで制限されるんだよな

ロクに精査もせずに横暴な制限を作るやつらも
センス悪いやつの一員

292 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 15:48:11.59 ID:NNobhPIrM.net]
昔グローバル変数はなるべく使わないようにねってお願いしたら、グローバル変数が関数内のstatic変数になって返ってきて状況悪化させしまったことを思い出した…
依頼は正確でないとな

293 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 15:52:02.14 ID:nN/xu0Sn0.net]
>>287
望んだ改善ではないにしてもグローバル変数よりは関数内static変数のほうがマシで、悪化はしてないのでは?

294 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 15:55:02.85 ID:7Ur+27OW0.net]
必要なものが制限されるのは腹立たしいだろうけど、
現実にセンスないやつが今、現場にいる状況で比較的マシにしようと思ったら制限も已むなし。

295 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 15:55:56.96 ID:9ZWmTo8BM.net]
君は関数内static変数の破壊力を知らない

296 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 16:02:36.91 ID:dDnSjvDO0.net]
int *just_function(void)
{
static int not_global_variable;
return &not_global_variable;
}

struct common_variables
{
int fool;
int jerk;
int idiot;
};

struct common_variables *a_function(void)
{
struct common_variables cv;
return &cv;
}



297 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 16:03:41.51 ID:dDnSjvDO0.net]
static struct common_variables cv;
だった

笑い処でミスってどうするw

298 名前:はちみつ餃子 mailto:sage [2022/03/03(木) 16:09:12.32 ID:7Ur+27OW0.net]
やりたいことは分割統治なんだよね。 プログラムを機能単位ごとに分割して部品にしたいの。
部品を束ねた部品があって、それを束ねて大きな部品にして……という綺麗に階層的な依存関係にしたいの。
色んなところからアクセスされるものがあるのが目に付くと綺麗に分割できてねぇなあと感じるという話であって
言語機能としての「グローバル変数」を使わないようにすれば綺麗になるというわけではない。

299 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 16:17:38.32 ID:9ZWmTo8BM.net]
グローバル変数一つ新規に作るのに何枚も書類を書かないといけないプロジェクトがあって、
その時は一つだけ管理テーブルという名称の構造体を作成登録した。
その後は必要に応じて構造体にメンバーを追加した。
追加の場合には許可がいらない。

300 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 16:23:37.12 ID:dDnSjvDO0.net]
俺のジョークそのまんまかw

301 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 16:28:52.42 ID:rhQumEoNd.net]
int型のグローバル変数が2つあればvoid*アドレスを分割して突っ込める

291みたいなstructへのポインタ突っ込んどきゃやりたい放題だよやったね!

302 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 08:30:10.22 ID:kn6yruMU0.net]
C++ の singleton クラスと
関数内static から戻ってくるのも 似たようなものになる?のか?

303 名前:デフォルトの名無しさん [2022/03/06(日) 14:20:18.71 ID:RiucPZY70.net]
ref class SampleCls
{
internal:
property int A[int]
{
int get(int n)
{
int value = n * 100;
return value;
}
void set(int index,int n)
{

}
}
};
SampleCls objを実体化させた後に
s = s + "n= " + obj.A[i]+ "\n";
を5回繰り返したら0,100,200,300,400になったのですが
0に100をかけると100になるのでしょうか?

304 名前:デフォルトの名無しさん [2022/03/06(日) 14:24:03.50 ID:RiucPZY70.net]
A[i]の値がどんなふうに決まっているのか知りたいのですがよくわかりません
どなたか教えていただければ幸いです。

305 名前:デフォルトの名無しさん [2022/03/06(日) 14:42:22.06 ID:RiucPZY70.net]
すみません、解決しましたSet()とget()の動きをちゃんと理解していなかったことが
原因でした。

306 名前:デフォルトの名無しさん mailto:sage [2022/03/06(日) 16:10:19.16 ID:g5zD4gJoM.net]
まず、自分が何の言語で書いてるか理解したらもっと早く答えが手に入ると思うよ…



307 名前:デフォルトの名無しさん [2022/03/07(月) 04:27:05.03 ID:t70FSnsj0.net]
ダイクストラって名前を聞くたびに大工が屋根の上で仕事をしている姿が浮かんでしまう

308 名前:デフォルトの名無しさん mailto:sage [2022/03/07(月) 06:18:54.97 ID:RhJCMKRm0.net]
キャスバルレム大工ん






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<258KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef