アカウント名:
パスワード:
もうC/C++は捨ててRustから始めたほうがいいC++の違法増築っぷりは言うに及ばずCで大規模プログラミングは苦行すぎる。
Cは超高級アセンブラのつもりで。C++は超高級マクロアセンブラのつもりで。そもそもCPU周りアセンブリわからん人間はC/C++使うべきでないと思う。詰むから。ま、現代PCの世界だとデバイスドライバとかBIOSレベルを書く人じゃないとC/C++は積極的に使わないほうがいいねでも組み込みだとそもそもC/C++しか処理系がないのですニッチなところでmicroPythonとかBASICとかあるけどいつでも使えるわけじゃないそれだってCPUハード周り理解して使うべきですけどね
Cは規格表を読むだけで理解できます。
アセンブリを理解しないと……という人は帰納的理解が得意なんだと思いますが、すくなくともデバッグには向いてない気がする。
そこは穴だと理解できますよね?そこは使わない。それで問題が解決しないなら、Cをこえるということです。# C99やC++では穴が減る方向にあるので、C89で理解が止まっている人はちょっと驚くかも。
Cの範囲をこえるなら、使おうとしているコンパイラなどの知識がいるでしょう。そちらで明文化されていないならどうしようもない。道具をうまく使うしかないなら、そこで初めてアセンブリの知識がでてくるかもしれません。(明文化されていない時点で再現性はどうなのよと心配になってしまいますが)
自分の設計の根拠はなんなのか、いつでも説明できる必要があると考えると、Cの理解にはアセンブリが必要などという発言は出てきません。
C99で止まったのは完成したからなのか諦めたからなのか。
えー、GCCって最適化でよくバグるから-sの結果が読めないとデバッグできないんだけど。
それな。キリキリチューニングとか最適化の癖知らないとできないし。asmマクロで小技仕込むこともあるしsection分けて自分でROMRAMオーバレイするだのマルチコアで共通メモリ通信するだのやってるとやはりあれはマクロアセンブラの階層だと思って使うのが間違いがないですよ
本当にバグなんでしょうか。あなたのことが心配です。
パッチ送ったことも何度もあるよー。x86以外のCPUだとテスト甘いんだよね。
たぶんGCCのせいじゃない
cとGNU Cは別言語というストーリーでCの規格がわかってもGNU Cワランと言われても…
最適化すると落ちるけど、最適化しないと普通に動くからそのまま最適化しないで開発しちゃう事ある。 「ちゃんと最適化しないとなー」と思っていながらリリースした事がある。
>Cは規格表を読むだけで理解できます。 標準Cならそうだろうね。 C11/17は現代のノイマン型コンピュータを抽象マシンとしてモデル化した高級マクロアセンブラっぽいし。 ただ、GNU Cだからなぁ。
未だに関数ポインタをvoidポインタにキャストすると未定義動作なのに?
関数ポインタがどこ由来かわからないならUBだろ
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
物事のやり方は一つではない -- Perlな人
初心者が本気でやりたいなら (スコア:0)
もうC/C++は捨ててRustから始めたほうがいい
C++の違法増築っぷりは言うに及ばずCで大規模プログラミングは苦行すぎる。
Re: (スコア:0)
Cは超高級アセンブラのつもりで。
C++は超高級マクロアセンブラのつもりで。
そもそもCPU周りアセンブリわからん人間はC/C++使うべきでないと思う。
詰むから。
ま、現代PCの世界だとデバイスドライバとかBIOSレベルを書く人じゃないと
C/C++は積極的に使わないほうがいいね
でも組み込みだとそもそもC/C++しか処理系がないのです
ニッチなところでmicroPythonとかBASICとかあるけど
いつでも使えるわけじゃない
それだってCPUハード周り理解して使うべきですけどね
Re:初心者が本気でやりたいなら (スコア:0)
Cは規格表を読むだけで理解できます。
アセンブリを理解しないと……という人は帰納的理解が得意なんだと思いますが、
すくなくともデバッグには向いてない気がする。
Re:初心者が本気でやりたいなら (スコア:1)
Re: (スコア:0)
そこは穴だと理解できますよね?
そこは使わない。それで問題が解決しないなら、Cをこえるということです。
# C99やC++では穴が減る方向にあるので、C89で理解が止まっている人はちょっと驚くかも。
Cの範囲をこえるなら、使おうとしているコンパイラなどの知識がいるでしょう。
そちらで明文化されていないならどうしようもない。道具をうまく使うしかないなら、
そこで初めてアセンブリの知識がでてくるかもしれません。
(明文化されていない時点で再現性はどうなのよと心配になってしまいますが)
自分の設計の根拠はなんなのか、いつでも説明できる必要があると考えると、
Cの理解にはアセンブリが必要などという発言は出てきません。
Re: (スコア:0)
C99で止まったのは完成したからなのか諦めたからなのか。
Re: (スコア:0)
えー、GCCって最適化でよくバグるから-sの結果が読めないとデバッグできないんだけど。
Re: (スコア:0)
それな。
キリキリチューニングとか最適化の癖知らないとできないし。
asmマクロで小技仕込むこともあるし
section分けて自分でROMRAMオーバレイするだの
マルチコアで共通メモリ通信するだのやってると
やはりあれはマクロアセンブラの階層だと思って使うのが
間違いがないですよ
Re: (スコア:0)
本当にバグなんでしょうか。あなたのことが心配です。
Re: (スコア:0)
パッチ送ったことも何度もあるよー。x86以外のCPUだとテスト甘いんだよね。
Re: (スコア:0)
たぶんGCCのせいじゃない
Re: (スコア:0)
cとGNU Cは別言語というストーリーでCの規格がわかってもGNU Cワランと言われても…
Re: (スコア:0)
最適化すると落ちるけど、最適化しないと普通に動くからそのまま最適化しないで開発しちゃう事ある。 「ちゃんと最適化しないとなー」と思っていながらリリースした事がある。
Re: (スコア:0)
>Cは規格表を読むだけで理解できます。
標準Cならそうだろうね。
C11/17は現代のノイマン型コンピュータを抽象マシンとしてモデル化した高級マクロアセンブラっぽいし。
ただ、GNU Cだからなぁ。
Re: (スコア:0)
未だに関数ポインタをvoidポインタにキャストすると未定義動作なのに?
Re: (スコア:0)
関数ポインタがどこ由来かわからないならUBだろ