!extend:checked:vvvvv:1000:512
(新スレ立ての際上記コマンドを2行書き込んでください)
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/
C17
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4713.pdf
C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf
C23 最新ドラフト
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3047.pdf
C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/
※前スレ
C言語なら俺に聞け 161
https://mevius.5ch.net/test/read.cgi/tech/1682053520/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
C言語なら俺に聞け 162
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 2389-FUJr)
2023/10/30(月) 17:13:00.82ID:hHEGE8Ol02はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9b3e-g5YV)
2023/10/30(月) 17:30:23.87ID:I7fISnX+0 2get
3はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9b3e-g5YV)
2023/10/30(月) 17:31:34.22ID:I7fISnX+0 C23 の最新ドラフトは N3096 に更新されてるでよ
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3096.pdf
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3096.pdf
4デフォルトの名無しさん (ワッチョイ eb63-c8RC)
2023/10/30(月) 19:05:35.74ID:i+814vap05デフォルトの名無しさん (ワッチョイ 199f-CP9B)
2023/10/30(月) 19:40:56.11ID:PfgrnUqg0 いまどきPlain Cが使われる状況なんて限定的なんだから
高級アセンブラとして堂々としてればいいんですよ
高級アセンブラとして堂々としてればいいんですよ
6デフォルトの名無しさん (ワントンキン MM53-g3nS)
2023/10/30(月) 20:35:57.87ID:YnJZjusKM トッピングは何になさいますか?
7デフォルトの名無しさん (ワッチョイ 2901-CP9B)
2023/10/30(月) 21:04:03.03ID:re6vYA8I0 リモートワーク制度が削減・廃止されたら「転職や別案件を探す」が4割--
「Offers」登録者調査
ITエンジニア/デザイナーの副業・転職サービス「Offers」を提供するoverflowは、
同社が運営する「Offersデジタル人材総研」にて「リモートワーク実態調査2023」
を公表した。
これによると、リモートワークになり、5人に1人が引っ越したと回答した。そのうち、
現職でリモートワーク制度が削減・廃止された場合、「転職や別案件を探す」という
回答が44.0%にものぼった。一方「会社と交渉する」という回答は40.0%、
「引っ越さず受け入れる」が12.0%となった。
さらにリモートワークを希望している理由として「通勤時間が無駄だと感じている」が
87.7%でトップとなった。このほか「個人の時間ができる」(62.3%)、「副業を続け
やすいから」(39.6%)、「子育てができる」(35.8%)と続いた。
「Offers」登録者調査
ITエンジニア/デザイナーの副業・転職サービス「Offers」を提供するoverflowは、
同社が運営する「Offersデジタル人材総研」にて「リモートワーク実態調査2023」
を公表した。
これによると、リモートワークになり、5人に1人が引っ越したと回答した。そのうち、
現職でリモートワーク制度が削減・廃止された場合、「転職や別案件を探す」という
回答が44.0%にものぼった。一方「会社と交渉する」という回答は40.0%、
「引っ越さず受け入れる」が12.0%となった。
さらにリモートワークを希望している理由として「通勤時間が無駄だと感じている」が
87.7%でトップとなった。このほか「個人の時間ができる」(62.3%)、「副業を続け
やすいから」(39.6%)、「子育てができる」(35.8%)と続いた。
8デフォルトの名無しさん (ワッチョイ 194e-FUJr)
2023/10/31(火) 09:59:32.82ID:DBRUqQAF0 前スレではちみつさんが書いてくれたリンク見ました。thx
https://go.dev/tour/flowcontrol/13
曰くGOの defer は
deferred function calls 遅延関数呼び出し で、関数脱出時にlast-in-fast 順で呼ぶもの
とすると、C言語でdeferの仕様追加要求は却下すべきです。リンクリスト1個作れば済む話で、実際そうしてる人も多数いるだろうに、既存プログラムでdeferというシンボルを使ってるのをコンパイル通らなくしてまで仕様追加するのは利益が小さすぎる。
エラー処理で使うかは、直接関係ないですね。そうしたきゃすればいいけど、私は読みやすいコードとは思わない、です
https://go.dev/tour/flowcontrol/13
曰くGOの defer は
deferred function calls 遅延関数呼び出し で、関数脱出時にlast-in-fast 順で呼ぶもの
とすると、C言語でdeferの仕様追加要求は却下すべきです。リンクリスト1個作れば済む話で、実際そうしてる人も多数いるだろうに、既存プログラムでdeferというシンボルを使ってるのをコンパイル通らなくしてまで仕様追加するのは利益が小さすぎる。
エラー処理で使うかは、直接関係ないですね。そうしたきゃすればいいけど、私は読みやすいコードとは思わない、です
9デフォルトの名無しさん (ワッチョイ 937c-cQ99)
2023/10/31(火) 12:23:13.16ID:9gnUDJNP0 >>8
>関数脱出時にlast-in-fast 順で呼ぶもの
>
>とすると、C言語でdeferの仕様追加要求は却下すべきです。
この「とすると」からの繋がりが意味不明。
>リンクリスト1個作れば済む話で、
だから何?
「却下 *すべき*」の理由になってない。
採用するほどでない、なら理解できる。
> 既存プログラムでdeferというシンボルを使ってるのをコンパイル通らなくしてまで仕様追加するのは利益が小さすぎる。
ここでのdeferは機能についての名称として使ってるだけで、そのままの文言じゃないことを理解できてないみたいだ。
>関数脱出時にlast-in-fast 順で呼ぶもの
>
>とすると、C言語でdeferの仕様追加要求は却下すべきです。
この「とすると」からの繋がりが意味不明。
>リンクリスト1個作れば済む話で、
だから何?
「却下 *すべき*」の理由になってない。
採用するほどでない、なら理解できる。
> 既存プログラムでdeferというシンボルを使ってるのをコンパイル通らなくしてまで仕様追加するのは利益が小さすぎる。
ここでのdeferは機能についての名称として使ってるだけで、そのままの文言じゃないことを理解できてないみたいだ。
10デフォルトの名無しさん (ワッチョイ 194e-FUJr)
2023/10/31(火) 15:34:02.36ID:DBRUqQAF011デフォルトの名無しさん (ワッチョイ eb63-c8RC)
2023/10/31(火) 15:38:26.62ID:/TBQ8etM0 ブログ立てて、そこでやれ
12デフォルトの名無しさん (ワッチョイ 29d7-WJPr)
2023/10/31(火) 15:39:17.26ID:803Tgyvr0 >>8
どうせコンパイルオプションで無効にすれば使えるだろ
どうせコンパイルオプションで無効にすれば使えるだろ
14デフォルトの名無しさん (ワッチョイ 1379-JwVi)
2023/10/31(火) 16:24:39.17ID:1/1CCAX60 ボクの考えた最強のC言語を語るスレはこちら
【超高速】C/C++に代わる低級言語を開発したい 8
http://mevius.5ch.net/test/read.cgi/tech/1345730580/
【超高速】C/C++に代わる低級言語を開発したい 8
http://mevius.5ch.net/test/read.cgi/tech/1345730580/
15デフォルトの名無しさん (ワッチョイ d95d-kYJB)
2023/10/31(火) 16:36:27.63ID:RXeEqnvz0 deferは(素のものをじゃなくてもう少し高機能な)プリプロセッサで対応出来る
breakやreturnの直前にdeferの内容を全部コピーしとけばいいだけ
まぁそれ言い出すと、C++をCに変換するプリプロセッサが有れば全て解決だがなw
breakやreturnの直前にdeferの内容を全部コピーしとけばいいだけ
まぁそれ言い出すと、C++をCに変換するプリプロセッサが有れば全て解決だがなw
16デフォルトの名無しさん (ワッチョイ 194e-FUJr)
2023/10/31(火) 16:37:42.80ID:DBRUqQAF0 ただのどこかのオッサンの意見が気に食わんなら別にそれでもいいよ…
各自自分の考えを語ればいいじゃん、そんな食いつくくらいならなんか一つくらいは「自分のアイデア」あるんでしょ?何もないの?
各自自分の考えを語ればいいじゃん、そんな食いつくくらいならなんか一つくらいは「自分のアイデア」あるんでしょ?何もないの?
17デフォルトの名無しさん (ワッチョイ 194e-FUJr)
2023/10/31(火) 16:39:39.94ID:DBRUqQAF018デフォルトの名無しさん (ワッチョイ 537c-oF/Z)
2023/10/31(火) 16:43:21.14ID:5ddE/sJo0 既に進行中の「建設的な議論」をご用意しました
以降の議論はこれを前提として積み重ねていただくようお願い申し上げます
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2895.htm
以降の議論はこれを前提として積み重ねていただくようお願い申し上げます
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2895.htm
19デフォルトの名無しさん (ワッチョイ 537c-oF/Z)
2023/10/31(火) 16:43:26.09ID:5ddE/sJo0 既に進行中の「建設的な議論」をご用意しました
以降の議論はこれを前提として積み重ねていただくようお願い申し上げます
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2895.htm
以降の議論はこれを前提として積み重ねていただくようお願い申し上げます
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2895.htm
20デフォルトの名無しさん (ワッチョイ 1be7-zW/F)
2023/10/31(火) 16:57:17.68ID:C1aTagsw0 >>19
なんか、機能はともかく見た目はだいぶ汚いコードになるね
なんか、機能はともかく見た目はだいぶ汚いコードになるね
21デフォルトの名無しさん (ワッチョイ 937c-cQ99)
2023/10/31(火) 17:12:55.99ID:9gnUDJNP0 >>17
全然おかしく無いよ。
互換性は非常に重要。
でもおまえは新しい機能は追加するなって言ってるだけだよね。
おまえの言い分だとプロトタイプ宣言必須になるのは、過去の「正しいプログラム」が正しくあり続けることできないから「却下すべき」案なんだよな。
全然おかしく無いよ。
互換性は非常に重要。
でもおまえは新しい機能は追加するなって言ってるだけだよね。
おまえの言い分だとプロトタイプ宣言必須になるのは、過去の「正しいプログラム」が正しくあり続けることできないから「却下すべき」案なんだよな。
22デフォルトの名無しさん (ワッチョイ 937c-cQ99)
2023/10/31(火) 17:17:03.54ID:9gnUDJNP023デフォルトの名無しさん (ワッチョイ 1379-JwVi)
2023/10/31(火) 17:41:26.94ID:1/1CCAX6024デフォルトの名無しさん (ワッチョイ 8114-Qq8E)
2023/10/31(火) 17:59:35.29ID:iHc07kUm0 >>23
君は中傷せずに会話できないのかね?
君は中傷せずに会話できないのかね?
25デフォルトの名無しさん (ワッチョイ 1945-FUJr)
2023/10/31(火) 21:23:39.92ID:DBRUqQAF0 21 と 22 のワッチョイとIDが同じで表現が口汚いのはどう解釈したらいいの?私には難しくて分かりませぬ
26デフォルトの名無しさん (スププ Sd33-wFsA)
2023/11/01(水) 03:27:47.22ID:3HySGS93d いつもの復オジωωω
スルー決定ωωωωωωωωω
スルー決定ωωωωωωωωω
27デフォルトの名無しさん (ワッチョイ e110-H9h+)
2023/11/01(水) 07:56:22.02ID:9FKdtRs60 容認→警告→禁止推奨
となった仕様が幾つあったか・・・。
となった仕様が幾つあったか・・・。
28デフォルトの名無しさん (ワントンキン MM53-wL8D)
2023/11/01(水) 09:43:55.98ID:g4eyJzirM 言語の設計思想と立ち位置考えれば手を入れる必要ないでしょ
細かいのはあるにしても関数プロトタイプの導入、データ型の追加、stdioのセキュリティ強化くらいでCとしては充分
構文追加とかバカすぎてANSI Cもまず取り込まんよw
細かいのはあるにしても関数プロトタイプの導入、データ型の追加、stdioのセキュリティ強化くらいでCとしては充分
構文追加とかバカすぎてANSI Cもまず取り込まんよw
29デフォルトの名無しさん (スプッッ Sd73-cQ99)
2023/11/01(水) 12:36:29.63ID:YeBzjhT2d >>28
>細かいのはあるにしても関数プロトタイプの導入、データ型の追加、stdioのセキュリティ強化くらいでCとしては充分
その挙げ句MISRA-Cみたいなのがでてくる。
>構文追加とかバカすぎてANSI Cもまず取り込まんよw
C23の属性とか知らんの?
>細かいのはあるにしても関数プロトタイプの導入、データ型の追加、stdioのセキュリティ強化くらいでCとしては充分
その挙げ句MISRA-Cみたいなのがでてくる。
>構文追加とかバカすぎてANSI Cもまず取り込まんよw
C23の属性とか知らんの?
30デフォルトの名無しさん (ワッチョイ 2945-kYJB)
2023/11/01(水) 13:21:32.97ID:DFYs67SD0 c23だと属性以外にも
enum Colour : char {
Red,
Green,
Blue
};
とか
auto i = 123L;
とかも構文変更になる
constexprもコンパイラにとってはかなり大きい
文字列のハッシュ値の計算とか、コンパイル時にCのコードを実行できる
enum Colour : char {
Red,
Green,
Blue
};
とか
auto i = 123L;
とかも構文変更になる
constexprもコンパイラにとってはかなり大きい
文字列のハッシュ値の計算とか、コンパイル時にCのコードを実行できる
31デフォルトの名無しさん (ワッチョイ 2945-kYJB)
2023/11/01(水) 13:30:10.50ID:DFYs67SD0 clangとかはconstexprを使わなくても、最適化で勝手に整数に置き換わってるとか普通に有るけどねw
constexprはそれを確実に保証出来るので、精神衛生上良い
constexprはそれを確実に保証出来るので、精神衛生上良い
32はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 933e-g5YV)
2023/11/01(水) 15:17:19.83ID:m2/+vlXa033デフォルトの名無しさん (ワッチョイ 2945-kYJB)
2023/11/01(水) 17:07:45.92ID:DFYs67SD0 >>32
なるほど!ちょっと中途半端な状態なんだな…
なるほど!ちょっと中途半端な状態なんだな…
34はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 933e-g5YV)
2023/11/01(水) 17:37:30.95ID:m2/+vlXa0 C++ の const 指定は初期化子が定数 (定数式) なら指定が付けられた変数も定数になるという規則なんだが
C の const は単に書き換えが禁止されるだけで定数になることはない。
(処理系の拡張によって一部の状況で定数扱いされることはある。)
C で定数を作ろうとすると #define を使うか enum を使うかしかなかったので
定数を定義するための直接的な方法として constexpr を導入しようという判断は納得できる。
定数を定義するまともな方法がないってのは C の明らかな欠陥なので
それを改善するという話でしかなくて、
コンパイル時計算を推進する野心の始まりってわけではないと思う。
なので constexpr については (遠い将来はともかく現時点では) これで完了。
中途半端ってこたぁないというのが私の感覚だな。
C の const は単に書き換えが禁止されるだけで定数になることはない。
(処理系の拡張によって一部の状況で定数扱いされることはある。)
C で定数を作ろうとすると #define を使うか enum を使うかしかなかったので
定数を定義するための直接的な方法として constexpr を導入しようという判断は納得できる。
定数を定義するまともな方法がないってのは C の明らかな欠陥なので
それを改善するという話でしかなくて、
コンパイル時計算を推進する野心の始まりってわけではないと思う。
なので constexpr については (遠い将来はともかく現時点では) これで完了。
中途半端ってこたぁないというのが私の感覚だな。
35デフォルトの名無しさん (ワッチョイ 2985-g3nS)
2023/11/01(水) 21:28:22.72ID:3Yx3b9sx0 気に入らないって理由なの?
36デフォルトの名無しさん (ワッチョイ 2945-kYJB)
2023/11/01(水) 23:56:27.24ID:DFYs67SD0 書き換えが禁止されても定数ではないとはこれいかに…
ここでいう定数はコードに直接埋め込まれる値ということだろう
ただ、C++もstatic constにしないと定数にならないと思ったけど、 constだけだとちゃんとメモリが確保されてると認識してたな
ここでいう定数はコードに直接埋め込まれる値ということだろう
ただ、C++もstatic constにしないと定数にならないと思ったけど、 constだけだとちゃんとメモリが確保されてると認識してたな
37はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 933e-g5YV)
2023/11/02(木) 01:38:41.62ID:9IBKBW6G0 言語仕様上の用語としては定数は定数が要求される箇所に書くことが出来るもののことだよ。
単純な例で言えば、↓これは C++ ではアリだが C ではダメ。 (clang のデフォルトだと通してしまったりもするようだが……。)
const int foo = 1;
enum bar {baz = foo};
int main(void){}
もちろん最適化によって効率的な扱いがされやすくなることも多いにせよ、直接には求められてない。
定数であってもアドレス演算子は適用が可能だし、あくまでも変数なので見かけ上はメモリ上にある。
C++ で static const にしないと定数にならないというのはデータメンバのとき。
普通のデータメンバはオブジェクトを生成するときまで初期化されていないことになっているので
コンパイル時には確定できない。
単純な例で言えば、↓これは C++ ではアリだが C ではダメ。 (clang のデフォルトだと通してしまったりもするようだが……。)
const int foo = 1;
enum bar {baz = foo};
int main(void){}
もちろん最適化によって効率的な扱いがされやすくなることも多いにせよ、直接には求められてない。
定数であってもアドレス演算子は適用が可能だし、あくまでも変数なので見かけ上はメモリ上にある。
C++ で static const にしないと定数にならないというのはデータメンバのとき。
普通のデータメンバはオブジェクトを生成するときまで初期化されていないことになっているので
コンパイル時には確定できない。
38デフォルトの名無しさん (アウアウウー Sad5-g+2W)
2023/11/02(木) 09:19:48.35ID:kxWwWLf8a const int foo = 1;
char hoge[foo];
int main(void){}
char hoge[foo];
int main(void){}
39デフォルトの名無しさん (スフッ Sd33-IqBQ)
2023/11/02(木) 10:39:43.14ID:9MQ+Mdatd 2-pass コンパイルを実装してほしい
struct Fuga;
struct Hoge {
struct Fuga *fuga;
};
struct Fuga {
...
こんなのとはおさらばしたい
struct Fuga;
struct Hoge {
struct Fuga *fuga;
};
struct Fuga {
...
こんなのとはおさらばしたい
40デフォルトの名無しさん (ワッチョイ eb63-c8RC)
2023/11/02(木) 10:41:08.08ID:VWEHs6hL0 そういう配列宣言でdefine使わないとどういうメリットがあるの?
41デフォルトの名無しさん (スプッッ Sd73-cQ99)
2023/11/02(木) 12:23:28.61ID:R1/lC5p9d >>40
デバッグ時にシンボル表示できる。
デバッグ時にシンボル表示できる。
42デフォルトの名無しさん (ワッチョイ 190d-FUJr)
2023/11/02(木) 15:51:31.06ID:7f41Qrwa0 もしかしてそれって、C言語の仕様じゃなくてデバッガとかビルドシステム側の機能改善でできそうって気がしませんか?
デバッガが読んで参考にできるかもしれない情報の豊富さの、なんとなくの並び
↓
■実行形式にシンボル情報がない
■実行形式にシンボル情報がある
■ソースコードがあるけどデバッガはビルド情報知らない
■ソースコードがありデバッガがビルドの情報も知ってる
clang とかLLVM界隈ってそういう情報(どういう?ビルド時しか分からん情報というか?)をうまく使おうぜ方向を目指してる気がします、知らんけど
デバッガが読んで参考にできるかもしれない情報の豊富さの、なんとなくの並び
↓
■実行形式にシンボル情報がない
■実行形式にシンボル情報がある
■ソースコードがあるけどデバッガはビルド情報知らない
■ソースコードがありデバッガがビルドの情報も知ってる
clang とかLLVM界隈ってそういう情報(どういう?ビルド時しか分からん情報というか?)をうまく使おうぜ方向を目指してる気がします、知らんけど
43デフォルトの名無しさん (ワッチョイ 29d7-WJPr)
2023/11/03(金) 00:15:50.32ID:M0kCm9U+0 その例だとデバッグ時に数字で表示されたほうが安全じゃないか
44デフォルトの名無しさん (アウアウウー Sad5-g+2W)
2023/11/03(金) 08:01:57.68ID:rVBPlXQLa >ソースコードがありデバッガがビルドの情報も知ってる
両方持ってるのは本物のプロと練習集の初心者素人と両極端に分かれそう
両方持ってるのは本物のプロと練習集の初心者素人と両極端に分かれそう
45デフォルトの名無しさん (ワッチョイ 29d7-WJPr)
2023/11/03(金) 09:53:21.84ID:M0kCm9U+0 何言いたいんだか全くわからんが
46デフォルトの名無しさん (ワッチョイ eb63-c8RC)
2023/11/03(金) 10:12:48.61ID:R1GL3fqM0 生涯修行僧
47デフォルトの名無しさん (ワッチョイ 5324-zW/F)
2023/11/03(金) 11:32:32.93ID:8bACdtpR048デフォルトの名無しさん (ワッチョイ 5324-zW/F)
2023/11/03(金) 11:34:06.16ID:8bACdtpR0 >>43
数字で表示されないと具体的に何が非安全だと心配してるの?
数字で表示されないと具体的に何が非安全だと心配してるの?
49デフォルトの名無しさん (ワッチョイ 29d7-WJPr)
2023/11/03(金) 21:59:08.35ID:M0kCm9U+0 次に実行するコード
>hoge[2] = 0;
となった時に
char hoge[foo];
と表示されてると次にfooの値を探すので二度手間
char hoge[1];
と表示されてれば一度ですむ
>hoge[2] = 0;
となった時に
char hoge[foo];
と表示されてると次にfooの値を探すので二度手間
char hoge[1];
と表示されてれば一度ですむ
50デフォルトの名無しさん (ワッチョイ 827c-RmzB)
2023/11/04(土) 00:06:31.86ID:nDDUhOSB051デフォルトの名無しさん (ワッチョイ 6dd7-HQPe)
2023/11/04(土) 00:27:05.12ID:uAZ656n/0 哲学には興味ない
なんのためにデバッガ使うかわかっているので充分だ
なんのためにデバッガ使うかわかっているので充分だ
52デフォルトの名無しさん (ワッチョイ 827c-RmzB)
2023/11/04(土) 02:19:34.08ID:nDDUhOSB053デフォルトの名無しさん (ワッチョイ 6dd7-HQPe)
2023/11/04(土) 09:05:55.97ID:uAZ656n/0 ずいぶん安い煽りに転じたな
表示される情報は最小限のほうがいいんだよ
仕事で使っていればそうなる
表示される情報は最小限のほうがいいんだよ
仕事で使っていればそうなる
54デフォルトの名無しさん (ワッチョイ 653d-2MVi)
2023/11/04(土) 10:09:07.16ID:lvandghk0 自分はデバッガ使う段階なら定数は具体値が出てくれた方がいいです
クロスコンパイル環境の構築からとか、Cならではの現場を辿って来た人と、今どきのGUIのデバッガが前提の人では話は合わなそう
マウスかざせば済むじゃんと思ってるのでは
クロスコンパイル環境の構築からとか、Cならではの現場を辿って来た人と、今どきのGUIのデバッガが前提の人では話は合わなそう
マウスかざせば済むじゃんと思ってるのでは
55デフォルトの名無しさん (ワッチョイ 624f-ZTan)
2023/11/04(土) 11:08:29.93ID:dBvv25rw056デフォルトの名無しさん (JP 0H09-q9sc)
2023/11/04(土) 11:41:50.34ID:A3cqUl0FH gdbなどのデバッガー使っていれば変数名と型と値は全て表示される
必要であれば配列は全ての要素を展開して表示も出来るけどな
必要であれば配列は全ての要素を展開して表示も出来るけどな
57デフォルトの名無しさん (ワッチョイ 9901-sdYh)
2023/11/04(土) 11:48:12.60ID:4yCaeT2N0 printfでOK
58デフォルトの名無しさん (アウアウウー Saa5-CWlg)
2023/11/04(土) 12:21:19.50ID:KPpuxUoxa シンボルの方が意味が判って良いけどな
「マウスかざせば良い」はその通り
場合によっては watch 式
「マウスかざせば良い」はその通り
場合によっては watch 式
59デフォルトの名無しさん (ワッチョイ 0297-qmy0)
2023/11/04(土) 13:42:18.42ID:p2sqqR+o0 デバッグ段階で意味がいるのか?
60はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 823e-9NWm)
2023/11/04(土) 13:50:23.07ID:ocaBqo/v0 デバッガもその設計思想によるだろう。
ソースレベルデバッグなら言語の評価モデルに一致するのが自然だと思う。
そうなるとシンボルのほうが主役で、評価されれば値になるし一部は事前にわかる場合もある。
バイナリ寄りのデバッガなら
シンボル情報 (デバッグ情報) を扱えるものであってもまずそこにあるのは具体的な値であって、
値のほうをメインに見せる (シンボルは補助的な情報) のが筋に思える。
ソースレベルデバッグなら言語の評価モデルに一致するのが自然だと思う。
そうなるとシンボルのほうが主役で、評価されれば値になるし一部は事前にわかる場合もある。
バイナリ寄りのデバッガなら
シンボル情報 (デバッグ情報) を扱えるものであってもまずそこにあるのは具体的な値であって、
値のほうをメインに見せる (シンボルは補助的な情報) のが筋に思える。
61デフォルトの名無しさん (ワッチョイ 827c-RmzB)
2023/11/04(土) 14:07:46.76ID:nDDUhOSB062デフォルトの名無しさん (ワッチョイ 827c-RmzB)
2023/11/04(土) 14:20:50.41ID:nDDUhOSB063デフォルトの名無しさん (ワッチョイ 653d-2MVi)
2023/11/04(土) 15:58:28.43ID:lvandghk0 例の人ですか?
64デフォルトの名無しさん (ワッチョイ c191-HQPe)
2023/11/04(土) 19:42:10.24ID:Q+jfxr6/0 >>62
スレを私物化してないか?
スレを私物化してないか?
65デフォルトの名無しさん (ワッチョイ 4279-ztC3)
2023/11/04(土) 21:41:26.73ID:W1fOq5zR0 Cは単純だからぽいんた辺りで躓かない限り特に疑問は生まれずスーっと大脳皮質に浸透していく
それに比べて自称モダン言語の気持ち悪さよ
Cが無かったらプログラミングなんてやってなかったろうな
それに比べて自称モダン言語の気持ち悪さよ
Cが無かったらプログラミングなんてやってなかったろうな
66デフォルトの名無しさん (ワッチョイ 9901-jPjl)
2023/11/04(土) 21:47:47.71ID:vTgEadDD0 Cも関数ポインタとかたいがいきしょいぞ
67デフォルトの名無しさん (ワッチョイ 4279-ztC3)
2023/11/04(土) 21:53:04.57ID:W1fOq5zR0 Cの関数ポインタはそれ以上でもそれ以下でもない
セキュリティが緩い頃は関数ポインタを駆使すれば関数型言語で言う所の関数のファーストクラスも実現できた
この時やはりコードとデータは分かれているべきと判りみ
と同時にオブジェクト指向は間違った思想と気付く
セキュリティが緩い頃は関数ポインタを駆使すれば関数型言語で言う所の関数のファーストクラスも実現できた
この時やはりコードとデータは分かれているべきと判りみ
と同時にオブジェクト指向は間違った思想と気付く
68はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 823e-oDOv)
2023/11/04(土) 21:57:40.47ID:ocaBqo/v0 少なくとも宣言については無茶苦茶な文法だけどな。
69デフォルトの名無しさん (ワッチョイ 9901-jPjl)
2023/11/04(土) 22:08:52.30ID:vTgEadDD0 C++になると更にきしょいメンバ関数ポインタがあるが
70デフォルトの名無しさん (ワッチョイ 9901-jPjl)
2023/11/04(土) 22:36:43.09ID:vTgEadDD0 #include <iostream>
using namespace std;
struct Hoge {
int hage_;
int mage () const {return hage_;}
};
void func (const Hoge &obj, int (Hoge::*func) () const) {
cout << (obj.*func) () << '\n';
}
int main () {
void (*f) (const Hoge &, int (Hoge::*) () const) {&func};
Hoge hoge {10};
(*f) (hoge, &Hoge::mage);
return 0;
}
きめぇ
using namespace std;
struct Hoge {
int hage_;
int mage () const {return hage_;}
};
void func (const Hoge &obj, int (Hoge::*func) () const) {
cout << (obj.*func) () << '\n';
}
int main () {
void (*f) (const Hoge &, int (Hoge::*) () const) {&func};
Hoge hoge {10};
(*f) (hoge, &Hoge::mage);
return 0;
}
きめぇ
71デフォルトの名無しさん (ワッチョイ 2e63-sdYh)
2023/11/05(日) 00:14:17.78ID:u007GASC0 次の仕様拡張で関数配列が導入されます(嘘)
72デフォルトの名無しさん (アウアウウー Saa5-CWlg)
2023/11/05(日) 10:34:57.51ID:ol9bMVcca73デフォルトの名無しさん (ワッチョイ 2e63-sdYh)
2023/11/05(日) 10:45:42.91ID:u007GASC0 定数はともかく変数の値の変化を監視するとなれば話は変わりますよ
74デフォルトの名無しさん (ワッチョイ c191-HQPe)
2023/11/05(日) 10:52:46.61ID:dHgdjFj0075デフォルトの名無しさん (アウアウウー Saa5-CWlg)
2023/11/05(日) 11:02:20.21ID:ol9bMVcca >>70
こう描けばそこまでキモくない
#include <iostream>
using namespace std;
struct Hoge {
int hage_;
int mage () const {return hage_;}
};
void func (const Hoge &obj, int (Hoge::*p) () const) {
cout << (obj.*p)() << '\n';
}
int main () {
void (*f) (const Hoge &obj, int (Hoge::*p) () const) = func;
Hoge hoge {10};
f(hoge, &Hoge::mage);
return 0;
}
こう描けばそこまでキモくない
#include <iostream>
using namespace std;
struct Hoge {
int hage_;
int mage () const {return hage_;}
};
void func (const Hoge &obj, int (Hoge::*p) () const) {
cout << (obj.*p)() << '\n';
}
int main () {
void (*f) (const Hoge &obj, int (Hoge::*p) () const) = func;
Hoge hoge {10};
f(hoge, &Hoge::mage);
return 0;
}
76デフォルトの名無しさん (アウアウウー Saa5-2ws7)
2023/11/06(月) 13:51:35.97ID:4BOQTpQoa >>75
using使えよ
using使えよ
77デフォルトの名無しさん (ワッチョイ 42ad-dLR+)
2023/11/08(水) 13:50:08.70ID:ySVrNoqw0 C++の話はスレチ
78デフォルトの名無しさん (ワッチョイ 4279-ztC3)
2023/11/08(水) 19:54:11.21ID:5o5qiXKK0 その言葉が聞きたかった
79あぼーん
NGNGあぼーん
80デフォルトの名無しさん (ワッチョイ ff02-qIOU)
2023/11/12(日) 08:32:02.96ID:d94Xl3Lo0 >>79
おー、これはワクワクするな
おー、これはワクワクするな
81デフォルトの名無しさん (ワッチョイ 1fdd-/atU)
2023/11/12(日) 08:34:12.27ID:GHx2Prj8082デフォルトの名無しさん (ラクッペペ MM4f-6FeI)
2023/11/12(日) 08:51:33.78ID:It/c5vypM ここまで自演
83デフォルトの名無しさん (ワッチョイ 7f7c-aEnJ)
2023/11/13(月) 22:12:34.37ID:6eyhepdG0 はじめてのCってタイトル狙ってるよね?
84デフォルトの名無しさん (ワンミングク MMdf-P3L0)
2023/11/14(火) 12:53:07.86ID:W6BGRK+OM なんかドキドキする💗
85デフォルトの名無しさん (ワッチョイ 1f10-Zoup)
2023/11/14(火) 15:40:13.41ID:Pq1b8U9m0 >はじめてのC
数十年前からの定番ネタだよね・・・今の中年向けの・・・。
数十年前からの定番ネタだよね・・・今の中年向けの・・・。
86デフォルトの名無しさん (ワッチョイ 1ff0-Gf4c)
2023/11/14(火) 15:56:04.92ID:B1tltd4R0 お前らはAの経験もないだろ
87デフォルトの名無しさん (ワッチョイ 9f46-ch54)
2023/11/14(火) 17:17:03.46ID:Qm0S65Zf0 小さく投げAするときも左利き。
88デフォルトの名無しさん (ワッチョイ 1f5f-Zoup)
2023/11/14(火) 17:23:51.01ID:0+a8UjLX0 消えたD言語もw
89デフォルトの名無しさん (アウアウウー Sae3-6ymb)
2023/11/14(火) 17:24:41.49ID:ehFVRHwha APLは経験ないな
90デフォルトの名無しさん (ワッチョイ ff63-lv/m)
2023/11/14(火) 17:26:26.82ID:juKbspbB0 魔球は魔球はハリケーン♪
91デフォルトの名無しさん (ワッチョイ 7fad-beIL)
2023/11/15(水) 02:42:58.51ID:FfQCTRFi0 >>90
あなたの年齢は50歳以上ですね。
あなたの年齢は50歳以上ですね。
92デフォルトの名無しさん (ワッチョイ 9fbb-7z1d)
2023/11/16(木) 19:17:29.74ID:j+PNeGK90 Cタ「バルス!」
93デフォルトの名無しさん (ワッチョイ ff46-uMtu)
2023/11/16(木) 20:52:49.80ID:oCahIYzp0 C名「歌舞伎町の女王」
94デフォルトの名無しさん (ワッチョイ 465f-jMfl)
2023/11/18(土) 16:08:05.16ID:rSBossZH0 今はABCって言っても通用しないよ
95デフォルトの名無しさん (ワッチョイ 6e46-4xZ8)
2023/11/18(土) 17:12:35.80ID:gr23gvrO096デフォルトの名無しさん (スップ Sd82-K/BJ)
2023/11/24(金) 17:31:57.03ID:yKOVmI8Pd 三等車か
97デフォルトの名無しさん (ワッチョイ a7bb-ayIT)
2023/11/25(土) 04:21:32.09ID:qagB2RQA0 Cの関数ポインタに慣れてしまってたんなに奇天烈に見えてたのに今じゃ可愛く見える
98デフォルトの名無しさん (ワッチョイ 5fad-1+JT)
2023/11/25(土) 04:36:14.81ID:D3zQdbUT0 ∧__∧
(´∀`)
(⊃⌒*⌒⊂)
/_ノωヽ_)
(´∀`)
(⊃⌒*⌒⊂)
/_ノωヽ_)
99デフォルトの名無しさん (ワッチョイ 7f63-YwKO)
2023/11/25(土) 10:00:22.54ID:NdoBt+NA0 目標をせんたーに入れてスイッチ
100デフォルトの名無しさん (スププ Sd7f-RFe5)
2023/11/27(月) 08:24:12.52ID:554QjvZVd 左辺値と右辺値のことがよくわからない
char *cp = "abcdefgの"abcdefg"は値を変更できないのに、
char cp[] = "abcdefg"の"abcdefg"は値を変更できる
char *cp = "abcdefgの"abcdefg"は値を変更できないのに、
char cp[] = "abcdefg"の"abcdefg"は値を変更できる
101はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-d+hN)
2023/11/27(月) 09:01:26.52ID:HtoHgn5y0 >>100
それは左辺値/右辺値とは関係ない。
「リテラルを書き換えようとしたら未定義」というルールが関与してる。
前者の場合は文字列の場所を示すアドレスが cp に格納されているので
cp が指す先というのは文字列リテラルだが
後者の場合は確保された配列を初期化子の文字列で初期化するという理屈なので
配列と文字列リテラルとは別の実体を持ち、リテラルではない配列を書き換えることは問題にならない。
初期化子として文字列が出てくるときは初期化の文法としてちょっと特例があるのと
(文字列を含む) 配列は暗黙の型変換で勝手にポインタに変換される特例があって
そういう変則的なルールの積み重ねが分かり難い要因だと思う。
リテラルは書き換えたら駄目なのに型の上では文字列リテラルに const はつかない (C++ では const が付く) ので
ごく単純な場合を除くと書き換えをコンパイラがコンパイル時にエラーとして検出できないこともある。
なるべく (前後の事情によっては出来ないこともあるけど) 変数には const を付けておくのが良い作法だと思う。
const char *cp = "abcdefg";
それは左辺値/右辺値とは関係ない。
「リテラルを書き換えようとしたら未定義」というルールが関与してる。
前者の場合は文字列の場所を示すアドレスが cp に格納されているので
cp が指す先というのは文字列リテラルだが
後者の場合は確保された配列を初期化子の文字列で初期化するという理屈なので
配列と文字列リテラルとは別の実体を持ち、リテラルではない配列を書き換えることは問題にならない。
初期化子として文字列が出てくるときは初期化の文法としてちょっと特例があるのと
(文字列を含む) 配列は暗黙の型変換で勝手にポインタに変換される特例があって
そういう変則的なルールの積み重ねが分かり難い要因だと思う。
リテラルは書き換えたら駄目なのに型の上では文字列リテラルに const はつかない (C++ では const が付く) ので
ごく単純な場合を除くと書き換えをコンパイラがコンパイル時にエラーとして検出できないこともある。
なるべく (前後の事情によっては出来ないこともあるけど) 変数には const を付けておくのが良い作法だと思う。
const char *cp = "abcdefg";
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市総理の周辺「小さな火種が火事になりかけている。早く鎮火しないといけない」 ★4 [Hitzeschleier★]
- 国内ホテル、既にキャンセルも 訪日客関連業界、事態見守る [蚤の市★]
- 早大名誉教授が高市早苗首相の発言に言及「台湾も迷惑だと言っている」… [BFU★]
- 「影響これから」不安募るインバウンド関連業界 中国の訪日自粛要請 [蚤の市★]
- 中国で「クレしん」公開延期 対日報復、エンタメに波及 [蚤の市★]
- 【映画】『クレヨンしんちゃん』 中国で公開延期 対日報復、エンタメに波及 [冬月記者★]
- Xのネトウヨ「高市首相が日本から中国人を追い出した!!勝った!!」 [805596214]
- 【んな専🏡】姫森ルーナ(・o・🍬)総合スレッド🏰【ホロライブ▶】
- 愛国者「台湾有事になったらこれだけの国が台湾側で参戦するぞ!」→6万いいね [834922174]
- 【実況】博衣こよりのえちえち雀魂1位耐久🧪★2
- 高市早苗の経済損失、数十兆円〜数百兆円か [931948549]
- 高市経済ブレーン「経済対策28兆円必要」「円安急速すぎる、為替介入を」「来年1月の利上げも不要」 [237216734]
