Qiita 6 - キータぞ、来たぞ、キータだぞー (978レス)
上下前次1-新
234: 04/19(土)23:46 ID:d2bUfXV7(1) AAS
いまのQiitaの運営は記事の内容がデタラメでも問題としないし毛の壁クラスのアホ記事に親切な人が間違い指摘のコメント投稿してくれたとしても記事主はコメ欄でやり取りなんてしないで複垢使って迷惑コメント通報すれば運営はサクッと削除してくれるし楽よね。
235: 04/20(日)13:43 ID:RiHDJnuQ(1) AAS
真面目に間違い指摘コメントしたら迷惑通報でBANされるなら
コメントで正してくれる人が居なくなる罠
236: 04/20(日)18:01 ID:VQVJHsjD(1) AAS
間違い指摘コメントは記事主に恥をかかせる行為だからな、HRTを重視するQiitaなら垢BANは当然の措置だろう。
237: 04/21(月)18:46 ID:zj1KV6a1(1) AAS
「お前は謙虚や尊敬に欠けているぞ」という指摘もまた謙虚や尊敬に欠けている気はするな。
己を神とでも思えば可能か。
238(3): 04/23(水)09:18 ID:DSGNhDQx(1/4) AAS
『C言語 func1(){int a=8;} func2(){int b;} bの中身は8』
Cコンパイラをアセンブラかなんかと勘違いしてる人。
239(1): 04/23(水)09:34 ID:yoO2Q6CW(1) AAS
初期化しなかった部分が(直前に呼んだ関数で)初期化されたことになるのは(割り込みとか無ければ)当然の仕様であって
アセンブラかどうかとは無関係
240: 04/23(水)09:39 ID:DSGNhDQx(2/4) AAS
おっここにも馬鹿がいるのかw
241(1): 04/23(水)12:07 ID:Rh3VU7vt(1) AAS
>>238
プロフにどういう人か書いてあるじゃん
高レイヤーが嫌いで低レイヤーが好きな人
Cとアセンブラ好きと書いてある
プロフと記事が完全に一致
そういう人にCとアセンブラが好きなのはおかしいと言ってHRTのないコメントしたら即垢BANだろうなあ
242: 04/23(水)12:21 ID:DSGNhDQx(3/4) AAS
>>241
>Cとアセンブラが好きなのはおかしいと言って
そんなこと言ってる人いんの?
243: 04/23(水)12:25 ID:DSGNhDQx(4/4) AAS
>そういう人にCとアセンブラが好きなのはおかしいと言ってHRTのないコメントしたら即垢BANだろうなあ
変な思い込みでいきり立って迷惑コメント通報する馬鹿はQiitaには居そうな気はするねw
244: 04/23(水)13:10 ID:xgsAirMR(1) AAS
>>239
Undefinedだからコンパイラと動作環境次第、動作が定められてるわけじゃない
たまたまそのコンパイラでコンパイルしてその環境で使ったらそうなったってだけ
どのコンパイラ使ってビルドしたって情報が無いなら無意味でしかない
245(1): 04/23(水)19:36 ID:3eqPB/xz(1/2) AAS
>>238
明示的に初期化していない変数はプログラミング言語によって3つに分かれる
① 初期化するまでその変数を使えない言語
② 何らかの規定された初期値で暗黙に初期化される言語 (0とかnilとかundefinedなど)
③ 初期化されないまま環境依存でデタラメに動いてしまう言語
もちろん明示的に初期化の①が一番まともな言語で次いで②までが許容範囲
しかし信じられないことに③となる最悪な言語が存在していてセキュリティホールになることもある
246(1): 04/23(水)19:41 ID:odak5dd8(1) AAS
>>245
数多のコンパイラがなんでそうしていないのか考えてみたら?
247: 04/23(水)19:45 ID:3eqPB/xz(2/2) AAS
>>246
まともなプログラミング言語は初期化していない変数を使えないため問題は起きない
ダメな言語でのみ問題が生じてきた
248: 04/23(水)21:17 ID:2CmVv5Sb(1) AAS
>プロフにどういう人か書いてあるじゃん
>高レイヤーが嫌いで低レイヤーが好きな人
>Cとアセンブラ好きと書いてある
>プロフと記事が完全に一致
>そういう人にCとアセンブラが好きなのはおかしいと言ってHRTのないコメントしたら即垢BANだろうなあ
コメントの内容を理解できなくて誹謗中傷の類と解釈し迷惑コメント通報してしまう輩はまあいるんだろうなあ。
HRTがどうこう言ってる人種をちょっと理解できた気がする。
249: 04/24(木)00:27 ID:XhsO3LV3(1) AAS
>>238
今さら安全でないC言語を使う点は置いておくにしても
そんなCコードを書く人は信頼できない要注意人物てして扱われる
最適化されれば変数aの痕跡はスタック上に残らないため変数bが8にならない
それ以前にfunc1()呼び出しの後に他の関数呼び出しがあればスタック上の値は壊れる
>Cコンパイラをアセンブラかなんかと勘違いしてる人。
アセンブラでも同じ
既に解放済みのスタックフレーム上の値が壊されずに残ってる前提でコードを書くバカはいない
250(1): 04/24(木)09:23 ID:pyQCqjDM(1) AAS
>既に解放済みのスタックフレーム上の値が壊されずに残ってる前提でコードを書くバカはいない
件の記事は「C言語ではスタックフレームの仕組みによりこうなりますよ」という説明になってしまっているので明確に間違いだが、未初期化変数を持つプログラムへの攻撃方法としてスタック領域を予め任意の値にするのは普通にありだろ。
251: 04/25(金)08:04 ID:NZPBuc1w(1/3) AAS
一部の問題児なプログラミング言語を除けば、
未初期化な変数の宣言や後の代入は許しても、未初期化のままの値の使用はエラーとなる。
>>250
C言語は一番の問題児だが、今回のコードでスタック領域をそのまま変数に使うバカげたことは最適化なしの時にしか起きない。
当然レジスタ上で完結するため、もっと多くの変数などを用いないとスタック領域に割り当てられない。
252: 04/25(金)08:44 ID:an01yrNB(1/4) AAS
同じ人の別の記事
『C言語 何故main に戻らない?スタック上の戻り先を改変する実験 main→func1→func2』
>compiler Explorer上では安全ではないと判断されたのかエラーを吐いた。
>(参考にした本では同じようなコードでも動いていたが。。。)
>参考文献
>?阿布編程 (2023) 『CPU眼里的C/C++』 清華大学出版社.
参考にした本がハズレだったか書いてあること読めてないのかどっちかかな?
253: 04/25(金)13:05 ID:1EJctkXH(1/10) AAS
割り込み処理の関係上1億回に1回バグるとかありそうだよなー(棒)
gccなら-Wmaybe-uninitializedとか-Wuninitializedとかあるみたいだけど。
某組み込み系でグローバルintが0で初期化されないコンパイラには出会ったことがある。多分これは "C処理系としてのバグ"
254(1): 04/25(金)13:14 ID:an01yrNB(2/4) AAS
>某組み込み系でグローバルintが0で初期化されないコンパイラには出会ったことがある。多分これは "C処理系としてのバグ"
組み込みならBSSやDATAの初期化はスタートアップでやるのは普通だし、自作したスタートアップでBSSやDATAの初期化を意図して行わないのも珍しくはない。
255: 04/25(金)13:38 ID:1EJctkXH(2/10) AAS
>>254
言ってることはわかるけど、それってもはやC処理系ではない何かじゃない?アセンブラプログラミングの話?
外部リンク[pdf]:www.open-std.org
P126 (PDF上ではP138) §6.7.8/10
If an object that has automatic storage duration is not initialized explicitly, its value is
indeterminate. If an object that has static storage duration is not initialized explicitly,
then:
—ifithas pointer type, it is initialized to a null pointer;
—ifithas arithmetic type, it is initialized to (positive orunsigned) zero;
—ifitisanaggregate, every member is initialized (recursively) according to these rules;
省2
256: 04/25(金)13:42 ID:1EJctkXH(3/10) AAS
ついでに、キリ番ゲット・記念真紀子
257: 04/25(金)13:44 ID:an01yrNB(3/4) AAS
C言語の標準規格というのはそれに適合した処理系やプログラムの互換性を保証するために設けられたものであり意図して機能を削除したところでC言語でなくなるわけではない。
258(3): 04/25(金)13:53 ID:1EJctkXH(4/10) AAS
じゃあ float 削除してもC?
goto や switch を削除してもC?
int main() 書かなくてもC?
それがCっぽーい何かであることは認めるけどさw
確かに int main() 書かない組み込み向けとかあるけどさw
"C言語の話" してんのに "Cっぽーい何か" の話まぜこんでもおかしな話になるだけじゃんw
259(1): 04/25(金)14:05 ID:an01yrNB(4/4) AAS
K&Rには存在したlong float型や予約語のfortranとentryはC89では削除された。C11で標準ライブラリからgetsは削除された。
「機能が削除されたものはC言語ではない」という主張に乗っかるとすると今我々がC言語と思っているものは既にC言語ではないことになるなw
260(1): 04/25(金)14:10 ID:CvA5DtPe(1/4) AAS
>>258
ANSI Cはじめとした特定のC言語ではないってだけで、C言語ではあるよ
例えば2005年に規格が作られたCSVファイル、
それまでCSVファイルが無かったわけじゃないでしょ
261: 04/25(金)14:23 ID:lh5onUZe(1) AAS
じゃあ何を削ったらC言語ではなくなるのか、それともどこまで削ってもC言語なのか……というような話になってくると不毛だと思うな。
C言語にせよ、csvにせよ、標準化された規格としてのそれらについての話なのか、それとも必ずしも標準化された規格には拘らない話なのかは、普通文脈で判断できるでしょ。そして、両者の区別を必要とする文脈なのであれば、規格内容とそうではないものとは区別して書いた方が良いと思うよ。
262(1): 04/25(金)14:26 ID:1EJctkXH(5/10) AAS
>>259
規格なり言語なりの破壊的変更は版が変わればよくあること。
じゃあ逆に、C言語ってなんなん?「俺様がC言語と認める最低限ライン」示せよw
>>260
> CSVファイルが無かったわけじゃないでしょ
Comma Separated Values ってそのままの定義で使われてたんでしょw んなこといったらJSONだってそうじゃん。
263(1): 04/25(金)15:08 ID:1EJctkXH(6/10) AAS
外部リンク:www.bilibili.com
んで察するに、(中国語わからないし原文よんでないから Google 翻訳使いつつの想像だけど、)
老師: 「君はまだCをソースコードのレベルでしか見ていない。だがその背後には、実行時の記憶の仕組みやCPUの命令があるんだよ。どうだ、興味が湧いてきただろう?」
老師、おもむろに func1(){int a=8;} func2(){int b;} をコンパイルして b の値を調べるよう指示。
老師: 「これがスタックというものだよ」(未定義動作の波に乗せて、スタックという概念の深淵へと読者を誘う。スタックの残滓を肌で感じて欲しかった。)
↓
『C言語 func1(){int a=8;} func2(){int b;} bの中身は8』爆誕
省2
上下前次1-新書関写板覧索設栞歴
あと 715 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.013s