[過去ログ] C言語なら俺に聞け 162 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
21(1): (ワッチョイ 937c-cQ99) 2023/10/31(火)17:12 ID:9gnUDJNP0(3/4) AAS
>>17
全然おかしく無いよ。
互換性は非常に重要。
でもおまえは新しい機能は追加するなって言ってるだけだよね。
おまえの言い分だとプロトタイプ宣言必須になるのは、過去の「正しいプログラム」が正しくあり続けることできないから「却下すべき」案なんだよな。
22: (ワッチョイ 937c-cQ99) 2023/10/31(火)17:17 ID:9gnUDJNP0(4/4) AAS
>>21
プロトタイプ宣言とK&Rスタイルの関数定義がごっちゃになってるわ。
>>21 は回線切って首吊れば。
23(1): (ワッチョイ 1379-JwVi) 2023/10/31(火)17:41 ID:1/1CCAX60(2/2) AAS
>>19
俺はGOで組んだことないからそこに書かれてる処理系依存のtry/finallyのが馴染みがあるしスマートに見えるわ
キモい輩って世界中に居るんだな
24: (ワッチョイ 8114-Qq8E) 2023/10/31(火)17:59 ID:iHc07kUm0(1) AAS
>>23
君は中傷せずに会話できないのかね?
25: (ワッチョイ 1945-FUJr) 2023/10/31(火)21:23 ID:DBRUqQAF0(5/5) AAS
21 と 22 のワッチョイとIDが同じで表現が口汚いのはどう解釈したらいいの?私には難しくて分かりませぬ
26: (スププ Sd33-wFsA) 2023/11/01(水)03:27 ID:3HySGS93d(1) AAS
いつもの復オジωωω
スルー決定ωωωωωωωωω
27: (ワッチョイ e110-H9h+) 2023/11/01(水)07:56 ID:9FKdtRs60(1) AAS
容認→警告→禁止推奨
となった仕様が幾つあったか・・・。
28(1): (ワントンキン MM53-wL8D) 2023/11/01(水)09:43 ID:g4eyJzirM(1) AAS
言語の設計思想と立ち位置考えれば手を入れる必要ないでしょ
細かいのはあるにしても関数プロトタイプの導入、データ型の追加、stdioのセキュリティ強化くらいでCとしては充分
構文追加とかバカすぎてANSI Cもまず取り込まんよw
29: (スプッッ Sd73-cQ99) 2023/11/01(水)12:36 ID:YeBzjhT2d(1) AAS
>>28
>細かいのはあるにしても関数プロトタイプの導入、データ型の追加、stdioのセキュリティ強化くらいでCとしては充分
その挙げ句MISRA-Cみたいなのがでてくる。
>構文追加とかバカすぎてANSI Cもまず取り込まんよw
C23の属性とか知らんの?
30(1): (ワッチョイ 2945-kYJB) 2023/11/01(水)13:21 ID:DFYs67SD0(1/4) AAS
c23だと属性以外にも
enum Colour : char {
Red,
Green,
Blue
};
とか
auto i = 123L;
とかも構文変更になる
constexprもコンパイラにとってはかなり大きい
省1
31: (ワッチョイ 2945-kYJB) 2023/11/01(水)13:30 ID:DFYs67SD0(2/4) AAS
clangとかはconstexprを使わなくても、最適化で勝手に整数に置き換わってるとか普通に有るけどねw
constexprはそれを確実に保証出来るので、精神衛生上良い
32(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ 933e-g5YV) 2023/11/01(水)15:17 ID:m2/+vlXa0(1/2) AAS
>>30
C23 の constexpr は関数には付けられない。
高度なコンパイル時計算をするものではない。
33: (ワッチョイ 2945-kYJB) 2023/11/01(水)17:07 ID:DFYs67SD0(3/4) AAS
>>32
なるほど!ちょっと中途半端な状態なんだな…
34: はちみつ餃子◆8X2XSCHEME (ワッチョイ 933e-g5YV) 2023/11/01(水)17:37 ID:m2/+vlXa0(2/2) AAS
C++ の const 指定は初期化子が定数 (定数式) なら指定が付けられた変数も定数になるという規則なんだが
C の const は単に書き換えが禁止されるだけで定数になることはない。
(処理系の拡張によって一部の状況で定数扱いされることはある。)
C で定数を作ろうとすると #define を使うか enum を使うかしかなかったので
定数を定義するための直接的な方法として constexpr を導入しようという判断は納得できる。
定数を定義するまともな方法がないってのは C の明らかな欠陥なので
それを改善するという話でしかなくて、
コンパイル時計算を推進する野心の始まりってわけではないと思う。
なので constexpr については (遠い将来はともかく現時点では) これで完了。
中途半端ってこたぁないというのが私の感覚だな。
35: (ワッチョイ 2985-g3nS) 2023/11/01(水)21:28 ID:3Yx3b9sx0(1) AAS
気に入らないって理由なの?
36: (ワッチョイ 2945-kYJB) 2023/11/01(水)23:56 ID:DFYs67SD0(4/4) AAS
書き換えが禁止されても定数ではないとはこれいかに…
ここでいう定数はコードに直接埋め込まれる値ということだろう
ただ、C++もstatic constにしないと定数にならないと思ったけど、 constだけだとちゃんとメモリが確保されてると認識してたな
37: はちみつ餃子◆8X2XSCHEME (ワッチョイ 933e-g5YV) 2023/11/02(木)01:38 ID:9IBKBW6G0(1) AAS
言語仕様上の用語としては定数は定数が要求される箇所に書くことが出来るもののことだよ。
単純な例で言えば、↓これは C++ ではアリだが C ではダメ。 (clang のデフォルトだと通してしまったりもするようだが……。)
const int foo = 1;
enum bar {baz = foo};
int main(void){}
もちろん最適化によって効率的な扱いがされやすくなることも多いにせよ、直接には求められてない。
定数であってもアドレス演算子は適用が可能だし、あくまでも変数なので見かけ上はメモリ上にある。
省3
38: (アウアウウー Sad5-g+2W) 2023/11/02(木)09:19 ID:kxWwWLf8a(1) AAS
const int foo = 1;
char hoge[foo];
int main(void){}
39: (スフッ Sd33-IqBQ) 2023/11/02(木)10:39 ID:9MQ+Mdatd(1) AAS
2-pass コンパイルを実装してほしい
struct Fuga;
struct Hoge {
struct Fuga *fuga;
};
struct Fuga {
...
こんなのとはおさらばしたい
40(2): (ワッチョイ eb63-c8RC) 2023/11/02(木)10:41 ID:VWEHs6hL0(1) AAS
そういう配列宣言でdefine使わないとどういうメリットがあるの?
上下前次1-新書関写板覧索設栞歴
あと 962 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.032s