Qiita 6 - キータぞ、来たぞ、キータだぞー (695レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
253: デフォルトの名無しさん [] 2025/04/25(金) 13:05:13.54 ID:1EJctkXH(1/10) AAS
割り込み処理の関係上1億回に1回バグるとかありそうだよなー(棒)
gccなら-Wmaybe-uninitializedとか-Wuninitializedとかあるみたいだけど。
某組み込み系でグローバルintが0で初期化されないコンパイラには出会ったことがある。多分これは "C処理系としてのバグ"
255: デフォルトの名無しさん [] 2025/04/25(金) 13:38:07.95 ID:1EJctkXH(2/10) AAS
>>254254(1): デフォルトの名無しさん [] 2025/04/25(金) 13:14:33.04 ID:an01yrNB(2/4) AAS
>某組み込み系でグローバルintが0で初期化されないコンパイラには出会ったことがある。多分これは "C処理系としてのバグ"
組み込みならBSSやDATAの初期化はスタートアップでやるのは普通だし、自作したスタートアップでBSSやDATAの初期化を意図して行わないのも珍しくはない。
言ってることはわかるけど、それってもはや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;
—if it isaunion, the first named member is initialized (recursively) according to these
rules
256: デフォルトの名無しさん [] 2025/04/25(金) 13:42:26.93 ID:1EJctkXH(3/10) AAS
ついでに、キリ番ゲット・記念真紀子
258(3): デフォルトの名無しさん [] 2025/04/25(金) 13:53:49.37 ID:1EJctkXH(4/10) AAS
じゃあ float 削除してもC?
goto や switch を削除してもC?
int main() 書かなくてもC?
それがCっぽーい何かであることは認めるけどさw
確かに int main() 書かない組み込み向けとかあるけどさw
"C言語の話" してんのに "Cっぽーい何か" の話まぜこんでもおかしな話になるだけじゃんw
262(1): デフォルトの名無しさん [] 2025/04/25(金) 14:26:52.14 ID:1EJctkXH(5/10) AAS
>>259259(1): デフォルトの名無しさん [sage] 2025/04/25(金) 14:05:45.58 ID:an01yrNB(4/4) AAS
K&Rには存在したlong float型や予約語のfortranとentryはC89では削除された。C11で標準ライブラリからgetsは削除された。
「機能が削除されたものはC言語ではない」という主張に乗っかるとすると今我々がC言語と思っているものは既にC言語ではないことになるなw
規格なり言語なりの破壊的変更は版が変わればよくあること。
じゃあ逆に、C言語ってなんなん?「俺様がC言語と認める最低限ライン」示せよw
>>260260(1): デフォルトの名無しさん [sage] 2025/04/25(金) 14:10:19.13 ID:CvA5DtPe(1/4) AAS
>>258
ANSI Cはじめとした特定のC言語ではないってだけで、C言語ではあるよ
例えば2005年に規格が作られたCSVファイル、
それまでCSVファイルが無かったわけじゃないでしょ
> CSVファイルが無かったわけじゃないでしょ
Comma Separated Values ってそのままの定義で使われてたんでしょw んなこといったらJSONだってそうじゃん。
263(1): デフォルトの名無しさん [] 2025/04/25(金) 15:08:26.72 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』爆誕
って感じじゃないの?
「CPU目線C言語」的には、たぶん狙ってやってる高度な釣りなんだけど、変なところに針刺さっちゃった感?
266(1): デフォルトの名無しさん [] 2025/04/25(金) 15:29:20.48 ID:1EJctkXH(7/10) AAS
>>264264(1): デフォルトの名無しさん [sage] 2025/04/25(金) 15:14:24.23 ID:CvA5DtPe(2/4) AAS
>>262
コンパイラの数だけC言語があったから規格化したのがANSI C
ANSI C以前にCはなかったって言ってるの?あったって言ってるの?
主張がよく分からない
> 某組み込み系でグローバルintが0で初期化されないコンパイラには出会った
これは2000年代後半の話。その頃にはK&R本はもちろんANSIの規格も版を重ねていた。そういう時代に商用(有料)のC処理系でマニュアルに注意書きもなく「グローバル変数は初期化しない」ってのは「処理系のバグ」でしょ、っていう主張。
K&R本以前はRitchieが認めた、もしくは認めてくれそうならC言語だったんじゃねーの?w
半世紀前の基準で語られてもさぁw お{じい,ばあ}ちゃんはもう寝たほうがいいと思うよw
267(1): デフォルトの名無しさん [] 2025/04/25(金) 15:33:55.68 ID:1EJctkXH(8/10) AAS
>>265釣られても釣られそうになってもねーよwww
「おぉ、これがスタックなんですねっ!」って釣られて本買っちゃう奴もいるんじゃねーの?w
271(1): デフォルトの名無しさん [] 2025/04/25(金) 17:08:18.74 ID:1EJctkXH(9/10) AAS
>> 269
ANSIの前、"C言語"を世界に送り出した K&R本の初版ですら "static 変数は 0 で初期化" って書いてあるんだからさw
K&R本初版より前の言語仕様(ベル研内部でのRitchieの実装)も包括した話しないと "C言語の仕様" に関して話しちゃいけないってこと?それなんて警察?www
認可もクソも(非公式であっても)言語化された仕様がねー時代なんだからよw
それでさ、
> わざわざ半世紀前に生まれた大きい集合、C言語って言い方してるんだから、
> そりゃおかしいって指摘されるでしょうよ
は例の記事にコメントしてあげればいいんじゃね?草
274: デフォルトの名無しさん [sage] 2025/04/25(金) 18:35:49.70 ID:1EJctkXH(10/10) AAS
外部リンク[html]:www.kouno.jp
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.037s