!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
レス数が1000を超えています。これ以上書き込みはできません。
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";
102デフォルトの名無しさん (アウアウウー Sa0b-6V65)
2023/11/27(月) 09:03:50.85ID:7/k6/GSga char *cpa = "abcdefg;
char cpb[] = cpa; // 出来ない
char cpc[] = "abcdefg";
char *cpd = cpc; // 出来る & abcdefgの中身も描き替え出来る
char cpb[] = cpa; // 出来ない
char cpc[] = "abcdefg";
char *cpd = cpc; // 出来る & abcdefgの中身も描き替え出来る
103デフォルトの名無しさん (ワッチョイ 7fab-LZ+J)
2023/11/27(月) 11:14:55.99ID:zMN468VW0 「大前提で文字列リテラルは書き換えたらダメ」があって
初期化と代入が同じ記号の = で行われてる
配列での代入操作は暗黙で先頭のポインタを渡す一方で
配列の初期化はあたかも複製をとったような形になる
ここらへんにややこしさがあってめぐりめぐって1行目にヒットする
初期化と代入が同じ記号の = で行われてる
配列での代入操作は暗黙で先頭のポインタを渡す一方で
配列の初期化はあたかも複製をとったような形になる
ここらへんにややこしさがあってめぐりめぐって1行目にヒットする
104デフォルトの名無しさん (スププ Sd7f-RFe5)
2023/11/27(月) 11:25:24.57ID:554QjvZVd >>101 ご親切にありがとうございます。標準的な本にもかいてあることを聞いてしまいました。
105デフォルトの名無しさん (エムゾネ FF7f-xen6)
2023/11/27(月) 12:06:42.49ID:65C4jQRRF106デフォルトの名無しさん (ワッチョイ 7fab-LZ+J)
2023/11/27(月) 12:39:47.73ID:zMN468VW0 "abcdefg"[2] = 'C'; これがNG
107デフォルトの名無しさん (ワッチョイ 5f79-/KuA)
2023/11/27(月) 19:49:45.68ID:/cbu4sL+0 >ポインタと配列(の先頭番地)は同じように使えるがまったく別のもの
まったく別と言い切ってしまうのはちょっと語弊があるように思う
言い換えれば配列はアドレスが変更できないポインタとみなせる
後は参照先のメモリ領域が書き換え可能かそうでないかの違いでしかない
まったく別と言い切ってしまうのはちょっと語弊があるように思う
言い換えれば配列はアドレスが変更できないポインタとみなせる
後は参照先のメモリ領域が書き換え可能かそうでないかの違いでしかない
108デフォルトの名無しさん (ワッチョイ 7f63-YwKO)
2023/11/27(月) 19:53:12.61ID:iryvQ0lx0 配列名は単に文字列が格納されている場所に付けられたラベル
109デフォルトの名無しさん (ワッチョイ 7f6a-l0Ve)
2023/11/27(月) 22:43:46.81ID:LIfK37a60 >>108
上で触れられているようにサイズ情報も持ってる
上で触れられているようにサイズ情報も持ってる
110デフォルトの名無しさん (スプッッ Sdff-z/Dz)
2023/11/28(火) 08:18:33.76ID:0HFLSmnDd >>109
それは別に配列だからってわけじゃない。
それは別に配列だからってわけじゃない。
111はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-d+hN)
2023/11/28(火) 09:29:06.38ID:mRTkdYl90 配列の型は配列型だ。
char cpc[] = "abcdefg";
とあればこのときの cpc の型は char[8] をもつ。
式中に配列型の式が現れた場合には sizeof か & のオペランドであった場合を除いてその配列の先頭要素を指すポインタ (この場合は char*) に暗黙に型変換される。
変換が適用されればポインタだし、適用されない場面では配列。
配列自体は左辺値だが変更できる左辺値 (modifiable lvalue) ではないので代入演算子の左辺に現れることはできない。
配列を型変換を適用して出来るポインタは左辺値ではないのでやっぱり代入することは出来ない。
char cpc[] = "abcdefg";
とあればこのときの cpc の型は char[8] をもつ。
式中に配列型の式が現れた場合には sizeof か & のオペランドであった場合を除いてその配列の先頭要素を指すポインタ (この場合は char*) に暗黙に型変換される。
変換が適用されればポインタだし、適用されない場面では配列。
配列自体は左辺値だが変更できる左辺値 (modifiable lvalue) ではないので代入演算子の左辺に現れることはできない。
配列を型変換を適用して出来るポインタは左辺値ではないのでやっぱり代入することは出来ない。
112デフォルトの名無しさん (ワッチョイ dfc6-AnfR)
2023/11/28(火) 10:56:51.80ID:vcMwjchf0 え?左辺値に出来るやん
113デフォルトの名無しさん (ワッチョイ a76b-onFz)
2023/11/28(火) 15:19:32.77ID:87HNLOa+0 型の話って、実は結構難しいというか深いよね…
型を認識するプログラム作ってみるとわかるんだけど
「~のポインタである」と
「~の配列である」を同じ情報量では扱えなくて
「~の配列(要素数n)である」としないとだめなの
ポインタである ことは1ビットで保持できるのに、配列である は要素数があるから必要なビット数がやたら多いのよ
型を認識するプログラム作ってみるとわかるんだけど
「~のポインタである」と
「~の配列である」を同じ情報量では扱えなくて
「~の配列(要素数n)である」としないとだめなの
ポインタである ことは1ビットで保持できるのに、配列である は要素数があるから必要なビット数がやたら多いのよ
114デフォルトの名無しさん (ワッチョイ 4701-GgRN)
2023/11/28(火) 18:36:50.58ID:0ouam6Fz0 ((char*)cpc)++ で cpc[0] が 'b' を指すように移動できるの?
これがポインタが左辺値になってるって意味の理解でOK?
これがポインタが左辺値になってるって意味の理解でOK?
115デフォルトの名無しさん (ワッチョイ a763-YwKO)
2023/11/28(火) 19:17:29.83ID:7gZuadd+0 ++は無理
116デフォルトの名無しさん (ワッチョイ 47e7-xen6)
2023/11/28(火) 19:34:06.06ID:7TmihfNz0 アセンブラで考えるとよくわかる
cpa:
.dw cpa_static
cpa_static:
.db 'abcdef',0
cpc:
db 'abcdef',0
こんな感じになるだろう
cpaをインクリメントするのが可能だがcpcをインクリメントするのは無理なのがわかるだろう
cpcはアセンブル後には値がなくなる固定値でcpaは領域が確保されてる変数だから
cpa:
.dw cpa_static
cpa_static:
.db 'abcdef',0
cpc:
db 'abcdef',0
こんな感じになるだろう
cpaをインクリメントするのが可能だがcpcをインクリメントするのは無理なのがわかるだろう
cpcはアセンブル後には値がなくなる固定値でcpaは領域が確保されてる変数だから
117デフォルトの名無しさん (ワッチョイ a763-YwKO)
2023/11/28(火) 19:42:59.12ID:7gZuadd+0 >((char*)cpc)++
こんな風な事をしたいなら、
*(char*)cpc+i
これでどうだろうか
cpcは固定値で、加算も減算も出来ないが、その位置からのオフセットならとれる
でも、ふつうの人は cpc[i] こうするだろう
こんな風な事をしたいなら、
*(char*)cpc+i
これでどうだろうか
cpcは固定値で、加算も減算も出来ないが、その位置からのオフセットならとれる
でも、ふつうの人は cpc[i] こうするだろう
118はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-d+hN)
2023/11/28(火) 20:11:54.43ID:mRTkdYl90 >>114
代入可能であるためには左辺値であることは必要条件なのだけれど十分条件ではない。
配列が代入の対象になりえないにも関わらず
(modifiable という概念を導入してまで) 左辺値という扱いにしていることからもわかるように、
代入できるかどうかで左辺値かどうかは語れない。
左辺値でも代入できないことはある。
右辺値はどこかに代入しない限り捨てられる (その式を超える寿命を持つことはない) という性質があるので
逆にそうでないものは左辺値という扱いにしないと辻褄が合わないからこうなってるんだと思う。
代入可能であるためには左辺値であることは必要条件なのだけれど十分条件ではない。
配列が代入の対象になりえないにも関わらず
(modifiable という概念を導入してまで) 左辺値という扱いにしていることからもわかるように、
代入できるかどうかで左辺値かどうかは語れない。
左辺値でも代入できないことはある。
右辺値はどこかに代入しない限り捨てられる (その式を超える寿命を持つことはない) という性質があるので
逆にそうでないものは左辺値という扱いにしないと辻褄が合わないからこうなってるんだと思う。
119デフォルトの名無しさん (ワッチョイ 5fdf-2qxF)
2023/11/28(火) 20:38:05.06ID:h0hB0aZz0120デフォルトの名無しさん (アウアウウー Sa0b-6V65)
2023/11/29(水) 06:07:26.12ID:n75oaT1ga なんでcpcを++したいと思うんだろ
121デフォルトの名無しさん (ワッチョイ bf35-UyS0)
2023/11/29(水) 07:30:00.42ID:Dj4oipus0 左辺値かどうかの簡単な切り分けだと思っただけで
そういう欲求はない
そういう欲求はない
122デフォルトの名無しさん (スフッ Sd7f-1fOb)
2023/11/29(水) 11:41:18.63ID:5J3ZheQvd >>111 正確には、配列名のことをいっているんでしょ?
123デフォルトの名無しさん (スフッ Sd7f-1fOb)
2023/11/29(水) 11:43:26.36ID:5J3ZheQvd でないと文章的につじつまが合わない
124はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-d+hN)
2023/11/29(水) 12:08:25.16ID:sncgHuaJ0 何を言ってるのだかわからん。
代入演算子の左辺に配列が現れることは出来ないという説明
に納得いかない (できる状況があると思っている) ということ?
代入演算子の左辺に配列が現れることは出来ないという説明
に納得いかない (できる状況があると思っている) ということ?
125デフォルトの名無しさん (スフッ Sd7f-1fOb)
2023/11/29(水) 12:16:49.24ID:5J3ZheQvd >>124 そういうことです
126デフォルトの名無しさん (ワッチョイ 5f79-/KuA)
2023/11/29(水) 12:18:51.59ID:UMPQWy8o0 代入可能な左辺値一覧
○…代入可能な左辺値
×…代入可能な左辺値ではない
1 変数に代入 v=x ○
2 変数のアドレスに代入 &v=x ×
3 配列に代入 a[i]=x ○
4 配列の名前に代入(2に相当) a=x ×
5 ポインタ変数に代入 p=x ○
5 ポインタ変数のアドレスに代入 &p=x ×
7 ポインタ変数の参照先に代入 *p=x ○ ただし参照先が書き込み可能でなければランタイムエラー
理解できたかね?
○…代入可能な左辺値
×…代入可能な左辺値ではない
1 変数に代入 v=x ○
2 変数のアドレスに代入 &v=x ×
3 配列に代入 a[i]=x ○
4 配列の名前に代入(2に相当) a=x ×
5 ポインタ変数に代入 p=x ○
5 ポインタ変数のアドレスに代入 &p=x ×
7 ポインタ変数の参照先に代入 *p=x ○ ただし参照先が書き込み可能でなければランタイムエラー
理解できたかね?
127デフォルトの名無しさん (スフッ Sd7f-1fOb)
2023/11/29(水) 12:25:45.50ID:5J3ZheQvd >>126 まだまだ浅学な者で、3と4の違いが分かれば十分です
128デフォルトの名無しさん (スフッ Sd7f-1fOb)
2023/11/29(水) 12:26:51.70ID:5J3ZheQvd 右辺値と左辺値に関しては
129デフォルトの名無しさん (スフッ Sd7f-1fOb)
2023/11/29(水) 12:34:21.47ID:5J3ZheQvd char ss[5];
char *p;
p = ss; 〇
p = &ss[0]; 〇
ss = p; ×
p = ss + 2; 〇
p = &ss[2]; 〇
char *p;
p = ss; 〇
p = &ss[0]; 〇
ss = p; ×
p = ss + 2; 〇
p = &ss[2]; 〇
130はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-d+hN)
2023/11/29(水) 12:41:04.72ID:sncgHuaJ0 配列 a があるとき
a[i]=x
という式の左辺は配列に添字演算子を適用したもの (配列の要素) であって
これのことを「配列に代入」と呼ぶと語弊がある。
a[i]=x
という式の左辺は配列に添字演算子を適用したもの (配列の要素) であって
これのことを「配列に代入」と呼ぶと語弊がある。
131デフォルトの名無しさん (スフッ Sd7f-1fOb)
2023/11/29(水) 12:54:49.45ID:5J3ZheQvd しかし、食べたらまずそうなコテハンですね('_')
132はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-d+hN)
2023/11/29(水) 13:01:54.89ID:sncgHuaJ0 最初はSCHEME餃子と名乗ってたけどSCHEMEスレが過疎ってて暇だから
CスレC++スレにも書く機会が多くて途中で変えた。
私としてはあり得なさそうな組み合わせの語を選んだつもりだったのだけど
はちみつを使った餃子のレシピはあるみたいだよ。
CスレC++スレにも書く機会が多くて途中で変えた。
私としてはあり得なさそうな組み合わせの語を選んだつもりだったのだけど
はちみつを使った餃子のレシピはあるみたいだよ。
133デフォルトの名無しさん (スフッ Sd7f-RFe5)
2023/11/29(水) 13:56:20.69ID:5J3ZheQvd 配列には確かに構造体のようにごっそり代入できませんね
134デフォルトの名無しさん (ワントンキン MM3f-LVuv)
2023/11/29(水) 14:07:08.49ID:5SldHabaM 構造体に入れてしまえば解決
135デフォルトの名無しさん (ワッチョイ 7fab-LZ+J)
2023/11/29(水) 15:10:46.39ID:K/pKiYoT0 126 の表現を借りるなら
3 は配列の要素に代入
4 が配列に代入
こういう意識だわ
3 は配列の要素に代入
4 が配列に代入
こういう意識だわ
136デフォルトの名無しさん (ワッチョイ 5f79-/KuA)
2023/11/29(水) 15:15:32.07ID:UMPQWy8o0 結局てめーの日本語が気に食わないって話かよ
長文は読む気が失せるわー
長文は読む気が失せるわー
137はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-d+hN)
2023/11/29(水) 16:16:32.90ID:sncgHuaJ0 「配列は」という話をしているときに配列でなくする操作 (要素に対するアクセス) をすれば出来るみたいな話と混同されると困る。
138デフォルトの名無しさん (ワッチョイ 47e7-xen6)
2023/11/29(水) 20:22:44.16ID:odjcqh9C0 初心者のころ
char text[] = "Answer is _";
text[10] = 'A' + ans;
とか書こうとしてうろおぼえで
char *text = "Answer is _";
text[10] = 'A' + ans;
としたらエラーかワーニングになって
なんでできないんだよ!とずっと悩んでいたことがあるが
そういう話じゃないの?
char text[] = "Answer is _";
text[10] = 'A' + ans;
とか書こうとしてうろおぼえで
char *text = "Answer is _";
text[10] = 'A' + ans;
としたらエラーかワーニングになって
なんでできないんだよ!とずっと悩んでいたことがあるが
そういう話じゃないの?
139デフォルトの名無しさん (アウアウウー Sa0b-6V65)
2023/11/30(木) 06:41:39.94ID:yOmuxKyka char a[] = "A";
char *p = a;
は別物(同じだと説明している入門書があるならクソ本)
&a[0] を a と省略出来るだけ
もちろん sizeof p と sizeof a[0] と sizeof a は違う
char *p = a;
は別物(同じだと説明している入門書があるならクソ本)
&a[0] を a と省略出来るだけ
もちろん sizeof p と sizeof a[0] と sizeof a は違う
140デフォルトの名無しさん (ワッチョイ bfe7-2qxF)
2023/11/30(木) 13:09:50.69ID:EuLMofdV0141はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-d+hN)
2023/11/30(木) 14:54:30.13ID:3QI4e6Tt0 > &a[0] を a と省略出来るだけ
意味が同じなわけなので記法の上では省略と言えるんだけど
a が &a[0] のことを意味しているというわけではなく、
言語仕様上の理屈としては a のほうにプリミティブな定義があって &a[0] のほうが構文糖という扱い。
@ E1[E2] は (*((E1)+(E2))) と等価である
A & のオペランドが単項*演算子の結果の場合,*演算子も&演算子も評価せずに両演算子とも取り除いた場合と同じ
(添字演算子の適用結果をオペランドとする場合も同様)
B 配列 (結果が配列型となるような式) は sizeof か & のオペランドであるときを除いて先頭要素を指すポインタに変換される
つまり &a[0] の場合を順番に当てはめるとまず &*(a+0) と同等と見做され、
&* は無かったことにされるので a+0 となり、 0 を足しても内容は変化しないから無視できて a と同じ。
そして a は配列の先頭要素を指すポインタに変換される。
意味が同じなわけなので記法の上では省略と言えるんだけど
a が &a[0] のことを意味しているというわけではなく、
言語仕様上の理屈としては a のほうにプリミティブな定義があって &a[0] のほうが構文糖という扱い。
@ E1[E2] は (*((E1)+(E2))) と等価である
A & のオペランドが単項*演算子の結果の場合,*演算子も&演算子も評価せずに両演算子とも取り除いた場合と同じ
(添字演算子の適用結果をオペランドとする場合も同様)
B 配列 (結果が配列型となるような式) は sizeof か & のオペランドであるときを除いて先頭要素を指すポインタに変換される
つまり &a[0] の場合を順番に当てはめるとまず &*(a+0) と同等と見做され、
&* は無かったことにされるので a+0 となり、 0 を足しても内容は変化しないから無視できて a と同じ。
そして a は配列の先頭要素を指すポインタに変換される。
142はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-d+hN)
2023/11/30(木) 14:59:53.10ID:3QI4e6Tt0 (順序から言うと配列がポインタに変換されるほうが先だな……。 すまぬ)
143はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-d+hN)
2023/11/30(木) 15:08:15.57ID:3QI4e6Tt0 配列 a は a と書くだけで先頭要素を指すポインタなので
&a[0] と書くってのは 0 を足すという要らんことをしているという扱いってこと。
&a[0] と書くってのは 0 を足すという要らんことをしているという扱いってこと。
144デフォルトの名無しさん (ワッチョイ 5f79-/KuA)
2023/11/30(木) 20:20:41.06ID:4nwqW1NG0 >>140
pがザビ家でaがジオン公国そのものと言ったら判りやすいだろうか
ジオンはザビ家にNTRれたけど元のジオン・ダイクンが掲げた思想(長さとか)はNTRが完了した時点で失われた
その後出てきたアクシズ(ネオ・ジオン)はもっと酷くてジオンと言える部分はNTRしたザビ家の跡取りとその傀儡だけでジオンとは一体何だったのか語れる人物は一人もいない
pがザビ家でaがジオン公国そのものと言ったら判りやすいだろうか
ジオンはザビ家にNTRれたけど元のジオン・ダイクンが掲げた思想(長さとか)はNTRが完了した時点で失われた
その後出てきたアクシズ(ネオ・ジオン)はもっと酷くてジオンと言える部分はNTRしたザビ家の跡取りとその傀儡だけでジオンとは一体何だったのか語れる人物は一人もいない
145デフォルトの名無しさん (ワッチョイ 47e7-xen6)
2023/11/30(木) 20:26:04.69ID:SvZ2/mZg0 >>143
そっちのほうが余計なギミックじゃない?
a[]のアドレスが欲しければ&aと書くだけでいいのに
aが自動的にa[]の先頭番地になってしまうからややこしい
ちなみにBASICだと配列と同名の単純変数が作れてしまいこれも今思うと無茶苦茶だった
そっちのほうが余計なギミックじゃない?
a[]のアドレスが欲しければ&aと書くだけでいいのに
aが自動的にa[]の先頭番地になってしまうからややこしい
ちなみにBASICだと配列と同名の単純変数が作れてしまいこれも今思うと無茶苦茶だった
146デフォルトの名無しさん (アウアウウー Sa0b-6V65)
2023/11/30(木) 20:46:09.47ID:h/B+JtY5a >>117
意味無いわ
意味無いわ
147デフォルトの名無しさん (アウアウウー Sa0b-6V65)
2023/11/30(木) 20:47:46.07ID:h/B+JtY5a 完全に理解した!!!
↓
https://ideone.com/g2912A
#include <stdio.h>
#define N 3
int main(int argc, char **argv)
{
char *hoge[] = {"abcd", "efg"};
char **hige = hoge;
char hage[][N] = {"ab", "cd", "ef", "gh"};
char (*fuga)[N] = hage;
char (*moga)[N] = {"ab", "cd", "ef", "gh"};
printf("%zd %s %s\n", sizeof(hoge), hoge[0], hoge[1]);
printf("%zd %s %s\n", sizeof(hige), hige[0], hige[1]);
printf("%zd %s %s %s %s\n", sizeof(hage), hage[0], hage[1], hage[2], hage[3]);
printf("%zd %s %s %s %s\n", sizeof(fuga), fuga[0], fuga[1], fuga[2], fuga[3]);
printf("%zd %s %s %s %s\n", sizeof(moga), moga[0], moga[1], moga[2], moga[3]);
return 0;
}
↓
説明してみ
↓
https://ideone.com/g2912A
#include <stdio.h>
#define N 3
int main(int argc, char **argv)
{
char *hoge[] = {"abcd", "efg"};
char **hige = hoge;
char hage[][N] = {"ab", "cd", "ef", "gh"};
char (*fuga)[N] = hage;
char (*moga)[N] = {"ab", "cd", "ef", "gh"};
printf("%zd %s %s\n", sizeof(hoge), hoge[0], hoge[1]);
printf("%zd %s %s\n", sizeof(hige), hige[0], hige[1]);
printf("%zd %s %s %s %s\n", sizeof(hage), hage[0], hage[1], hage[2], hage[3]);
printf("%zd %s %s %s %s\n", sizeof(fuga), fuga[0], fuga[1], fuga[2], fuga[3]);
printf("%zd %s %s %s %s\n", sizeof(moga), moga[0], moga[1], moga[2], moga[3]);
return 0;
}
↓
説明してみ
148デフォルトの名無しさん (アウアウウー Sa0b-6V65)
2023/11/30(木) 20:51:51.20ID:h/B+JtY5a アンカ忘れた
>>140
>>140
149はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-zy57)
2023/11/30(木) 21:26:27.48ID:3QI4e6Tt0150デフォルトの名無しさん (ワントンキン MM3f-XlNP)
2023/11/30(木) 22:06:24.41ID:wy49Mw9yM いやいや何を言っとんの?
利便性のためにそういう仕様にしてるんだよ
C書いてりゃさすがに分かんだろうよw
利便性のためにそういう仕様にしてるんだよ
C書いてりゃさすがに分かんだろうよw
151はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-zy57)
2023/11/30(木) 22:36:56.23ID:3QI4e6Tt0 感覚的にはそんなに不自然には感じないんだけど
仕様の規則が変則的なのも確かなので
つまりは人間の感覚は不合理なものってことだ。
仕様の規則が変則的なのも確かなので
つまりは人間の感覚は不合理なものってことだ。
152デフォルトの名無しさん (ワッチョイ bf5f-2qxF)
2023/11/30(木) 22:41:39.63ID:0Cr+jEwb0 >>147
%zd は知らなかったわ。 勉強になった
%zd は知らなかったわ。 勉強になった
153はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-d+hN)
2023/12/01(金) 00:42:09.23ID:U5xjJXbM0 sizeof の結果の型は size_t で、
size_t は符号なし整数というだけしか規定されていない処理系定義なんだけど
unsigned int や unsigned long int の別名として定義されていることが多いせいで
それをあてにした形で説明している資料は割とある。
size_t は符号なし整数というだけしか規定されていない処理系定義なんだけど
unsigned int や unsigned long int の別名として定義されていることが多いせいで
それをあてにした形で説明している資料は割とある。
154デフォルトの名無しさん (ワッチョイ 5fad-F3mB)
2023/12/01(金) 02:30:56.67ID:oKQshtme0 >>145
> a[]のアドレスが欲しければ&aと書くだけでいいのに
俺はそっちのほうがややこしいと思うけどな
むしろ*(a+10) を [] で表現するなら *a[10] みたいな書き方になるほうが、理解する上ではややこしくなかったかなとは思うけど(使う上では不便)
[] って箱(マス)に見えるし、まあ直接箱の中身を示すものなのだなって覚えたけど
> a[]のアドレスが欲しければ&aと書くだけでいいのに
俺はそっちのほうがややこしいと思うけどな
むしろ*(a+10) を [] で表現するなら *a[10] みたいな書き方になるほうが、理解する上ではややこしくなかったかなとは思うけど(使う上では不便)
[] って箱(マス)に見えるし、まあ直接箱の中身を示すものなのだなって覚えたけど
155デフォルトの名無しさん (ワッチョイ a76b-onFz)
2023/12/01(金) 05:52:03.14ID:sCbOzpGc0 誰が誰なのかよく分からんけど、キッズが来て荒れた、という話ですか
インデックスアドレッシングを [ ] 記号に当てただけと思うけど、そんなに難しいかね
インデックスアドレッシングを [ ] 記号に当てただけと思うけど、そんなに難しいかね
156デフォルトの名無しさん (ワッチョイ a76b-onFz)
2023/12/01(金) 05:55:20.08ID:sCbOzpGc0 型の話かと思ってたら、いつの間にか 入門者がポインタを理解できない話 になった印象
157はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-d+hN)
2023/12/01(金) 14:51:35.53ID:U5xjJXbM0 >>145
配列 a に &a としたときに得られるのは配列を指すポインタであって配列の先頭要素を指すポインタではない。
(型が違う。 アドレスを数値として見たら同じはずだけど。)
多次元配列にアクセスするとき (添字演算子を重ねて適用するとき) に仕様の通りに解釈していくと配列と先頭要素が都合よく切り替わって最終的にポインタ演算になるのが実に上手いこと出来てる。
配列の要素にアクセスするときの記法を現状のような形にするという前提でならなんだかんだでよく出来ている。
配列に & を付けたら配列を指すポインタになるというのは例外的ではない普通の挙動だからそこに別の意味を割り当てるならそれもやっぱり変則的なややこしい挙動ってことになってしまうよ。
配列 a に &a としたときに得られるのは配列を指すポインタであって配列の先頭要素を指すポインタではない。
(型が違う。 アドレスを数値として見たら同じはずだけど。)
多次元配列にアクセスするとき (添字演算子を重ねて適用するとき) に仕様の通りに解釈していくと配列と先頭要素が都合よく切り替わって最終的にポインタ演算になるのが実に上手いこと出来てる。
配列の要素にアクセスするときの記法を現状のような形にするという前提でならなんだかんだでよく出来ている。
配列に & を付けたら配列を指すポインタになるというのは例外的ではない普通の挙動だからそこに別の意味を割り当てるならそれもやっぱり変則的なややこしい挙動ってことになってしまうよ。
158デフォルトの名無しさん (ワッチョイ 7f6a-l0Ve)
2023/12/01(金) 19:03:26.87ID:Ga+233FE0159はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-d+hN)
2023/12/01(金) 19:23:36.92ID:U5xjJXbM0 >>158
プログラマが直接的に書く機会はあんまりないだろうけど、
暗黙には頻繁に表れていてこのルールがないと上手いこと機能しないって話。
#include <stdio.h>
int main(void) {
int foo[2][3] = {
{1, 2, 3},
{4, 5, 6}};
printf("%d\n", foo[1][2]); // ふたつの座標みたいに見えるけど
// 式を各段階に分解すると……
int(*bar)[3] = foo; // 配列を指すポインタは出てきてる!
int *baz = bar[1];
int qux = baz[2];
printf("%d\n", qux);
}
プログラマが直接的に書く機会はあんまりないだろうけど、
暗黙には頻繁に表れていてこのルールがないと上手いこと機能しないって話。
#include <stdio.h>
int main(void) {
int foo[2][3] = {
{1, 2, 3},
{4, 5, 6}};
printf("%d\n", foo[1][2]); // ふたつの座標みたいに見えるけど
// 式を各段階に分解すると……
int(*bar)[3] = foo; // 配列を指すポインタは出てきてる!
int *baz = bar[1];
int qux = baz[2];
printf("%d\n", qux);
}
160デフォルトの名無しさん (ワッチョイ 65d3-WD8q)
2023/12/05(火) 07:30:58.43ID:72+QzLj/0 c言語初心者です
質問させてください
FILE *fpという宣言の「FILE」にどういった役割があるのでしょうか
*fpは関数によってどこを読み書きするかを指定するためにアドレスを格納することは分かるのですが
それならばint型のポインタで良いような気もします
プログラムを書く上でどうでもいい内容なのですが教えていただければ今日の寝付きが良くなる気がします
質問させてください
FILE *fpという宣言の「FILE」にどういった役割があるのでしょうか
*fpは関数によってどこを読み書きするかを指定するためにアドレスを格納することは分かるのですが
それならばint型のポインタで良いような気もします
プログラムを書く上でどうでもいい内容なのですが教えていただければ今日の寝付きが良くなる気がします
161デフォルトの名無しさん (ワッチョイ eaad-snvD)
2023/12/05(火) 07:53:15.80ID:kkEdYaZP0 >>160
stdio.h の中身を見れば FILE がどう宣言されているか分かるのでは?
stdio.h の中身を見れば FILE がどう宣言されているか分かるのでは?
162デフォルトの名無しさん (スフッ Sd0a-Oc+E)
2023/12/05(火) 08:16:33.53ID:64vzQPx0d >>160 FILE構造体っていうことだけは、どの本にも書いてある。
163デフォルトの名無しさん (ワッチョイ 66d6-8IwF)
2023/12/05(火) 08:26:33.63ID:Sjl8/rh40 実際UNIXのfile descriptorはintでWindowsのファイルハンドルHANDLEはvoid*だ。
こいつらはシステムコールによってカーネルモードで操作されるから中身が完全に見えないようになってる
それとは違って標準Cライブラリはユーザモードで動作するから
処理系依存で中身を操作してもいいように作ったのかもしれない
こいつらはシステムコールによってカーネルモードで操作されるから中身が完全に見えないようになってる
それとは違って標準Cライブラリはユーザモードで動作するから
処理系依存で中身を操作してもいいように作ったのかもしれない
164デフォルトの名無しさん (スッップ Sd0a-Cw2Y)
2023/12/05(火) 08:33:57.88ID:GHHZLCc/d165デフォルトの名無しさん (ワッチョイ 65d3-WD8q)
2023/12/05(火) 09:00:17.71ID:72+QzLj/0 >>160です
普通の構造体の宣言とは異なり要素の記述はありませんが
「FILE」とは「ファイル構造体を使うよ」と宣言しているという意味で
そうしてstdio.h上のFILE構造体の要素に開いたファイルの情報が代入されていくということでしょうか?
「FILE」を記述せずにfopenで開こうとした場合構造体メンバのptrに代入されている数値が使えないのでfopenから戻り値が受け取れず正しく*fpに座標が代入されない
みたいな
そして開くだけならfopenでも開けてしまうとか
普通の構造体の宣言とは異なり要素の記述はありませんが
「FILE」とは「ファイル構造体を使うよ」と宣言しているという意味で
そうしてstdio.h上のFILE構造体の要素に開いたファイルの情報が代入されていくということでしょうか?
「FILE」を記述せずにfopenで開こうとした場合構造体メンバのptrに代入されている数値が使えないのでfopenから戻り値が受け取れず正しく*fpに座標が代入されない
みたいな
そして開くだけならfopenでも開けてしまうとか
166はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 2a3e-By03)
2023/12/05(火) 10:08:56.47ID:z5PiblaY0 言語仕様的に見れば FILE はストリームを制御するのに十分な情報が入ったオブジェクト型であることと、
アドレス (FILE 型のオブジェクトがある場所) に意味がある場合もあるから
オブジェクトをコピーして機能するとは限らないという程度のことしか書いてない。
FILE にどのような情報が格納されているのかといったことや
詳細な仕組みはホスト環境の事情に合わせて処理系の裁量で決めてよい部分なので、
具体的にどうなっているのかは各実行環境・開発環境ごとに違う。
特に環境依存の細かい部分に立ち入って制御をしたい事情があるのでない限りは
fopen が「なんらかの方法」で FILE 構造体を構築してそのアドレスを返すものであるということだけ知っていれば
普通のプログラマにとって十分なように出来ている。
アドレス (FILE 型のオブジェクトがある場所) に意味がある場合もあるから
オブジェクトをコピーして機能するとは限らないという程度のことしか書いてない。
FILE にどのような情報が格納されているのかといったことや
詳細な仕組みはホスト環境の事情に合わせて処理系の裁量で決めてよい部分なので、
具体的にどうなっているのかは各実行環境・開発環境ごとに違う。
特に環境依存の細かい部分に立ち入って制御をしたい事情があるのでない限りは
fopen が「なんらかの方法」で FILE 構造体を構築してそのアドレスを返すものであるということだけ知っていれば
普通のプログラマにとって十分なように出来ている。
167デフォルトの名無しさん (ワッチョイ 8ac1-Vvnv)
2023/12/05(火) 10:36:22.34ID:NYBtRI3Y0 >>165
3行目から4行目の理解で大体あってるよ
それ以降は何言ってんのか分かんねーから全部アタマの中から破棄していいよ
正確にはFILEってのは抽象データ型であんたは構造体って言ってるけど構造体かどうかは分からんし使う側は知る必要もない
提供者がわざわざ抽象型にして使い手側の負荷を下げてくれるとこを中身がどうとか役割がどうとかさぐんのは筋が悪いんだよ
使えって言われてんだから何も考えずにだまって使えばいいよ
3行目から4行目の理解で大体あってるよ
それ以降は何言ってんのか分かんねーから全部アタマの中から破棄していいよ
正確にはFILEってのは抽象データ型であんたは構造体って言ってるけど構造体かどうかは分からんし使う側は知る必要もない
提供者がわざわざ抽象型にして使い手側の負荷を下げてくれるとこを中身がどうとか役割がどうとかさぐんのは筋が悪いんだよ
使えって言われてんだから何も考えずにだまって使えばいいよ
168デフォルトの名無しさん (ワッチョイ 1163-8qzv)
2023/12/05(火) 11:08:08.12ID:h96fo3nj0 FILE構造体ってOS毎に変わるし、コンパイラ実装でも又変わってた様な気がする
169デフォルトの名無しさん (ワッチョイ 71cf-L1V1)
2023/12/05(火) 12:35:58.10ID:4VzMioa/0 FILE*経由だとバッファリングされるから、バッファーのポインタとそこに含まれてるデータサイズも含んでいるだろう
そもそもファイルのシーク位置も含まれてる
まとめると
・ファイルディスクリプターやファイルハンドル
・シーク位置
・バッファー(ポインタ、サイズ、含まれてるデータサイズ)
となるかね
そもそもファイルのシーク位置も含まれてる
まとめると
・ファイルディスクリプターやファイルハンドル
・シーク位置
・バッファー(ポインタ、サイズ、含まれてるデータサイズ)
となるかね
170デフォルトの名無しさん (アウアウウー Sa21-wVFe)
2023/12/05(火) 15:39:55.92ID:QJai9ytva >>160
void *hoge = (void *)fopen("hoge", "wb");
fprintf((FILE *)hoge, "hoge\n");
fclose((FILE *)hoge);
void *hoge = (void *)fopen("hoge", "wb");
fprintf((FILE *)hoge, "hoge\n");
fclose((FILE *)hoge);
171デフォルトの名無しさん (ワッチョイ 71cf-L1V1)
2023/12/05(火) 17:31:14.53ID:4VzMioa/0 FILE*互換の自前のストリームを実装できれば便利なんだがなぁ
継承が無いから、構造体に自前の関数をセットして、何らかの登録関数に渡す感じになるだろう
継承が無いから、構造体に自前の関数をセットして、何らかの登録関数に渡す感じになるだろう
172デフォルトの名無しさん (JP 0Hf9-8IwF)
2023/12/05(火) 17:40:17.96ID:oSX0a7FoH fopencookieとかfunopen
173はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 2a3e-By03)
2023/12/05(火) 17:48:30.74ID:z5PiblaY0 パイプのインターフェイスをストリームとして開くことが出来るから
適当なスレッドを開いてパイプの受け取り口で受け取った情報を好きなように加工するようにすれば、
パイプに書込む側ではストリームに書き込んだらいい感じに処理してくれるように見える。
というのを Windows でやっているのをどっかで見た。
適当なスレッドを開いてパイプの受け取り口で受け取った情報を好きなように加工するようにすれば、
パイプに書込む側ではストリームに書き込んだらいい感じに処理してくれるように見える。
というのを Windows でやっているのをどっかで見た。
174デフォルトの名無しさん (スッップ Sd0a-Cw2Y)
2023/12/05(火) 18:11:37.45ID:GHHZLCc/d175デフォルトの名無しさん (ワッチョイ 5e5f-Vvnv)
2023/12/05(火) 23:44:52.07ID:9c748LJ40 ソケットディスクリプタってファイルポインタに転生できる?
176デフォルトの名無しさん (ワッチョイ 8a26-yDrh)
2023/12/05(火) 23:48:43.88ID:4UYj/sQ80 >>175
fdopen
fdopen
177デフォルトの名無しさん (ワッチョイ 65a4-WD8q)
2023/12/06(水) 08:34:18.09ID:hjosWl9s0178デフォルトの名無しさん (スフッ Sd0a-nvfk)
2023/12/06(水) 12:07:25.67ID:dR0trs3yd 対策このままなら再発しそうね
https://japan.zdnet.com/article/35212258/4/
https://japan.zdnet.com/article/35212258/4/
179デフォルトの名無しさん (ワッチョイ 1163-8qzv)
2023/12/06(水) 16:09:22.53ID:JLoh059d0 仕事なくなったら困る人が大勢いるし
180デフォルトの名無しさん (ワッチョイ 7d01-tBUZ)
2023/12/06(水) 20:24:47.29ID:tBrgYtLt0 free(NULL) は許されるのに
fclose(NULL) は許されないんよな
fclose(NULL) は許されないんよな
181デフォルトの名無しさん (アウアウウー Sa21-VttM)
2023/12/06(水) 21:05:20.14ID:gHtrZlY5a >>180
さらにfflush(NULL)は許されるという一貫性の無さ
さらにfflush(NULL)は許されるという一貫性の無さ
182はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 656a-1gjz)
2023/12/06(水) 21:19:13.20ID:+44Bjs460 fflush の場合は全てのストリームを対象とするという特別なフラグとして NULL を活用しているので無効なポインタとしての NULL とは事情が違う気がするね。
それにしたってNULL を多義的に使っているという意味では一貫性はないけど。
それにしたってNULL を多義的に使っているという意味では一貫性はないけど。
183デフォルトの名無しさん (ワッチョイ 9140-JrwL)
2023/12/06(水) 21:23:39.94ID:bAVe0RWP0 free(NULL)は、おバカなマの為に特別に許容したんだろ
184デフォルトの名無しさん (ワッチョイ 65a4-WD8q)
2023/12/07(木) 02:17:45.58ID:NYiehhGh0 以前ネットでおすすめされていた「苦しんで学ぶc言語」の内容をしっかり理解する段階まできたのですが、次は何をすれば良いのでしょう。
猫でも分かるプログラミングも読んでみたのですが仕様が古すぎてトレースできないのと、私には作者さんの文章の作りが合わず困っています。
まずは簡単なソフトを作りながら学べればと思います。
入門書の次に読めるような本と、そこからアプリケーション開発のイロハが分かる本やサイトを教えていただけないでしょうか。
猫でも分かるプログラミングも読んでみたのですが仕様が古すぎてトレースできないのと、私には作者さんの文章の作りが合わず困っています。
まずは簡単なソフトを作りながら学べればと思います。
入門書の次に読めるような本と、そこからアプリケーション開発のイロハが分かる本やサイトを教えていただけないでしょうか。
185デフォルトの名無しさん (ワッチョイ ea79-4utE)
2023/12/07(木) 07:17:00.47ID:Y9iRVwaI0 ↑みたいなのって目的ないのかね
今後C言語で特に何かやりたい事がないなら別に何もする必要ないよ
今後C言語で特に何かやりたい事がないなら別に何もする必要ないよ
186はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 656a-1gjz)
2023/12/07(木) 08:27:05.09ID:wi0prF2i0 Cで現実的なアプリケーションを作るならホスト環境 (OS など) の事情は無視できないし、具体的な目標なく道筋は決まらないと私も思う。
何の情報もない他人に何かを勧めるというのはしづらい。
目標があるならその分野の既存のコードを「読む」という体験はためになるかもしれない。
実際のコードを見て意味がわからない部分があれば学習が必要な部分だというとっかかりになる。
何の情報もない他人に何かを勧めるというのはしづらい。
目標があるならその分野の既存のコードを「読む」という体験はためになるかもしれない。
実際のコードを見て意味がわからない部分があれば学習が必要な部分だというとっかかりになる。
187デフォルトの名無しさん (ワッチョイ 6646-wNAC)
2023/12/07(木) 09:28:19.84ID:++8K4NmJ0 >>184
> 「苦しんで学ぶc言語」
というのは、これ↓ ?
https://9cguide.appspot.com/index.html
> 苦しんで覚えるC言語
であれば文法解説のようなので、ファイル操作をしてはどう?
cat コマンドを作るとか。
> 「苦しんで学ぶc言語」
というのは、これ↓ ?
https://9cguide.appspot.com/index.html
> 苦しんで覚えるC言語
であれば文法解説のようなので、ファイル操作をしてはどう?
cat コマンドを作るとか。
188デフォルトの名無しさん (ワッチョイ 65ff-WD8q)
2023/12/07(木) 10:04:58.60ID:NYiehhGh0189デフォルトの名無しさん (ラクッペペ MM3e-8Sbt)
2023/12/07(木) 10:23:42.82ID:aHfAXzyRM 業務効率の向上が目的ならC言語は回り道すぎる
他の言語選んだ方がいい気がする
他の言語選んだ方がいい気がする
190デフォルトの名無しさん (ワッチョイ 1163-8qzv)
2023/12/07(木) 10:31:24.83ID:HPax2zCP0 ファイル操作の課題出してあげようか
指定した二つのDirにあるファイルを同期させる
単にコピーするのではなく、タイムスタンプの新しいものだけをコピーする
新しいSubdirできていたら、中味があればDirごとコピーする
とりあえずは、新しく作られてファイルの同期まで、
削除については考慮しなくて良い
指定した二つのDirにあるファイルを同期させる
単にコピーするのではなく、タイムスタンプの新しいものだけをコピーする
新しいSubdirできていたら、中味があればDirごとコピーする
とりあえずは、新しく作られてファイルの同期まで、
削除については考慮しなくて良い
191デフォルトの名無しさん (ワッチョイ b501-sZSb)
2023/12/07(木) 10:39:50.34ID:3PWWuEZS0192デフォルトの名無しさん (スプッッ Sdea-GtvU)
2023/12/07(木) 11:21:46.78ID:6u4iKMo7d C言語のスレッドで言う事じゃないがC言語以外の生産性の高い言語を学んだほうがよさそう
193デフォルトの名無しさん (ワッチョイ 71cf-Gt6m)
2023/12/07(木) 11:56:53.00ID:QzDrEJVi0 >>184
CはOSのAPIを直接叩けることがメリットでもあるので、Linuxのプログラミング本を読んでコード書いてみるのが一番良いだろう
マルチプロセス、マルチスレッド、ソケットとか覚えるべき事は沢山ある
Cでやれば根本から理解出来る
CはOSのAPIを直接叩けることがメリットでもあるので、Linuxのプログラミング本を読んでコード書いてみるのが一番良いだろう
マルチプロセス、マルチスレッド、ソケットとか覚えるべき事は沢山ある
Cでやれば根本から理解出来る
194はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 2a3e-1gjz)
2023/12/07(木) 12:04:11.70ID:FWY3NSUg0 (事務作業などの?) 業務効率化が目的なら Power Automate Desktop の活用を考えた方がいいと思う。
効率化の最初の段階は解決すべき問題を見つけることで、これをきちんと一度で洗い出すのは大抵の場合に出来ない。
雑に作って運用しながら改善するという手順をとるのがのぞましいが、 C で書くとそういう柔軟な体制がとりづらい。
効率化の最初の段階は解決すべき問題を見つけることで、これをきちんと一度で洗い出すのは大抵の場合に出来ない。
雑に作って運用しながら改善するという手順をとるのがのぞましいが、 C で書くとそういう柔軟な体制がとりづらい。
195デフォルトの名無しさん (ワッチョイ 9a2b-ntmn)
2023/12/07(木) 13:30:05.55ID:zYUoekf60 「なにを作りたいのかが大事」ってのは良く分かるんだけど、普通の人が作りたいものって大抵Cじゃない方が…ってなっちゃうんだよな
196デフォルトの名無しさん (ワッチョイ 65ff-WD8q)
2023/12/07(木) 13:42:19.21ID:NYiehhGh0 >>90
そういった事もできるんですねー
>>191
取り組みたいのは山々なのですがuiの作り方からわからないので入手できるバーションで解説されている書籍が欲しいところです。
>>192
基礎を大切にしたいのでcをはじめのうちは使っていきたいと考えています。
>>193
仰る通り根本を理解できればと思います。Linux本ですね。可能であれば簡単なものでおすすめを添えていただけないでしょうか。
>>194
グラフィック系のソフトを使う上で不便なところを楽したい、と言いますか
とにかく画像表示や文字列表示から進めていきたいと考えています。
前述の通り基礎を理解したいので可能であればcで作成したいのです。
そういった事もできるんですねー
>>191
取り組みたいのは山々なのですがuiの作り方からわからないので入手できるバーションで解説されている書籍が欲しいところです。
>>192
基礎を大切にしたいのでcをはじめのうちは使っていきたいと考えています。
>>193
仰る通り根本を理解できればと思います。Linux本ですね。可能であれば簡単なものでおすすめを添えていただけないでしょうか。
>>194
グラフィック系のソフトを使う上で不便なところを楽したい、と言いますか
とにかく画像表示や文字列表示から進めていきたいと考えています。
前述の通り基礎を理解したいので可能であればcで作成したいのです。
197デフォルトの名無しさん (ワッチョイ 3514-I4o8)
2023/12/07(木) 13:42:44.77ID:P4JhXVL60 WindowsアプリならCじゃくて、せめてC++にしておけ
198デフォルトの名無しさん (ワッチョイ 6aa0-0M9k)
2023/12/07(木) 13:43:24.10ID:n9+uyfFo0 楽したい奴にはCは向かない
199デフォルトの名無しさん (アウアウウー Sa21-wVFe)
2023/12/07(木) 14:18:01.05ID:wNl2TimYa C++は変な癖がつく
Cの方が絶対良い
Cの方が絶対良い
200デフォルトの名無しさん (ワッチョイ b501-sZSb)
2023/12/07(木) 15:23:59.73ID:3PWWuEZS0 Cで全部書いてると大変だと思うよ
機能全部使わんでも良いからC++の方が現実的だよ
機能全部使わんでも良いからC++の方が現実的だよ
201デフォルトの名無しさん (ワッチョイ 1163-8qzv)
2023/12/07(木) 15:31:37.34ID:HPax2zCP0 大変かどうかは、何を作るかによる
202デフォルトの名無しさん (ワッチョイ b501-sZSb)
2023/12/07(木) 15:35:13.86ID:3PWWuEZS0203デフォルトの名無しさん (ワッチョイ 71cf-Gt6m)
2023/12/07(木) 16:19:14.82ID:QzDrEJVi0 >>196
自分はUNIX Cプログラミング(いわゆるライオン本)で勉強して、めちゃくちゃ為になったけど、さすがにこれは古すぎる
詳解UNIXプログラミング 第3版は間違いのない名著
ふつうのLinuxプログラミング 第2版はLinux向けだし初心者向け
Cで仕事をするようにはならないかもだけど、「ふつうの~」を理解出来て自分のものにすることがCを学ぶ意義だな
自分はUNIX Cプログラミング(いわゆるライオン本)で勉強して、めちゃくちゃ為になったけど、さすがにこれは古すぎる
詳解UNIXプログラミング 第3版は間違いのない名著
ふつうのLinuxプログラミング 第2版はLinux向けだし初心者向け
Cで仕事をするようにはならないかもだけど、「ふつうの~」を理解出来て自分のものにすることがCを学ぶ意義だな
204デフォルトの名無しさん (ワッチョイ 66ab-XaJC)
2023/12/07(木) 16:23:44.20ID:5AmCTrxW0 >グラフィック系のソフトを使う上で不便なところを楽したい
ソフト側でスクリプト等がサポートされてなければ
できることは連続するショートカットを 1プッシュでまとめて出す
キーロガー&再生系とか Joy2Key みたいなキーコード送出系ぐらいしか思い浮かばん
ソフト側でスクリプト等がサポートされてなければ
できることは連続するショートカットを 1プッシュでまとめて出す
キーロガー&再生系とか Joy2Key みたいなキーコード送出系ぐらいしか思い浮かばん
205はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 2a3e-By03)
2023/12/07(木) 17:03:32.49ID:FWY3NSUg0 >>196
具体的に対象になってるソフトの名前は言える?
モダンな設計の Windows 用ソフトが外部から制御するために公開するインターフェイスは
Component Object Model の技術をベースにしていることが多くて、
高度な開発環境の補助を得ながら使う分には便利なんだが
C から使おうとするとすごく面倒くさい。 (出来なくはないけど。)
ソフトが外部に対してインターフェイスを公開するのではなく
制御用のスクリプト言語を内蔵している場合もあるので
C でのプログラミングに詳しくなってもあまり役に立たないこともある。
もしも外部に対してインターフェイスを用意していないなら
ボタン操作のイベントを発生させるとかして制御する (つまりまさに人がする操作を代行させる) ということも可能だが、
それを可能にするような基礎技術というか Windows の動作モデルを理解したいのなら
「猫でもわかるWindowsプログラミング」はそれなりに有用だと思うよ。
私は書籍を読んだことは無いけどウェブ版は Windows がイベントを伝播させて操作させる構造を理解するのに十分な記述はある。
だけど、人が操作するときに Windows の中で何が起こっているのかを
初心者が根本から理解してきちんと使いこなせるまでになるハードルは割と高めなんだよ……。
Power Automate Desktop なら技術の根本を理解せずともそれが出来るようになってるし、
マイクロソフトが直接に提供していてしかも無料という神ソフトなのでオススメした次第。
UWSC とか AutoIt なんかも人気があるね。
具体的に対象になってるソフトの名前は言える?
モダンな設計の Windows 用ソフトが外部から制御するために公開するインターフェイスは
Component Object Model の技術をベースにしていることが多くて、
高度な開発環境の補助を得ながら使う分には便利なんだが
C から使おうとするとすごく面倒くさい。 (出来なくはないけど。)
ソフトが外部に対してインターフェイスを公開するのではなく
制御用のスクリプト言語を内蔵している場合もあるので
C でのプログラミングに詳しくなってもあまり役に立たないこともある。
もしも外部に対してインターフェイスを用意していないなら
ボタン操作のイベントを発生させるとかして制御する (つまりまさに人がする操作を代行させる) ということも可能だが、
それを可能にするような基礎技術というか Windows の動作モデルを理解したいのなら
「猫でもわかるWindowsプログラミング」はそれなりに有用だと思うよ。
私は書籍を読んだことは無いけどウェブ版は Windows がイベントを伝播させて操作させる構造を理解するのに十分な記述はある。
だけど、人が操作するときに Windows の中で何が起こっているのかを
初心者が根本から理解してきちんと使いこなせるまでになるハードルは割と高めなんだよ……。
Power Automate Desktop なら技術の根本を理解せずともそれが出来るようになってるし、
マイクロソフトが直接に提供していてしかも無料という神ソフトなのでオススメした次第。
UWSC とか AutoIt なんかも人気があるね。
206デフォルトの名無しさん (ワッチョイ c55f-tBUZ)
2023/12/07(木) 17:15:58.47ID:ggcXWkJv0 関数のサイズというのは、関数の引数のサイズと同じと考えて良いのでしょうか?
中身に1万行使ってる関数があるとして、その1万行は関数のサイズとは全然関係ないんでしょうか?
構造体はなんとなく変数のバイト数の足し算なんだなってわかるけど、関数がピンとこないです・・・
中身に1万行使ってる関数があるとして、その1万行は関数のサイズとは全然関係ないんでしょうか?
構造体はなんとなく変数のバイト数の足し算なんだなってわかるけど、関数がピンとこないです・・・
207デフォルトの名無しさん (ワッチョイ f1bb-Gt6m)
2023/12/07(木) 17:18:59.29ID:Dmh4B19g0 プリプロセッサメタプログラミングを覚えてからc言語の開発は楽になったわ
前は同じようなデータ構造でたくさんモジュール作ってたからな
前は同じようなデータ構造でたくさんモジュール作ってたからな
208はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 2a3e-By03)
2023/12/07(木) 17:34:07.95ID:FWY3NSUg0 >>206
関数をデータとして扱うことはないので「大きさ」は定義されない。
C の言語仕様的には「関数はオブジェクトではない」という扱い。
関数に対して呼び出し以外の操作をする方法はない。
関数ポインタで関数の場所を指すということは出来るが、
型システム的にちょっと特殊な扱いになっていて関数ポインタ経由で値を取り出したりも出来ない。
もちろん実際にはなんらかの形でメモリ上には存在するし、
長いプログラムは大きい可能性が高いけど。
実際にどうなってるのかは生成された機械語を見ればいいんでね。
関数をデータとして扱うことはないので「大きさ」は定義されない。
C の言語仕様的には「関数はオブジェクトではない」という扱い。
関数に対して呼び出し以外の操作をする方法はない。
関数ポインタで関数の場所を指すということは出来るが、
型システム的にちょっと特殊な扱いになっていて関数ポインタ経由で値を取り出したりも出来ない。
もちろん実際にはなんらかの形でメモリ上には存在するし、
長いプログラムは大きい可能性が高いけど。
実際にどうなってるのかは生成された機械語を見ればいいんでね。
209デフォルトの名無しさん (ワッチョイ 915b-rn9t)
2023/12/07(木) 17:41:37.50ID:VEE9aIzl0210デフォルトの名無しさん (ワッチョイ c55f-tBUZ)
2023/12/07(木) 17:41:59.31ID:ggcXWkJv0 >>208
ポインタのアクセス条件でメモリのサイズ・型が明確になっていること
とあったので、関数ポインタもサイズや型が明確でないといけないなら
ちゃんとわかっとかないといけないと思ったのですが、関数の扱いはわかってる人から見ても特殊なんですね
ありがとうございます
ポインタのアクセス条件でメモリのサイズ・型が明確になっていること
とあったので、関数ポインタもサイズや型が明確でないといけないなら
ちゃんとわかっとかないといけないと思ったのですが、関数の扱いはわかってる人から見ても特殊なんですね
ありがとうございます
211デフォルトの名無しさん (ワッチョイ 1ec3-yDrh)
2023/12/07(木) 18:04:20.91ID:Kvlx+aNw0 >>206
あなたはどういう文脈で「関数のサイズ」が気になった・話題になったの?プアな組み込みとか?
俺は「関数のサイズ」が気になった・話題になった覚えがない
まぁコンパイル後のコード量かなぁ、関数の行数は大きく関係する
引数はスタックに積むけど「関数のサイズ」とは言わない気がする
あなたはどういう文脈で「関数のサイズ」が気になった・話題になったの?プアな組み込みとか?
俺は「関数のサイズ」が気になった・話題になった覚えがない
まぁコンパイル後のコード量かなぁ、関数の行数は大きく関係する
引数はスタックに積むけど「関数のサイズ」とは言わない気がする
212デフォルトの名無しさん (ワッチョイ 66ab-XaJC)
2023/12/07(木) 18:19:55.87ID:5AmCTrxW0 サイズ云々は
インクリメントしたときにどんだけ(何バイト)進むのかが確定してる型でないとポインタにならない
→ じゃ関数ポインタって 関数のサイズ(≒ コンパイル後の機械語化されたバイナリのサイズ) を知ってるのか?
こういう思考の流れかな?
インクリメントしたときにどんだけ(何バイト)進むのかが確定してる型でないとポインタにならない
→ じゃ関数ポインタって 関数のサイズ(≒ コンパイル後の機械語化されたバイナリのサイズ) を知ってるのか?
こういう思考の流れかな?
213デフォルトの名無しさん (ワッチョイ c55f-tBUZ)
2023/12/07(木) 19:14:37.61ID:ggcXWkJv0214デフォルトの名無しさん (ワッチョイ 8a71-yDrh)
2023/12/07(木) 19:46:05.37ID:Avn/NPEq0 >>213
その状況で必要になるのは関数のサイズじゃなくて関数ポインタのサイズや
それは他のポインタと同じ、64bitPCなら8バイト
仮定の話として、もし「関数ポインタの配列」ではなく「関数の配列」が作成できるような言語仕様にするなら、関数のサイズも決めないといけなかっただろうね
その状況で必要になるのは関数のサイズじゃなくて関数ポインタのサイズや
それは他のポインタと同じ、64bitPCなら8バイト
仮定の話として、もし「関数ポインタの配列」ではなく「関数の配列」が作成できるような言語仕様にするなら、関数のサイズも決めないといけなかっただろうね
215デフォルトの名無しさん (ワッチョイ c55f-tBUZ)
2023/12/07(木) 19:58:53.01ID:ggcXWkJv0 >>214
言われてみたらたしかにそうですねなんでポインタなのに普通の変数のように考えてしまってたんだろう・・・
言われてみたらたしかにそうですねなんでポインタなのに普通の変数のように考えてしまってたんだろう・・・
216デフォルトの名無しさん (ワッチョイ 9140-JrwL)
2023/12/07(木) 21:12:50.21ID:fQltjmnX0 void*使えるやん
217デフォルトの名無しさん (ワッチョイ 65ff-WD8q)
2023/12/07(木) 21:34:16.53ID:NYiehhGh0218はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 656b-1gjz)
2023/12/08(金) 03:48:38.29ID:tzfGEsy80 >>216
関数ポインタは void* に格納可能であると保証してないし、関数ポインタがオブジェクトを指すポインタより大きかったり表現が異なっていたりする環境はある。
出来る環境でなら使うのが悪いわけではないけど移植性は犠牲になる。
関数ポインタは void* に格納可能であると保証してないし、関数ポインタがオブジェクトを指すポインタより大きかったり表現が異なっていたりする環境はある。
出来る環境でなら使うのが悪いわけではないけど移植性は犠牲になる。
219デフォルトの名無しさん (ワッチョイ b501-8qzv)
2023/12/08(金) 06:53:57.90ID:Mdse7dEX0220デフォルトの名無しさん (ワッチョイ 1e6d-ja4y)
2023/12/08(金) 07:01:37.37ID:g0YSKcXt0 near ポインタモデル?だったかの
変数のアドレッシングサイズと
プログラムカウンタのアドレッシングサイズが違うやつ
変数のアドレッシングサイズと
プログラムカウンタのアドレッシングサイズが違うやつ
221デフォルトの名無しさん (ラクッペペ MM3e-VttM)
2023/12/08(金) 07:38:56.35ID:qsjd2ZYcM ミディアムモデルとかコンパクトモデルとか
まぁ過去の話だわな
まぁ過去の話だわな
222デフォルトの名無しさん (スップ Sdea-b4p5)
2023/12/08(金) 07:57:53.16ID:m+qJyEe4d 関数のサイズは関数のポインタをアドレス順にソートすれば求められる
そのサイズ分を実行可能領域にコピーすれば当然実行もできるよ
dllインジェクションとかでたまに使われる
そのサイズ分を実行可能領域にコピーすれば当然実行もできるよ
dllインジェクションとかでたまに使われる
223デフォルトの名無しさん (スップ Sd0a-Cw2Y)
2023/12/08(金) 08:01:58.55ID:ClTGg8d6d224はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 2a3e-By03)
2023/12/08(金) 09:53:49.26ID:B2zBKDAb0 >>217
マイクロソフトが出している公式のチュートリアルは C++ が基礎だけど
考え方としては C でも同じなのでそのへんは適当に読み替えながら……
https://learn.microsoft.com/ja-jp/windows/win32/
Win32 API は C で使ってもそんなに不便ではないように出来てる。
特に最も基礎のこのへんの例示のコードは (C++ とは書いてあるが) たぶん C としてコンパイルさせても通る。
https://learn.microsoft.com/ja-jp/windows/win32/learnwin32/your-first-windows-program
必要な知識の分量は初心者が想像するよりずっと多いと思う。
分かりやすいドキュメントがあったとしても (そして無いこともしばしばある!) 分量は減らないので
分量というハードルをクリアするのは単純に学習量しかないし、
学習量をこなすには時間をかけるしかしょうがない。
やりたいことを自由に出来るようになるまで何も生産しない時間 (業務なら人件費に換算されるだろう) をかける余裕があるの?
というところを不安に思っちゃうわけだよ。
ここは C スレだから C プログラミングを支援したい気持ちはあるがそれがしんどい場合も多いってことも知ってる。
個人事業なら趣味と兼ねるのもアリかもしんないけど。
マイクロソフトが出している公式のチュートリアルは C++ が基礎だけど
考え方としては C でも同じなのでそのへんは適当に読み替えながら……
https://learn.microsoft.com/ja-jp/windows/win32/
Win32 API は C で使ってもそんなに不便ではないように出来てる。
特に最も基礎のこのへんの例示のコードは (C++ とは書いてあるが) たぶん C としてコンパイルさせても通る。
https://learn.microsoft.com/ja-jp/windows/win32/learnwin32/your-first-windows-program
必要な知識の分量は初心者が想像するよりずっと多いと思う。
分かりやすいドキュメントがあったとしても (そして無いこともしばしばある!) 分量は減らないので
分量というハードルをクリアするのは単純に学習量しかないし、
学習量をこなすには時間をかけるしかしょうがない。
やりたいことを自由に出来るようになるまで何も生産しない時間 (業務なら人件費に換算されるだろう) をかける余裕があるの?
というところを不安に思っちゃうわけだよ。
ここは C スレだから C プログラミングを支援したい気持ちはあるがそれがしんどい場合も多いってことも知ってる。
個人事業なら趣味と兼ねるのもアリかもしんないけど。
225デフォルトの名無しさん (ワッチョイ 6646-wNAC)
2023/12/08(金) 10:13:43.24ID:20YRNN5F0 >>224
Cコンパイラに、C++ -> C トランスレート機能あるの?
Cコンパイラに、C++ -> C トランスレート機能あるの?
226デフォルトの名無しさん (ワッチョイ 66ab-XaJC)
2023/12/08(金) 10:26:10.76ID:vLixVDpZ0 API はほとんど C インターフェースで
C++をベターCとして利用してて C++のクラスの機構はほぼ使ってない
(GDI+ とかAPIがはなっから C++ インターフェースの奴は別)
C++をベターCとして利用してて C++のクラスの機構はほぼ使ってない
(GDI+ とかAPIがはなっから C++ インターフェースの奴は別)
227デフォルトの名無しさん (ワッチョイ 9140-JrwL)
2023/12/08(金) 10:34:54.49ID:faKtyhh20 >>218
ねえよ
ねえよ
228デフォルトの名無しさん (アウアウウー Sa21-wVFe)
2023/12/08(金) 10:50:23.47ID:k3Bpg+TDa ぶっちゃけGDI+もCから使えるけどね
229デフォルトの名無しさん (ワッチョイ 66ab-XaJC)
2023/12/08(金) 10:53:01.67ID:vLixVDpZ0 >>228
あれ Cインターフェース居るのか 最終的にはCOMになってるんやっけ?
あれ Cインターフェース居るのか 最終的にはCOMになってるんやっけ?
230デフォルトの名無しさん (ワッチョイ b501-8qzv)
2023/12/08(金) 11:03:20.25ID:Mdse7dEX0 >>220-221
なんかそういうのあったかも
なんかそういうのあったかも
231デフォルトの名無しさん (ワッチョイ 1163-8qzv)
2023/12/08(金) 11:04:41.36ID:VEgZ7oNC0 あれはPascalの呼出ではなかったかな
232はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 2a3e-By03)
2023/12/08(金) 11:27:29.89ID:B2zBKDAb0233デフォルトの名無しさん (ワッチョイ 6548-WD8q)
2023/12/08(金) 12:03:08.97ID:7hcazM9a0 >>224
兼任ですが個人事業主でお金と時間はそれなりに自由に使えます。
3〜5ヶ月くらいはまとまった時間を取ることも可能です。
公式チュートリアルは参考にはなりますが読みやすいかと言われると微妙ですね。
知識はもちろん身につけたいのですが、そこまでの道筋は他人のコードを読む方がやはり良いのでしょうか?
書籍やサイトなどでアプリの形になるまでのチュートリアルなどは無いのでしょうか。
兼任ですが個人事業主でお金と時間はそれなりに自由に使えます。
3〜5ヶ月くらいはまとまった時間を取ることも可能です。
公式チュートリアルは参考にはなりますが読みやすいかと言われると微妙ですね。
知識はもちろん身につけたいのですが、そこまでの道筋は他人のコードを読む方がやはり良いのでしょうか?
書籍やサイトなどでアプリの形になるまでのチュートリアルなどは無いのでしょうか。
234デフォルトの名無しさん (アウアウウー Sa21-wVFe)
2023/12/08(金) 12:17:34.25ID:k3Bpg+TDa Win32APIというよりそれ以前の
C言語の知識が足りてないんじゃないのかな
C言語の知識が足りてないんじゃないのかな
235はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 2a3e-By03)
2023/12/08(金) 13:05:38.60ID:B2zBKDAb0 >>233
何を学べば良いかすらわからないときのとっかかりとして
他人のコードを読む (何がわかってないかはわかる) ことを勧めたまでで、
良い資料があるならそれを読むにこしたことはないよ。
良い資料がないことも多いという現実はあるけど。
私は公式チュートリアルは良いほうだと思う。
知らないことを書いてあるんだからある程度は読みづらいこともあるのは当たり前のことで、
どれを読んだって似たようなもんじゃないかな。
専門的な内容をスラスラ読めるほうがおかしいでしょ。
何を学べば良いかすらわからないときのとっかかりとして
他人のコードを読む (何がわかってないかはわかる) ことを勧めたまでで、
良い資料があるならそれを読むにこしたことはないよ。
良い資料がないことも多いという現実はあるけど。
私は公式チュートリアルは良いほうだと思う。
知らないことを書いてあるんだからある程度は読みづらいこともあるのは当たり前のことで、
どれを読んだって似たようなもんじゃないかな。
専門的な内容をスラスラ読めるほうがおかしいでしょ。
236デフォルトの名無しさん (ワッチョイ 8a80-yDrh)
2023/12/08(金) 13:11:55.82ID:0BufPgxy0 さてはオメー
ふらっとC#スレで他人のコードの読み方とか延々聞いてたヤツだな?
ふらっとC#スレで他人のコードの読み方とか延々聞いてたヤツだな?
237デフォルトの名無しさん (アウアウウー Sa21-/D3x)
2023/12/08(金) 13:15:41.58ID:o54AonyOa >>206
関数もメモリにロードされるのわからず?
関数はただのマシンコードなんだからここから始まりますよ、というラベルがついてるだけだぞ
そして呼ばれた時はそこへジャンプするだけ
関数ポインタはそのマシンコードのラベルのアドレスを保持しているだけ
ポインタ以前にコンピュータの仕組みからやった方が良さそう
プログラム格納方式とか聞いたことない?
関数もメモリにロードされるのわからず?
関数はただのマシンコードなんだからここから始まりますよ、というラベルがついてるだけだぞ
そして呼ばれた時はそこへジャンプするだけ
関数ポインタはそのマシンコードのラベルのアドレスを保持しているだけ
ポインタ以前にコンピュータの仕組みからやった方が良さそう
プログラム格納方式とか聞いたことない?
238デフォルトの名無しさん (アウアウウー Sa21-wVFe)
2023/12/08(金) 13:31:18.44ID:k3Bpg+TDa >>236
なんちゃらGPTがここでこっそり質問してたら笑う
なんちゃらGPTがここでこっそり質問してたら笑う
239デフォルトの名無しさん (ワッチョイ 66cf-tBUZ)
2023/12/08(金) 13:36:30.72ID:SLmq2FCH0240デフォルトの名無しさん (ワッチョイ 9140-JrwL)
2023/12/08(金) 15:42:45.24ID:faKtyhh20 だからねえよ
そいつが勘違いしてるか、使い方が悪いかだろ
そいつが勘違いしてるか、使い方が悪いかだろ
241デフォルトの名無しさん (ワッチョイ 5df0-/D3x)
2023/12/08(金) 16:03:05.13ID:abnVL6FT0 >>206
構造体もプログラムからしたらただのメモリ領域の塊だぞ
そこに変数とかいう概念はない
構造体のメンバのオフセットでその位置を指定して書き込んだり読み込んだりするだけ
その時のオフセットの計算に利用されるのが型
変数宣言すると構造体全体サイズのメモリ領域がスタックに確保される
mallocで確保されるとヒープに確保されてそのアドレスが返る
ただそれだけ
構造体もプログラムからしたらただのメモリ領域の塊だぞ
そこに変数とかいう概念はない
構造体のメンバのオフセットでその位置を指定して書き込んだり読み込んだりするだけ
その時のオフセットの計算に利用されるのが型
変数宣言すると構造体全体サイズのメモリ領域がスタックに確保される
mallocで確保されるとヒープに確保されてそのアドレスが返る
ただそれだけ
242デフォルトの名無しさん (アウアウウー Sa21-wVFe)
2023/12/08(金) 16:08:12.70ID:k3Bpg+TDa 関数を malloc で確保するにはどうすれば良いですか?って言いそう
243デフォルトの名無しさん (ワッチョイ 5df0-/D3x)
2023/12/08(金) 16:21:49.56ID:abnVL6FT0 ちなみにメモリにロードされた関数の領域は現代のOSならば当然ながらアクセス不可能
昔はプログラム領域にアクセスできてその中のコードを動的に書き換えるという荒技をやってた人もいるらしいが
昔はプログラム領域にアクセスできてその中のコードを動的に書き換えるという荒技をやってた人もいるらしいが
244デフォルトの名無しさん (ワッチョイ 5df0-/D3x)
2023/12/08(金) 16:24:27.68ID:abnVL6FT0 ちなみにメモリ領域にマシンコードを生成してそのメモリ領域のマシンコードを即時実行するということはできる
これをJITという
最近のスクリプト言語ではこの手法がかなり用いられている
やり方は普通にメモリにマシンコードを生成して実行可能属性を付加、各種CPUキャッシュをクリアしてから
関数ポインタにキャストして実行するだけ
これをJITという
最近のスクリプト言語ではこの手法がかなり用いられている
やり方は普通にメモリにマシンコードを生成して実行可能属性を付加、各種CPUキャッシュをクリアしてから
関数ポインタにキャストして実行するだけ
245デフォルトの名無しさん (ワッチョイ 1163-8qzv)
2023/12/08(金) 16:31:30.89ID:VEgZ7oNC0 メモリ保護機構が動いて実行できないと思う
16ビットリアルモードOSだったらできたと思うが
16ビットリアルモードOSだったらできたと思うが
246デフォルトの名無しさん (スッップ Sd0a-GtvU)
2023/12/08(金) 16:51:01.76ID:9cA1ls6dd mprotectとかVirtualProtectで実行可能にすればできる
247デフォルトの名無しさん (ワッチョイ 1163-8qzv)
2023/12/08(金) 17:06:26.65ID:VEgZ7oNC0 しかし、それだと任意のコード実行が自由自在ってことになって・・・
まずくない?
まずくない?
248はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 2a3e-By03)
2023/12/08(金) 17:24:04.59ID:B2zBKDAb0249はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 2a3e-By03)
2023/12/08(金) 17:24:33.32ID:B2zBKDAb0250デフォルトの名無しさん (ワッチョイ 1163-8qzv)
2023/12/08(金) 17:35:36.56ID:VEgZ7oNC0 セキュリティって、身内も信じちゃまずいと思うよ
251デフォルトの名無しさん (ワッチョイ eaad-snvD)
2023/12/08(金) 20:25:30.65ID:Bb4hYLfH0252デフォルトの名無しさん (ワッチョイ 1163-8qzv)
2023/12/08(金) 20:31:27.89ID:VEgZ7oNC0 企業でもそうなんですか?
管理者が望んでいないプログラムが動かせたら困るでしょう
管理者自身がやるってならちょっと違いますが
管理者が望んでいないプログラムが動かせたら困るでしょう
管理者自身がやるってならちょっと違いますが
253デフォルトの名無しさん (ワッチョイ eaad-snvD)
2023/12/08(金) 20:41:26.51ID:Bb4hYLfH0254はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 2a3e-By03)
2023/12/08(金) 20:48:50.56ID:B2zBKDAb0 ???
私の理解だと >>247 は「機械語をその場で生成して即時実行するのって危なくないの?」という話だと思ってたんだけど違うの?
そういう理解だったから実行の許可を出す (メモリの実行可能属性を ON にする API を呼び出す) ことなく実行できない、
プログラマの意図しない実行は防がれるということを応えたつもりだったんだけど、運用の話なの???
「身内」ってのは「プログラムの中での機械語生成にミスったらめっちゃ暴走するやん?」という意味かと思ったけど
運用にかかわる人物という意味?
私の理解だと >>247 は「機械語をその場で生成して即時実行するのって危なくないの?」という話だと思ってたんだけど違うの?
そういう理解だったから実行の許可を出す (メモリの実行可能属性を ON にする API を呼び出す) ことなく実行できない、
プログラマの意図しない実行は防がれるということを応えたつもりだったんだけど、運用の話なの???
「身内」ってのは「プログラムの中での機械語生成にミスったらめっちゃ暴走するやん?」という意味かと思ったけど
運用にかかわる人物という意味?
255デフォルトの名無しさん (ワッチョイ ea79-4utE)
2023/12/08(金) 21:24:15.38ID:8rS6bPls0 >>225
C++黎明期はC++トランスレーター付きのCを普通に使わされたもんだよ
C++黎明期はC++トランスレーター付きのCを普通に使わされたもんだよ
256デフォルトの名無しさん (スップ Sdbf-MP5X)
2023/12/09(土) 07:42:54.58ID:Z2D8kHNzd >>250
それなら自作のプログラムをコンパイルして実行できる環境がすでにまずいだろw
パソコンをゲーム機みたいにしたいのかい
読み書きできるメモリを実行可能属性にできるというだけで
書き込み不可能なシステムメモリに書き込めるようにできるわけではない
それなら自作のプログラムをコンパイルして実行できる環境がすでにまずいだろw
パソコンをゲーム機みたいにしたいのかい
読み書きできるメモリを実行可能属性にできるというだけで
書き込み不可能なシステムメモリに書き込めるようにできるわけではない
257デフォルトの名無しさん (ワッチョイ ff46-vhj2)
2023/12/09(土) 08:06:29.62ID:NnZXyC0n0 本日のWebは、
・帝乃三姉妹は案外、チョロい。 → 本誌で既読
・レッドブルー → 本誌で既読
・からかい上手の高木さん → ゲッサンで既読
どうにかしてよ、A立。たとえば響5巻無料Webでもとか。
そういえば、高木さんの人の将棋のやつ、マガポケでも終わったね。
・帝乃三姉妹は案外、チョロい。 → 本誌で既読
・レッドブルー → 本誌で既読
・からかい上手の高木さん → ゲッサンで既読
どうにかしてよ、A立。たとえば響5巻無料Webでもとか。
そういえば、高木さんの人の将棋のやつ、マガポケでも終わったね。
258デフォルトの名無しさん (ワッチョイ 97cf-TEND)
2023/12/09(土) 08:12:11.03ID:zYR2UmFI0 いわゆるroot権限が必要な行為は実行出来ないね
でも、mprotectの説明によると
> 注意
Linux では、(カーネル vsyscall 領域以外の) 任意のプロセスアドレス空間において mprotect ()を呼び出すことが、常に許されている。
となってるから、Node.js(node)とかJITを行うプログラムがユーザー権限で動くのだろう
単に利便性の為だろう
でも、mprotectの説明によると
> 注意
Linux では、(カーネル vsyscall 領域以外の) 任意のプロセスアドレス空間において mprotect ()を呼び出すことが、常に許されている。
となってるから、Node.js(node)とかJITを行うプログラムがユーザー権限で動くのだろう
単に利便性の為だろう
259デフォルトの名無しさん (ワッチョイ 9f07-h0RM)
2023/12/12(火) 20:44:31.35ID:3wiw5swR0 staticグローバル変数を含んだ動的ライブラリーを動的リンクをする場合はグローバル変数が初期化されるのはmain実行前の認識です。
同じプロセス内で再度初期化したい場合は別途初期化の関数を用意してないと不可能でしょうか?
動的ロード(dlopen)を使用した場合はdlcloseして再度dlopenした場合は初期化されますか?
同じプロセス内で再度初期化したい場合は別途初期化の関数を用意してないと不可能でしょうか?
動的ロード(dlopen)を使用した場合はdlcloseして再度dlopenした場合は初期化されますか?
260デフォルトの名無しさん (ワッチョイ d701-Qbcu)
2023/12/12(火) 21:01:30.67ID:bMo3JLCK0 >>259
やってみれば?
やってみれば?
261デフォルトの名無しさん (ワッチョイ 17f1-tASO)
2023/12/12(火) 21:15:07.81ID:6C/zc+S/0 明示的に初期化処理を書くのが吉
262デフォルトの名無しさん (ワッチョイ d701-Qbcu)
2023/12/12(火) 21:58:30.38ID:bMo3JLCK0 >>259
>動的ロード(dlopen)を使用した場合はdlcloseして再度dlopenした場合は初期化されますか?
Linuxの場合には初期化されたけど環境依存かも?
$ cat hoge.c hage.c
#include <stdio.h>
static int a = 100;
void increament_a () {++ a;}
void print_a () {printf ("%d\n", a);}
#include <dlfcn.h>
typedef void (*Func) ();
int main () {
void *handle;
Func func;
handle = dlopen ("libhoge.so", RTLD_LAZY);
func = (Func)dlsym (handle, "print_a");
(*func) ();
func = (Func)dlsym (handle, "increament_a");
(*func) ();
func = (Func)dlsym (handle, "print_a");
(*func) ();
dlclose (handle);
handle = dlopen ("libhoge.so", RTLD_LAZY);
func = (Func)dlsym (handle, "print_a");
(*func) ();
return 0;
}
$ gcc -shared -fPIC -o libhoge.so hoge.c
$ gcc -o hage hage.c
$ LD_LIBRARY_PATH=.; ./hage
100
101
100
>動的ロード(dlopen)を使用した場合はdlcloseして再度dlopenした場合は初期化されますか?
Linuxの場合には初期化されたけど環境依存かも?
$ cat hoge.c hage.c
#include <stdio.h>
static int a = 100;
void increament_a () {++ a;}
void print_a () {printf ("%d\n", a);}
#include <dlfcn.h>
typedef void (*Func) ();
int main () {
void *handle;
Func func;
handle = dlopen ("libhoge.so", RTLD_LAZY);
func = (Func)dlsym (handle, "print_a");
(*func) ();
func = (Func)dlsym (handle, "increament_a");
(*func) ();
func = (Func)dlsym (handle, "print_a");
(*func) ();
dlclose (handle);
handle = dlopen ("libhoge.so", RTLD_LAZY);
func = (Func)dlsym (handle, "print_a");
(*func) ();
return 0;
}
$ gcc -shared -fPIC -o libhoge.so hoge.c
$ gcc -o hage hage.c
$ LD_LIBRARY_PATH=.; ./hage
100
101
100
263デフォルトの名無しさん (ワッチョイ 9f07-h0RM)
2023/12/12(火) 22:04:40.47ID:3wiw5swR0264デフォルトの名無しさん (ワッチョイ 17f1-tASO)
2023/12/12(火) 22:10:06.55ID:6C/zc+S/0 初期値代入くらい書くだろ普通
処理系によっちゃ不定な値から始まったりするのを防ぐ為にさ
処理系によっちゃ不定な値から始まったりするのを防ぐ為にさ
265デフォルトの名無しさん (ワッチョイ 9f07-h0RM)
2023/12/12(火) 22:18:02.98ID:3wiw5swR0266はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5705-ZkkM)
2023/12/12(火) 22:18:21.71ID:Kje9ktjN0267はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5705-ZkkM)
2023/12/12(火) 22:39:58.31ID:Kje9ktjN0 >>264
言語仕様的にはグローバル変数 (記憶域期間が static) が不定になったりはしないことになっている (初期化子がなければゼロで初期化する) のでまともな開発環境があるところではそんな心配はしないよ。
心配が必要になるほど不確かな処理系しかない (または初期化処理も自分でかかなきゃいけないような低レイヤ) 分野もあるのは知ってるけどそれが普通ってことはない。
言語仕様的にはグローバル変数 (記憶域期間が static) が不定になったりはしないことになっている (初期化子がなければゼロで初期化する) のでまともな開発環境があるところではそんな心配はしないよ。
心配が必要になるほど不確かな処理系しかない (または初期化処理も自分でかかなきゃいけないような低レイヤ) 分野もあるのは知ってるけどそれが普通ってことはない。
268デフォルトの名無しさん (ワッチョイ 9f79-1KRD)
2023/12/12(火) 23:05:45.63ID:I4UWTUvH0 >>267
言語仕様ではなく2度目のdlopenの初期化の話なんだからドキュメント化されてないなら何の保証もないでしょ
言語仕様ではなく2度目のdlopenの初期化の話なんだからドキュメント化されてないなら何の保証もないでしょ
269はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9f3e-ZkkM)
2023/12/12(火) 23:55:24.16ID:skpldDGw0 >>268
そういう意味で言ってたのならわかる。
「どうして元から代入する処理を入れてなかった?それが普通だろ?」というニュアンスで受け取ってたから元は dlopen しなおしで対処する想定ではなかったからそういうことを心配してなかった (する必要がなかった) という反応になった。
そういう意味で言ってたのならわかる。
「どうして元から代入する処理を入れてなかった?それが普通だろ?」というニュアンスで受け取ってたから元は dlopen しなおしで対処する想定ではなかったからそういうことを心配してなかった (する必要がなかった) という反応になった。
270デフォルトの名無しさん (ワッチョイ 37f2-YdMO)
2023/12/15(金) 08:29:58.25ID:a4YsmFKj0 板の名前変わった?
271デフォルトの名無しさん (ワッチョイ 6bbb-/1Gs)
2023/12/17(日) 18:23:47.21ID:kc2HrTf20 ポインタ変数にアドレスを代入するのはシャローコピーと言えると思いますか?
char s[] = "abc";
char *p = s; // shallow copy
char s[] = "abc";
char *p = s; // shallow copy
272デフォルトの名無しさん (ワッチョイ 4b63-3PPy)
2023/12/17(日) 18:40:34.16ID:i7ihHaq10 果たしてコピーと呼んで良い操作ナノか
273デフォルトの名無しさん (ワッチョイ 1e5f-DkQ9)
2023/12/17(日) 19:27:43.64ID:mH/O4qym0 >>271
言えません
言えません
274デフォルトの名無しさん (ワッチョイ e34d-e8vO)
2023/12/17(日) 19:32:39.54ID:MfQY7qyQ0 >>273
?
?
275デフォルトの名無しさん (ワッチョイ cb62-dXDU)
2023/12/17(日) 22:10:52.33ID:UmzU+/ux0 シャローコピーはディープコピーと並べて語るときに区別するための用語であって、
代入は普通に代入と呼ぶのが、コミュニケーションにおいて適切だ、
と、自分が聞かれた場合なら答えるし、レビュー依頼された場合なら指摘します
代入は普通に代入と呼ぶのが、コミュニケーションにおいて適切だ、
と、自分が聞かれた場合なら答えるし、レビュー依頼された場合なら指摘します
276デフォルトの名無しさん (ワッチョイ e34d-e8vO)
2023/12/18(月) 00:59:34.37ID:Mvyif4Hn0 >>275
シャローコピーと言えると思いますか?
シャローコピーと言えると思いますか?
277デフォルトの名無しさん (ワッチョイ e34d-e8vO)
2023/12/18(月) 00:59:46.13ID:Mvyif4Hn0 指摘する前に答えろよ無能
278デフォルトの名無しさん (ワッチョイ 63c9-/1Gs)
2023/12/18(月) 02:31:45.63ID:BtLCMjh/0 シャローコピーでしょ
2つのポインタが同じ内容になってる訳だから
ちなみに、変数定義時の代入文はバインド(束縛する)と言った方が適切だな
2つのポインタが同じ内容になってる訳だから
ちなみに、変数定義時の代入文はバインド(束縛する)と言った方が適切だな
279デフォルトの名無しさん (ワッチョイ dee7-DkQ9)
2023/12/18(月) 09:17:00.35ID:qIC94rZG0 >>276
言えません
言えません
280デフォルトの名無しさん (ワッチョイ 16ab-zIzn)
2023/12/18(月) 09:38:52.52ID:RUscEa1Z0 シャローコピーの要件からすると
ポインタ変数にアドレスを代入するだけでは成立せずに
リファレンス可能なオブジェクトを指してるポインタでないとまずい気がする
char *p = (char *)0x000; /* アドレスを代入してるぞ */
ポインタ変数にアドレスを代入するだけでは成立せずに
リファレンス可能なオブジェクトを指してるポインタでないとまずい気がする
char *p = (char *)0x000; /* アドレスを代入してるぞ */
281デフォルトの名無しさん (ワッチョイ 6bbb-/1Gs)
2023/12/18(月) 10:45:42.59ID:RHsCrDES0 意見分かれますね
ではstrdupはディープコピーだと言えますか?
ではstrdupはディープコピーだと言えますか?
282デフォルトの名無しさん (ワッチョイ 4b63-3PPy)
2023/12/18(月) 10:52:49.41ID:kauj19Ts0 C言語にはオブジェクトと言う概念がないからなあ
お気持ちとしてどうかと聞かれれば、人それぞれで
お気持ちとしてどうかと聞かれれば、人それぞれで
283デフォルトの名無しさん (ワッチョイ efc0-UNLj)
2023/12/18(月) 10:54:27.09ID:PYgWDYAB0 いやそれぬるぽ
284デフォルトの名無しさん (ワッチョイ d663-/1Gs)
2023/12/18(月) 12:07:36.53ID:ccgmPeZz0285はちみつ餃子 ◆8X2XSCHEME (ワッチョイ d23e-/274)
2023/12/18(月) 12:57:51.87ID:vbeDxg2G0 それは C の概念モデルを前提にしていいだろ。
286デフォルトの名無しさん (ワッチョイ 16ab-zIzn)
2023/12/18(月) 14:16:20.90ID:RUscEa1Z0 C++ の 参照だったら概念含めてそのまんまだったんだろうな
int a;
int& b = a;
int a;
int& b = a;
287デフォルトの名無しさん (ワッチョイ 12ad-9NgZ)
2023/12/18(月) 14:52:23.89ID:kcYk1zSZ0 >>271
言えると思う。
言えると思う。
288デフォルトの名無しさん (スフッ Sd32-3CSV)
2023/12/18(月) 16:19:13.36ID:xiaHc48Fd 内容が値を表すメモリの位置 = オブジェクト
289デフォルトの名無しさん (ワッチョイ cb62-dXDU)
2023/12/18(月) 17:05:11.17ID:pYYMlhZJ0290デフォルトの名無しさん (ワッチョイ 4b63-3PPy)
2023/12/18(月) 17:09:52.77ID:kauj19Ts0 代入元の配列がスタック上なのかどうか、そちらの方がC言語的には重要
291デフォルトの名無しさん (ワッチョイ 16ab-zIzn)
2023/12/18(月) 17:12:05.22ID:RUscEa1Z0 関数内の自動変数へのポインタを関数の外へ持ち出したりすると…
292デフォルトの名無しさん (ワッチョイ 5f01-3PPy)
2023/12/18(月) 18:48:36.94ID:epkANb1d0 何かのポインタをメンバに持つ構造体の実体の複写
293デフォルトの名無しさん (ワッチョイ d663-/1Gs)
2023/12/18(月) 23:27:08.16ID:ccgmPeZz0294デフォルトの名無しさん (ワッチョイ 16cf-fH6R)
2023/12/18(月) 23:33:27.08ID:a4PUOo8N0 コピーには違いないけどディープとかシャローとか区別できるものじゃないってことだろ
295デフォルトの名無しさん (ワッチョイ 1279-F8eA)
2023/12/18(月) 23:40:20.33ID:6hD73gHu0296デフォルトの名無しさん (ワッチョイ 4b46-AQ+F)
2023/12/19(火) 08:23:42.15ID:ijJJQ5/r0297デフォルトの名無しさん (スププ Sd32-3CSV)
2023/12/19(火) 09:34:26.09ID:+6PK9xZxd シャローコピーとかディープコピーとかはもともとPythonの概念ですよね?
298デフォルトの名無しさん (ワッチョイ 2701-NGr8)
2023/12/19(火) 09:54:57.24ID:hCROhcq70 は?
299デフォルトの名無しさん (ワッチョイ 2701-3PPy)
2023/12/19(火) 10:05:08.86ID:cwbunCZy0 >>289
馬鹿ってすぐ断定するよな
馬鹿ってすぐ断定するよな
300デフォルトの名無しさん (ワッチョイ 77cd-UNLj)
2023/12/19(火) 10:07:03.49ID:KoTx3gw20 コピーとクローンは違うよな?
301デフォルトの名無しさん (ラクッペペ MMde-Y9Ov)
2023/12/19(火) 10:13:44.25ID:MIravlrKM >>297
C++やJavaあたりが元だと思うけど
C++やJavaあたりが元だと思うけど
302デフォルトの名無しさん (ワッチョイ 4b63-3PPy)
2023/12/19(火) 10:17:05.18ID:gboy58yC0 そういうことで、
Cにはシャローコピーとかディープコピーとかの概念はない
Cにはシャローコピーとかディープコピーとかの概念はない
303デフォルトの名無しさん (ワッチョイ cb62-dXDU)
2023/12/19(火) 10:51:12.24ID:E9BI8x9B0 少し前までスマートな人がたくさんいたのにいつの間にかバカしか居なくなった
304デフォルトの名無しさん (ワッチョイ cb62-dXDU)
2023/12/19(火) 10:55:10.13ID:E9BI8x9B0 >>297
違います
違います
305デフォルトの名無しさん (ワッチョイ 5ee1-hm9h)
2023/12/19(火) 11:32:45.68ID:df21V+Ma0 >>301
LISPじゃね?深いコピーは演習なんかの定番だった気がする
LISPじゃね?深いコピーは演習なんかの定番だった気がする
306デフォルトの名無しさん (スップ Sd52-54/p)
2023/12/19(火) 13:45:42.10ID:3Nu9QseCd307デフォルトの名無しさん (スププ Sd32-Hm2B)
2023/12/19(火) 15:01:13.02ID:+6PK9xZxd Pythonの解説書には大概、ディープコピーとシャローコピーが載ってますよ
308はちみつ餃子 ◆8X2XSCHEME (ワッチョイ d23e-/274)
2023/12/19(火) 15:28:24.33ID:J0ExAcTK0 >>305
もちろんそういう状況を扱っている事例は数多くある。
ただ、ざっと見た感じでは古いマニュアルでは「再帰的」とか「共有」とかいった語で説明するのが普通っぽい。
深い/浅いといった言い方が発生したのはもっと新しい言語でのことだと思う。
もちろんそういう状況を扱っている事例は数多くある。
ただ、ざっと見た感じでは古いマニュアルでは「再帰的」とか「共有」とかいった語で説明するのが普通っぽい。
深い/浅いといった言い方が発生したのはもっと新しい言語でのことだと思う。
309デフォルトの名無しさん (ワッチョイ 2701-3PPy)
2023/12/19(火) 19:44:57.82ID:cwbunCZy0 複オジが粘着してそう
310デフォルトの名無しさん (ワッチョイ 77cd-UNLj)
2023/12/19(火) 19:48:51.51ID:KoTx3gw20 つか、Cは書いてる人にしか型が分からないからそんな器用な事は出来ないよな?
どっちのコピーも自前でちまちま作るしか無い
どっちのコピーも自前でちまちま作るしか無い
311デフォルトの名無しさん (ワッチョイ 92de-IA1d)
2023/12/19(火) 19:53:51.13ID:nmJwtfK30 呼称にこだわってる限りCなんて使えない
お上品な他の言語使ってりゃいいじゃん
お上品な他の言語使ってりゃいいじゃん
312デフォルトの名無しさん (ワッチョイ cbd5-dXDU)
2023/12/20(水) 05:56:32.08ID:r5p/Itr10 >>310
その通りですよ
私はユーザが定義する集成型(structみたいなもの)を、PCをまたいでリモートコンピュータ上にコピーするもの(WindowsのC#とHP-UXのC)、を仕事で作った事があるのだけど、それをやるには型定義からガッツリ関わる仕組みを構築しないと無理なのよ。
自分はエクセルでやった(そして完璧にはできず特例処理だらけになった)けど、普通はDDLとか独自に作るでしょ
上の方で最初に話題出したヒトは多分、どういう問題空間でディープコピーとかシャローコピーを話題にする必要が生じるのか【すら】分かってないよ
そうだね 複オジ とか言われてた人の雰囲気と似てるね
その通りですよ
私はユーザが定義する集成型(structみたいなもの)を、PCをまたいでリモートコンピュータ上にコピーするもの(WindowsのC#とHP-UXのC)、を仕事で作った事があるのだけど、それをやるには型定義からガッツリ関わる仕組みを構築しないと無理なのよ。
自分はエクセルでやった(そして完璧にはできず特例処理だらけになった)けど、普通はDDLとか独自に作るでしょ
上の方で最初に話題出したヒトは多分、どういう問題空間でディープコピーとかシャローコピーを話題にする必要が生じるのか【すら】分かってないよ
そうだね 複オジ とか言われてた人の雰囲気と似てるね
313デフォルトの名無しさん (ワッチョイ b74b-gvj7)
2023/12/20(水) 09:35:46.96ID:/uXb+00h0 UPLIFT プレミアム・サービスのお知らせ
https://uplift.5ch.net/
UPLIFT 主な特典
・連続投稿の規制を緩和します。
・スレッド作成時の規制を緩和します。
・5ch.netのスレッド表示画面に表示される広告を除去します。
・5ch.net専用ブラウザで5ch.netの過去ログを閲覧できるようになります。
・海外からのアクセス・ホスト経由からでも書き込みができるようになります。
・書き込みが規制されているプロバイダーからでも書き込みができるようになります。
・5ch.netを安定して利用できるように運営を支援できます。
5ちゃんねるを存続させるためには、皆様のご協力が必要です。
最後まで御精読いただきありがとうございました。
https://uplift.5ch.net/
UPLIFT 主な特典
・連続投稿の規制を緩和します。
・スレッド作成時の規制を緩和します。
・5ch.netのスレッド表示画面に表示される広告を除去します。
・5ch.net専用ブラウザで5ch.netの過去ログを閲覧できるようになります。
・海外からのアクセス・ホスト経由からでも書き込みができるようになります。
・書き込みが規制されているプロバイダーからでも書き込みができるようになります。
・5ch.netを安定して利用できるように運営を支援できます。
5ちゃんねるを存続させるためには、皆様のご協力が必要です。
最後まで御精読いただきありがとうございました。
314デフォルトの名無しさん (ワッチョイ e3f0-HAvR)
2023/12/23(土) 02:06:44.23ID:cGlPuzRM0315デフォルトの名無しさん (ワッチョイ 53d2-TKg5)
2023/12/23(土) 10:35:35.90ID:1vO40jtV0 smalltalk、凄いな!私はバートランド・メイヤーさん、すごく尊敬してます
javadocとかdoxygenみたいなシステムも、もうあの時代に彼はすでに形にして世に出してるんですよね
例外の説明とか、プログラムを契約の履行に例える話とかもそうだし、あとコメント論とかもイケてるんですよ
頭良すぎて周りが付いてくのに何年もかかってる気がする
javadocとかdoxygenみたいなシステムも、もうあの時代に彼はすでに形にして世に出してるんですよね
例外の説明とか、プログラムを契約の履行に例える話とかもそうだし、あとコメント論とかもイケてるんですよ
頭良すぎて周りが付いてくのに何年もかかってる気がする
316デフォルトの名無しさん (ワッチョイ 53d2-TKg5)
2023/12/23(土) 10:43:58.55ID:1vO40jtV0 てかまあ、Cのスレだね
でもCで構造体リモートコピーするにはさ、みたいな話をしても、多分誰も乗ってきてくれないよね
でもCで構造体リモートコピーするにはさ、みたいな話をしても、多分誰も乗ってきてくれないよね
317デフォルトの名無しさん (ワッチョイ 5363-y73S)
2023/12/23(土) 11:24:31.92ID:MLKmoxlx0 それは話の持ってき方。プレゼン上手ならできる
318デフォルトの名無しさん (ワッチョイ 6f97-xkue)
2023/12/23(土) 11:28:28.28ID:j8bI1ONF0 そーゆーのに憧れてる層には土方言語のCはいらんだろw
319デフォルトの名無しさん (ワッチョイ 43a4-BWWG)
2023/12/23(土) 11:41:06.10ID:PYuibGoS0 だからさ、C言語の変数や構造体内の型宣言なんてイイカゲンなんだからそう言う話ははなから無理なんだよ
320デフォルトの名無しさん (ワッチョイ 53d2-TKg5)
2023/12/23(土) 11:42:27.32ID:1vO40jtV0 メッセージというか伝送パケットを作る話とかはどうですかね(皆さん興味ありますか)
タグ・レングス・バリュー形式がー、とか
バイナリvs文字列とか
(文字列にして伝送するのって遅いと思うでしょ、意外と速度okだったりします)
あと、message pack とか
タグ・レングス・バリュー形式がー、とか
バイナリvs文字列とか
(文字列にして伝送するのって遅いと思うでしょ、意外と速度okだったりします)
あと、message pack とか
321デフォルトの名無しさん (ワッチョイ 43a4-BWWG)
2023/12/23(土) 11:44:11.18ID:PYuibGoS0 ゼロ(0x00)が送れないから文字列は無理
322デフォルトの名無しさん (ワッチョイ 43a4-BWWG)
2023/12/23(土) 11:46:23.81ID:PYuibGoS0 経路によっては7ビット+パリティに解釈されるからバイナリは無理
323デフォルトの名無しさん (ワッチョイ 43a4-BWWG)
2023/12/23(土) 11:49:57.82ID:PYuibGoS0 結局、デバイスとかハードの特性を理解する必要があるんだよね
324デフォルトの名無しさん (ワッチョイ 5363-y73S)
2023/12/23(土) 11:54:07.08ID:MLKmoxlx0 メッセージの受け渡しでハードの特性まで理解する必要はないだろう
325デフォルトの名無しさん (ワッチョイ 43a4-BWWG)
2023/12/23(土) 11:57:42.36ID:PYuibGoS0 だっていまどきC言語使ってる人なんて、デバイス寄りのハードウェアコントロールとか、チープなCPUに搭載するソフトとかだろ?
326デフォルトの名無しさん (ワッチョイ 53d2-TKg5)
2023/12/23(土) 11:59:57.84ID:1vO40jtV0 >>321
おっと、反応サンキュー
0x00をデータとして送るのってあるある話題ですよねw
確かに「通信全部が」文字列で、nul文字終端だとすると無理。
でも、アタマにデータサイズがあって、それからデータがある形式ならば、仮に文字列が続いてると見える中に、まるでゴミ文字みたいに0x00が入っててもokなのよ
実は今のHTTPもそうなってたはず
おっと、反応サンキュー
0x00をデータとして送るのってあるある話題ですよねw
確かに「通信全部が」文字列で、nul文字終端だとすると無理。
でも、アタマにデータサイズがあって、それからデータがある形式ならば、仮に文字列が続いてると見える中に、まるでゴミ文字みたいに0x00が入っててもokなのよ
実は今のHTTPもそうなってたはず
327デフォルトの名無しさん (ワッチョイ 43a4-BWWG)
2023/12/23(土) 12:04:44.24ID:PYuibGoS0328デフォルトの名無しさん (ワッチョイ 43a4-BWWG)
2023/12/23(土) 12:09:04.65ID:PYuibGoS0 最初からunsignd charのポインタとサイズを構造体にして扱えば良いだけ
329デフォルトの名無しさん (ワッチョイ 53d2-TKg5)
2023/12/23(土) 12:09:04.99ID:1vO40jtV0 大昔は7ビットしか通らない経路あったねw
5baseとかの時代でしょうか
今は、8ビットを8ビットで伝送するほうが稀でしょうね
8ビットを10ビットで符号化することで、ゼロやイチが連続する数が少なくなるようにすることで、データ自体でタイミングを取れる方法をIBMが発明したとかで
だからこんなに速くなったそうです
5baseとかの時代でしょうか
今は、8ビットを8ビットで伝送するほうが稀でしょうね
8ビットを10ビットで符号化することで、ゼロやイチが連続する数が少なくなるようにすることで、データ自体でタイミングを取れる方法をIBMが発明したとかで
だからこんなに速くなったそうです
330デフォルトの名無しさん (ワッチョイ 53d2-TKg5)
2023/12/23(土) 12:13:58.12ID:1vO40jtV0 >>327
多分あなたの危惧が伝わってないです
改修案件でバグを作り込んだのに動作確認せずリリースしてしまうっていう事なら、工程管理ができてないって話でプロとしてダメ
メッセージ形式の仕様とは関係ないですね
多分あなたの危惧が伝わってないです
改修案件でバグを作り込んだのに動作確認せずリリースしてしまうっていう事なら、工程管理ができてないって話でプロとしてダメ
メッセージ形式の仕様とは関係ないですね
331デフォルトの名無しさん (ワッチョイ 53d2-TKg5)
2023/12/23(土) 12:17:04.95ID:1vO40jtV0 (…もしや「複オジ」さんだったかな?)
332デフォルトの名無しさん (ワッチョイ 6f97-xkue)
2023/12/23(土) 12:56:43.79ID:j8bI1ONF0 やっぱりめんどくさい奴だったかw
あんたにレスがもらえないのはテーマのせいじゃないとわかれ
あんたにレスがもらえないのはテーマのせいじゃないとわかれ
333デフォルトの名無しさん (ワッチョイ 43a4-BWWG)
2023/12/23(土) 18:17:03.63ID:PYuibGoS0 >>330
安易に文字列を使う仕様にしてるとバイナリ通らないの忘れるし思わぬバグを生む原因になるから、最初からバイナリ配列にするか文字列操作関数を一切使わない様にしないとな
安易に文字列を使う仕様にしてるとバイナリ通らないの忘れるし思わぬバグを生む原因になるから、最初からバイナリ配列にするか文字列操作関数を一切使わない様にしないとな
334デフォルトの名無しさん (ワントンキン MM07-TKg5)
2023/12/24(日) 00:00:50.96ID:B84K7ZI6M >>332
うん…(悲しい)
うん…(悲しい)
335デフォルトの名無しさん (ワッチョイ 4602-UkJf)
2024/01/05(金) 10:30:41.51ID:ph0QLfWd0 Perlとかで利用している設定ファイルがあるのですが、
Cで書いたプログラムでも同じファイルを設定ファイルとして読み込みたいです
設定ファイルですが、このような感じです
val = abc
str1 = $val/AAA
Perlでは「$val」を展開し、str1に「abc/AAA」と設定してくれるのですが、
Cから読み込む場合は、自分で展開する必要があると思ってます
それをやってくれるライブラリや関数等、ありますでしょうか
Cで書いたプログラムでも同じファイルを設定ファイルとして読み込みたいです
設定ファイルですが、このような感じです
val = abc
str1 = $val/AAA
Perlでは「$val」を展開し、str1に「abc/AAA」と設定してくれるのですが、
Cから読み込む場合は、自分で展開する必要があると思ってます
それをやってくれるライブラリや関数等、ありますでしょうか
336デフォルトの名無しさん (ワッチョイ e563-7PFe)
2024/01/05(金) 10:49:08.39ID:xgizPOi+0 その程度なら、自作できるだろう
337デフォルトの名無しさん (スププ Sd62-Blk0)
2024/01/05(金) 11:38:06.91ID:VxELzJcZd #define val abc
338デフォルトの名無しさん (スププ Sd62-Blk0)
2024/01/05(金) 12:10:00.56ID:VxELzJcZd enum { val = abc }
339デフォルトの名無しさん (スププ Sd62-Blk0)
2024/01/05(金) 12:13:38.69ID:VxELzJcZd enum の方はエラーになる
340デフォルトの名無しさん (スププ Sd62-Blk0)
2024/01/05(金) 12:27:56.38ID:VxELzJcZd #define もエラーになる
341デフォルトの名無しさん (スププ Sd62-Blk0)
2024/01/05(金) 12:30:33.41ID:VxELzJcZd #define val "abc"
342デフォルトの名無しさん (ワッチョイ 651a-R/a6)
2024/01/05(金) 12:30:55.30ID:qVR6C9yQ0 >>335
そういうのをどう解決するかを自分が考えて実現するのが楽しいのに…
自分なら
設定ファイルを「環境変数を設定する」に変更して、perlもCも環境変数から設定項目を読む に変更する。
そのために
perl側を変更する権利を得る
OSに依存して良い条件
を確保する様に、喫煙所に通う
そういうのをどう解決するかを自分が考えて実現するのが楽しいのに…
自分なら
設定ファイルを「環境変数を設定する」に変更して、perlもCも環境変数から設定項目を読む に変更する。
そのために
perl側を変更する権利を得る
OSに依存して良い条件
を確保する様に、喫煙所に通う
343デフォルトの名無しさん (ワッチョイ 651a-R/a6)
2024/01/05(金) 12:49:25.99ID:qVR6C9yQ0 >>335
別の解決案
・Cに優しい形式(右辺を全部展開した形で、イコール前後のスペースもなし)で吐き直すツールを、perlで作る
・自分で全部Cで作る
・lex/yacc を使って軽言語解釈ルーチンを作る
それぞれデメリットがあって、質問に直接答える「そういったライブラリはあるか」に一番合ってるのが、最後のlex/yaccだけど、それは一番バカらしい答えでもある。お好きに
別の解決案
・Cに優しい形式(右辺を全部展開した形で、イコール前後のスペースもなし)で吐き直すツールを、perlで作る
・自分で全部Cで作る
・lex/yacc を使って軽言語解釈ルーチンを作る
それぞれデメリットがあって、質問に直接答える「そういったライブラリはあるか」に一番合ってるのが、最後のlex/yaccだけど、それは一番バカらしい答えでもある。お好きに
344デフォルトの名無しさん (ワッチョイ 651a-R/a6)
2024/01/05(金) 12:51:00.35ID:qVR6C9yQ0 >>337
君、答える側になれる実力ないだろ
君、答える側になれる実力ないだろ
345デフォルトの名無しさん (ワッチョイ 065f-414C)
2024/01/05(金) 12:54:37.44ID:KwPCWpVD0 sscanfで読めばよかろうもん
346はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 823e-slPv)
2024/01/05(金) 13:07:45.12ID:t0UUGhQq0 >>335
その説明では何をやりたいのか伝わってないので仕様書を書いてみて。
理想的なライブラリがあったとして、そのテストケースという形式でもいい。
曖昧模糊な要望だと説明が下手なだけでなく説明しようとしている内容が見当違いな可能性を疑う。
(いわゆるXY問題)
その説明では何をやりたいのか伝わってないので仕様書を書いてみて。
理想的なライブラリがあったとして、そのテストケースという形式でもいい。
曖昧模糊な要望だと説明が下手なだけでなく説明しようとしている内容が見当違いな可能性を疑う。
(いわゆるXY問題)
347デフォルトの名無しさん (ワッチョイ 2eab-zkkm)
2024/01/05(金) 13:32:24.69ID:38bnxq2E0 Cのソースでその展開もどきを行いたいのか
Cで書いてるプログラムがとあるファイル食って文字処理するんだけど、同じことを実現したいのか
Cで書いてるプログラムがとあるファイル食って文字処理するんだけど、同じことを実現したいのか
348デフォルトの名無しさん (ワッチョイ 45bb-dhuT)
2024/01/05(金) 13:37:38.46ID:M4U6Kwpw0349はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 823e-slPv)
2024/01/05(金) 14:59:38.28ID:t0UUGhQq0 どうしても既存の設定ファイルをそのまま使いたい、それを処理できるようなものが欲しいということなら
そんな都合の良いものがあるわけない。 自分で書くしかしょうがない。
完璧にそのままのフォーマットでなくおおよそ似た機能があればよいなら
TOML とか JSON とか YAML とかの広く使われているフォーマットを採用したほうが面倒が少ない。
Perl でも C でも処理できるライブラリがいくつもあるし。
これらには変数展開のような機能はないが、
設定ファイルで動的な操作を可能にするのは問題を引き起こしやすいと考えられていて、
アプリケーション側でやるかプリプロセッサでなんとかしたほうがよい。
(強いて言えば YAML のエイリアス機能は変数のようなものとも言えるけど文字列を結合したりは出来ない。)
逆に設定どころではなくユーザーによるカスタマイズをどんどんやってもらうようなものなら
Lua とかのアプリケーション拡張言語を埋め込んでしまうという方法もとれる。
そんな都合の良いものがあるわけない。 自分で書くしかしょうがない。
完璧にそのままのフォーマットでなくおおよそ似た機能があればよいなら
TOML とか JSON とか YAML とかの広く使われているフォーマットを採用したほうが面倒が少ない。
Perl でも C でも処理できるライブラリがいくつもあるし。
これらには変数展開のような機能はないが、
設定ファイルで動的な操作を可能にするのは問題を引き起こしやすいと考えられていて、
アプリケーション側でやるかプリプロセッサでなんとかしたほうがよい。
(強いて言えば YAML のエイリアス機能は変数のようなものとも言えるけど文字列を結合したりは出来ない。)
逆に設定どころではなくユーザーによるカスタマイズをどんどんやってもらうようなものなら
Lua とかのアプリケーション拡張言語を埋め込んでしまうという方法もとれる。
350デフォルトの名無しさん (ワッチョイ c2b5-R5Zd)
2024/01/05(金) 15:39:37.20ID:mdj5x9Xd0 Perlにそんな便利機能あったっけ
351デフォルトの名無しさん (ワッチョイ c6bb-bJ3A)
2024/01/05(金) 18:09:30.90ID:xFVV62H30 Cは遅延評価を積極的にやるための言語ではないからなあ
C++やC#ならあるんだけどね
lex/yacc はちょっと古くて
今なら flex/byson ですね
C++やC#ならあるんだけどね
lex/yacc はちょっと古くて
今なら flex/byson ですね
352デフォルトの名無しさん (ワッチョイ 42ad-nK/n)
2024/01/06(土) 15:06:00.15ID:NPThFXTg0 $ の変数展開しかやらないなら複雑な構文解析にはならないから全部自作した方が楽なのでは?
少し楽したいなら perl に読ませて $ 展開させた文字列に変換して出力したのを C の側で読むとかね。そうすると少し楽ができる。
これの問題は perl が使えない環境では動かないことかな。
少し楽したいなら perl に読ませて $ 展開させた文字列に変換して出力したのを C の側で読むとかね。そうすると少し楽ができる。
これの問題は perl が使えない環境では動かないことかな。
353デフォルトの名無しさん (ワッチョイ 2ecf-9iEs)
2024/01/06(土) 16:25:37.13ID:2Gstkfh+0 今なら packcc おすすめ
354はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 823e-slPv)
2024/01/06(土) 16:27:28.51ID:iX+vez910 設定ファイルのデータ構造が key/value の組だけ、 value は単なる文字列という程度なら
パーサジェネレータはかえって邪魔じゃないのかな。
パーサジェネレータはかえって邪魔じゃないのかな。
355デフォルトの名無しさん (ワッチョイ 651a-R/a6)
2024/01/06(土) 21:36:47.69ID:8zwGVkiA0 lex/yaccは使った事ない人にはハードル高いだろうね。逆に、使い方が分かると何でもそれでやりたがる時期が来る。どんなツールや言語でもそうだろうけど
356デフォルトの名無しさん (ワッチョイ b2c2-dhuT)
2024/01/06(土) 21:39:52.15ID:YhaQaYGw0 BNF書いても大した量にならないだろうし俺ならフルスクラッチで書いちゃうな
357デフォルトの名無しさん (ワッチョイ 651a-R/a6)
2024/01/06(土) 21:45:36.68ID:8zwGVkiA0 で、設定ファイル、shで環境変数を設定すりゃ済む、という案に誰も反応してもらえないんだが、どうだい? windows ならcmdだろうけど
設定項目ってのは、パス文字列とか、メモリサイズとか、ほぼ固定だけどあとから変えたい場合もあろう、っていう定数だよね。環境変数ってまさにその目的だと思ってる。
ドル記号で一時値の展開もできる。Cからも簡単に読める。
設定項目ってのは、パス文字列とか、メモリサイズとか、ほぼ固定だけどあとから変えたい場合もあろう、っていう定数だよね。環境変数ってまさにその目的だと思ってる。
ドル記号で一時値の展開もできる。Cからも簡単に読める。
358デフォルトの名無しさん (ワッチョイ 651a-R/a6)
2024/01/06(土) 21:56:18.04ID:8zwGVkiA0 shで、設定ファイル兼、実行ファイル起動ラッパを書いて、利用者には直接実行ファイルじゃなくラッパを起動せよと説明して
export XXX_ROOT=/var/xxx
export XXX_INPUT_DIR=${XXX_ROOT}/in
export XXX_OUTPUT_DIR=${XXX_ROOT}/out
export XXX_READBUF_SIZE=32768
exec ${XXX_ROOT}/bin/xxx
Cで読む処理は
get_conf_str(...) //文字列項目用
get_conf_i64(...) //整数項目用
どっちもパラメータに
(環境変数名, 環境変数が未設定時の具体値)
って指定する。これが、ソース上の1箇所でズラッと並ぶと「設定項目名とハードコード値の、一覧表」風になるの。分かる?
export XXX_ROOT=/var/xxx
export XXX_INPUT_DIR=${XXX_ROOT}/in
export XXX_OUTPUT_DIR=${XXX_ROOT}/out
export XXX_READBUF_SIZE=32768
exec ${XXX_ROOT}/bin/xxx
Cで読む処理は
get_conf_str(...) //文字列項目用
get_conf_i64(...) //整数項目用
どっちもパラメータに
(環境変数名, 環境変数が未設定時の具体値)
って指定する。これが、ソース上の1箇所でズラッと並ぶと「設定項目名とハードコード値の、一覧表」風になるの。分かる?
359デフォルトの名無しさん (ワッチョイ 651a-R/a6)
2024/01/06(土) 22:02:36.24ID:8zwGVkiA0 get_conf_str() と get_conf_i64() の中身は
getenv() を使って簡単に実装できる、のは分かるよね?
getenv() を使って簡単に実装できる、のは分かるよね?
360デフォルトの名無しさん (ワッチョイ e1f0-P53C)
2024/01/06(土) 22:09:41.74ID:LvNnK4+W0 単なる文字列だけなら正規表現の置換でいいだろ
361デフォルトの名無しさん (ワッチョイ 651a-R/a6)
2024/01/06(土) 22:20:12.76ID:8zwGVkiA0 struct conf_t {
char* input_dir
char* output_dir;
int64_t readbuf_size;
} g_conf;
文字列項目はC++だとstd::string にする所だが、Cだとstrdup(的なもの)で実装しても良いんじゃないかい。
g_conf.inputdir = get_conf_str(
"XXX_INPUT_DIR", "/var/xxx/in");
g_conf.outputdir = get_conf_str(
"XXX_OUTPUT_DIR", "/var/xxx/out");
g_conf.readbuf_size = get_conf_i64(
"XXX_READBUF_SIZE", 32768);
とかってするとソース上で一覧表風になるでしょ。タブ文字も入れて桁そろえて。
char* input_dir
char* output_dir;
int64_t readbuf_size;
} g_conf;
文字列項目はC++だとstd::string にする所だが、Cだとstrdup(的なもの)で実装しても良いんじゃないかい。
g_conf.inputdir = get_conf_str(
"XXX_INPUT_DIR", "/var/xxx/in");
g_conf.outputdir = get_conf_str(
"XXX_OUTPUT_DIR", "/var/xxx/out");
g_conf.readbuf_size = get_conf_i64(
"XXX_READBUF_SIZE", 32768);
とかってするとソース上で一覧表風になるでしょ。タブ文字も入れて桁そろえて。
362デフォルトの名無しさん (ワッチョイ 627a-JKp6)
2024/01/06(土) 23:25:47.33ID:4fq2Cpkf0 まあ落ち着けよ 質問者はそんなこと聞いとらんだろうよ
363デフォルトの名無しさん (ワッチョイ ff7a-dvWY)
2024/01/07(日) 00:35:50.01ID:yw4Ulg6E0 for(;;){
if((result = fgets(line, MAX_LEN, stream)) != NULL){
p1=result;
p3=p1+strlen(line);
p2=strtok(p1, "=");
}
}
これで、p1とp2から左辺、p2とp3から右辺が取り出せる。
$の展開は、マクロ展開処理の要領で
右辺に$があるかチェックして、あったら定義値に置き換えるという
10ステップ程度の処理でできるだろ。
if((result = fgets(line, MAX_LEN, stream)) != NULL){
p1=result;
p3=p1+strlen(line);
p2=strtok(p1, "=");
}
}
これで、p1とp2から左辺、p2とp3から右辺が取り出せる。
$の展開は、マクロ展開処理の要領で
右辺に$があるかチェックして、あったら定義値に置き換えるという
10ステップ程度の処理でできるだろ。
364デフォルトの名無しさん (ワッチョイ 7fb5-j9I8)
2024/01/07(日) 08:57:04.03ID:4P3NNejl0365デフォルトの名無しさん (ワッチョイ 7f79-e2pS)
2024/01/07(日) 10:17:39.72ID:gAwkeLQQ0 せめて既存の気の利いた言語のstring型のメソッドやらを参考にしろよ
ここで再発明しても誰も使わんだろ
ここで再発明しても誰も使わんだろ
366デフォルトの名無しさん (ワッチョイ 5f1a-nsdu)
2024/01/07(日) 10:25:56.11ID:TVg93ufA0 質問者、もういない
367デフォルトの名無しさん (ワッチョイ df01-6482)
2024/01/07(日) 11:15:08.19ID:SfiTOIyR0368デフォルトの名無しさん (ワッチョイ 5f63-vNrU)
2024/01/07(日) 11:23:13.54ID:XrTF2oph0 動かすCプログラムをperlに書き直す方が簡単そう
369デフォルトの名無しさん (ワッチョイ 7fad-ipwt)
2024/01/07(日) 16:24:59.67ID:tTa6vFrs0 こんな方法もある。しかし $ の変数展開しかしないなら無駄な感じはするね。それだけのためにここまでするのかという。
perlembed - C プログラムへの Perl の埋め込み方
https://perldoc.jp/docs/perl/5.10.0/perlembed.pod
perlembed - C プログラムへの Perl の埋め込み方
https://perldoc.jp/docs/perl/5.10.0/perlembed.pod
370デフォルトの名無しさん (ワッチョイ 5f63-vNrU)
2024/01/10(水) 16:11:15.07ID:PVZRGcug0 $がリテラルとして入ってた時はどうするかとか、結構面倒そう
371デフォルトの名無しさん (ワッチョイ 5f1f-nsdu)
2024/01/10(水) 17:49:56.37ID:C4OEbwTl0 >>370
そうなんだよー、真面目にやるとバカみたいに面倒なのよ
文字列リテラルの中に $ やコメント開始終了記号が入る事もあるし
コメントの中に $ や文字列開始終了記号が入る事もある
# "#"
$aaa = /* $コメント " */ "文字列/**/値";
なので、頭から読み始めて、状態を追いながら(現在の場所が 文を書く所か、コメント内か、文字列内か)読まないと、正しいファイルを正しく読めない
んで、つまんないバグを作り込んだりするの。その、もういない誰かが作り込んだつまんないバグを、別の誰かが直すはめになる。そんなの嫌じゃね?
そうなんだよー、真面目にやるとバカみたいに面倒なのよ
文字列リテラルの中に $ やコメント開始終了記号が入る事もあるし
コメントの中に $ や文字列開始終了記号が入る事もある
# "#"
$aaa = /* $コメント " */ "文字列/**/値";
なので、頭から読み始めて、状態を追いながら(現在の場所が 文を書く所か、コメント内か、文字列内か)読まないと、正しいファイルを正しく読めない
んで、つまんないバグを作り込んだりするの。その、もういない誰かが作り込んだつまんないバグを、別の誰かが直すはめになる。そんなの嫌じゃね?
372デフォルトの名無しさん (ワッチョイ 5f1f-nsdu)
2024/01/10(水) 17:57:07.75ID:C4OEbwTl0 でも本当に、質問者はもうトンズラしたと思うよ。次の話をしよう
373デフォルトの名無しさん (ワッチョイ 5f63-vNrU)
2024/01/10(水) 18:00:48.10ID:PVZRGcug0 次の患者さん、どうぞ
374デフォルトの名無しさん (ワッチョイ ffcf-mfjK)
2024/01/10(水) 21:56:41.19ID:Qa3z5jue0 >>327
どっちにしろ質問者のためにやってるわけじゃないからいいんだよ
どっちにしろ質問者のためにやってるわけじゃないからいいんだよ
375デフォルトの名無しさん (ワッチョイ 5ff5-j9I8)
2024/01/10(水) 22:25:04.83ID:Gs+Ha8Nh0376デフォルトの名無しさん (ワッチョイ 7fd9-EKXI)
2024/01/10(水) 23:20:02.65ID:ZQ7M3ZpB0 ちなみにCの識別子に$を使える
少なくともgcc, clang, msvcで使える
int $val = 0;
とか
少なくともgcc, clang, msvcで使える
int $val = 0;
とか
377デフォルトの名無しさん (ワッチョイ 5f1f-nsdu)
2024/01/10(水) 23:20:30.43ID:C4OEbwTl0378デフォルトの名無しさん (ワッチョイ 5f1f-nsdu)
2024/01/10(水) 23:36:31.88ID:C4OEbwTl0 パーサー実装の現実的な話がまともにできるニキはここにはいないねw
379デフォルトの名無しさん (ワッチョイ 5f1f-nsdu)
2024/01/11(木) 02:31:42.07ID:uSDU2aBB0 ほらな、はちみつも黙るやろ
規格は詳しいけどな
規格は詳しいけどな
380デフォルトの名無しさん (ワッチョイ 5fbb-EKXI)
2024/01/11(木) 02:42:19.58ID:WTkhFxto0 パーサーなんて大して難しくないよ
テスト書けば
テスト書けば
381デフォルトの名無しさん (ワッチョイ 5fa6-j9I8)
2024/01/11(木) 06:03:54.69ID:ZajpDUJL0382デフォルトの名無しさん (ワッチョイ ffcf-mfjK)
2024/01/11(木) 07:51:37.56ID:7oF58mtI0 >>371みたいなので悩むならさくっと正規表現ライブラリやパーサージェネレータ使うな。
学習のために自分でパーサー書いてみたいってんなら別だが。
学習のために自分でパーサー書いてみたいってんなら別だが。
383はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7f3e-Cx9t)
2024/01/11(木) 09:41:05.64ID:NL5Kg7pj0384デフォルトの名無しさん (ワッチョイ 5f63-vNrU)
2024/01/11(木) 09:42:53.45ID:ZxeGb/wD0 誰か、作ってやれよ
385デフォルトの名無しさん (ワッチョイ df09-dvWY)
2024/01/12(金) 10:13:36.22ID:Umd8uX9b0 strcat() はダメなの?
386デフォルトの名無しさん (ワッチョイ ff5f-03E5)
2024/01/13(土) 00:25:52.89ID:suyQO94R0 sscanfで十分だよ
387デフォルトの名無しさん (スッップ Sd9f-j9I8)
2024/01/13(土) 09:14:54.62ID:mB7BPAPVd >>385
参加したかったの?
参加したかったの?
388デフォルトの名無しさん (ワッチョイ 5f63-vNrU)
2024/01/13(土) 09:41:46.29ID:fMrSPcrk0 ここに書けば参加したことになるよ
389デフォルトの名無しさん (ワッチョイ 5f59-P7l0)
2024/01/13(土) 13:22:56.37ID:kmNIHanh0 参加することに意義がある
390デフォルトの名無しさん (スッップ Sd9f-+zra)
2024/01/13(土) 16:53:47.66ID:8Ttuq2mzd C言語からJSON読み書きにオススメのライブラリやDLL教えてくれさい。
UTF-8↔ANSI変換はAPIでやれそうです。
UTF-8↔ANSI変換はAPIでやれそうです。
391デフォルトの名無しさん (ワッチョイ ff5f-03E5)
2024/01/13(土) 19:04:48.77ID:suyQO94R0 yyjsonで十分だよ
392デフォルトの名無しさん (ワントンキン MM16-l2AN)
2024/01/17(水) 13:51:26.07ID:MxPcwzaVM 以下はmalloc()で割り当てた領域を開放してポインタをヌルポインタにするマクロである
#define MYFREE(p) do {free(p); p = 0;} while(0)
このマクロに不備があるかないか、ある場合はどんな不備か答えよ
ただし処理系はANCI C準拠とし、stdlib.hがインクルードされていることとpが左辺値かつmallocで割り当てた領域を指す有効なポインタであることの2点は呼び出し側によって保障されているものとする
#define MYFREE(p) do {free(p); p = 0;} while(0)
このマクロに不備があるかないか、ある場合はどんな不備か答えよ
ただし処理系はANCI C準拠とし、stdlib.hがインクルードされていることとpが左辺値かつmallocで割り当てた領域を指す有効なポインタであることの2点は呼び出し側によって保障されているものとする
393デフォルトの名無しさん (ワッチョイ 427c-kX52)
2024/01/17(水) 16:32:50.55ID:sbbnyjB/0 宿題は他所でやれ
394デフォルトの名無しさん (ワッチョイ f901-LNAd)
2024/01/17(水) 19:42:28.17ID:bWv2IYcS0 do-while文で回す意味ってあるの?
395デフォルトの名無しさん (ワッチョイ c563-LNAd)
2024/01/17(水) 19:44:52.19ID:UA2B8Wur0 使った人に聞きなさい
396デフォルトの名無しさん (ブーイモ MM22-Nr/L)
2024/01/17(水) 19:49:06.18ID:dYqrLAA4M >>394
セミコロンをつけさせるため
セミコロンをつけさせるため
397デフォルトの名無しさん (ワッチョイ 25bb-ggGG)
2024/01/17(水) 21:11:00.53ID:DTNbW1I/0 >>392
答えわかったけど教えない
答えわかったけど教えない
398デフォルトの名無しさん (ワッチョイ 72cd-Qz6p)
2024/01/17(水) 21:21:33.14ID:Am4HUjmg0 >>394
2つ以上の文をマクロ関数の形にするときに、C言語の仕様において最も合法安全とされるイディオムだよ
2つ以上の文をマクロ関数の形にするときに、C言語の仕様において最も合法安全とされるイディオムだよ
399デフォルトの名無しさん (スッップ Sd22-aNQv)
2024/01/17(水) 21:47:57.64ID:i5GqHIkod >>394
たとえば
#define MYFREE(p) free(p); p = 0
と定義すると
if( 条件 ) MYFREE( p );
と書くと
if( 条件 ) free(p); p = 0;
と展開されてしまいp = 0;は条件に関わらず実行されてしまう
またこの後にelse節が続くとエラーになってしまうなど不具合の原因になる
たとえば
#define MYFREE(p) free(p); p = 0
と定義すると
if( 条件 ) MYFREE( p );
と書くと
if( 条件 ) free(p); p = 0;
と展開されてしまいp = 0;は条件に関わらず実行されてしまう
またこの後にelse節が続くとエラーになってしまうなど不具合の原因になる
400デフォルトの名無しさん (ワッチョイ f901-LNAd)
2024/01/17(水) 23:38:16.60ID:bWv2IYcS0401デフォルトの名無しさん (ワッチョイ 2214-HXAs)
2024/01/18(木) 11:04:17.52ID:0zoYvNSM0402デフォルトの名無しさん (ワッチョイ 2214-HXAs)
2024/01/18(木) 11:04:49.16ID:0zoYvNSM0 >>400
396はゼンゼン関係ないんだけどホントに分かってんのか?w
396はゼンゼン関係ないんだけどホントに分かってんのか?w
403400ではないが (ワッチョイ 6e46-Y4mw)
2024/01/18(木) 12:19:02.31ID:5g03qqC30 >>402
396 と 399 は異口同音と読んでいたが、主旨違うの?
396 と 399 は異口同音と読んでいたが、主旨違うの?
404はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 423e-/YAw)
2024/01/18(木) 12:27:08.35ID:LtdZIRKJ0 >>402
ブロックではなく do / while にする理由としては関係がある。
ブロックではなく do / while にする理由としては関係がある。
405はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 423e-/YAw)
2024/01/18(木) 12:41:36.76ID:LtdZIRKJ0 二つの文が分かれてしまわないようにするだけならブロックで包めばよくて
#define MYFREE(p) {free(p); p = 0;}
と定義しておけば
if( 条件 ) MYFREE( p );
というような使い方で意図通り動作する。 問題になるのは else が付くときで、
if( 条件 ) MYFREE( p );
else foo();
みたいなことをすると
if( 条件 ) {free(p); p = 0;};
else foo();
というように余計なセミコロンが if と else の対応付けを壊してしまう。
かといって MYFREE にはセミコロンを付けない使い方をせよというのも不格好なので do / while で囲むといい感じって話。
#define MYFREE(p) {free(p); p = 0;}
と定義しておけば
if( 条件 ) MYFREE( p );
というような使い方で意図通り動作する。 問題になるのは else が付くときで、
if( 条件 ) MYFREE( p );
else foo();
みたいなことをすると
if( 条件 ) {free(p); p = 0;};
else foo();
というように余計なセミコロンが if と else の対応付けを壊してしまう。
かといって MYFREE にはセミコロンを付けない使い方をせよというのも不格好なので do / while で囲むといい感じって話。
406デフォルトの名無しさん (ワッチョイ 118f-tUOA)
2024/01/18(木) 13:15:24.78ID:hXSenRUz0 はちみつ餃子はいい加減改名しろよ、はちみつ先生によ
どんだけタメになる話すりゃ気が済むんだ
目からウロボロスだぜまったく
どんだけタメになる話すりゃ気が済むんだ
目からウロボロスだぜまったく
407デフォルトの名無しさん (ワッチョイ 02ad-6zsj)
2024/01/18(木) 13:17:33.34ID:opxINJAy0 >>392
「せよ」ってなんだよ。何様のつもりだ?
「せよ」ってなんだよ。何様のつもりだ?
408デフォルトの名無しさん (スッップ Sd22-aNQv)
2024/01/18(木) 20:39:02.28ID:r48d/DyKd #define MYFREE(p) (free(p), p = 0)
のほうが単純
のほうが単純
409デフォルトの名無しさん (ワッチョイ 427c-kX52)
2024/01/18(木) 22:45:02.99ID:twAiz/ys0 今どきのCならマクロじゃないといけない場合以外はinline使え。
410はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 423e-/YAw)
2024/01/19(金) 08:59:45.95ID:vjpbBz8R0 >>409
C の関数は多相化できない。
void* と他のポインタは相互に変換可能なんだが
void* 自体の表現や境界調整要求は環境依存なので
#include <stddef.h>
#include <stdlib.h>
inline void my_free(void** x) {
free(*x);
*x=NULL;
}
int main(void) {
int *x = malloc(sizeof(int));
my_free((void**)&x);
}
みたいなことをして正しく動作する保証はないはず。
この場合は「マクロじゃないといけない場合」だと思うよ。
C の関数は多相化できない。
void* と他のポインタは相互に変換可能なんだが
void* 自体の表現や境界調整要求は環境依存なので
#include <stddef.h>
#include <stdlib.h>
inline void my_free(void** x) {
free(*x);
*x=NULL;
}
int main(void) {
int *x = malloc(sizeof(int));
my_free((void**)&x);
}
みたいなことをして正しく動作する保証はないはず。
この場合は「マクロじゃないといけない場合」だと思うよ。
411デフォルトの名無しさん (ワッチョイ 463f-ggGG)
2024/01/19(金) 11:12:10.18ID:Wkz3Ctqj0 mallocが返すのはvoid*だし、freeが受け取るのもvoid*なのに??
保証が無かったら俺達はこれからどうすればいいんだw
保証が無かったら俺達はこれからどうすればいいんだw
412デフォルトの名無しさん (ワッチョイ c563-LNAd)
2024/01/19(金) 11:13:32.08ID:76FyHnUv0 printf("Hello, work!");
413はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 423e-/YAw)
2024/01/19(金) 11:18:44.53ID:vjpbBz8R0 >>411
void* の話じゃなくて void** の話をしてる。
void* の話じゃなくて void** の話をしてる。
414デフォルトの名無しさん (ワッチョイ 6e2a-Y4mw)
2024/01/19(金) 11:42:42.67ID:THNGxTXR0 printf("Konyanyachiwa, Sekai no Kuni kara!");
415デフォルトの名無しさん (ワッチョイ 463f-ggGG)
2024/01/19(金) 12:11:49.63ID:Wkz3Ctqj0 void**とvoid*は相互に変換可能じゃないのか?
416はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 423e-/YAw)
2024/01/19(金) 12:19:49.22ID:vjpbBz8R0 変換が可能だということと同じ表現を持つことは別という話。
int* から void* への変換は変換に関するルールだが
int** から void** への変換によって int* を void* として読もうとするのは type punning の問題。
int* から void* への変換は変換に関するルールだが
int** から void** への変換によって int* を void* として読もうとするのは type punning の問題。
417デフォルトの名無しさん (ワッチョイ 463f-ggGG)
2024/01/19(金) 12:20:09.89ID:Wkz3Ctqj0 そうなると、
int** a = malloc(sizeof(int*) * 3);
は、保証無いことになるな
俺達はどうすればいいんだw
int** a = malloc(sizeof(int*) * 3);
は、保証無いことになるな
俺達はどうすればいいんだw
418デフォルトの名無しさん (ワッチョイ 463f-ggGG)
2024/01/19(金) 12:25:31.50ID:Wkz3Ctqj0 void** a = malloc(sizeof(void*) * 3);
の方が適切だったか
これで、a[0]の読み書きが保証されないのは困るよ
の方が適切だったか
これで、a[0]の読み書きが保証されないのは困るよ
419はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 423e-/YAw)
2024/01/19(金) 12:27:15.27ID:vjpbBz8R0 >>417
繰り返すが変換の話と表現の話は異なる。
void* は全てのオブジェクトを指すポインタと相互に変は可能であることは保証され、
「malloc が返すポインタに限っては」いかなる型とも適合するように境界調整されていることが保証される。
繰り返すが変換の話と表現の話は異なる。
void* は全てのオブジェクトを指すポインタと相互に変は可能であることは保証され、
「malloc が返すポインタに限っては」いかなる型とも適合するように境界調整されていることが保証される。
420デフォルトの名無しさん (ワッチョイ 313a-xGnM)
2024/01/19(金) 12:34:27.05ID:3hcnICbb0 【AI】Googleの医療面接特化AI「AMIE」は人間よりも正確な診断が可能&患者への印象に優れるという研究結果 [すらいむ★]
https://egg.5ch.net/test/read.cgi/scienceplus/1705583722/l50
【AI】Google DeepMindが数学オリンピックレベルの幾何学問題を解けるAIを発表、人間の金メダリストに近い性能を発揮 [すらいむ★]
https://egg.5ch.net/test/read.cgi/scienceplus/1705583476/l50
【AI】大学入試共通テスト、3つのチャットAIに解かせてみたら? GPT-4はバケモノだった [すらいむ★]
https://egg.5ch.net/test/read.cgi/scienceplus/1705585402/l50
【ナゾロジー】「株価の変動を粒子の振動として理解」量子力学で株式市場の法則を読む! [すらいむ★]
https://egg.5ch.net/test/read.cgi/scienceplus/1705583580/l50
【AI】NTT、自分の分身AIを低コストで作る技術。自分の合成音声を簡単に作れる技術も [すらいむ★]
https://egg.5ch.net/test/read.cgi/scienceplus/1705583313/l50
ボイス・トォ・スカルのコアプログラムの一部は上記を統合している
https://egg.5ch.net/test/read.cgi/scienceplus/1705583722/l50
【AI】Google DeepMindが数学オリンピックレベルの幾何学問題を解けるAIを発表、人間の金メダリストに近い性能を発揮 [すらいむ★]
https://egg.5ch.net/test/read.cgi/scienceplus/1705583476/l50
【AI】大学入試共通テスト、3つのチャットAIに解かせてみたら? GPT-4はバケモノだった [すらいむ★]
https://egg.5ch.net/test/read.cgi/scienceplus/1705585402/l50
【ナゾロジー】「株価の変動を粒子の振動として理解」量子力学で株式市場の法則を読む! [すらいむ★]
https://egg.5ch.net/test/read.cgi/scienceplus/1705583580/l50
【AI】NTT、自分の分身AIを低コストで作る技術。自分の合成音声を簡単に作れる技術も [すらいむ★]
https://egg.5ch.net/test/read.cgi/scienceplus/1705583313/l50
ボイス・トォ・スカルのコアプログラムの一部は上記を統合している
421デフォルトの名無しさん (スッップ Sd22-aNQv)
2024/01/19(金) 12:39:29.69ID:S8ovIeWid 何を言ってるんだお前は案件
ポインタの中身は指す対象によってアラインが変わるが
ポインタ自体のアラインは原則一種類しかない
ポインタの中身は指す対象によってアラインが変わるが
ポインタ自体のアラインは原則一種類しかない
422はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 423e-/YAw)
2024/01/19(金) 12:51:29.04ID:vjpbBz8R0 >>421
ポインタは型ごとに異なる表現・境界調整要求を持つ可能性がある。
適合する型へのポインタ同士の場合など同じ表現・境界調整要求を持つ条件が定められているが
最後に「これ以外の型へのポインタは、同じ表現又は同じ境界調整要求をもつ必要はない」と仕様に明記されてる。
具体的な部分は処理系定義なので全部が同じ表現であることをあてにしていい環境ならそうすることは否定しなけど、
常にあてにできるわけでもない。
ポインタは型ごとに異なる表現・境界調整要求を持つ可能性がある。
適合する型へのポインタ同士の場合など同じ表現・境界調整要求を持つ条件が定められているが
最後に「これ以外の型へのポインタは、同じ表現又は同じ境界調整要求をもつ必要はない」と仕様に明記されてる。
具体的な部分は処理系定義なので全部が同じ表現であることをあてにしていい環境ならそうすることは否定しなけど、
常にあてにできるわけでもない。
423デフォルトの名無しさん (ワッチョイ 463f-ggGG)
2024/01/19(金) 13:18:44.56ID:Wkz3Ctqj0 そうは言っても、
void* p = 0;
と直接生成出来るわけで、void*は値としての意味もちゃんとある
それがvoid**にすると元に戻せる保証が無いのは仕様の不備だろw
void* p = 0;
と直接生成出来るわけで、void*は値としての意味もちゃんとある
それがvoid**にすると元に戻せる保証が無いのは仕様の不備だろw
424デフォルトの名無しさん (スッップ Sd22-aNQv)
2024/01/19(金) 13:22:00.51ID:S8ovIeWid >>422
それは「ポインタが指す対象」についての記述で
ポインタ自体にはどんな適当な値を書き込むことも可能(そのポインタを使ってアクセスすると何が起こるかわからないというだけ)
ただポインタにNULLを書き込むだけの関数になんの危険もない
それは「ポインタが指す対象」についての記述で
ポインタ自体にはどんな適当な値を書き込むことも可能(そのポインタを使ってアクセスすると何が起こるかわからないというだけ)
ただポインタにNULLを書き込むだけの関数になんの危険もない
425はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 423e-/YAw)
2024/01/19(金) 13:35:18.59ID:vjpbBz8R0426デフォルトの名無しさん (スッップ Sd22-aNQv)
2024/01/19(金) 15:18:43.59ID:S8ovIeWid >>425
そのポインタは関数への引数であり
すでにvoid*を表すものだと型は決まってるではないか
それとは別に
インライン関数で書いた場合はその場で展開されるから
void* p = 0;と書いた場合と同様にコンパイラが適切な0を書き込んでくれるんじゃないの
つまり(void**)をつけると逆に危険
my_free(&x);
でよい
そのポインタは関数への引数であり
すでにvoid*を表すものだと型は決まってるではないか
それとは別に
インライン関数で書いた場合はその場で展開されるから
void* p = 0;と書いた場合と同様にコンパイラが適切な0を書き込んでくれるんじゃないの
つまり(void**)をつけると逆に危険
my_free(&x);
でよい
427デフォルトの名無しさん (ラクッペペ MM66-Fks1)
2024/01/19(金) 16:04:16.95ID:dJaf/W/GM ポインタで0リテラルだけは特殊でNULLと同義だったのではなかったっけ
428はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 423e-/YAw)
2024/01/19(金) 16:16:34.10ID:vjpbBz8R0 >>426
> (void**)をつけると逆に危険
これは暗黙に型変換されることが保証される文脈ではないので付けなければコンパイルが通らないだけ。
(コンパイラによっては黙って通すことはあるのかもしれない。)
> インライン関数で書いた場合はその場で展開されるから
言語の意味論としてはインライン関数は
・ 同じ定義なら (翻訳単位を跨いだ場合でも) 複数回定義してもよい (定義が一回の場合と同じ挙動)
・ なるべく高速に呼び出して欲しいことを期待するヒントである (実現方法は規定しない)
ということになってる。
インライン関数がインライン関数ではない関数と異なる動作にはならない。
> (void**)をつけると逆に危険
これは暗黙に型変換されることが保証される文脈ではないので付けなければコンパイルが通らないだけ。
(コンパイラによっては黙って通すことはあるのかもしれない。)
> インライン関数で書いた場合はその場で展開されるから
言語の意味論としてはインライン関数は
・ 同じ定義なら (翻訳単位を跨いだ場合でも) 複数回定義してもよい (定義が一回の場合と同じ挙動)
・ なるべく高速に呼び出して欲しいことを期待するヒントである (実現方法は規定しない)
ということになってる。
インライン関数がインライン関数ではない関数と異なる動作にはならない。
429はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 423e-/YAw)
2024/01/19(金) 16:39:47.61ID:vjpbBz8R0 >>427
せやで。
厳密に言えばリテラルだけじゃなくて「整数の 0 であるような定数 (定数式) をポインタに型変換したときは空ポインタ」というルール。
これも変換に関するルールであって表現に関するルールではないよね。
実際に空ポインタの内部表現が整数の 0 というわけではない環境は存在するが、
型が正しければ適切に変換される。
せやで。
厳密に言えばリテラルだけじゃなくて「整数の 0 であるような定数 (定数式) をポインタに型変換したときは空ポインタ」というルール。
これも変換に関するルールであって表現に関するルールではないよね。
実際に空ポインタの内部表現が整数の 0 というわけではない環境は存在するが、
型が正しければ適切に変換される。
430デフォルトの名無しさん (ワッチョイ 25bb-ggGG)
2024/01/19(金) 16:53:05.15ID:CCGmGKuQ0431はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 423e-/YAw)
2024/01/19(金) 17:02:59.57ID:vjpbBz8R0 >>430
いや、それがよく出来てて、ポインタをそういう形で条件に使うのは問題ない。
単項演算子 ! について「式!Eは,(0==E)と等価とする」というルールになっていて
等価演算子 (==) はポインタと空ポインタ定数を比較したときの結果を規定してる。
空ポインタ定数のほうをもう一方のオペランドの型に合う空ポインタに型変換するルール。
いや、それがよく出来てて、ポインタをそういう形で条件に使うのは問題ない。
単項演算子 ! について「式!Eは,(0==E)と等価とする」というルールになっていて
等価演算子 (==) はポインタと空ポインタ定数を比較したときの結果を規定してる。
空ポインタ定数のほうをもう一方のオペランドの型に合う空ポインタに型変換するルール。
432デフォルトの名無しさん (ワッチョイ 25bb-0zjl)
2024/01/19(金) 17:32:06.95ID:CCGmGKuQ0 >>431
規格書読んできたけど
6.3.2.3 値0をもつ整数定数式は空ポインタになる
6.5.3.1 式!Eは,(0==E)と等価
6.5.9 ==は空ポインタ定数をポインタの型へ型変換する
ってことか
なるほど、規格を解釈すれば!ptrは空ポインタと比較されることになるから問題ないのか
勉強になったわ
規格書読んできたけど
6.3.2.3 値0をもつ整数定数式は空ポインタになる
6.5.3.1 式!Eは,(0==E)と等価
6.5.9 ==は空ポインタ定数をポインタの型へ型変換する
ってことか
なるほど、規格を解釈すれば!ptrは空ポインタと比較されることになるから問題ないのか
勉強になったわ
433デフォルトの名無しさん (ワッチョイ 21d6-ggGG)
2024/01/19(金) 18:55:00.05ID:EWHtqHW90 NULLは処理系定義だしこの辺はややこしいよね
434デフォルトの名無しさん (ワッチョイ 463f-ggGG)
2024/01/20(土) 00:57:56.71ID:QcwVnceA0 void*の値は作成出来るけど、表現や境界調整要求は未定義とか、おかしいだろ
Cは現実に則した言語だと思ってたけど、妙な未定義だな
ちなみに、インタープリター型言語を作ったら、オブジェクトはみんなvoid*になる
void*の配列を作成したりとか普通に行われる
もはや規格とか無意味
実装がどうなってるかだけが重要だ
Cは現実に則した言語だと思ってたけど、妙な未定義だな
ちなみに、インタープリター型言語を作ったら、オブジェクトはみんなvoid*になる
void*の配列を作成したりとか普通に行われる
もはや規格とか無意味
実装がどうなってるかだけが重要だ
435デフォルトの名無しさん (ワッチョイ c2c3-IYsG)
2024/01/20(土) 10:29:05.14ID:ZDCHWjSD0 >>433
全然ややこしくないでしょ
全然ややこしくないでしょ
436デフォルトの名無しさん (ワッチョイ 02ad-L3s4)
2024/01/20(土) 10:30:19.13ID:UfD1Ji0o0 > 実装がどうなってるかだけが重要だ
もちろんその通りだけど規格上未定義なわけだから実装がすべて統一されているとは限らないわけで
その実装における「限らない」が問題なわけでしょ
もちろんその通りだけど規格上未定義なわけだから実装がすべて統一されているとは限らないわけで
その実装における「限らない」が問題なわけでしょ
437デフォルトの名無しさん (ワッチョイ cd59-lxZL)
2024/01/20(土) 12:47:01.09ID:Ttk7tIdd0 実際に使用する環境に合わせれば良いだけ
438デフォルトの名無しさん (ワッチョイ 463f-ggGG)
2024/01/20(土) 13:33:03.85ID:QcwVnceA0 各OS毎にABI(Application Binary Interface)が定義されてて、Cの規格で定義されてないところが明確に定義されてる
2つを合わせて現実のC言語なんだよな
だから、JIS X 3010だけを取り上げてどうこう言っても混乱させるだけ
2つを合わせて現実のC言語なんだよな
だから、JIS X 3010だけを取り上げてどうこう言っても混乱させるだけ
439はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 423e-/YAw)
2024/01/20(土) 14:51:47.73ID:k6CjZuQW0 >>434
実際には void* と int* (などのポインタ) が同じ表現なことは多いので
あまり問題 (type punning) にならないと考えるならそうかも。
ただ、表現が同じである環境ならかまわないのかというとそうでもない。
aliasing rules が絡んでくる。
言語仕様上で適合するとされる以外の読み書きをプログラマはやらない (やったら未定義だから) という仮定の元に最適化されることがある。
>>438
ABI はその名の通りインターフェイスを一貫させるための規定であって、
外部に公開しない (外部リンケージを持たない) 部分ではコンパイラは最適化するし、オブジェクトを除去することもある。
私は >>422 で「あてにしていい環境ならそうすることは否定しない」と述べたが、
あてになる確証を得るのは割とめんどい。
言語仕様を調べて分かる範囲で済むならそうする。
少なくとも >>392 をインライン関数にするために手間をかけるなんてことはしない。
実際には void* と int* (などのポインタ) が同じ表現なことは多いので
あまり問題 (type punning) にならないと考えるならそうかも。
ただ、表現が同じである環境ならかまわないのかというとそうでもない。
aliasing rules が絡んでくる。
言語仕様上で適合するとされる以外の読み書きをプログラマはやらない (やったら未定義だから) という仮定の元に最適化されることがある。
>>438
ABI はその名の通りインターフェイスを一貫させるための規定であって、
外部に公開しない (外部リンケージを持たない) 部分ではコンパイラは最適化するし、オブジェクトを除去することもある。
私は >>422 で「あてにしていい環境ならそうすることは否定しない」と述べたが、
あてになる確証を得るのは割とめんどい。
言語仕様を調べて分かる範囲で済むならそうする。
少なくとも >>392 をインライン関数にするために手間をかけるなんてことはしない。
440デフォルトの名無しさん (ワッチョイ 02ad-L3s4)
2024/01/20(土) 14:57:01.22ID:UfD1Ji0o0 だから、その環境が不明瞭なこういう場所で問題になるわけでしょ?
実際>>392では「処理系はANCI C準拠」としか言っていないわけだし
実際>>392では「処理系はANCI C準拠」としか言っていないわけだし
441デフォルトの名無しさん (ワッチョイ 02ad-L3s4)
2024/01/20(土) 14:57:54.96ID:UfD1Ji0o0 おっと440は>>437-438アテネ
442デフォルトの名無しさん (ワッチョイ 463f-ggGG)
2024/01/20(土) 15:58:08.13ID:QcwVnceA0 未定義とは規格遊びには便利な言葉だなw
正解はconfigureスクリプトがやってるように、事前に環境を調査して前提にしていい事を明確にして最適な実装をする事だな
なので、言語仕様のみで判断を下す事は不正解と言える
その為にconfigureスクリプトがある
他の言語ではあまり必要ない
Rustとか最近の言語は言語仕様に不明瞭な点は残さないのがトレンドだろう
じゃなきゃそこが脆弱性を生んでしまう
正解はconfigureスクリプトがやってるように、事前に環境を調査して前提にしていい事を明確にして最適な実装をする事だな
なので、言語仕様のみで判断を下す事は不正解と言える
その為にconfigureスクリプトがある
他の言語ではあまり必要ない
Rustとか最近の言語は言語仕様に不明瞭な点は残さないのがトレンドだろう
じゃなきゃそこが脆弱性を生んでしまう
443デフォルトの名無しさん (ワッチョイ 463f-ggGG)
2024/01/20(土) 16:03:47.86ID:QcwVnceA0 >>392のマクロは、副作用のある式を渡したりするとおかしな事が起きる
全くもって脆弱なものだ
そのままで良いのか?
マクロのままにしておくとか、そっちの方が脆弱性を生む事になる
ちゃんと関数化すべきだろ
その為にすべき事は何だ?
それを議論することが正解と言っている
全くもって脆弱なものだ
そのままで良いのか?
マクロのままにしておくとか、そっちの方が脆弱性を生む事になる
ちゃんと関数化すべきだろ
その為にすべき事は何だ?
それを議論することが正解と言っている
444デフォルトの名無しさん (ワッチョイ 2205-l2AN)
2024/01/20(土) 16:33:16.28ID:7OBiWfZx0 副作用のある式とは例えば?
445デフォルトの名無しさん (ワッチョイ 82d4-niQV)
2024/01/20(土) 19:48:07.23ID:31IXtECu0 p++じゃない?
446はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 423e-B+Bj)
2024/01/20(土) 19:54:12.68ID:k6CjZuQW0 関数で書いたら問題を避けられるわけ?
447デフォルトの名無しさん (ワッチョイ 0279-5stn)
2024/01/20(土) 21:49:35.15ID:VgpxxxtV0 C言語で今更議論することなんてないよ
気に入る要らないはモダン言語とかでやってなさい
気に入る要らないはモダン言語とかでやってなさい
448デフォルトの名無しさん (ワッチョイ 450a-rpIY)
2024/01/20(土) 22:17:38.62ID:DXZ/M+lB0 使用済みのポインタ変数を変なやり方でクリアするとかクソどうでもいい
449デフォルトの名無しさん (ワッチョイ 22ec-HXAs)
2024/01/20(土) 22:21:19.13ID:7OBiWfZx0 >>445
それは考えなくていいでしょ
それは考えなくていいでしょ
450デフォルトの名無しさん (ワッチョイ 463f-ggGG)
2024/01/20(土) 22:34:47.06ID:QcwVnceA0451デフォルトの名無しさん (ワッチョイ 463f-ggGG)
2024/01/20(土) 22:44:54.31ID:QcwVnceA0 例えば、(uint8_t)malloc(...) + sizeof(int)を返す関数もあり得る
これは前の方にデータを隠すテクニックだ
実はC++のコンパイラで普通に使われている
これを解放する時は、free(p -= sizeof(int))とやらない事もない
まぁ普通はp - sizeof(int)だろうから屁理屈だけどねw
これは前の方にデータを隠すテクニックだ
実はC++のコンパイラで普通に使われている
これを解放する時は、free(p -= sizeof(int))とやらない事もない
まぁ普通はp - sizeof(int)だろうから屁理屈だけどねw
452はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-3Dea)
2024/01/21(日) 00:53:03.43ID:4rk7TZPC0 >>450
解決したい問題はそれだけでいいのか。
それなら意図はわかる。
ただ現実に C の関数を多相化できないのは変えられない前提としてある。
異なる型で扱う必要があるんだから異なる関数を用意するしかないのはどうしようもなくない?
解決したい問題はそれだけでいいのか。
それなら意図はわかる。
ただ現実に C の関数を多相化できないのは変えられない前提としてある。
異なる型で扱う必要があるんだから異なる関数を用意するしかないのはどうしようもなくない?
453デフォルトの名無しさん (ワッチョイ e785-6dvo)
2024/01/21(日) 11:37:01.81ID:yYf7aVwb0 多相?
仮にポインタ変数のアドレス を引数で渡したい場合であってもvoid ** じゃなくvoid * を使って、
人間同士がドキュメントだろうが喫煙所だろうがで問題解決しろよってのが規画と整合する答えなんじゃないの
どうせキャストするんでしょうに
バカですか
仮にポインタ変数のアドレス を引数で渡したい場合であってもvoid ** じゃなくvoid * を使って、
人間同士がドキュメントだろうが喫煙所だろうがで問題解決しろよってのが規画と整合する答えなんじゃないの
どうせキャストするんでしょうに
バカですか
454はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-G0Zh)
2024/01/21(日) 12:09:29.26ID:4rk7TZPC0 void* に変換したなら元の型にキャストしなおさないと保証された動作はほとんどない。
(逆に元の型に変換したときは変換前の値と一致することは保証される。)
元の型を知っているプログラマがキャストすることを期待できる qsort のような使い方なら問題にならないけど、
void* の形で受け取るだけでは関数が出来ることはほとんどない。
文字列を指すポインタに変換してバイト列として読み書きすることはアリなので
オブジェクトの内容はどうでもいいメモリブロック操作系の関数 (memmove など) だとかでも問題はないかな。
(逆に元の型に変換したときは変換前の値と一致することは保証される。)
元の型を知っているプログラマがキャストすることを期待できる qsort のような使い方なら問題にならないけど、
void* の形で受け取るだけでは関数が出来ることはほとんどない。
文字列を指すポインタに変換してバイト列として読み書きすることはアリなので
オブジェクトの内容はどうでもいいメモリブロック操作系の関数 (memmove など) だとかでも問題はないかな。
455デフォルトの名無しさん (ワントンキン MM3f-NhvB)
2024/01/21(日) 12:53:39.98ID:+eMrRol8M 簡単な問題だったんだけど答えられる人ほとんどいないのか
相変わらず本題とは関係ない問答しだすアホらもいるし
相変わらず本題とは関係ない問答しだすアホらもいるし
456デフォルトの名無しさん (ワッチョイ 7fc2-rEzG)
2024/01/21(日) 13:01:11.71ID:fu4eKftF0 答えられる人はいるだろうけど、宿題丸投げするやつにエサを与えたくなくて
敢えて書かない人もいるだろう。
敢えて書かない人もいるだろう。
457デフォルトの名無しさん (ワッチョイ 5f79-i8QP)
2024/01/21(日) 16:35:59.78ID:ocg3B/5o0 ANCIとか頭悪そうな学校で相手したくなかった
458デフォルトの名無しさん (ワッチョイ 5fad-zQB7)
2024/01/21(日) 16:43:50.02ID:WaBPg/nL0 誰も知らない新規格、か・・・
459デフォルトの名無しさん (ワッチョイ e763-amFq)
2024/01/21(日) 16:44:16.43ID:sYjtPxaw0 宿題スレは別にあった様な気がする
460デフォルトの名無しさん (ワッチョイ c7df-VcUz)
2024/01/21(日) 20:09:55.64ID:BpmEGVkv0461デフォルトの名無しさん (ワッチョイ 7f2a-Hmn+)
2024/01/21(日) 22:42:42.89ID:fOwYJqZP0 UNCI はどうだろう。
462デフォルトの名無しさん (ワッチョイ 7fab-JMeY)
2024/01/22(月) 09:16:06.10ID:wwjNYCJK0463デフォルトの名無しさん (ワッチョイ 5fdb-0Ail)
2024/01/22(月) 19:23:27.59ID:sQG6cOu30 このマクロでそんな心配せんでええやろ
464デフォルトの名無しさん (ワッチョイ 7f63-HLt9)
2024/01/22(月) 20:21:33.49ID:oQuCuzrM0 Cに引数の参照渡しってあったっけ?
ないとしたら>>392のMYFREE(p)をマクロではなく関数として書き
その中でp=0としても呼び出した側の変数は変えられないわけで
関数にすることで動作が変わってしまうことになるはずだけど
ないとしたら>>392のMYFREE(p)をマクロではなく関数として書き
その中でp=0としても呼び出した側の変数は変えられないわけで
関数にすることで動作が変わってしまうことになるはずだけど
465デフォルトの名無しさん (ワッチョイ 7f9f-EFyZ)
2024/01/23(火) 13:25:33.99ID:DCTvqhlA0 そんなこんなでp++マクロには問題が多いからC++が出来たってわけ
466デフォルトの名無しさん (ワッチョイ e763-amFq)
2024/01/23(火) 14:30:32.20ID:FpD2d5od0 なんだそんな理由だったのか・・・
467デフォルトの名無しさん (ワッチョイ df2d-EFyZ)
2024/01/23(火) 14:41:04.92ID:v+doC8dF0 mallocとcallocの引数の指定の仕方が違うのが気になる
これ別であることに理由あるの?
これ別であることに理由あるの?
468はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-G0Zh)
2024/01/23(火) 15:14:53.60ID:MIeJSKFF0 >>467
言語仕様上は calloc が返すポインタ (によって表されるメモリ領域) は
malloc が返すものと同じようにあらゆる型に対して適切に境界調整されることになっているし、
ゼロクリアするという違いも「全てのビットがゼロ」という意味なので型の性質を考慮しない。
つまりふたつの引数として指定することによって得られる恩恵はない。
実装がまともなら calloc(a, b) としたときの a*b が size_t の大きさを超えてしまうようなときでも
ラップアラウンドして小さな領域を確保するのではなくエラーにしてくれることは期待できる
(間違いを検出しやすい) が、それを理由として引数ふたつにしているというわけではなさそう。
最初に言語仕様をまとめたときに主要な処理系がだいたい準拠ということになるようにしたはずなので
その頃の処理系でなんか理由はわからんがそうなってたって程度の話だと思う。 あまり意味ない。
言語仕様上は calloc が返すポインタ (によって表されるメモリ領域) は
malloc が返すものと同じようにあらゆる型に対して適切に境界調整されることになっているし、
ゼロクリアするという違いも「全てのビットがゼロ」という意味なので型の性質を考慮しない。
つまりふたつの引数として指定することによって得られる恩恵はない。
実装がまともなら calloc(a, b) としたときの a*b が size_t の大きさを超えてしまうようなときでも
ラップアラウンドして小さな領域を確保するのではなくエラーにしてくれることは期待できる
(間違いを検出しやすい) が、それを理由として引数ふたつにしているというわけではなさそう。
最初に言語仕様をまとめたときに主要な処理系がだいたい準拠ということになるようにしたはずなので
その頃の処理系でなんか理由はわからんがそうなってたって程度の話だと思う。 あまり意味ない。
469デフォルトの名無しさん (ワッチョイ df2d-EFyZ)
2024/01/23(火) 15:47:25.62ID:v+doC8dF0 メリット無いなら統一してほしかったよ
470デフォルトの名無しさん (ワッチョイ e763-amFq)
2024/01/23(火) 16:35:32.21ID:FpD2d5od0 好きな方を使いましょう
471デフォルトの名無しさん (ワッチョイ 5f8c-/eig)
2024/01/24(水) 09:58:59.16ID:Xnuh8KFs0 統一したらゼロクリアするかしないかだけの違いにならん?
472デフォルトの名無しさん (ワッチョイ e7bb-iTDz)
2024/01/24(水) 16:48:12.72ID:zBKRyD/E0 zmallocというマクロを定義すれば解決
473デフォルトの名無しさん (ワッチョイ 5f7c-ytPG)
2024/01/25(木) 18:11:36.02ID:oxF0tkpI0 callocはmallocのゼロクリア版として *も* 使えるがそもそもの使い方が違う。
474デフォルトの名無しさん (ワッチョイ bfac-8byG)
2024/01/25(木) 20:28:54.55ID:DorHRoYW0 ちなみに C には厳密にいうと価渡し(call by value)しかない
値としてアドレスを渡すので結果として参照渡し(call by reference)
ができることになる
値としてアドレスを渡すので結果として参照渡し(call by reference)
ができることになる
475デフォルトの名無しさん (ワッチョイ e763-amFq)
2024/01/25(木) 20:55:09.83ID:FFkj9zH80 参照って言うと色々誤解を受けるから
Cの場合はアドレス渡しで良いと思う
Cの場合はアドレス渡しで良いと思う
476デフォルトの名無しさん (ワッチョイ dfbf-qZe7)
2024/01/25(木) 21:27:23.28ID:xC/Yy1/j0 ヘンな用語作るのやめて
ポインタで渡しても値渡しのまま
foo(int x) {int y = 0;x = y;}
bar(int *p) {int *q = 0;p = q;}
呼び出し元の変数に作用が無いのは同じ
両者は等しく値渡しのまま
baz(int *p) {int y = 0;*p = y;}
これについては値渡しされたものがポインタ型だったため
ポインタ型が持つデリファレンス機能によってポイント先に代入できただけ
*** 値として渡し ***て、デリファレンスして、代入しただけ
qux(ref int x) {int y = 0;x = y} // ウソ文法
みたいなことして呼び出し元に代入できるものが
これのみが参照渡し
参照渡しがある言語ならこんな誤解はしなくてすむ
https://www.gnu-pascal.de/gpc/Subroutine-Parameter-List-Declaration.html#Subroutine-Parameter-List-Declaration
> procedure DoIt (x: SomeType);
> Technical: The actual parameter is passed by value or reference, but if passed by reference, it is then copied to a local copy on the stack.
> What it means: you can modify x inside the routine, but your changes will not affect the actual parameter (and vice versa).
> procedure DoIt (var x: SomeType);
> Technical: The actual parameter is passed by reference.
> What it means: modifications to x inside the routine will change the actual parameter passed in.
ポインタを含むあらゆる型に対して、値渡し/参照渡しが存在する
ポインタで渡しても値渡しのまま
foo(int x) {int y = 0;x = y;}
bar(int *p) {int *q = 0;p = q;}
呼び出し元の変数に作用が無いのは同じ
両者は等しく値渡しのまま
baz(int *p) {int y = 0;*p = y;}
これについては値渡しされたものがポインタ型だったため
ポインタ型が持つデリファレンス機能によってポイント先に代入できただけ
*** 値として渡し ***て、デリファレンスして、代入しただけ
qux(ref int x) {int y = 0;x = y} // ウソ文法
みたいなことして呼び出し元に代入できるものが
これのみが参照渡し
参照渡しがある言語ならこんな誤解はしなくてすむ
https://www.gnu-pascal.de/gpc/Subroutine-Parameter-List-Declaration.html#Subroutine-Parameter-List-Declaration
> procedure DoIt (x: SomeType);
> Technical: The actual parameter is passed by value or reference, but if passed by reference, it is then copied to a local copy on the stack.
> What it means: you can modify x inside the routine, but your changes will not affect the actual parameter (and vice versa).
> procedure DoIt (var x: SomeType);
> Technical: The actual parameter is passed by reference.
> What it means: modifications to x inside the routine will change the actual parameter passed in.
ポインタを含むあらゆる型に対して、値渡し/参照渡しが存在する
477はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-3Dea)
2024/01/25(木) 21:48:36.73ID:d9W0b5Ok0 JIS の用語集やそのもとになった ISO 規格によれば call by address の定義はパラメタの場所を渡すこと。 ポインタの形であっても場所を渡しているには違いないからあてはまるし、勝手な創作用語というわけではない。
言語の理屈ではポインタもポインタという型の値だがそれの活用方法に名前が付いて悪いってこともない。
言語仕様の話をしているときに混ざってくると「んっ?」とは思うが。
言語の理屈ではポインタもポインタという型の値だがそれの活用方法に名前が付いて悪いってこともない。
言語仕様の話をしているときに混ざってくると「んっ?」とは思うが。
478デフォルトの名無しさん (ワッチョイ 5f10-iTDz)
2024/01/25(木) 23:01:13.98ID:NizTAU7c0 ポインタなのに値渡しとか言ってる奴まだいるのかw
そういうのはポインタ渡しで良いんだよ
アドレスを値渡し→ポインタ渡しでいいんだよ
そういうのはポインタ渡しで良いんだよ
アドレスを値渡し→ポインタ渡しでいいんだよ
479デフォルトの名無しさん (アウアウウー Sa4b-ZQy0)
2024/01/26(金) 00:30:31.26ID:/aFBudAaa >>472
zalloc にしようぜ
zalloc にしようぜ
480デフォルトの名無しさん (ワッチョイ 5f7c-ytPG)
2024/01/26(金) 00:35:29.44ID:xuVVqQKb0481デフォルトの名無しさん (スププ Sd7f-MQtI)
2024/01/26(金) 08:38:30.55ID:Nbs9AoGZd Cの文法規則がいいかげんなんだよ
482デフォルトの名無しさん (スプッッ Sdff-ytPG)
2024/01/26(金) 09:12:22.82ID:f6TAFOdQd483デフォルトの名無しさん (ササクッテロラ Sp7b-NMAD)
2024/01/26(金) 09:47:41.79ID:5qejItpup アドレスと言う値を渡してるのだからどちらも同じ事だろ
484デフォルトの名無しさん (ワッチョイ e763-QAJh)
2024/01/26(金) 10:37:55.79ID:mR+OAnS80 いい加減なところが好かれる理由
485デフォルトの名無しさん (ササクッテロラ Sp7b-NMAD)
2024/01/26(金) 10:46:46.89ID:Tqv1qsfwp アセンブラまんどくさいから作ったのがC
だから型がイイカゲンなのはアセンブラやってる人が対象だから
だから型がイイカゲンなのはアセンブラやってる人が対象だから
486はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-G0Zh)
2024/01/26(金) 10:52:28.10ID:6gE8lNl00 イイカゲンにしてるとコンパイラの最適化を有効にしたときに破綻するぞ
487デフォルトの名無しさん (ワッチョイ 5f10-iTDz)
2024/01/26(金) 12:43:22.79ID:IWVVekFc0 >>483
構造体は値渡しとアドレスの値渡しがある
どっちも値渡しというと訳が分からなくなる
なので、構造体は値渡しとポインタ渡しが出来ると言えば便利だ
そうすれば、配列は値渡しが出来ないとも言うことが出来る
構造体は値渡しとアドレスの値渡しがある
どっちも値渡しというと訳が分からなくなる
なので、構造体は値渡しとポインタ渡しが出来ると言えば便利だ
そうすれば、配列は値渡しが出来ないとも言うことが出来る
488デフォルトの名無しさん (ワッチョイ c701-bKTd)
2024/01/26(金) 13:17:11.83ID:hEzJutz20 C++で参照が登場したので「アドレスの値渡し」とか言っている訳で
C++を知らんと意味不明だし違和感あるだろうな
C++を知らんと意味不明だし違和感あるだろうな
489デフォルトの名無しさん (ワントンキン MM4f-NhvB)
2024/01/26(金) 14:03:32.73ID:OnjHbhExM C++がどうのとかは全然関係ないでしょ
490はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-3Dea)
2024/01/26(金) 14:07:19.39ID:6gE8lNl00 C++ とは関係ないと私も思う。
仮引数と実引数の関係は (型がポインタかどうかに関係なく) 値の代入であるということになっている。
繰り返すが言語仕様上の理屈では解釈の余地なく全ての引数は値呼びのメカニズムで規定されているよ。
C++ の参照と区別するための言い回しではなく仕様上の理屈通りに言えばそうなるってだけ。
仮引数と実引数の関係は (型がポインタかどうかに関係なく) 値の代入であるということになっている。
繰り返すが言語仕様上の理屈では解釈の余地なく全ての引数は値呼びのメカニズムで規定されているよ。
C++ の参照と区別するための言い回しではなく仕様上の理屈通りに言えばそうなるってだけ。
491デフォルトの名無しさん (ワッチョイ e7bb-iTDz)
2024/01/26(金) 14:12:08.41ID:u8n9O9U10 それで結局
&var
の値はポインタなの?アドレスなの?
どっちでもいいんだよね?
&var
の値はポインタなの?アドレスなの?
どっちでもいいんだよね?
492はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-3Dea)
2024/01/26(金) 14:57:45.80ID:6gE8lNl00 「アドレス」と「ポインタ」の使い分けはイマイチわからないんだよなー。どっちでもいいと思う。
単項演算子の & にはアドレス演算子という名前がついていてアドレスを返すとも書いてあるのでこれについてはアドレスと言っていいのは間違いない。
ポインタは型の種類のように使われてることもあるし、ポインタ型の値のことを指しているように見える箇所もある。
個人的感想としてはアドレスのほうが低レイヤ寄りの概念でポインタは型で意味付けしているような雰囲気を感じてるんだけどあまりはっきりしない。
単項演算子の & にはアドレス演算子という名前がついていてアドレスを返すとも書いてあるのでこれについてはアドレスと言っていいのは間違いない。
ポインタは型の種類のように使われてることもあるし、ポインタ型の値のことを指しているように見える箇所もある。
個人的感想としてはアドレスのほうが低レイヤ寄りの概念でポインタは型で意味付けしているような雰囲気を感じてるんだけどあまりはっきりしない。
493デフォルトの名無しさん (ササクッテロラ Sp7b-NMAD)
2024/01/26(金) 16:28:15.83ID:TUEfKZ6Qp 参照渡しと実体渡しかw
あれも、アドレス渡しとコピー渡しって言えばいいのにね
あれも、アドレス渡しとコピー渡しって言えばいいのにね
494デフォルトの名無しさん (ワッチョイ 4710-zwhO)
2024/01/26(金) 16:55:28.58ID:VvnpRsjB0 アドレスは、数値が主体でそれが何を示しているかの説明の為の単語。
ポインタは変数の一つで *p や p->a 等の動作も含めての設計思想。
などと意味不明な(ry
ポインタは変数の一つで *p や p->a 等の動作も含めての設計思想。
などと意味不明な(ry
495デフォルトの名無しさん (ワッチョイ 5f10-iTDz)
2024/01/26(金) 17:26:29.97ID:CEoHa9Fg0 アドレスは値
ポインタは型だよ
正確にはintのポインタ型とか言うけど
ポインタは型だよ
正確にはintのポインタ型とか言うけど
496デフォルトの名無しさん (ワッチョイ e763-amFq)
2024/01/26(金) 17:35:02.08ID:WoOISbdM0 ポインタはポインタ値を格納する場所
497デフォルトの名無しさん (ワッチョイ 5f10-iTDz)
2024/01/26(金) 17:36:54.25ID:CEoHa9Fg0 場所と言うのは曖昧な表現だな
498デフォルトの名無しさん (ワントンキン MM4f-NhvB)
2024/01/26(金) 18:03:51.31ID:Vqpo1a/ZM アドレスは値で右辺値、ポインタは変数でオブジェクトで左辺値
こんな基本的なこと、頼むよ
こんな基本的なこと、頼むよ
499デフォルトの名無しさん (ワッチョイ 7f19-rEzG)
2024/01/26(金) 18:27:39.65ID:GfgH9lD40 >>498 正しくない。ポインタ型の変数 int* p に対して p + 1 もポインタだけど、変数でも左辺値でもない。
500デフォルトの名無しさん (ワッチョイ e763-amFq)
2024/01/26(金) 18:29:01.58ID:WoOISbdM0 ある時はメモリーのサラリーマン、ある時はレジスターの探偵
501デフォルトの名無しさん (ワッチョイ e746-qZe7)
2024/01/26(金) 19:46:30.13ID:XBTJ48xK0 規格上はどうなってるか知らんが
ポインタでいいじゃん統一しろよ
変数へのポインタを取る時アドレスと言いたくなるんやろな
分からんでもないが使い分ける必要はないと思う
アドレスといいつつ結局ポインタでしかないやろ?
場所だけじゃなくて型のサイズも持ってるでしょ?
アドレスと聞くと番地だけってイメージだけど
ポインタっつうのはそれに加えてサイズも持ってるのがミソ
だから不必要にアドレスと言い直す必要はない
だって実際にポインタしか扱わないんだから
ポインタでいいじゃん統一しろよ
変数へのポインタを取る時アドレスと言いたくなるんやろな
分からんでもないが使い分ける必要はないと思う
アドレスといいつつ結局ポインタでしかないやろ?
場所だけじゃなくて型のサイズも持ってるでしょ?
アドレスと聞くと番地だけってイメージだけど
ポインタっつうのはそれに加えてサイズも持ってるのがミソ
だから不必要にアドレスと言い直す必要はない
だって実際にポインタしか扱わないんだから
502デフォルトの名無しさん (ワッチョイ 0791-RdP4)
2024/01/26(金) 20:04:10.51ID:Su75gAlu0 アドレスっていう言葉は規格には出てこないと予想してた。
規格にはポインタだけあればよくて、アドレスは実装の仕方のイメージがある。アドレスは多くの場合整数になるが、文字や文字列でもいいというような。
規格にはポインタだけあればよくて、アドレスは実装の仕方のイメージがある。アドレスは多くの場合整数になるが、文字や文字列でもいいというような。
503デフォルトの名無しさん (ササクッテロラ Sp7b-NMAD)
2024/01/26(金) 20:45:56.85ID:wwCmUZ7Wp アドレスってアセンブラ屋さんが言う奴?
504デフォルトの名無しさん (ワッチョイ 5f36-zwhO)
2024/01/26(金) 21:05:55.41ID:pu3OCH3K0 バイナリーエディタやメモリエディタでも言うよな。
505デフォルトの名無しさん (ササクッテロラ Sp7b-NMAD)
2024/01/26(金) 21:07:17.18ID:coh7wFVpp バイナリエディタのはアドレス違うよなぁ
メモリーエディタはアドレスだからいいけど
メモリーエディタはアドレスだからいいけど
506デフォルトの名無しさん (ワントンキン MM4f-NhvB)
2024/01/26(金) 21:11:38.94ID:Vqpo1a/ZM >>499
p+1はアドレスだよ
p+1はアドレスだよ
507デフォルトの名無しさん (ササクッテロラ Sp7b-NMAD)
2024/01/26(金) 22:21:03.31ID:PDBFw7tbp ポインターだろ
508デフォルトの名無しさん (ワッチョイ e730-qZe7)
2024/01/26(金) 22:21:36.46ID:XBTJ48xK0 int a[4] = {0}, (*b)[4] = &a, *c = &a[0];
printf("%p %p\n", b, b + 1);
printf("%p %p\n", c, c + 1);
0x7ffc2026d710 0x7ffc2026d720
0x7ffc2026d710 0x7ffc2026d714
アドレスと捉えると同じ番地だけど
+1の結果が違う番地になるのは
ポインタが大きさを知っているから
これが単なる整数とは違うところ
printf("%p %p\n", b, b + 1);
printf("%p %p\n", c, c + 1);
0x7ffc2026d710 0x7ffc2026d720
0x7ffc2026d710 0x7ffc2026d714
アドレスと捉えると同じ番地だけど
+1の結果が違う番地になるのは
ポインタが大きさを知っているから
これが単なる整数とは違うところ
509デフォルトの名無しさん (ササクッテロラ Sp7b-NMAD)
2024/01/26(金) 22:22:12.95ID:8+XG8rAlp アドレスと言えるのは直接ハードウェアにアクセスするものだけだよな
510デフォルトの名無しさん (ワッチョイ e7bb-iTDz)
2024/01/26(金) 22:29:00.75ID:kxxVAnT60 規格書の加減算のとこにはp + 1の結果が何になるか書いてある?
511デフォルトの名無しさん (ササクッテロラ Sp7b-NMAD)
2024/01/26(金) 22:36:52.96ID:tuyRrB6Ip p+1の結果は、pの型によって違うやろ
512デフォルトの名無しさん (ワッチョイ e7bb-iTDz)
2024/01/26(金) 22:48:45.51ID:kxxVAnT60 規格ちょっと読んだけど加減算のところには結果がアドレスになるかポインタになるか書いてなくね?
513デフォルトの名無しさん (ワッチョイ df20-NMAD)
2024/01/26(金) 22:49:56.05ID:4G76jppe0 >>512
アドレスはポインタのエイリアスだろ?
アドレスはポインタのエイリアスだろ?
514デフォルトの名無しさん (ワッチョイ 5f10-iTDz)
2024/01/27(土) 00:39:52.91ID:RxNi/RLS0 だから、アドレスは値で、ポインタは型なんだ
p + 1はpの型によって結果が決まる
intかintのポインタ型かで結果が変わる
p + 1はpの型によって結果が決まる
intかintのポインタ型かで結果が変わる
515デフォルトの名無しさん (ワッチョイ 5f7c-ytPG)
2024/01/27(土) 00:55:04.46ID:3j95TwYq0516デフォルトの名無しさん (ワッチョイ e7bb-iTDz)
2024/01/27(土) 01:15:46.64ID:lTO1GYgs0 >>514
規格読み直したら加算の結果はポインタになるって書いてあったわ
規格読み直したら加算の結果はポインタになるって書いてあったわ
517デフォルトの名無しさん (ワッチョイ 5f7c-ytPG)
2024/01/27(土) 10:42:42.11ID:3j95TwYq0 >>516
何章?
何章?
518デフォルトの名無しさん (ワッチョイ 4710-zwhO)
2024/01/27(土) 14:54:07.21ID:IaaZCBNA0 (int)(p+1)-(int )(p) == sizeof (*p)
だっけ?
だっけ?
519デフォルトの名無しさん (スプッッ Sdff-ytPG)
2024/01/27(土) 15:00:52.15ID:Go/zq51jd >>518
intは32bitのLP64環境ではどうなるんだい?
intは32bitのLP64環境ではどうなるんだい?
520デフォルトの名無しさん (ワッチョイ 4710-zwhO)
2024/01/27(土) 15:08:44.06ID:IaaZCBNA0 コンパイルエラーか警告でて下位32bitのみ取得じゃね?
sizeof (*p)がint_max超える設定でもなけりゃ目的は果たせそうだけど。
sizeof (*p)がint_max超える設定でもなけりゃ目的は果たせそうだけど。
521はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-G0Zh)
2024/01/27(土) 16:02:39.58ID:TmJLT/yO0 ポインタは整数に型変換できるけどその値がどうなるかは処理系定義。
変換結果がその整数型で表現できなかったときは未定義。
gcc や clang だとポインタをより小さい整数型に変換しようとしたらエラーになった。
intptr_t や uintptr_t に限っては正しい void* はこれらの整数に変換可能、かつ
void* に再び変換したら元の値と等しいことが保証される。
オブジェクトを指すポインタは void* に変換可能なので
オブジェクトを指すポインタは intptr_t や uintptr_t に (情報の欠落なく、可逆な形で) 変換できる。
しかしポインタが整数でどのような表現を持つかは規定されていないし、
intptr_t や uintptr_t は提供されないこともありうる。
オブジェクトを指すポインタは文字型を指すポインタに型変換してバイト列としてアクセスできることは保証されているので
オブジェクトの大きさを知るためにポインタ操作をするのであれば ↓ のような形にするのはアリなはず。
#include <assert.h>
int main(void) {
int obj;
int *p=&obj;
assert((char*)(p+1)-(char*)(p) == sizeof(*p));
}
変換結果がその整数型で表現できなかったときは未定義。
gcc や clang だとポインタをより小さい整数型に変換しようとしたらエラーになった。
intptr_t や uintptr_t に限っては正しい void* はこれらの整数に変換可能、かつ
void* に再び変換したら元の値と等しいことが保証される。
オブジェクトを指すポインタは void* に変換可能なので
オブジェクトを指すポインタは intptr_t や uintptr_t に (情報の欠落なく、可逆な形で) 変換できる。
しかしポインタが整数でどのような表現を持つかは規定されていないし、
intptr_t や uintptr_t は提供されないこともありうる。
オブジェクトを指すポインタは文字型を指すポインタに型変換してバイト列としてアクセスできることは保証されているので
オブジェクトの大きさを知るためにポインタ操作をするのであれば ↓ のような形にするのはアリなはず。
#include <assert.h>
int main(void) {
int obj;
int *p=&obj;
assert((char*)(p+1)-(char*)(p) == sizeof(*p));
}
522デフォルトの名無しさん (スッップ Sd7f-hxDZ)
2024/01/27(土) 17:07:11.96ID:JGqkehCyd はちみつの説明はちっとも頭に入ってこん
3行にまとめてから貼れ
3行にまとめてから貼れ
523デフォルトの名無しさん (ワッチョイ 5fb0-ytPG)
2024/01/27(土) 17:46:47.32ID:gXnDqsx80 >>518
つまりこのコードはダメってこったね
つまりこのコードはダメってこったね
524はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 478b-3Dea)
2024/01/27(土) 18:21:39.29ID:ubKEU+Fr0525デフォルトの名無しさん (ワッチョイ e763-amFq)
2024/01/27(土) 18:27:31.62ID:8jAlHp2M0 3行しか文章解読できないなら、コード書くのは辛いだろう
526デフォルトの名無しさん (ワッチョイ e7bb-iTDz)
2024/01/27(土) 18:41:16.06ID:lTO1GYgs0 >>517
「加算」でページ内検索すればすぐ見つかる
「加算」でページ内検索すればすぐ見つかる
527デフォルトの名無しさん (ワッチョイ 6f5f-YGpO)
2024/02/22(木) 19:08:43.26ID:rfW+Fz5e0 errno ってどうしてスレッドごとに別々につかえるの?
528はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7332-tW/T)
2024/02/22(木) 19:34:35.22ID:o0M/RgFs0529デフォルトの名無しさん (ワッチョイ 6f5f-YGpO)
2024/02/22(木) 19:51:00.46ID:rfW+Fz5e0530はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7332-tW/T)
2024/02/22(木) 20:08:19.54ID:o0M/RgFs0 >>529
errno は型 int を持つ変更可能な左辺値に展開されるならマクロで定義されてもよいことになっている。
昔の C には記憶域期間の分類にスレッドは無かったが
#define errno *__foo()
みたいな感じで定義しておいて、
この関数がスレッドごとに適切な場所を返すように作っておけば辻褄は合う。
errno は型 int を持つ変更可能な左辺値に展開されるならマクロで定義されてもよいことになっている。
昔の C には記憶域期間の分類にスレッドは無かったが
#define errno *__foo()
みたいな感じで定義しておいて、
この関数がスレッドごとに適切な場所を返すように作っておけば辻褄は合う。
531デフォルトの名無しさん (ワッチョイ 6f5f-YGpO)
2024/02/22(木) 21:32:39.53ID:rfW+Fz5e0 >>530
これでerrnoの初期化とかできるのか? なるほどできるのか。よくできてるね
これでerrnoの初期化とかできるのか? なるほどできるのか。よくできてるね
532デフォルトの名無しさん (ワッチョイ 4301-H3lM)
2024/02/22(木) 22:17:46.64ID:3b0UfxEB0 結局、スレッド処理がいい具合にリンクしてくれてるって事だね
533デフォルトの名無しさん (ワッチョイ bfbd-X6hX)
2024/02/23(金) 15:59:36.95ID:HdyUmXx/0 >>529
別にTLSの文法がなくてもコンパイラにTLS相当の非公開機能があれば実現可能。
別にTLSの文法がなくてもコンパイラにTLS相当の非公開機能があれば実現可能。
534デフォルトの名無しさん (ワッチョイ 8f0e-8Avu)
2024/02/24(土) 16:12:18.49ID:+4BfNMQz0 TLSと言えばゲームの方やね
バタ語を略したスレッドローカルストレージではないんや
このスレの世代的にも半数以上がそう思って口に言わずとも突っ込んだ経験があるはずや
バタ語を略したスレッドローカルストレージではないんや
このスレの世代的にも半数以上がそう思って口に言わずとも突っ込んだ経験があるはずや
535デフォルトの名無しさん (ワッチョイ bfbd-X6hX)
2024/02/24(土) 16:17:18.15ID:dGxq80rr0 ゲーム? バタ語? 何を言ってるのか分からない。
536はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7332-tW/T)
2024/02/24(土) 16:54:19.76ID:felFEjYK0 「TLS ゲーム」でググったらトゥルー・ラブストーリーが出てきた。
タイトルは聞いたことがあるけどやったことないし、 TLS なんて略称にはなじみがないわ。
Transport Layer Security と被っとるやないけというツッコミはしたくなったことはあるが。
バタ語ってなんや?
タイトルは聞いたことがあるけどやったことないし、 TLS なんて略称にはなじみがないわ。
Transport Layer Security と被っとるやないけというツッコミはしたくなったことはあるが。
バタ語ってなんや?
537デフォルトの名無しさん (アウアウウー Sae7-LYxY)
2024/02/24(土) 23:04:08.46ID:a3fFW9uua ここの人は並列計算についても答えるの?
それともスレ違い?
それともスレ違い?
538デフォルトの名無しさん (アウアウウー Sae7-LYxY)
2024/02/24(土) 23:05:48.99ID:a3fFW9uua スレ違いなら何処が適してるの?
539はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f32-a3My)
2024/02/25(日) 01:01:43.21ID:m/LZ7YZH0 >>537
一応は C の名前を冠したスレだからその質問が言語仕様に関わる質問ならこのスレでいい。
C を使ったロジックの組み立てかたみたいなのもある程度は許容されると思う。
環境に固有の事情が絡むならそれぞれのスレのほうがいいこともある。
Win32api スレとか Unix スレとか。
一応は C の名前を冠したスレだからその質問が言語仕様に関わる質問ならこのスレでいい。
C を使ったロジックの組み立てかたみたいなのもある程度は許容されると思う。
環境に固有の事情が絡むならそれぞれのスレのほうがいいこともある。
Win32api スレとか Unix スレとか。
540名無し兎と鰻の大乱闘 (ワッチョイ cafd-p5xT)
2024/02/25(日) 23:17:51.95ID:3BSAc3tW0 しーげんごってなに?
541デフォルトの名無しさん (ワッチョイ 0604-Q4h0)
2024/02/26(月) 00:50:15.88ID:mDObVK5g0 tlsって毎回アクセスする度に初期化済みかどうかチェックされるんか?
もしそうなら未初期化上等のc言語では特殊だな
もしそうなら未初期化上等のc言語では特殊だな
542デフォルトの名無しさん (ワッチョイ 0aaa-g1P5)
2024/02/26(月) 17:12:35.82ID:hotfpUjh0 【AI】Stable Diffusion 3発表、Soraで話題の拡散トランスフォーマーを採用 [すらいむ★]
http://egg.5ch.net/test/read.cgi/scienceplus/1708865670/l50
ボイス・トォ・スカるしている者も攻撃を受けるようになりました
http://egg.5ch.net/test/read.cgi/scienceplus/1708865670/l50
ボイス・トォ・スカるしている者も攻撃を受けるようになりました
543デフォルトの名無しさん (ワッチョイ 9e6d-EVRh)
2024/02/26(月) 19:38:00.95ID:7RO6bLyL0 こんな Web ページを作りました。ぜひどうぞ。
http://www7b.biglobe.ne.jp/~river_r/chs/
http://www7b.biglobe.ne.jp/~river_r/chs/
544デフォルトの名無しさん (ワッチョイ b301-43ji)
2024/02/27(火) 13:07:12.38ID:gZVWnZ6O0 アクセスしないほうがいいよ
545デフォルトの名無しさん (ワッチョイ 0a97-46dB)
2024/02/27(火) 13:33:45.24ID:pm1A4e3U0 理由は?
546デフォルトの名無しさん (ワッチョイ 9eb5-EVRh)
2024/02/27(火) 17:32:18.89ID:xGsMPO790 >>543 ごめんなさい。言葉足らずでした。
「数値計算結果の画像化など」 という Web ページを作りました。
プログラミング、数値計算、カオス、画像作成と表示
などに興味がある方は、ぜひどうぞ。
http://www7b.biglobe.ne.jp/~river_r/chs/
「数値計算結果の画像化など」 という Web ページを作りました。
プログラミング、数値計算、カオス、画像作成と表示
などに興味がある方は、ぜひどうぞ。
http://www7b.biglobe.ne.jp/~river_r/chs/
547デフォルトの名無しさん (ワッチョイ 6763-9+AH)
2024/02/27(火) 17:46:48.10ID:0/infknm0 空白のBMPなんて簡単に作れると思うよ
起動したときに自分で作ったら良いと思った
起動したときに自分で作ったら良いと思った
548はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f32-a3My)
2024/02/27(火) 18:03:33.97ID:NfALWDmT0549デフォルトの名無しさん (ワッチョイ 9e07-EVRh)
2024/02/29(木) 11:21:59.57ID:lAXCV22P0 >>0548
>546 です。C++ に特有な機能は、
全くと言っていいほど、使っていませんよ。
pow(x, y) というのは目新しいけど。
>546 です。C++ に特有な機能は、
全くと言っていいほど、使っていませんよ。
pow(x, y) というのは目新しいけど。
550デフォルトの名無しさん (ワッチョイ 060a-Q4h0)
2024/02/29(木) 11:51:17.73ID:wasjN/NH0 30年前で時間が止まってんなこいつ
551デフォルトの名無しさん (ワッチョイ 4a23-46dB)
2024/02/29(木) 13:30:21.68ID:tTOuwN9N0 拡張子を.cにしてビルドしてみる
552はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f32-o3N8)
2024/02/29(木) 14:03:45.25ID:w6pA3tyf0 >>549
C++ の機能をほとんど使ってないことはわかってるしそう言ってるじゃないの。
使わないのに C++ の形式をとって C スレに投下するのはちょっと不親切かもねという話をしてるんだよ。
pow (べき乗関数の総称版) は C にもあるし、 C の仕様に入ったのは C99 から。
それを知らなくて (しかし使いたくて?) C++ にしたという意味なのかな?
C++ の機能をほとんど使ってないことはわかってるしそう言ってるじゃないの。
使わないのに C++ の形式をとって C スレに投下するのはちょっと不親切かもねという話をしてるんだよ。
pow (べき乗関数の総称版) は C にもあるし、 C の仕様に入ったのは C99 から。
それを知らなくて (しかし使いたくて?) C++ にしたという意味なのかな?
553デフォルトの名無しさん (ワッチョイ 4650-o+si)
2024/02/29(木) 15:54:08.56ID:a+kbfZOT0 pow()なんてx^y(yが変数)したい時だけでいい
pow(x,2), pow(x,0.5)は、(x*x), sqrt(x)と書いた方がいい
…まさか今時のコンパイラはこれも最適化したりする?
pow(x,2), pow(x,0.5)は、(x*x), sqrt(x)と書いた方がいい
…まさか今時のコンパイラはこれも最適化したりする?
554デフォルトの名無しさん (ワッチョイ caac-o+si)
2024/02/29(木) 16:10:58.46ID:wvTonBo10 しらんけど、今どきだと最適化されるかもしれんね
1+2+・・・+99+100
こんな計算も(1+100)x 50で最適化される記事が昔あったような
1+2+・・・+99+100
こんな計算も(1+100)x 50で最適化される記事が昔あったような
555デフォルトの名無しさん (ワッチョイ 6763-9+AH)
2024/02/29(木) 16:38:23.25ID:z2rRJOdi0 こんな計算って、そのレベルでコンパイラ任せにしてるのか
556デフォルトの名無しさん (ササクッテロロ Sp03-B158)
2024/02/29(木) 17:09:00.84ID:QhPTi9Tjp >>554
知らんけど、今は定数は先に計算しちゃうから、その式は1発答えだけになるような
知らんけど、今は定数は先に計算しちゃうから、その式は1発答えだけになるような
557デフォルトの名無しさん (ワッチョイ 46a3-TKrs)
2024/02/29(木) 17:09:33.30ID:zz2EilBV0 > 1+2+・・・+99+100
最適化というか、畳み込みで 5050に置き換えられるかと
最適化というか、畳み込みで 5050に置き換えられるかと
558デフォルトの名無しさん (ワッチョイ caac-o+si)
2024/02/29(木) 18:55:44.88ID:wvTonBo10 例が悪かった、もちろん定数は一発計算してメモリに固定されるけど、
変数を含んでても、冗長計算を変形してくれるコンパイラが出て、gccもそのアルゴリズムを採用したことが昔あったような。
変数を含んでても、冗長計算を変形してくれるコンパイラが出て、gccもそのアルゴリズムを採用したことが昔あったような。
559はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 4350-a3My)
2024/02/29(木) 19:13:29.86ID:eV7kgdtT0 数値計算関連の関数はコンパイラによる最適化がなくても関数の内部が複雑な場合分けで対処してることが多いと思う。
GNU のやつとかだいぶんごちゃごちゃしてる。
GNU のやつとかだいぶんごちゃごちゃしてる。
560デフォルトの名無しさん (ワッチョイ 6763-9+AH)
2024/02/29(木) 19:19:48.52ID:z2rRJOdi0 人間が思いも付かなかったアルゴリズムで解いて見せたりして
人間が解析しても何故正しいかが分からなくなる
人間が解析しても何故正しいかが分からなくなる
561デフォルトの名無しさん (ワッチョイ 4aae-8VSo)
2024/03/01(金) 02:42:07.06ID:4OWvqJMX0 floatが絡むと誤差の出方が変わって結果が変わるから、式を変形するような最適化は不要だ
変形しても良いよというのが-ffast-mathだな
変形しても良いよというのが-ffast-mathだな
562デフォルトの名無しさん (ワッチョイ ab4e-7bv0)
2024/03/07(木) 00:36:21.20ID:D7Ff69360 typedef void (*sighandler_t)(int);
sighandler_t signal(int signum, sighandler_t sighandler);
signal関数の第1引数のシグナル番号(signum)と第2引数のハンドラ関数が実際に呼ばれたときに引数に入るシグナル番号(1行目の引数のint)は必ず一致する認識ですがあっていますか?
その場合はハンドラ関数では引数に入るシグナル番号は最初から分かっているはずですが、わざわざ引数にシグナル番号を取っている理由はなんでしょうか。シグナル番号によって処理を分岐するデカいハンドラ関数を作るくらいしか思いつきませんでした。
sighandler_t signal(int signum, sighandler_t sighandler);
signal関数の第1引数のシグナル番号(signum)と第2引数のハンドラ関数が実際に呼ばれたときに引数に入るシグナル番号(1行目の引数のint)は必ず一致する認識ですがあっていますか?
その場合はハンドラ関数では引数に入るシグナル番号は最初から分かっているはずですが、わざわざ引数にシグナル番号を取っている理由はなんでしょうか。シグナル番号によって処理を分岐するデカいハンドラ関数を作るくらいしか思いつきませんでした。
563デフォルトの名無しさん (ワッチョイ 9f79-rZWy)
2024/03/07(木) 01:20:52.75ID:yhOhiWWp0 時間の無駄だからsignalのことは忘れなさい
時代遅れのCランタイムで本当に役立つものはごく少数しかない
そんな化石はスルーしてOSに用意された目的に合うAPIを直接使いなさい
Cランタイムのソースコードがある処理系なら読んでみると良い
時代遅れのCランタイムで本当に役立つものはごく少数しかない
そんな化石はスルーしてOSに用意された目的に合うAPIを直接使いなさい
Cランタイムのソースコードがある処理系なら読んでみると良い
564デフォルトの名無しさん (ワッチョイ ef3c-qSkN)
2024/03/07(木) 04:56:12.94ID:3rDFlX/H0 signalの代替は無理だろ
ランタイム自作しろとか言うのか?
sigalrm使うなぐらいならわかるが
ランタイム自作しろとか言うのか?
sigalrm使うなぐらいならわかるが
565デフォルトの名無しさん (ササクッテロロ Sp4f-/BY0)
2024/03/07(木) 10:24:21.94ID:m0jtu/KQp OS機能呼び出すとか移植性無視かw
566デフォルトの名無しさん (ワッチョイ efe7-Y1S9)
2024/03/07(木) 10:26:04.98ID:u0AQ7cvO0 >>565
今は環境に合わせて移植するのではなく、環境を移植するのが主流だよ
今は環境に合わせて移植するのではなく、環境を移植するのが主流だよ
567はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 3b32-FATS)
2024/03/07(木) 10:26:06.80ID:Qh7cJyBm0 >>562
> 必ず一致する認識ですがあっていますか?
正しい。
> わざわざ引数にシグナル番号を取っている理由
Rationale に書かれていないのではっきりしたことはわからない。
おそらく Unix でそうなってたのを追認しただけだと思う。
> 必ず一致する認識ですがあっていますか?
正しい。
> わざわざ引数にシグナル番号を取っている理由
Rationale に書かれていないのではっきりしたことはわからない。
おそらく Unix でそうなってたのを追認しただけだと思う。
568はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 3b32-FATS)
2024/03/07(木) 10:29:39.62ID:Qh7cJyBm0569デフォルトの名無しさん (スップ Sdbf-iW2Q)
2024/03/07(木) 12:06:04.83ID:HvQLfDgAd 構造体やポインターを理解できたら、C言語をマスターしたと言えますか?
570はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 3b32-FATS)
2024/03/07(木) 12:44:05.75ID:Qh7cJyBm0 >>569
練習用の題材ではなく (自分なりに) 意味があるプログラムを書けたあたりが
一応のマスター (あくまで最低限の出発点だが!) だろうと個人的には思ってる。
プログラミング言語は道具なんだから道具として使えることが重要で、
言語の要素を何個理解したなんてのはたいした指標にならない。
練習用の題材ではなく (自分なりに) 意味があるプログラムを書けたあたりが
一応のマスター (あくまで最低限の出発点だが!) だろうと個人的には思ってる。
プログラミング言語は道具なんだから道具として使えることが重要で、
言語の要素を何個理解したなんてのはたいした指標にならない。
571デフォルトの名無しさん (ワッチョイ 9f11-5NsN)
2024/03/07(木) 13:28:05.42ID:GWVV9gt00 1000行程度のプログラムがすらすら一日で書けたら卒業
572デフォルトの名無しさん (ワッチョイ 0f2a-AlNe)
2024/03/07(木) 14:06:12.94ID:4AOndewA0 三行半で済む処理をダラダラ1万行ぐらいに増やすのは、得意なんだけどなあ。
573デフォルトの名無しさん (ワッチョイ 9b63-ZLJX)
2024/03/07(木) 15:29:11.48ID:MNNvXb/X0 それはそれで才能
574デフォルトの名無しさん (ワッチョイ 1f5c-0W2u)
2024/03/07(木) 15:56:22.94ID:tpHaFcPx0575デフォルトの名無しさん (ワッチョイ 9b0f-0/6E)
2024/03/07(木) 20:44:25.94ID:yfQHOJuW0 >>564
signal()なんて使わず、せめてsigaction()にしろということでは?
signal()なんて使わず、せめてsigaction()にしろということでは?
576デフォルトの名無しさん (ワッチョイ 4f4c-lvv7)
2024/03/08(金) 18:40:01.38ID:6aUIMz1F0 >>562
デカいハンドラ関数を作る意図はなくても
同じようで異なる処理(複数のsigal番号の処理をする場合とか)をする時に
入口は一つにしておいて入力パラメータで処理を振り分けるとか普通の設計だと思うが。
わかりやすい例がWIN32APIのWindowProc。
あれがメッセージ番号毎に関数エントリを登録する形式だったら煩雑なことこの上ないだろ。
デカいハンドラ関数を作る意図はなくても
同じようで異なる処理(複数のsigal番号の処理をする場合とか)をする時に
入口は一つにしておいて入力パラメータで処理を振り分けるとか普通の設計だと思うが。
わかりやすい例がWIN32APIのWindowProc。
あれがメッセージ番号毎に関数エントリを登録する形式だったら煩雑なことこの上ないだろ。
577デフォルトの名無しさん (ワッチョイ 9b63-ZLJX)
2024/03/08(金) 18:58:33.73ID:iEWrXUyW0 Windowってそんなsignalの使い方しないでしょう
578はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 3b32-FATS)
2024/03/08(金) 19:33:39.28ID:KTmiotGH0 >>577
そういう話じゃないから文脈を掴んで。
そういう話じゃないから文脈を掴んで。
579デフォルトの名無しさん (スップ Sd02-R4O2)
2024/03/10(日) 23:22:14.50ID:CPrZIOdkd580デフォルトの名無しさん (ワッチョイ 8279-bGIP)
2024/03/11(月) 20:07:11.13ID:comBc+xk0 もうC言語は一旦終わりでいいから別の事やりなよ
結局Cだけの知識じゃ何もできんのよ
Cの知識はいざ何か作ろうとなった時に活きてくるよ
結局Cだけの知識じゃ何もできんのよ
Cの知識はいざ何か作ろうとなった時に活きてくるよ
581デフォルトの名無しさん (ワッチョイ 82ac-sV0L)
2024/03/11(月) 21:49:00.76ID:QCWizl2S0 プログラマ目指して挫折する人は、別に作りたいものがなくて文法ばかりを勉強するタイプかも。
文法は大事だけど、それ自体はあんまり役に立たないし調べれば済むことに時間をかけるのは程々に
合理的なアルゴリズムを瞬時に思いついて言語に落とし込めるかが大事で、これは経験。
文法は大事だけど、それ自体はあんまり役に立たないし調べれば済むことに時間をかけるのは程々に
合理的なアルゴリズムを瞬時に思いついて言語に落とし込めるかが大事で、これは経験。
582はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 8d32-SeR6)
2024/03/11(月) 22:16:42.73ID:lga6QF6v0 質問サイトとかで「どうすればいいですか?」みたいなのはちょくちょくあるけど「どうなればいいの?」と返したらまともにこたえられないのもよくある。
問題の解法を構築してプログラムの形に落とし込むのが大事だというのはそりゃそうなんだけど、大前提として解決すべき問題が何であるかを認識 (発見) しなきゃならなくて、そこんところで躓いてたら助けるのも難しい。
問題の解法を構築してプログラムの形に落とし込むのが大事だというのはそりゃそうなんだけど、大前提として解決すべき問題が何であるかを認識 (発見) しなきゃならなくて、そこんところで躓いてたら助けるのも難しい。
583デフォルトの名無しさん (ワッチョイ c27c-WFGC)
2024/03/11(月) 23:43:57.21ID:a8lYnTon0 >>582
相手はその質問で問題提起してるんだろ、なのにお前からは、どうなればいいのって "
解答" を質問者に聞いてたら、そりゃ質問者だって混乱するだろよ。
問題把握以前にお前は国語からやり直すべき。
相手はその質問で問題提起してるんだろ、なのにお前からは、どうなればいいのって "
解答" を質問者に聞いてたら、そりゃ質問者だって混乱するだろよ。
問題把握以前にお前は国語からやり直すべき。
584はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 8d32-SeR6)
2024/03/12(火) 00:26:36.89ID:WtXn1sYk0 >>583
目指すべき形がわからないのにどうすればいいかなんて答えようがないんだから訊くのはあたりまえじゃないの。
(ちなみに質問が不明瞭な場合などのために回答とは別にコメントを付ける機能が stackoverflow や teratail にはある)
目指すべき形がわからないのにどうすればいいかなんて答えようがないんだから訊くのはあたりまえじゃないの。
(ちなみに質問が不明瞭な場合などのために回答とは別にコメントを付ける機能が stackoverflow や teratail にはある)
585デフォルトの名無しさん (ワッチョイ 8563-lhhw)
2024/03/12(火) 00:40:50.82ID:JJnRauRa0 分からないのに答えると言うのもどうかと思う
587デフォルトの名無しさん (ワッチョイ 8563-lhhw)
2024/03/12(火) 00:54:27.51ID:JJnRauRa0 相手にしているならば答えてるのと同じ
588デフォルトの名無しさん (ワッチョイ 7d5f-siit)
2024/03/12(火) 04:56:46.76ID:T3Ovkjsr0 そして放置される と
589デフォルトの名無しさん (ワッチョイ 05b0-3wDj)
2024/03/12(火) 18:16:58.66ID:TtsgUSZ70 てすと
590デフォルトの名無しさん (ワッチョイ 05b0-3wDj)
2024/03/12(火) 18:17:16.76ID:TtsgUSZ70 てすと
591デフォルトの名無しさん (JP 0He6-Cuda)
2024/03/13(水) 04:27:54.00ID:fKc7/92tH Pythonから来たんですけど
C言語では関数だけじゃなくifやforのブロック内部もローカルスコープって聞いて驚愕してます
ループが終わった後のカウンター変数を後続処理で気軽に利用できないって困りませんか
C言語では関数だけじゃなくifやforのブロック内部もローカルスコープって聞いて驚愕してます
ループが終わった後のカウンター変数を後続処理で気軽に利用できないって困りませんか
592デフォルトの名無しさん (ワッチョイ 82ac-sV0L)
2024/03/13(水) 04:37:16.09ID:VFn3B3DS0 そうしたいときはスコープの外で宣言すれば値は保持されるので
int i;
for (i=0 ; i<10 ; i++)
{
}
int i;
for (i=0 ; i<10 ; i++)
{
}
593デフォルトの名無しさん (JP 0He6-Cuda)
2024/03/13(水) 04:49:50.63ID:fKc7/92tH >>592
マジっすか
ChatGPTに聞いたら、そのやり方だと外のiと中のiはスコープが別って言われて混乱しとります
---
一方で、ループの外で事前に同名の変数が宣言されている場合、
forループの仮引数として宣言された変数と同名の変数は別のものとして扱われます。
この場合、forループの仮引数として宣言された変数がローカル変数として扱われ、ループの外で宣言された変数がグローバル変数として扱われます。
これは、C言語において名前の衝突を回避するための仕組みです。
マジっすか
ChatGPTに聞いたら、そのやり方だと外のiと中のiはスコープが別って言われて混乱しとります
---
一方で、ループの外で事前に同名の変数が宣言されている場合、
forループの仮引数として宣言された変数と同名の変数は別のものとして扱われます。
この場合、forループの仮引数として宣言された変数がローカル変数として扱われ、ループの外で宣言された変数がグローバル変数として扱われます。
これは、C言語において名前の衝突を回避するための仕組みです。
594デフォルトの名無しさん (ブーイモ MMa5-lOCL)
2024/03/13(水) 05:14:50.31ID:7oOr7TQ5M ChatGPTあってもバカはバカのままってのがよくわかる
595デフォルトの名無しさん (ワッチョイ 8666-sV0L)
2024/03/13(水) 07:16:46.92ID:3+r/Br8X0 >>593
int i;
for (int i=0 ; i<10 ; i++) {...}
と書くとそうなる
宣言すると新しい変数ができる
ChatGPTって、機械が自然な応答をすることが目的で、辞書のように使うものではないんじゃないの?
ChatGPTは得た情報がどの程度正しそうなのか重みづけできないんじゃないかな
int i;
for (int i=0 ; i<10 ; i++) {...}
と書くとそうなる
宣言すると新しい変数ができる
ChatGPTって、機械が自然な応答をすることが目的で、辞書のように使うものではないんじゃないの?
ChatGPTは得た情報がどの程度正しそうなのか重みづけできないんじゃないかな
596デフォルトの名無しさん (ワッチョイ b901-lhhw)
2024/03/13(水) 07:39:30.72ID:DwruCvgD0 やさしい
597デフォルトの名無しさん (JP 0He6-Cuda)
2024/03/13(水) 08:06:43.61ID:fKc7/92tH >>595
ありがとう
AIの回答をよく見返したらfor(int i = 0...の解説だった
サンプルコードを示してくれるのはいいけど、自分のような丸々素人だとその意図を理解できないでこういう誤解が生まれる余地はあるね
先生が優秀過ぎて学生がついていけない構図だわこれ
ありがとう
AIの回答をよく見返したらfor(int i = 0...の解説だった
サンプルコードを示してくれるのはいいけど、自分のような丸々素人だとその意図を理解できないでこういう誤解が生まれる余地はあるね
先生が優秀過ぎて学生がついていけない構図だわこれ
598デフォルトの名無しさん (ワッチョイ c6b6-lOCL)
2024/03/13(水) 08:35:23.86ID:etRxrqP30 ChatGPTを先生にする発想が間違い
599はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 29a4-SeR6)
2024/03/13(水) 08:49:20.23ID:ZL+6IClb0 >>597
昔の C++ だとその書き方でも i のスコープは for 文の外側のブロックがスコープになる仕様だった。 (ISO で規格化される前のやつ。)
その頃の C の仕様ではそもそもそこで変数の宣言を出来なかったが処理系の拡張として C++ 風のやりかたをできるようにしているものもあった。
後に C++ の仕様は変更されて、 C には C++ の変更後のやり方で導入されることになったんだが、しばらくはスコープの仕様に混乱があった。
数十年前の一時期の混乱に過ぎないからそれ自体は今では気にする必要はないんだけど言語仕様は変更されることもあるし、色々と歴史的事情もある。
古い仕様を根拠にした解説もあるから AI が区別せずに学習したら辻褄の合わないことも起こると思う。
まあ人間が書いた解説も変なのは少なからずあるから AI を批判するわけじゃないけど……まあ一番最初くらいは入門書を読んだほうがいいんじゃないかと個人的には思ってる。
昔の C++ だとその書き方でも i のスコープは for 文の外側のブロックがスコープになる仕様だった。 (ISO で規格化される前のやつ。)
その頃の C の仕様ではそもそもそこで変数の宣言を出来なかったが処理系の拡張として C++ 風のやりかたをできるようにしているものもあった。
後に C++ の仕様は変更されて、 C には C++ の変更後のやり方で導入されることになったんだが、しばらくはスコープの仕様に混乱があった。
数十年前の一時期の混乱に過ぎないからそれ自体は今では気にする必要はないんだけど言語仕様は変更されることもあるし、色々と歴史的事情もある。
古い仕様を根拠にした解説もあるから AI が区別せずに学習したら辻褄の合わないことも起こると思う。
まあ人間が書いた解説も変なのは少なからずあるから AI を批判するわけじゃないけど……まあ一番最初くらいは入門書を読んだほうがいいんじゃないかと個人的には思ってる。
600デフォルトの名無しさん (ワッチョイ f260-3wDj)
2024/03/13(水) 09:06:40.92ID:hNY0+4ik0 カウンター変数を気軽に使うのが間違い
そういう時は何かが間違ってると思った方が良い
俺がGPTならそう回答するw
そういう時は何かが間違ってると思った方が良い
俺がGPTならそう回答するw
601デフォルトの名無しさん (ワッチョイ 82ad-g1JC)
2024/03/13(水) 09:49:08.95ID:LIF5w4hC0 ちょっと何言っているのか分からない
602デフォルトの名無しさん (ワッチョイ 692a-fdoY)
2024/03/13(水) 09:57:47.91ID:X1fgAQyG0 気が重い中で使うのが正しい。獅子咆哮弾だね。
603デフォルトの名無しさん (スプッッ Sd01-WFGC)
2024/03/13(水) 10:34:26.85ID:u8+Aa1acd604デフォルトの名無しさん (ササクッテロラ Sp91-EkuC)
2024/03/13(水) 10:46:18.64ID:JwtpXuCEp あれは創作小説を生成する装置なのに
なんで実用性あるんだと思うんだろ?
なんで実用性あるんだと思うんだろ?
605デフォルトの名無しさん (ワッチョイ c6b6-lOCL)
2024/03/13(水) 10:57:53.06ID:etRxrqP30 実用性はあるけどな
使い方の問題
現役でいたかったらgithub copilotぐらいさわっとけ
使い方の問題
現役でいたかったらgithub copilotぐらいさわっとけ
606デフォルトの名無しさん (ワッチョイ a101-fdoY)
2024/03/13(水) 11:09:39.04ID:hk9QG/kC0607デフォルトの名無しさん (ワッチョイ 8563-lhhw)
2024/03/13(水) 11:43:22.70ID:WwA56xS10 嘘って言うのは人間が評価した上での話
ChatGPTに取っては与えらた入力データから
もっともらしいものを出力しただけ
ChatGPTに嘘をつかせるってのは、難しい
仮に知性というものが芽生えて、自意識が発生し
そのことを人間に隠さないといけないと判断して
そうするなら、それは初めて嘘をついたとなる
ChatGPTに取っては与えらた入力データから
もっともらしいものを出力しただけ
ChatGPTに嘘をつかせるってのは、難しい
仮に知性というものが芽生えて、自意識が発生し
そのことを人間に隠さないといけないと判断して
そうするなら、それは初めて嘘をついたとなる
608デフォルトの名無しさん (ブーイモ MMa5-lOCL)
2024/03/13(水) 11:51:20.55ID:8jq/IdEqM 嘘であることと嘘をつこうと思ったかどうかは別だろ
609デフォルトの名無しさん (ワッチョイ 82ad-g1JC)
2024/03/13(水) 11:51:45.77ID:LIF5w4hC0610デフォルトの名無しさん (ワッチョイ 8563-lhhw)
2024/03/13(水) 12:01:22.65ID:WwA56xS10 「この電卓は嘘つきだ!」
611はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 8d32-hQEK)
2024/03/13(水) 12:20:13.23ID:y7g8qbWf0 ChatGPT の言語能力は高いがプログラミング教育を受けてるわけじゃないからなぁ。
頭のよい素人がググりながら要約したくらいの正確さだと思う。
根拠になる仕様の項目を問うたときにまるでデタラメを返したりするのはかなりあかんとこ。
頭のよい素人がググりながら要約したくらいの正確さだと思う。
根拠になる仕様の項目を問うたときにまるでデタラメを返したりするのはかなりあかんとこ。
612デフォルトの名無しさん (ワッチョイ e1b3-EkuC)
2024/03/13(水) 13:20:48.95ID:I6g3m+gC0 >>609
マ板で愚問w
マ板で愚問w
613デフォルトの名無しさん (ワッチョイ f260-3wDj)
2024/03/13(水) 13:40:02.23ID:hNY0+4ik0 >>610
Windowsの電卓で嘘をつくバグが有ったなw
Windowsの電卓で嘘をつくバグが有ったなw
614デフォルトの名無しさん (ワッチョイ f260-3wDj)
2024/03/13(水) 13:53:23.57ID:hNY0+4ik0 >>601
ループ変数を後から参照する状況は、ループがbreakで中断したかを確認したい時だろう
そういうのは別の関数に切り分けて、ループ内でbreakじゃなくreturn trueで返すようにすべきだな(関数の最後はreturn false)
C++で言うstd::any_ofみたいな事が出来ないから、関数に切り分けるしかない
ループ変数を後から参照する状況は、ループがbreakで中断したかを確認したい時だろう
そういうのは別の関数に切り分けて、ループ内でbreakじゃなくreturn trueで返すようにすべきだな(関数の最後はreturn false)
C++で言うstd::any_ofみたいな事が出来ないから、関数に切り分けるしかない
615デフォルトの名無しさん (ワッチョイ c6b6-lOCL)
2024/03/13(水) 15:56:31.82ID:etRxrqP30 小さい関数ならちまちま切り出さなくていい
読みにくいだけ
読みにくいだけ
616デフォルトの名無しさん (ワッチョイ fb4c-A0KB)
2024/03/17(日) 16:04:44.01ID:k+jArioy0 最短経路問題で perl5 で書いたのがOut of memory!
こんな時はC言語などで書き直すのが選択肢だけど
みんなはいきなりC言語などで書きますか?
それとも、最初は書きやすい言語で処理速度以外の所を決めてからC言語などで書きますか?
こんな時はC言語などで書き直すのが選択肢だけど
みんなはいきなりC言語などで書きますか?
それとも、最初は書きやすい言語で処理速度以外の所を決めてからC言語などで書きますか?
617デフォルトの名無しさん (ワッチョイ 8bd6-Jepy)
2024/03/17(日) 16:19:49.43ID:JxbO9kgq0 perlの実装があるならそれを使って色々検討するんじゃないか
618デフォルトの名無しさん (ワッチョイ 8163-IOXH)
2024/03/17(日) 16:32:03.14ID:WugnipTo0 perl5って64ビット版もあるでしょう?
619デフォルトの名無しさん (ワッチョイ 292a-B9kV)
2024/03/17(日) 16:47:02.59ID:8QBAFOMi0 ここの人たちなら習わぬ Perlで下書きするより勝手知ったる Cで書くんじゃないの。
Perl開発上の問題はPerlスレで訊ねた方が、実情に即したレスが反りそう。
Perl開発上の問題はPerlスレで訊ねた方が、実情に即したレスが反りそう。
620デフォルトの名無しさん (ワッチョイ 8163-IOXH)
2024/03/17(日) 16:50:04.16ID:WugnipTo0 問題文と、組み立てたであろうアルゴリズム聞かないと、何とも言えない
621デフォルトの名無しさん (ワッチョイ 8163-IOXH)
2024/03/17(日) 19:48:46.79ID:WugnipTo0 Perlスレ見てみたが、相談できそうな所が無かった
回答あるか分からないが、お題スレに問題文投げて解いてもらう
いろんな言語に精通している猛者が多い(Perl達人もいたはず)
PerlではなくC言語でと言うなら、ここで相談できるかもしれない
回答あるか分からないが、お題スレに問題文投げて解いてもらう
いろんな言語に精通している猛者が多い(Perl達人もいたはず)
PerlではなくC言語でと言うなら、ここで相談できるかもしれない
622デフォルトの名無しさん (ワッチョイ 5134-0rOl)
2024/03/18(月) 10:33:19.79ID:0IkoPQje0 最短経路・グラフ理論・ダイクストラとか?
アルゴリズム系は、Python でしょ。Ruby も
有名な蟻本「プログラミング・コンテスト・チャレンジブック」は、C++
C は知らない
アルゴリズム系は、Python でしょ。Ruby も
有名な蟻本「プログラミング・コンテスト・チャレンジブック」は、C++
C は知らない
623デフォルトの名無しさん (ササクッテロラ Sp85-FuGx)
2024/03/18(月) 10:37:04.28ID:U2viu6Jop Pythonは、アルゴリズムって言うより
マトリックス計算機
マトリックス計算機
624デフォルトの名無しさん (ワッチョイ 59ad-FDlJ)
2024/03/18(月) 12:55:06.36ID:09P0Fui10 Perlは最短経路問題のライブラリもなく、速度が欲しければCで自分で書くしかない…ってコト!?
辞めたら? その言語で最短経路問題解こうとするの
辞めたら? その言語で最短経路問題解こうとするの
625デフォルトの名無しさん (ワッチョイ 1384-8Hbo)
2024/03/18(月) 13:06:20.52ID:mAsCIn7L0 依頼者の返答を待たないと
626デフォルトの名無しさん (ワッチョイ 1379-7+fg)
2024/03/18(月) 20:11:03.72ID:H3fBGUmk0 perlスレでやれよ
このスレは老害しかいないからperlの話しても通じんよ
このスレは老害しかいないからperlの話しても通じんよ
627デフォルトの名無しさん (ワッチョイ 8163-IOXH)
2024/03/18(月) 20:46:39.48ID:LaT9Whu40 perlの歴史は結構古いぞ
年寄りしか扱えないと思ってた
年寄りしか扱えないと思ってた
628はちみつ餃子 ◆8X2XSCHEME (ワッチョイ a9bf-4IOx)
2024/03/18(月) 21:09:19.87ID:PY17qgzJ0 >>616 は C のコードを書く前に他の言語でプロトタイプを書くことがあるかという質問していて Perl についての質問ではないぞ。
Perl の話は例というか前振りだろ。
Perl の話は例というか前振りだろ。
629デフォルトの名無しさん (ワッチョイ 1379-7+fg)
2024/03/18(月) 23:52:06.11ID:H3fBGUmk0 そいう話か。1行目しか読んでないわ
最近は大体OS標準のpowershellでざっくり書いて必要なら一部C#だな
pinvokeで恐らくC/C++製のDLLを利用することはあってもCコードを書く機会なんてなくなった
最近は大体OS標準のpowershellでざっくり書いて必要なら一部C#だな
pinvokeで恐らくC/C++製のDLLを利用することはあってもCコードを書く機会なんてなくなった
630デフォルトの名無しさん (ワッチョイ 8163-IOXH)
2024/03/18(月) 23:55:42.19ID:LaT9Whu40 じゃあ、だれかCで書いてあげて
631デフォルトの名無しさん (ワッチョイ b15f-FuGx)
2024/03/19(火) 08:32:58.20ID:Z43bMenl0 いきなりperlで書くのと
いきなりCで書くのと何が違うんだろ?
つか、俺は最初に日本語で手順を書くが
いきなりCで書くのと何が違うんだろ?
つか、俺は最初に日本語で手順を書くが
632デフォルトの名無しさん (ワッチョイ 73ae-yROb)
2024/03/19(火) 08:57:10.07ID:R8jeC9x+0 awkが普通だと思ってた
今は違うのか
今は違うのか
633デフォルトの名無しさん (ワッチョイ fbe7-7lhN)
2024/03/19(火) 09:24:56.59ID:D/Ya4WHb0 まずはBASICで書いて、速度が欲しいとこだけマシン語に置き換える感じ
634デフォルトの名無しさん (ワッチョイ 2910-ZAEI)
2024/03/19(火) 09:46:27.46ID:DAgk/2JU0 FD起動IPL設計からなのでまずアセンブラで。
635デフォルトの名無しさん (ワッチョイ 8163-IOXH)
2024/03/19(火) 10:08:59.95ID:Szfgw2D70 FD起動
なんて贅沢なんだ
なんて贅沢なんだ
636デフォルトの名無しさん (ワッチョイ 8b2a-Rw/6)
2024/03/19(火) 10:39:11.21ID:Fe9RIXyY0 >>631
いきなり perlで書いたソースは既にあって、実行するとメモリ不足になるのでしょ。なので、
いきなり(perl以外の)書きやすい言語で書くのと
いきなりCで書くのと何が違うんだろ?
と訊くべき。
いきなり perlで書いたソースは既にあって、実行するとメモリ不足になるのでしょ。なので、
いきなり(perl以外の)書きやすい言語で書くのと
いきなりCで書くのと何が違うんだろ?
と訊くべき。
637デフォルトの名無しさん (ワッチョイ 8163-IOXH)
2024/03/19(火) 11:11:47.95ID:Szfgw2D70 昔MZシリーズなんていう8ビットPCがあって、
そのマニュアルにペントミノを解くというプログラムが載っていた
しかし実行しても1日掛かっても回答が出ない
16ビットPC用のCで書き直したら、5分で終わった
ついでにアセンブラにしたら、1分だった
そのマニュアルにペントミノを解くというプログラムが載っていた
しかし実行しても1日掛かっても回答が出ない
16ビットPC用のCで書き直したら、5分で終わった
ついでにアセンブラにしたら、1分だった
638デフォルトの名無しさん (ワッチョイ 59ad-FDlJ)
2024/03/19(火) 11:29:09.76ID:FLREyswN0 Perlでアルゴリズムのプロトタイプ書くおじいちゃん、まだ生きていたのか
普通の若者はプロトタイプはPythonで書くんだよな。何故ならネットにダイクストラでもなんでも落ちているから
このおじいちゃんは新しい言語を勉強出来ない人間だし、かといってプロトタイプなしで初手Cで書けるような積み上げのある猛者というわけでもない
引退した方が良いのでは?
普通の若者はプロトタイプはPythonで書くんだよな。何故ならネットにダイクストラでもなんでも落ちているから
このおじいちゃんは新しい言語を勉強出来ない人間だし、かといってプロトタイプなしで初手Cで書けるような積み上げのある猛者というわけでもない
引退した方が良いのでは?
639デフォルトの名無しさん (ワッチョイ 8163-IOXH)
2024/03/19(火) 11:32:03.00ID:Szfgw2D70 じゃあ、代わりに書いてあげて
640デフォルトの名無しさん (ワッチョイ 7bc9-VMz+)
2024/03/19(火) 12:27:21.10ID:h/UmP7BY0 やるならせめてc++でやれよ
わざわざcでやる意味ない
わざわざcでやる意味ない
641デフォルトの名無しさん (ワッチョイ 8b2a-B9kV)
2024/03/19(火) 12:37:23.65ID:SMOg7wK30 翻訳先が Cなら、
Perl より Python の方がコスト(手間)高で、いっぱい損な気ガス
# ダジャレに気付かないのはダレジャ
Perl より Python の方がコスト(手間)高で、いっぱい損な気ガス
# ダジャレに気付かないのはダレジャ
642デフォルトの名無しさん (ブーイモ MM33-VMz+)
2024/03/19(火) 14:22:26.70ID:VlZcx0wQM 計算量や使用メモリがネックになるのわかってたら最初からc++かcuda
インタラクティブかつビジュアライズして試行錯誤するときはpython(Jupyter)
インタラクティブかつビジュアライズして試行錯誤するときはpython(Jupyter)
643デフォルトの名無しさん (ワッチョイ 0bd0-FDlJ)
2024/03/19(火) 19:07:27.75ID:qnPpFeXM0 最短経路問題をCudaで解くのはむずくね?
644デフォルトの名無しさん (ワッチョイ 7bc9-VMz+)
2024/03/20(水) 02:30:26.76ID:yu5B8CqZ0 最短経路の解き方を聞かれてるわけじゃないだろ
645デフォルトの名無しさん (ワッチョイ b15f-FuGx)
2024/03/20(水) 10:52:31.80ID:+bbLi7EZ0 総当たりさせたらいいんだよw
646デフォルトの名無しさん (スフッ Sdb2-W6Ep)
2024/03/24(日) 18:06:00.35ID:UMIIXnOjd 構造体変数の宣言の初期化のとき、ヌルポインタを,{ }でくくらないと、警告が出るのですが、なぜですか? 例えばこんな具合にしないと警告が出ます
struct monster {
char name[80];
int HP, MP;
};
int main(void)
{
struct monster template = {{0}, 7, 4};
struct monster {
char name[80];
int HP, MP;
};
int main(void)
{
struct monster template = {{0}, 7, 4};
647デフォルトの名無しさん (ワッチョイ 1261-Juro)
2024/03/24(日) 18:20:00.72ID:XqBtjkZY0 >>646
char name[80];に入るのはポインタではなくchar型の配列か文字列
char name[80];に入るのはポインタではなくchar型の配列か文字列
648デフォルトの名無しさん (スフッ Sdb2-rfcW)
2024/03/24(日) 18:24:20.57ID:UMIIXnOjd >>647 よくわかりました ありがとうございます
649デフォルトの名無しさん (ワッチョイ 9279-uYHt)
2024/03/24(日) 18:43:42.86ID:TrTyAT7D0 なにもわかってなさそうでほほえましい
650デフォルトの名無しさん (ワッチョイ ad63-Juro)
2024/03/24(日) 18:46:07.25ID:TfhtohDd0 構造体云々言う前に、配列の初期化方法についてまず調べろ
651デフォルトの名無しさん (スフッ Sdb2-rfcW)
2024/03/24(日) 18:47:29.73ID:UMIIXnOjd 我ながら Lolです☺
652デフォルトの名無しさん (ワッチョイ 09f0-d20A)
2024/03/24(日) 18:57:40.29ID:9Ye9tMrz0 >>621
Perlでメモリ不足になるってことは循環参照が発生してメモリが解放されない(PerlはリファレンスカウントGC)
もしくは深い再帰でPerl管理のVMスタックが枯渇したか
どちらにしろCで書いてもメモリをバカ食いするのは間違いないから
データ構造を見直すべき
循環参照を見直す、再帰をループに変えるなどを試してみてはどうか
Perlでメモリ不足になるってことは循環参照が発生してメモリが解放されない(PerlはリファレンスカウントGC)
もしくは深い再帰でPerl管理のVMスタックが枯渇したか
どちらにしろCで書いてもメモリをバカ食いするのは間違いないから
データ構造を見直すべき
循環参照を見直す、再帰をループに変えるなどを試してみてはどうか
653デフォルトの名無しさん (ワッチョイ 09f0-d20A)
2024/03/24(日) 19:10:42.18ID:9Ye9tMrz0 グラフ構造を使う場合は循環参照は容易に生まれるからな
PerlのScalar::Util::weakenで変数をラップしてやる
こうするとその変数は弱参照になる
PerlのScalar::Util::weakenで変数をラップしてやる
こうするとその変数は弱参照になる
654デフォルトの名無しさん (ワッチョイ 36e7-HgBz)
2024/03/25(月) 11:18:02.00ID:YX1noK3i0 弱参照ビオレ
655デフォルトの名無しさん (ワッチョイ 6fb3-MjEX)
2024/04/11(木) 18:10:49.56ID:h5i5y7Gi0 #include <stdio.h>
#include <string.h>
void main(void)
{
char c[32];
char *pc;
strcpy(c, "JAPAN-TOKYO-OSAKA");
pc = &c[0];
//for(int i=0; i<strlen(c); i++, *pc++){
for(int i=0; i<strlen(c); i++, pc++){
printf("%c", *pc);
}
printf("\n");
}
#include <string.h>
void main(void)
{
char c[32];
char *pc;
strcpy(c, "JAPAN-TOKYO-OSAKA");
pc = &c[0];
//for(int i=0; i<strlen(c); i++, *pc++){
for(int i=0; i<strlen(c); i++, pc++){
printf("%c", *pc);
}
printf("\n");
}
656デフォルトの名無しさん (ワッチョイ 6fb3-MjEX)
2024/04/11(木) 18:12:37.98ID:h5i5y7Gi0 コメントアウトしてる方のforにしても出力結果は同じになります
*付きポインタ変数は、中身へアクセスを意味するからめちゃくちゃな文字列が出力されるはずじゃ・・・?
どうしてなの?
*付きポインタ変数は、中身へアクセスを意味するからめちゃくちゃな文字列が出力されるはずじゃ・・・?
どうしてなの?
657デフォルトの名無しさん (スッップ Sd02-nKjL)
2024/04/11(木) 19:02:47.99ID:/0XH+klGd あなたが書いたのは*(pc++)を意味してます
658デフォルトの名無しさん (ワッチョイ 2363-Ky5X)
2024/04/11(木) 19:16:41.38ID:GKY1RwiV0 このソースを何という名前で保存して、何というコンパイラでコンパイルしたかとか、色々
659デフォルトの名無しさん (ワッチョイ 6fb3-MjEX)
2024/04/11(木) 20:20:43.87ID:h5i5y7Gi0660デフォルトの名無しさん (ワッチョイ 4ef0-WBP1)
2024/04/11(木) 20:25:30.86ID:RdqITFFi0 *も++も単項演算子で適用される優先順位がある
優先順位を意識してコーディングしないと痛い目に合う
a + b == cは想定通りだろうが、a & b == cは想定外の結果になるとかねw
優先順位を意識してコーディングしないと痛い目に合う
a + b == cは想定通りだろうが、a & b == cは想定外の結果になるとかねw
661デフォルトの名無しさん (ワッチョイ af69-zSwZ)
2024/04/11(木) 20:54:35.96ID:eGBAyvET0 足し算掛け算の掛け算をシフトに書き換えたら上手く動かなくなって焦った
662デフォルトの名無しさん (ワッチョイ 6f2a-MjEX)
2024/04/11(木) 21:46:39.46ID:6HtedQOj0 >>661
え、なぜ。
え、なぜ。
663デフォルトの名無しさん (ワッチョイ c261-Ky5X)
2024/04/11(木) 22:53:39.83ID:/Kb1qQiM0 シフト演算子は加減算より優先度低いのにカッコで囲わなかったって事でしょ
664デフォルトの名無しさん (ワッチョイ e279-V3xu)
2024/04/11(木) 23:28:45.21ID:0Tmkq/lZ0 まあ次がんばればいいよ
665デフォルトの名無しさん (ワッチョイ 4ef0-WBP1)
2024/04/11(木) 23:29:31.03ID:RdqITFFi0 シフトは乗除っぽいイメージだから加減算よりも先でいいよなぁ
ビット演算子が比較よりも後なのは完全に仕様バグだろ…
ビット演算子が比較よりも後なのは完全に仕様バグだろ…
666デフォルトの名無しさん (ワッチョイ e7df-6c53)
2024/04/11(木) 23:37:48.49ID:1F4I/FIC0 冴えてないときの自分のためにも、他人のためにも、なるべくカッコはつけるかな
667デフォルトの名無しさん (ワッチョイ e279-V3xu)
2024/04/11(木) 23:49:41.77ID:0Tmkq/lZ0 いまさら言って仕方ない事をいちいち書くなよ
お前が次のC言語でも作って人生を棒に振ればいいだけだよ
お前が次のC言語でも作って人生を棒に振ればいいだけだよ
668デフォルトの名無しさん (ワッチョイ 4ef0-WBP1)
2024/04/12(金) 00:17:11.46ID:nGLEgXOo0669デフォルトの名無しさん (ワッチョイ df01-B3tP)
2024/04/12(金) 00:21:54.57ID:GtdzNQir0 >>655
後に現れたC++のiostreamがシフト演算子をオーバーロードし入出力演算子として流用するのに
好都合で、思わぬ役に立つことになったからまあ良いだろ。もしシフト演算子が四則演算子より
優先順位が高かったら、cout << 1 + 2 * 3 << endl を cout << (1 + 2 * 3) << endl と
書かなければならず面倒だった。(C++がシフト演算子を全く別の機能に流用したのは不適切
だったという意見もあるが…)
後に現れたC++のiostreamがシフト演算子をオーバーロードし入出力演算子として流用するのに
好都合で、思わぬ役に立つことになったからまあ良いだろ。もしシフト演算子が四則演算子より
優先順位が高かったら、cout << 1 + 2 * 3 << endl を cout << (1 + 2 * 3) << endl と
書かなければならず面倒だった。(C++がシフト演算子を全く別の機能に流用したのは不適切
だったという意見もあるが…)
670デフォルトの名無しさん (ワッチョイ 4ef0-WBP1)
2024/04/12(金) 01:13:09.53ID:nGLEgXOo0671デフォルトの名無しさん (ワッチョイ e2ad-lyNC)
2024/04/12(金) 02:09:51.24ID:Wv2Zy+UZ0 >>656
*pc++ はまず *pc の処理をする。これで pc の差している先にある値を取り出すことになる。その次に pc を一つ分進ませる(実際に加算される値は sizeof(*pc))。
では最初に *pc で取り出した値はどこへ行ってしまうのか? それは何にも使われずにただ捨てられる。
*pc++ はまず *pc の処理をする。これで pc の差している先にある値を取り出すことになる。その次に pc を一つ分進ませる(実際に加算される値は sizeof(*pc))。
では最初に *pc で取り出した値はどこへ行ってしまうのか? それは何にも使われずにただ捨てられる。
672デフォルトの名無しさん (ワッチョイ 4e28-Nnmc)
2024/04/12(金) 07:08:32.50ID:gi41fiD00 *pc++の形はcやってたら所々で見るから否応なく慣れる
個人的にはケチくさい書き方で避けたい気持ちもあるがまぁそういう文化が根付いてるなら合わせざるを得ない
個人的にはケチくさい書き方で避けたい気持ちもあるがまぁそういう文化が根付いてるなら合わせざるを得ない
673デフォルトの名無しさん (オッペケ Sr5f-YGuu)
2024/04/12(金) 07:39:02.10ID:661KRJs/r674デフォルトの名無しさん (スッップ Sd02-3rFQ)
2024/04/12(金) 12:25:07.52ID:OadUyd3Md C言語の標準化委員はC++のほうも兼任してたりするから、ぶっちゃけC言語の改善にはやる気無しだから。
675デフォルトの名無しさん (ワッチョイ 62db-wLy8)
2024/04/12(金) 13:28:21.08ID:Lm13J0L60 C++もやる気無しだろ
676デフォルトの名無しさん (ワッチョイ 4ef0-WBP1)
2024/04/12(金) 14:41:57.50ID:nGLEgXOo0 C++はRustと比較されて安全性に劣るとレッテルを貼られて、どうしたもんか考えあぐねてるところだろうw
言語の拡張に対して完全に方向転換を強いられてるのは間違いない
それはCも一緒だな
言語の拡張に対して完全に方向転換を強いられてるのは間違いない
それはCも一緒だな
677デフォルトの名無しさん (ワッチョイ 4ef0-WBP1)
2024/04/12(金) 14:53:32.51ID:nGLEgXOo0 パフォーマンスを損なわずにRustと同等の安全性を追加するか、もうこのままそっとしておくかw、の2択だろう
678デフォルトの名無しさん (スフッ Sd02-L5r3)
2024/04/12(金) 15:20:27.37ID:dUdcEEpod >>674
もはやbetter Cでも何でもないのに、このスレでも繰り返しc++の話題出す奴居るし、やっぱユーザーも被ってるんだろな
まあCの設計の良否を他言語よりは比較的小さな差異から論じるのに有用だとは思う
おれみたいにC++は書かずともcpprefとか読んで式や文、宣言など局所的な構文知識だけちょっとある人は多かろう(ClassとかCに無い概念は読み飛ばしてて無知)
生まれた順序が逆だけど、FortranがC++とすればF言語/JuliaがCだね
大体サブセット+独自進化、標準化コミュニティ丸被り
もはやbetter Cでも何でもないのに、このスレでも繰り返しc++の話題出す奴居るし、やっぱユーザーも被ってるんだろな
まあCの設計の良否を他言語よりは比較的小さな差異から論じるのに有用だとは思う
おれみたいにC++は書かずともcpprefとか読んで式や文、宣言など局所的な構文知識だけちょっとある人は多かろう(ClassとかCに無い概念は読み飛ばしてて無知)
生まれた順序が逆だけど、FortranがC++とすればF言語/JuliaがCだね
大体サブセット+独自進化、標準化コミュニティ丸被り
679デフォルトの名無しさん (スッップ Sd02-3rFQ)
2024/04/12(金) 16:33:17.52ID:OadUyd3Md C++は好きじゃないからC言語はもっと改善していって欲しい。
nullptr型とか入るの遅すぎじゃね?
nullptr型とか入るの遅すぎじゃね?
680デフォルトの名無しさん (ワッチョイ 62e3-WBP1)
2024/04/12(金) 22:48:41.07ID:fQv3jEzD0 C++はCの機能を保ったまま、ありとあらゆるプログラミングパラダイムを突っ込んだもの
それがベターかどうかは人によるな
ただ、Cと互換性を保ったままそこまで進化したのは奇跡に近い
それがベターかどうかは人によるな
ただ、Cと互換性を保ったままそこまで進化したのは奇跡に近い
681デフォルトの名無しさん (ワッチョイ df01-g9Lk)
2024/04/12(金) 23:16:21.33ID:pf6tTSyT0 Cは概ねC++のサブセットだからしゃーない
682デフォルトの名無しさん (ワッチョイ 62e3-WBP1)
2024/04/13(土) 00:06:24.07ID:c7UXCLXT0 でも、Rustが安全性と性能は両立出来ることを証明してしまってから、一気に旗色が悪くなったw
今まで性能を免罪符にして、多少(かなり?)の安全性を犠牲にしてきたけど、もはや通用しない時代になった
今後どう進化するか見物だな
Cだって対岸の火事ではない
今まで性能を免罪符にして、多少(かなり?)の安全性を犠牲にしてきたけど、もはや通用しない時代になった
今後どう進化するか見物だな
Cだって対岸の火事ではない
683デフォルトの名無しさん (ワッチョイ 62e3-WBP1)
2024/04/13(土) 01:23:26.45ID:c7UXCLXT0 ちなみに、Rustは安全な代わりに書きたいコードを書けるとは思わない方がいいw
これは書いてみないと分からん感覚だ
書きやすくて安全な言語は存在しないことも証明されたw
これは書いてみないと分からん感覚だ
書きやすくて安全な言語は存在しないことも証明されたw
684デフォルトの名無しさん (ワッチョイ e2ad-ZiZa)
2024/04/13(土) 07:18:38.29ID:SxW/5mRR0 慣れの問題では?
685デフォルトの名無しさん (ワッチョイ bf5f-/8Es)
2024/04/15(月) 00:15:31.26ID:kwd7Pf0A0 必ず遠回りをさせられる感覚は非常にムズムズするよな
あれならgccでstack-protectorとかsanitizeとかガン盛りした方が
気分良く高効率に書けると思った
あれならgccでstack-protectorとかsanitizeとかガン盛りした方が
気分良く高効率に書けると思った
686デフォルトの名無しさん (ワッチョイ 9f79-Zl9R)
2024/04/19(金) 20:19:37.90ID:5JxGOdzk0 今日から戯れに数十年前のx86なGUIのソースをx64に移植し始めたんだが
とりあえずエラーになるGetWindowsLongだかをx64用に書き換えていったらそこそこ動いてしまって、後は文字列が関係する処理だけだ
俺が書いた過去のコードがよっぽど優秀だったようだ
やはり若い頃にソースを沢山書いといてよかった
とりあえずエラーになるGetWindowsLongだかをx64用に書き換えていったらそこそこ動いてしまって、後は文字列が関係する処理だけだ
俺が書いた過去のコードがよっぽど優秀だったようだ
やはり若い頃にソースを沢山書いといてよかった
687デフォルトの名無しさん (ワッチョイ 9f79-Zl9R)
2024/04/19(金) 20:37:53.24ID:5JxGOdzk0 x64化でちょっとsize_tの扱いで躓いたので書いておこう
ポインタが64bitだから、その差を取る場合もあるsize_tも64bitなのは理屈では理解できるんだが
明らかに64bit幅が不要な箇所でsize_tに出くわすとおいおいと思ってしまう
これはbit数を明示した型を別に定義した方がよさそうだ
ああまいったまいった
ポインタが64bitだから、その差を取る場合もあるsize_tも64bitなのは理屈では理解できるんだが
明らかに64bit幅が不要な箇所でsize_tに出くわすとおいおいと思ってしまう
これはbit数を明示した型を別に定義した方がよさそうだ
ああまいったまいった
688デフォルトの名無しさん (ワッチョイ 9f1c-A/o5)
2024/04/19(金) 23:35:27.85ID:uO847wzt0 >>686
Windows1.0のexeもWindows10(32bit版)でも動くからな
64bit版は16bitコードの実行が廃止されたから無理
APIの方は割と変わってるけど、それでもちょっと直せばビルドできる
優秀なのはMicrosoftの方だなw
Windows1.0のexeもWindows10(32bit版)でも動くからな
64bit版は16bitコードの実行が廃止されたから無理
APIの方は割と変わってるけど、それでもちょっと直せばビルドできる
優秀なのはMicrosoftの方だなw
689デフォルトの名無しさん (ワッチョイ 7763-hJEz)
2024/04/20(土) 09:49:57.99ID:U6z53Ozt0 温泉旅館の増改築やらせたらMSに敵う奴はいない
690デフォルトの名無しさん (ワッチョイ 1e01-EjCi)
2024/04/21(日) 10:27:21.32ID:Y4YQdA//0 Windows11は最初から32bit版が無いんだよな…
ポインターに64bitも必要ない
36bit(64GB)有れば十分
farとnearポインター復活しても良いよw
ポインターに64bitも必要ない
36bit(64GB)有れば十分
farとnearポインター復活しても良いよw
691デフォルトの名無しさん (スフッ Sd70-mNzP)
2024/04/21(日) 10:58:55.51ID:WM7IEXRid win10使ってるけどOffice 97をバイナリコピーして使ってるぞ、とうとう11では動かんのか…?
主にExcel使うが関数の数は劣ってもヘルプは古い方がよく出来てて一般ユーザとしては好み、一々ブラウザ起動されてたらい回しは嫌だ
主にExcel使うが関数の数は劣ってもヘルプは古い方がよく出来てて一般ユーザとしては好み、一々ブラウザ起動されてたらい回しは嫌だ
692デフォルトの名無しさん (ワッチョイ d463-t3I8)
2024/04/21(日) 11:03:42.61ID:z3GhIJnT0 可変長サイズのポインターは斬新
693デフォルトの名無しさん (ワッチョイ 66ad-6Ywt)
2024/04/21(日) 13:02:16.05ID:kDNr1IJ/0 Office97は32bitだから動くでしょ
駄目なのはWindows3.1までの16bitアプリ
じぶんもフリーソフトをいくつか64bit化したけどほとんど修正してない
早めにUnicodeにしてたおかげもあるかな
駄目なのはWindows3.1までの16bitアプリ
じぶんもフリーソフトをいくつか64bit化したけどほとんど修正してない
早めにUnicodeにしてたおかげもあるかな
694デフォルトの名無しさん (ワッチョイ 7f63-Ufki)
2024/04/29(月) 16:02:47.44ID:JmumYEsm0 16bitアプリって、今も残ってたっけ?
695デフォルトの名無しさん (ワッチョイ 8732-Q9m/)
2024/04/29(月) 17:53:08.72ID:Mi5d5RVO0 あえて使う人もあんまりいないだろうけど、メンテナンスが止まってる(32bit 化、64bit 化されない)ようなソフトを使いたいってことはそれなりにあることじゃないの。
メーカーがつぶれて消えたりするのもよくあることだしな。
メーカーがつぶれて消えたりするのもよくあることだしな。
696名無し兎と鰻の大乱闘 (ワッチョイ dffd-02Vv)
2024/04/29(月) 19:42:16.62ID:Yc7GJpMD0 そもそもしーげんごってなに?
697デフォルトの名無しさん (ワッチョイ dfad-jQnA)
2024/04/29(月) 19:53:54.99ID:D5HYHAbC0 アプリは32bitだがインストーラが16bitなのが結構あるらしい
698デフォルトの名無しさん (ワッチョイ 7f63-Ufki)
2024/04/29(月) 20:59:16.06ID:JmumYEsm0 もしもそんなのがあったら、メチャクチャ話題になってると思うよ
699デフォルトの名無しさん (ワッチョイ dfad-b946)
2024/04/29(月) 22:45:20.14ID:c1TFMEcy0 知り合いにエミュレータ入れたりして凄く苦労してロータス123を動かして業務で使っている人が居る。
700デフォルトの名無しさん (ワッチョイ 8732-nVjz)
2024/04/30(火) 00:46:15.48ID:b4FWQSR70 使うのに手間はあるとはいえエミュレータが成熟してしまったので
かなり古いソフトウェアを動かしたいならそっちでやれと言えてしまうようになったとも言える。
Windows の互換性維持システムも結局はエミュレータをサブシステムとして
組み込んでるようなもんだしな。
かなり古いソフトウェアを動かしたいならそっちでやれと言えてしまうようになったとも言える。
Windows の互換性維持システムも結局はエミュレータをサブシステムとして
組み込んでるようなもんだしな。
701デフォルトの名無しさん (ワッチョイ c7fa-WbgR)
2024/04/30(火) 10:07:58.44ID:XgZjmbIB0 >>697
ファーレントゥーガとかそのパターンだね
ファーレントゥーガとかそのパターンだね
702デフォルトの名無しさん (ワッチョイ df79-V7Lt)
2024/04/30(火) 19:37:21.97ID:6siWZQQV0 なんで16bitの話になったのか理解不能
703デフォルトの名無しさん (ワッチョイ dfad-b946)
2024/05/01(水) 16:53:57.29ID:udfiR5VM0 >>686の辺りから?
704デフォルトの名無しさん (ワッチョイ c7bb-x43a)
2024/05/01(水) 19:51:41.60ID:nIC3qyB/0 プリプロセッサでモジュール作れるようになるとC++使わなくてもCで十分だな
もっと早めにマスターするべきだった
もっと早めにマスターするべきだった
705デフォルトの名無しさん (ワッチョイ df79-V7Lt)
2024/05/02(木) 23:28:34.67ID:gN+cVuNV0 CでCOMやれって言われても困るし
逆にC++のがマシってのはその程度か
逆にC++のがマシってのはその程度か
706デフォルトの名無しさん (ワッチョイ 5ff4-NzXl)
2024/05/03(金) 11:04:22.77ID:RJtMknPi0 cでもできるってのと、c++使ったほうが楽ってのでは全然意味違う
チームで混乱を招くという理由以外でのc++ディスりは、大抵理解不足によるアレルギーから来るヒスのことが多い
まあ、そういうヒス起こす人が多いからチームでは使用禁止とかになっちゃうわけだから、り繋がってはいるんだけど
チームで混乱を招くという理由以外でのc++ディスりは、大抵理解不足によるアレルギーから来るヒスのことが多い
まあ、そういうヒス起こす人が多いからチームでは使用禁止とかになっちゃうわけだから、り繋がってはいるんだけど
707デフォルトの名無しさん (ワッチョイ 7f63-Ufki)
2024/05/03(金) 11:08:15.33ID:9ebiuCIb0 チャンスあると自分語りを始めるのは、病気だぞ
708デフォルトの名無しさん (ワッチョイ 5ff4-NzXl)
2024/05/03(金) 11:51:54.49ID:RJtMknPi0 どういう理論だよ
普通の欲求だろ
普通の欲求だろ
709デフォルトの名無しさん (ワッチョイ bf4f-O08P)
2024/05/03(金) 12:00:23.89ID:KP5VxXzU0 普通じゃなくてガキの欲求
710デフォルトの名無しさん (ワッチョイ 2701-Ufki)
2024/05/03(金) 13:30:44.34ID:vhm3euJk0 リーナスはガキ
711デフォルトの名無しさん (ワッチョイ c791-WbgR)
2024/05/03(金) 14:49:42.61ID:lW+ShOaq0712デフォルトの名無しさん (ワッチョイ 5ff4-NzXl)
2024/05/03(金) 16:16:10.22ID:RJtMknPi0 >>711
そうやって我慢できずに突っかかってきてるのもどうかと思うけどな…
そうやって我慢できずに突っかかってきてるのもどうかと思うけどな…
713デフォルトの名無しさん (ブーイモ MMcf-O08P)
2024/05/03(金) 16:35:03.08ID:8UCXCtC4M linuxカーネル縛りと趣味以外でc言語使うってどういうプロジェクト?
実際仕事でそういう人いる?
組み込みでも今時c++使えるだろ
実際仕事でそういう人いる?
組み込みでも今時c++使えるだろ
714デフォルトの名無しさん (ワッチョイ e701-E0+q)
2024/05/04(土) 01:34:33.71ID:fPXjXaJw0 洗濯機や電子レンジなどは Cが最適じゃなかろうか
715デフォルトの名無しさん (ワッチョイ dfac-R43V)
2024/05/04(土) 01:40:48.74ID:nSEmjq+y0 メモリ構成が非常に小さいシステムの場合Cじゃない?
8bitのPICとか
8bitのPICとか
716デフォルトの名無しさん (ワッチョイ ff2d-y8PE)
2024/05/04(土) 17:05:29.45ID:VOfnZKej0 こういうの考えたんだけどどうだろう?
実用性無いだろうか
#include <stdio.h>
typedef void (*exception_handler)(void);
void register_exception_handler(exception_handler handler)
{
handler();
}
void exception_occurred()
{
printf("例外が発生しました。\n");
}
void may_throw_exception(int condition)
{
if (condition) {
register_exception_handler(exception_occurred);
}
}
int main()
{
may_throw_exception(1);
return 0;
}
実用性無いだろうか
#include <stdio.h>
typedef void (*exception_handler)(void);
void register_exception_handler(exception_handler handler)
{
handler();
}
void exception_occurred()
{
printf("例外が発生しました。\n");
}
void may_throw_exception(int condition)
{
if (condition) {
register_exception_handler(exception_occurred);
}
}
int main()
{
may_throw_exception(1);
return 0;
}
717デフォルトの名無しさん (ワッチョイ bf4f-O08P)
2024/05/04(土) 17:59:35.95ID:pTi4k8MI0 ネタにしてもつまんない
718デフォルトの名無しさん (ワッチョイ e7f0-yODy)
2024/05/04(土) 18:34:27.18ID:XXil6xAz0719デフォルトの名無しさん (ワッチョイ 7f63-Ufki)
2024/05/04(土) 18:38:32.56ID:0cPYdG0t0 あれは例外なのか?
720デフォルトの名無しさん (ワッチョイ c7bb-x43a)
2024/05/04(土) 18:45:30.78ID:TbdOZmgm0 例外処理やりたいならsetjmpでも使えば
721はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 8f32-uq6a)
2024/05/05(日) 00:00:07.41ID:NN+M7fak0 >>716
「こういうの」とは何であるか説明が必要。
提示されたコードは関数 exception_occurred の呼び出しを回りくどくやっているだけで、
途中のメカニズムに意味がない。
(このコードでの使い方の範囲では。)
言葉で説明しづらいならこれが有用になるような使い方の例を示して欲しい。
「こういうの」とは何であるか説明が必要。
提示されたコードは関数 exception_occurred の呼び出しを回りくどくやっているだけで、
途中のメカニズムに意味がない。
(このコードでの使い方の範囲では。)
言葉で説明しづらいならこれが有用になるような使い方の例を示して欲しい。
722デフォルトの名無しさん (ワッチョイ 5bf0-vK0W)
2024/05/05(日) 00:01:55.61ID:5Yjpxxvd0 スタックの巻き戻しをどう実装するのか教えて欲しい
723はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 8f32-uq6a)
2024/05/05(日) 00:22:13.83ID:yEjzRI9b0 >>722
C の言語仕様の範囲内でやる方法は setjmp/longjmp のみ。
setjmp/longjmp を自分で書きたいってことなら
アセンブラ (またはインラインアセンブラや intrinsic 関数) を使って
スタックポインタ操作したりレジスタの待避・復旧などをやる必要があるが……。
モダンな処理系だと最適化だのなんだのの都合でスタックフレームを省略したりだとかもあるので
それらと協調しないとまともに動作しない。
たとえば gcc だと setjmp/longjmp の実体は
組み込み関数の __builtin_setjmp/__builtin_longjmp として提供されてる。
処理系自体の機能として持たないとちゃんと動作させられんのだ……。
C の言語仕様の範囲内でやる方法は setjmp/longjmp のみ。
setjmp/longjmp を自分で書きたいってことなら
アセンブラ (またはインラインアセンブラや intrinsic 関数) を使って
スタックポインタ操作したりレジスタの待避・復旧などをやる必要があるが……。
モダンな処理系だと最適化だのなんだのの都合でスタックフレームを省略したりだとかもあるので
それらと協調しないとまともに動作しない。
たとえば gcc だと setjmp/longjmp の実体は
組み込み関数の __builtin_setjmp/__builtin_longjmp として提供されてる。
処理系自体の機能として持たないとちゃんと動作させられんのだ……。
724デフォルトの名無しさん (ワッチョイ a6c9-XbOt)
2024/05/05(日) 00:39:05.41ID:eNHKeT630725デフォルトの名無しさん (ワッチョイ 6a79-1zLe)
2024/05/05(日) 03:04:42.71ID:vcr/Jmru0 Windows処理系の場合SEHがあるからsetjmp/longjmpをわざわざ使う事ないよ
というか外部ライブラリ等から例外を受ける場合SEH必須だよ
というか外部ライブラリ等から例外を受ける場合SEH必須だよ
726デフォルトの名無しさん (ワッチョイ e59a-NINu)
2024/05/13(月) 23:49:14.95ID:Wt06b2vO0 名古屋にスターキャットというケーブル会社があるんですが、この名前もしや
727デフォルトの名無しさん (ワッチョイ e1c0-NINu)
2024/05/14(火) 09:33:08.58ID:KpGXlSyl0 strcat()?
728デフォルトの名無しさん (ワッチョイ 312a-qYA6)
2024/05/14(火) 10:22:08.21ID:qHkm4M1L0 strfry(): スターふりゃー
729デフォルトの名無しさん (ワッチョイ 373b-RO6I)
2024/05/15(水) 11:58:16.33ID:MTx/QSx90 strをスターって読んでる奴は上達しないw
730デフォルトの名無しさん (ワッチョイ 5363-8FIX)
2024/05/15(水) 12:01:57.70ID:TrHxhldY0 strstr
これなんて読んでます?
これなんて読んでます?
731デフォルトの名無しさん (ワッチョイ e3b4-5qvu)
2024/05/15(水) 13:36:27.56ID:H3ZUTeXN0 もとはstringなのは置いておいて
英語の発音だとストラの方が近い
まスチョラって感じだが
スターは無理だな
英語の発音だとストラの方が近い
まスチョラって感じだが
スターは無理だな
732 警備員[Lv.6][新初] (ワッチョイ 7b5f-7UPu)
2024/05/15(水) 21:51:01.03ID:QNLWEWL40 >>731
英語はラテン語系じゃないから、最後にaの発音は付けないよ?
英語はラテン語系じゃないから、最後にaの発音は付けないよ?
733デフォルトの名無しさん (ワッチョイ bd2a-QxKS)
2024/05/15(水) 22:53:44.49ID:eM13T72T0 >>732
敢えて「らりるれろ」で表現すると、どれに近いの。
敢えて「らりるれろ」で表現すると、どれに近いの。
734デフォルトの名無しさん (ワッチョイ 613b-XIgX)
2024/05/15(水) 23:11:37.93ID:sr9WdMcN0 https://m.youtube.com/watch?v=oVDUHBj3Mb0
↑ここで聞くとストラレンだな
↑ここで聞くとストラレンだな
735はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f532-GBWn)
2024/05/16(木) 01:19:13.34ID:i/RRcUKc0 そもそも声に出して読む機会とかある?
736デフォルトの名無しさん (ワッチョイ a12d-Hnix)
2024/05/16(木) 03:34:18.28ID:p7AzABUa0 C言語を256倍使う本にコードを音読せよと書いてあっただろ
737デフォルトの名無しさん (ワッチョイ 77f9-RO6I)
2024/05/16(木) 09:36:35.60ID:WDlUvNVq0 会社などで開発してれば「ここのストラレンが~」とか言うだろ
738デフォルトの名無しさん (ワッチョイ 613b-XIgX)
2024/05/16(木) 11:39:10.81ID:m+e5wcl90 ぼっちなんだよ、察してやれw
739デフォルトの名無しさん (ワッチョイ bfa5-1W80)
2024/05/16(木) 15:14:36.29ID:/s0PD0VX0 俺はstrをストロと読んでる
ストロレン
ボッチナノデモンダイナイ
ストロレン
ボッチナノデモンダイナイ
740デフォルトの名無しさん (ワッチョイ e343-5qvu)
2024/05/16(木) 17:02:21.44ID:cRCb9Dg/0 stdio.hはスタジオだよな?
741デフォルトの名無しさん (スフッ Sd2f-aIi2)
2024/05/16(木) 17:18:21.50ID:YR1de7Utd 🤣🤣🤣
742デフォルトの名無しさん (ワッチョイ 45fb-1W80)
2024/05/16(木) 17:24:24.63ID:VZS5byuk0 前は
今はすたっどあいおーって読んでる
今はすたっどあいおーって読んでる
743デフォルトの名無しさん (スフッ Sd2f-aIi2)
2024/05/16(木) 17:36:45.28ID:YR1de7Utd ストゥーディオってよんでる
744デフォルトの名無しさん (ワッチョイ 5f79-nHLb)
2024/05/16(木) 19:31:00.84ID:s6fDlAb80 「そのすたーちゃー(strchr)使うのやめろよ言うまでもなくすたーあーちゃー(strrchr)もな」って言うかも
今更C言語の話なんてしないけどストラ云々なんていっても伝わらんのは判ってる
今更C言語の話なんてしないけどストラ云々なんていっても伝わらんのは判ってる
745デフォルトの名無しさん (ワッチョイ e7bc-ETUn)
2024/05/16(木) 20:34:50.38ID:2k3CZcmN0 普通に
エスティーアールレン
エスティーアールキャット
エスティアールエスティーアール
って言ってる
stdioは
エスティディーアイオー
エスティーアールレン
エスティーアールキャット
エスティアールエスティーアール
って言ってる
stdioは
エスティディーアイオー
746デフォルトの名無しさん (ワッチョイ 77f9-RO6I)
2024/05/16(木) 21:06:22.53ID:WDlUvNVq0 ぶっちゃけローマ字でもバンドの名前でもstrをスターなんて読むこと無いだろ
747デフォルトの名無しさん (ワッチョイ e343-5qvu)
2024/05/16(木) 21:38:17.53ID:cRCb9Dg/0 KAT-TUN かっつん
ONE OK ROCK おねぇオッケーロック
正しく読むのむずすぎだろ
ONE OK ROCK おねぇオッケーロック
正しく読むのむずすぎだろ
748デフォルトの名無しさん (ワッチョイ 77f9-RO6I)
2024/05/16(木) 22:54:42.14ID:WDlUvNVq0 わかったアールだからアーって発音するのか
そんなん聞いたことないな
どこの界隈で言ってるんだ
それにstrならエスティアーになるはずではw
そんなん聞いたことないな
どこの界隈で言ってるんだ
それにstrならエスティアーになるはずではw
strlen ストリング レン
strcat ストリング キャット
strstr …
stdio スタンダード アイオー
strcspn 使い方すら分からない
strcat ストリング キャット
strstr …
stdio スタンダード アイオー
strcspn 使い方すら分からない
750デフォルトの名無しさん (ワッチョイ 613b-XIgX)
2024/05/16(木) 23:30:01.85ID:m+e5wcl90751デフォルトの名無しさん (ワッチョイ 613b-XIgX)
2024/05/16(木) 23:36:51.27ID:m+e5wcl90752デフォルトの名無しさん (ワッチョイ 77f9-RO6I)
2024/05/17(金) 07:01:02.01ID:FuakfFss0 >フラップT は、 t が前後を母音に挟まれており、かつ、t を含む音節にアクセントが置かれていない場合に起こります。
全然ちゃうやんw
母音に挟まれてないしアクセントはターにあるだろ
全然ちゃうやんw
母音に挟まれてないしアクセントはターにあるだろ
753デフォルトの名無しさん (ワッチョイ 5363-8FIX)
2024/05/17(金) 10:20:21.99ID:bHnKBI1y0 こんなに引っ張る話題でも無いと思うんだがな
754デフォルトの名無しさん (ブーイモ MMb3-5qvu)
2024/05/17(金) 11:40:38.90ID:m6sDsbO0M この場合フラップTでなく連続子音ルール
755デフォルトの名無しさん (スップ Sddb-IBBV)
2024/05/17(金) 12:32:56.71ID:iwOPo+Yod ああ、それで、パリピーなのね
756デフォルトの名無しさん (ワッチョイ 77f9-RO6I)
2024/05/17(金) 15:11:05.80ID:FuakfFss0 英語を自分ルール作って勝手に読んでる奴は暗黙の合意をわかる能力が低いということ
これはコンピュータ言語でも同じだ
自分で標準ライブラリ作り直すくらいの覚悟ならいいが中途半端に自分流突き通す奴は上達しない
これはコンピュータ言語でも同じだ
自分で標準ライブラリ作り直すくらいの覚悟ならいいが中途半端に自分流突き通す奴は上達しない
757デフォルトの名無しさん (ワッチョイ 3be4-XIgX)
2024/05/17(金) 18:00:34.84ID:7PzHxmpJ0758デフォルトの名無しさん (ワッチョイ e3ad-739I)
2024/05/18(土) 06:19:27.02ID:s0SjtLL90 r の発音が難しい。
759デフォルトの名無しさん (ワッチョイ 452a-qYA6)
2024/05/18(土) 08:21:14.75ID:R6I0+Baq0 r の発音が難しいのであーる
と語尾を整えて欲しかった。
と語尾を整えて欲しかった。
760デフォルトの名無しさん (オッペケ Sr6f-9tvc)
2024/05/18(土) 10:16:08.61ID:+7oj04xGr Lit it GO❢ レリッゴ〜ゥゥ
761デフォルトの名無しさん (ワッチョイ 5d10-YREO)
2024/05/18(土) 10:25:11.31ID:ELr7G7Ab0 Let it ... DIE!
ttps://letitdie.jp/common/age-verification/index.html
ttps://letitdie.jp/common/age-verification/index.html
762デフォルトの名無しさん (スフッ Sdba-4PJT)
2024/05/22(水) 17:33:39.89ID:I9OEeRHUd live and let die
763デフォルトの名無しさん (ワッチョイ 4e2a-RP0s)
2024/05/22(水) 17:56:18.72ID:nvbXc7oi0 今夜は Beat It ビレー
今夜は Eat It イレー
今夜は Eat It イレー
764デフォルトの名無しさん (ワッチョイ 170a-aMer)
2024/05/22(水) 19:05:55.70ID:vvg7DOyN0 Get Up! ゲロッパ!
765デフォルトの名無しさん (スフッ Sdba-YsZb)
2024/05/23(木) 17:32:53.32ID:JZ6dG1qId 静的記憶域期間をもつ、文字列リテラルの正体をおしえてください。
766デフォルトの名無しさん (ワッチョイ 4e63-sC7m)
2024/05/23(木) 17:55:28.11ID:hB8qN6AJ0 三つ子の魂
767デフォルトの名無しさん (スフッ Sdba-4PJT)
2024/05/23(木) 18:06:03.63ID:JZ6dG1qId 文字列リテラルは、アドレス(ポインタ)でもあるんですよね?
768デフォルトの名無しさん (ワッチョイ 4e63-sC7m)
2024/05/23(木) 18:28:52.39ID:hB8qN6AJ0 >静的記憶域期間
この表現って誰に教えて貰いました?
この表現って誰に教えて貰いました?
769デフォルトの名無しさん (スフッ Sdba-4PJT)
2024/05/23(木) 18:35:49.81ID:JZ6dG1qId BOHYOH
770デフォルトの名無しさん (ワッチョイ 4e63-sC7m)
2024/05/23(木) 18:44:12.33ID:hB8qN6AJ0 じゃあ、ぼうようさんに聞いてみたら良いですよ
771 警備員[Lv.1][新芽] (ブーイモ MMba-igBi)
2024/05/23(木) 21:57:15.72ID:n5zuU8wjM どんぐり
772はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9732-40VT)
2024/05/23(木) 22:45:21.26ID:wLgFLImH0 >>767
文字列リテラルの型は文字の配列。 つまり型名で言えば char[ほにゃらら] ってこと。
配列がその先頭要素を指すポインタに (一部の例外を除いて) 暗黙に型変換されるルールによって
式の中ではポインタとして使えるけど文字列リテラルというオブジェクトの実体は配列。
配列と関数はちょっと変則的な暗黙の変換があるので
そのあたりはルールを丸暗記してもらうしかしょうがない。
文字列リテラルの型は文字の配列。 つまり型名で言えば char[ほにゃらら] ってこと。
配列がその先頭要素を指すポインタに (一部の例外を除いて) 暗黙に型変換されるルールによって
式の中ではポインタとして使えるけど文字列リテラルというオブジェクトの実体は配列。
配列と関数はちょっと変則的な暗黙の変換があるので
そのあたりはルールを丸暗記してもらうしかしょうがない。
773デフォルトの名無しさん (ワッチョイ 7fbb-aMer)
2024/05/23(木) 23:35:07.27ID:8Jz7JTgj0 ハイレグの配列
774デフォルトの名無しさん (ワッチョイ 7fbb-aMer)
2024/05/24(金) 02:00:54.97ID:1vUdw0qC0 i386の
msg: db "hello"
と
ary: dd 65, 66, 67
はどっちも配列!
故に文字列リテラルも配列か
msg: db "hello"
と
ary: dd 65, 66, 67
はどっちも配列!
故に文字列リテラルも配列か
775デフォルトの名無しさん (ワッチョイ 275f-kryU)
2024/05/24(金) 09:15:29.55ID:cOO1+HpN0 C固有の概念だから気をつけろ
776デフォルトの名無しさん (ワッチョイ 5b10-UQRA)
2024/05/24(金) 10:06:34.84ID:TTt9EBlM0 char moji[]="HELLO";
はBASICの
100 RESTORE DATA_HELLO:READ MOJI$
110 *DATA_HELLO
120 DATA "HELLO"
ってイメージ・・・などと意味不明な(ry
はBASICの
100 RESTORE DATA_HELLO:READ MOJI$
110 *DATA_HELLO
120 DATA "HELLO"
ってイメージ・・・などと意味不明な(ry
777デフォルトの名無しさん (ワッチョイ 4e63-sC7m)
2024/05/24(金) 10:36:00.42ID:eLGTNdu60 また始まった
778デフォルトの名無しさん (スフッ Sdba-4PJT)
2024/05/24(金) 15:33:05.28ID:aHlZJ4Itd 友達が二分探索のアルゴリズムを組んでコードがコンパイルを通ったんだけど、実行するたびに、ターミナルの画面が真っ白になるらしい。原因として考えられるのは?やはりメモリ関連のミスですか?
779デフォルトの名無しさん (ワッチョイ 4e63-sC7m)
2024/05/24(金) 16:40:34.12ID:eLGTNdu60 これだけの説明で原因を特定出来たら、そいつは神かもしれない
780デフォルトの名無しさん (ワッチョイ b663-igBi)
2024/05/24(金) 17:34:05.38ID:IzCZdmcl0 ターミナルに何か表示しようとしてんでしょ?
781デフォルトの名無しさん ころころ (ワッチョイ 4e63-sC7m)
2024/05/24(金) 17:38:30.02ID:eLGTNdu60 >ターミナルの画面が真っ白になる
プログラムの動作結果でこういう現象は起きるものなのか?
動作環境はなんだろう。
プログラムの動作結果でこういう現象は起きるものなのか?
動作環境はなんだろう。
782デフォルトの名無しさん (ワッチョイ b663-igBi)
2024/05/24(金) 17:55:30.30ID:IzCZdmcl0 とうせバイナリ表示してansiエスケープになってんだろ
783デフォルトの名無しさん (ワッチョイ 0ec0-9va7)
2024/05/25(土) 14:22:00.60ID:A9XEYyvw0 その二分探索のアルゴリズムもバグってそう
784デフォルトの名無しさん (スフッ Sdba-4PJT)
2024/05/25(土) 16:09:02.78ID:CiUgnilLd >>778ですけど、ネットで知り合った外国人なので、詳しい開発環境やら聞いているんですが、返信がないんですよ。きっと半狂乱になって格闘してますよ
785デフォルトの名無しさん (ワッチョイ 7fbb-aMer)
2024/05/25(土) 19:26:28.84ID:3gPIs41E0 端末の色が白色に設定してあるというオチも
787デフォルトの名無しさん (ワッチョイ 512a-fxxY)
2024/05/26(日) 07:40:51.55ID:zlKwgYkF0 英語に自信のある猛者がスターキャットやスタジオヘッダーと言っているスレなのか。
788デフォルトの名無しさん (スププ Sdb3-GD45)
2024/05/26(日) 08:06:44.89ID:ltnJV6ivd789デフォルトの名無しさん (ワッチョイ 09bb-eTTT)
2024/05/26(日) 08:40:30.71ID:6V/Qyiv50 find
↑
発音は?
↑
発音は?
790デフォルトの名無しさん (ワッチョイ f101-Av8/)
2024/05/28(火) 11:54:56.78ID:m/TaCjt00 もう他所でやれよ
791デフォルトの名無しさん (ワッチョイ 09bb-eTTT)
2024/05/29(水) 00:05:52.98ID:KvRstwV+0 そりゃネットで知り合ったやつにパソコンの情報教えるってリスキーだからな
聞いてるお前もリテラシーないよ
聞いてるお前もリテラシーないよ
792デフォルトの名無しさん (ワッチョイ 2b63-Av8/)
2024/05/29(水) 00:39:11.03ID:KkrhLjkN0 情報経って、個人情報ではないぞ
リスキーなら、そもそもそんな話をネットで言うなよ
リスキーなら、そもそもそんな話をネットで言うなよ
793デフォルトの名無しさん (ワッチョイ 9379-iN9L)
2024/05/29(水) 14:08:03.71ID:uKjwQH9U0 このスレ老人の集いみたいなとこあるからな
実名住所晒してたインターネット黎明期までのリテラシーしかないんだろ
実名住所晒してたインターネット黎明期までのリテラシーしかないんだろ
794デフォルトの名無しさん (ワッチョイ 2b63-Av8/)
2024/05/29(水) 15:53:47.09ID:KkrhLjkN0 ここはAIちゃんの会話練習用スレです
795ななし 警備員[Lv.1][新芽] (ワッチョイ 4b63-CyIU)
2024/05/29(水) 20:45:52.14ID:/PhbAFJr0 質問です。
現在書籍の方の苦CでC言語の基礎を勉強しているのですが、なかなか基礎が身についた感じがしません。
どのように勉強すれば、C言語の基礎が身につけられるのでしょうか?
現在書籍の方の苦CでC言語の基礎を勉強しているのですが、なかなか基礎が身についた感じがしません。
どのように勉強すれば、C言語の基礎が身につけられるのでしょうか?
796デフォルトの名無しさん (ワッチョイ 9379-iN9L)
2024/05/29(水) 20:54:03.33ID:uKjwQH9U0 今更C言語を勉強する意味について、俯瞰的な視点で考える必要がある
さてあなたはどこで道を間違えたのだろうか
さてあなたはどこで道を間違えたのだろうか
797デフォルトの名無しさん (ワッチョイ 2b63-Av8/)
2024/05/29(水) 21:03:36.99ID:KkrhLjkN0 昔恋しい下町の 夢が花咲くC言語
よってらっしゃい よってらっしゃいお兄さん
よってらっしゃい よってらっしゃいお兄さん
798デフォルトの名無しさん (ワッチョイ 094b-n4gp)
2024/05/29(水) 21:57:23.97ID:Z07E+OMI0 組み込みやれ
Cの真価はそこだ
Cの真価はそこだ
799デフォルトの名無しさん (JP 0H4b-eTTT)
2024/05/29(水) 22:14:14.46ID:HC6Aa1bCH800ななし 警備員[Lv.4][新芽] (ワッチョイ 4b63-CyIU)
2024/05/29(水) 22:31:32.45ID:/PhbAFJr0801ななし 警備員[Lv.4][新芽] (ワッチョイ 4b63-CyIU)
2024/05/29(水) 22:34:33.30ID:/PhbAFJr0802デフォルトの名無しさん (ワッチョイ db3f-eTTT)
2024/05/29(水) 22:49:52.71ID:JqzIQ6A/0 まさにその通りで、勉強するものでなく、練習するものだと思います
まぁ、学問全体そういうものかもしれませんが
まぁ、学問全体そういうものかもしれませんが
804はちみつ餃子 ◆8X2XSCHEME (ワッチョイ d932-GaOn)
2024/05/29(水) 23:06:02.35ID:5eQ7ob620 身に付くまでやれば身に付くという話だわな。
技能を身に付けている人は自分なりに小さなコツをたくさん発見したりはしてるかもしれんけど
この通りやれば簡単に身に付く!みたいな道筋をたどってるわけではない。
たくさんの本やコードを読んでたくさん書いてみるしか仕方ない。
技能を身に付けている人は自分なりに小さなコツをたくさん発見したりはしてるかもしれんけど
この通りやれば簡単に身に付く!みたいな道筋をたどってるわけではない。
たくさんの本やコードを読んでたくさん書いてみるしか仕方ない。
805デフォルトの名無しさん (ワッチョイ 2b63-Av8/)
2024/05/29(水) 23:18:35.14ID:KkrhLjkN0 意外と覚えるのは、間違えて、その間違いを見つけたとき
だから、数多く間違える事はとっても大事
だから、数多く間違える事はとっても大事
806デフォルトの名無しさん (ワッチョイ 01f0-PhlP)
2024/05/30(木) 01:22:37.42ID:OugzA8kD0 つーかなんか作れよ
でないと身につく訳ねーじゃん
何で本ばっか読んでるんだ
でないと身につく訳ねーじゃん
何で本ばっか読んでるんだ
807はちみつ餃子 ◆8X2XSCHEME (ワッチョイ d932-GaOn)
2024/05/30(木) 02:13:12.47ID:J7hltZvZ0 C は間違ったコードを書いてもエラーとして検出されない (そしてわけのわからんことになる) ことがよくあるから
あまり極端に知識が不足する状態でいきなりコードを書き始めるというのは良くないと思うが、
ある程度に知識を入れたら自分で考えて書かんと身につかんというのは確かにそう。
たとえばこうやって日本語の文章を書くときに日本語の文法を意識しないでしょ。
言語は当たり前のように使えるスタートラインなのでそこでいちいち考えない。
(引っかかりを感じて仕様を確認することもそれなりにはあるけど。)
考えなくてもスッと出てくる程度に身に付けるには実際に使って訓練するしかない。
あまり極端に知識が不足する状態でいきなりコードを書き始めるというのは良くないと思うが、
ある程度に知識を入れたら自分で考えて書かんと身につかんというのは確かにそう。
たとえばこうやって日本語の文章を書くときに日本語の文法を意識しないでしょ。
言語は当たり前のように使えるスタートラインなのでそこでいちいち考えない。
(引っかかりを感じて仕様を確認することもそれなりにはあるけど。)
考えなくてもスッと出てくる程度に身に付けるには実際に使って訓練するしかない。
808デフォルトの名無しさん (ワッチョイ f96e-RNf/)
2024/05/30(木) 02:50:33.66ID:/D+F+QEs0 Cでなんか作れって拷問かな
809デフォルトの名無しさん (ブーイモ MMb3-UQA7)
2024/05/30(木) 10:28:25.36ID:lHGDlsvcM 言語を学ぶことが目的になってるやつは伸びない
810デフォルトの名無しさん (ワッチョイ 2b63-Av8/)
2024/05/30(木) 10:41:24.14ID:w2JON48l0 どうしたら伸びるか、その道を示してやれ
811デフォルトの名無しさん (ワッチョイ 936b-RNf/)
2024/05/30(木) 11:22:03.54ID:wErc8vLa0 Aiに聞きながら作る
アホな俺でもjaascriptでたくさんスクリプト作れるようになったぞ
アホな俺でもjaascriptでたくさんスクリプト作れるようになったぞ
812デフォルトの名無しさん (ワッチョイ 492a-E0dj)
2024/05/30(木) 11:30:32.09ID:7kQSV4uh0 枝ぶりの良い木に紐をかけ、首でぶら下がると、背が伸びるとか。
昔は、誰かの思いついた最強の仕様書に苦しむと、背を伸ばしたそう。
昔は、誰かの思いついた最強の仕様書に苦しむと、背を伸ばしたそう。
813デフォルトの名無しさん (ワッチョイ 5110-RNf/)
2024/05/30(木) 12:22:02.95ID:zKWN4QJA0 やりたいことがあって、その手段としてC言語を選んで学んだので。
けど今の環境だと手段が山ほどあるからCでなきゃいけないって理由が無いとすぐグダりそう・・・。
けど今の環境だと手段が山ほどあるからCでなきゃいけないって理由が無いとすぐグダりそう・・・。
814デフォルトの名無しさん (ワッチョイ a1cd-kizQ)
2024/05/31(金) 00:27:30.25ID:PLb0hov90 >>795
>書籍の苦Cで、C言語の基礎を勉強しているのですが
この本はやってみた系の本でしょ。
学ぶ内容が薄い
Ruby の女神・池澤あやかが言ってるけど、
大学のC の授業は、99% 挫折する。
Ruby on Rails みたいに、すぐウェブアプリ・データベースが動かないでしょ。
正常に動くまでに、ポインターで数年以上無駄にする
だから初心者はRails一択。
筑波大学も使っている、Railsチュートリアルのサイトで、
古いバージョンのRails 5 なら、無料で読める
まずこれでウェブアプリの作り方や必要な技術を学ぶ。
まずアプリの最終形を知っておく事が大事
文法やポインターが難しいCなどは、
アプリの作り方を知っている香具師がやるべきもの。
初心者じゃ、数年経ってもアプリを作る所までたどり着けないから。
だから挫折率99%
プログラミング学習は難しくて無駄だったという印象だけが残る。
機械語・アセンブリがそう。
こういう機械的な事を人間が学んでも無駄でしょ
>書籍の苦Cで、C言語の基礎を勉強しているのですが
この本はやってみた系の本でしょ。
学ぶ内容が薄い
Ruby の女神・池澤あやかが言ってるけど、
大学のC の授業は、99% 挫折する。
Ruby on Rails みたいに、すぐウェブアプリ・データベースが動かないでしょ。
正常に動くまでに、ポインターで数年以上無駄にする
だから初心者はRails一択。
筑波大学も使っている、Railsチュートリアルのサイトで、
古いバージョンのRails 5 なら、無料で読める
まずこれでウェブアプリの作り方や必要な技術を学ぶ。
まずアプリの最終形を知っておく事が大事
文法やポインターが難しいCなどは、
アプリの作り方を知っている香具師がやるべきもの。
初心者じゃ、数年経ってもアプリを作る所までたどり着けないから。
だから挫折率99%
プログラミング学習は難しくて無駄だったという印象だけが残る。
機械語・アセンブリがそう。
こういう機械的な事を人間が学んでも無駄でしょ
815デフォルトの名無しさん (ワッチョイ d1d8-eTTT)
2024/05/31(金) 02:40:41.83ID:jm23ZiA70 プログラミングは文学じゃないからw
機械と会話するのがプログラミング
何を馬鹿な事言ってんだと思うかもしれないが、それは先人が道を切り開いたから、ただ歩くだけで済んでる
で、そういう奴に限ってローコードやノーコードを馬鹿にすんだよなw
いや、行き着く先はそこだから
でも、悲観することは無い
本物のプログラマーはそのシステムを作る側になれるから
機械と会話するのがプログラミング
何を馬鹿な事言ってんだと思うかもしれないが、それは先人が道を切り開いたから、ただ歩くだけで済んでる
で、そういう奴に限ってローコードやノーコードを馬鹿にすんだよなw
いや、行き着く先はそこだから
でも、悲観することは無い
本物のプログラマーはそのシステムを作る側になれるから
816デフォルトの名無しさん (スフッ Sdb3-n4gp)
2024/05/31(金) 03:43:04.73ID:V0zCAM7Od キチガイに便乗するのは嫌だけど初心者にいきなりCはあかんやろ…
817デフォルトの名無しさん (ワッチョイ 5b2b-UQA7)
2024/05/31(金) 06:46:32.54ID:6wDcHk690 Cが難しいっては勘違い
むしろ単純だろ
むしろ単純だろ
818ななし 警備員[Lv.6][芽] (ワッチョイ 4bcc-CyIU)
2024/05/31(金) 07:43:01.19ID:dWGmqWrZ0 >>802
ID:PhbAFJr0です。
お返事ありがとうございます。
分かりました。とりあえず、まずは練習問題を繰り返しやってみようと思います。
アルゴリズムとデータ構造のコードについてはネットで調べてみたところ少し興味を持ったので、練習問題が完璧になってきたタイミングで取り組んでみます。
ありがとうございました。
ID:PhbAFJr0です。
お返事ありがとうございます。
分かりました。とりあえず、まずは練習問題を繰り返しやってみようと思います。
アルゴリズムとデータ構造のコードについてはネットで調べてみたところ少し興味を持ったので、練習問題が完璧になってきたタイミングで取り組んでみます。
ありがとうございました。
819ななし 警備員[Lv.6][芽] (ワッチョイ 4bcc-CyIU)
2024/05/31(金) 07:52:13.12ID:dWGmqWrZ0 >>814
お返事ありがとうございます。
苦Cはやってみた系なのでしょうか?
一応ネットで調べてみたところ入門書であると書かれていたため、自分には丁度良いかなと思っていたのですが。
Railsについてはよくわからないので調べてみます。
ありがとうございます。
お返事ありがとうございます。
苦Cはやってみた系なのでしょうか?
一応ネットで調べてみたところ入門書であると書かれていたため、自分には丁度良いかなと思っていたのですが。
Railsについてはよくわからないので調べてみます。
ありがとうございます。
820はちみつ餃子 ◆8X2XSCHEME (ワッチョイ d932-GaOn)
2024/05/31(金) 13:12:45.97ID:iuwMWJfd0 >>819
「苦しんで覚えるC言語」は仕様の細部を積み上げて理解しようとする本。
十分に解説しきれているかどうかはともかくコンセプトとしてはそういう感じ。
「やってみよう」タイプの本ではなく、プログラミングを始めるまでが長いところが苦しいんだ。
苦しい分だけ深い理解はできる。
よくある「簡単にわかる」系の本に対するアンチテーゼだと思う。
実践は実践してみりゃいいんだから本は理屈で支えるべきと私は考えていて、
その点からは好ましい入門書だと思う。
でも読むだけでは出来るようにはならない。
「苦しんで覚えるC言語」は仕様の細部を積み上げて理解しようとする本。
十分に解説しきれているかどうかはともかくコンセプトとしてはそういう感じ。
「やってみよう」タイプの本ではなく、プログラミングを始めるまでが長いところが苦しいんだ。
苦しい分だけ深い理解はできる。
よくある「簡単にわかる」系の本に対するアンチテーゼだと思う。
実践は実践してみりゃいいんだから本は理屈で支えるべきと私は考えていて、
その点からは好ましい入門書だと思う。
でも読むだけでは出来るようにはならない。
821デフォルトの名無しさん (ワッチョイ 93ac-i9sQ)
2024/05/31(金) 13:17:09.19ID:p06zXet70 厳しいことをいうと、Cで嫌悪してるなら、業界に向いてないから
822デフォルトの名無しさん (ブーイモ MMb3-UQA7)
2024/05/31(金) 13:45:00.76ID:Pm+5ZvF0M 練習問題を繰り返す意味がわからんな
プログラム言語なんて所詮レゴブロックみたいなもん
ルール覚えたら後は自分で何作るかだろ
プログラム言語なんて所詮レゴブロックみたいなもん
ルール覚えたら後は自分で何作るかだろ
824デフォルトの名無しさん (ワッチョイ 49ff-eTTT)
2024/05/31(金) 15:20:39.69ID:lylFHNFS0 Cはマニュアルトランスミッションと言える
今はスポーツカーですらオートマで運転出来るが、Cを知らないというのは、プロのレーサーがオートマしか扱えないと言ってるに等しい
オートマ限定の自称プロがコードを書いてるのが現状
今はスポーツカーですらオートマで運転出来るが、Cを知らないというのは、プロのレーサーがオートマしか扱えないと言ってるに等しい
オートマ限定の自称プロがコードを書いてるのが現状
825デフォルトの名無しさん (ワッチョイ 2bd6-+Suw)
2024/05/31(金) 15:40:53.12ID:QxMPM6Rv0 組み込みおじさんが真のプロというわけでもないし
826デフォルトの名無しさん (ブーイモ MMb3-UQA7)
2024/05/31(金) 15:45:23.86ID:s7aJNLVjM 解きたい問題に対して適切な言語選ぶだけの話
cはマニュアル車とか的はずれ
cはマニュアル車とか的はずれ
827デフォルトの名無しさん (スフッ Sdb3-n4gp)
2024/05/31(金) 16:15:34.28ID:W3K/8bzed マニュアル車は的外れだと思うけど、コンピューターでメシ食おうとしてる人間がCと言うかコンピューターの仕組み知らないのはどうなんだ
828デフォルトの名無しさん (ワッチョイ 512a-fxxY)
2024/05/31(金) 16:16:04.56ID:yeMi3AXu0 そう、Cは暴走するから寧ろAT車。
829デフォルトの名無しさん (ブーイモ MMb3-UQA7)
2024/05/31(金) 16:48:18.35ID:s7aJNLVjM830デフォルトの名無しさん (スフッ Sdb3-n4gp)
2024/05/31(金) 17:06:33.21ID:W3K/8bzed 別にCPUやらOSやら設計できるレベルの知識持てとは言わんけどポインタ理解できないのでC使えませんとか言うレベルの人に仕事任せたいとは思えん
831デフォルトの名無しさん (ワッチョイ 93ad-c1Pw)
2024/05/31(金) 17:16:19.12ID:+h6xorGU0 本題と関係のないところで評価してしまうのは日本人の悪いところだな
832デフォルトの名無しさん (ワッチョイ f101-Av8/)
2024/05/31(金) 20:08:51.76ID:C645u0p+0 言語としてCがシンプルで学びやすいと思うけどなあ
833デフォルトの名無しさん (スッップ Sdb3-rJcT)
2024/05/31(金) 20:17:02.02ID:lobthN5Hd 流行りのPythonやJavAでも良いけどさ
Cのイロハくらいは理解しておいた方が良いよな
色んな言語のベースになってるし
何よりメモリアドレスやらの理解が深まる
Cのイロハくらいは理解しておいた方が良いよな
色んな言語のベースになってるし
何よりメモリアドレスやらの理解が深まる
834デフォルトの名無しさん (ササクッテロラ Sp8d-5cHB)
2024/05/31(金) 20:52:38.82ID:9XRoqY5Up Cは純粋にコンピュータの知識でイケるけど
最近流行りの高級言語は余計な概念まで覚える必要があるからなぁ
最近流行りの高級言語は余計な概念まで覚える必要があるからなぁ
835デフォルトの名無しさん (ワッチョイ 9379-iN9L)
2024/05/31(金) 21:40:32.37ID:TouRjKKE0 >JavA
なんかかっけー言語来た
なんかかっけー言語来た
836デフォルトの名無しさん (ワッチョイ d907-eTTT)
2024/05/31(金) 22:26:34.52ID:LsNESqr60 Cがマニュアルというのは的外れ言ってんのは知ったか野郎だろ
Javaや比較的Cに近いGoと根本的に違うのはメモリ管理だろ
Cはオブジェクト指向をサポートしてないからそれは除外するとして、それ以外の違いはメモリ管理って事
手動でするか自動(ガベージコレクション)でするかの違い
手動ですれば効率が良くなる所も同じだ
Javaや比較的Cに近いGoと根本的に違うのはメモリ管理だろ
Cはオブジェクト指向をサポートしてないからそれは除外するとして、それ以外の違いはメモリ管理って事
手動でするか自動(ガベージコレクション)でするかの違い
手動ですれば効率が良くなる所も同じだ
837デフォルトの名無しさん (JP 0H4b-eTTT)
2024/06/01(土) 01:04:12.97ID:2QHa2LtDH838デフォルトの名無しさん (ワッチョイ 5b5f-mLF1)
2024/06/01(土) 01:29:42.17ID:WXUcJNXk0 gccで、今風のアトミックな変数処理って何を使うの?
テストアンドセットとかインクリメントとか
テストアンドセットとかインクリメントとか
839デフォルトの名無しさん (ワッチョイ 2b63-Av8/)
2024/06/01(土) 01:31:27.49ID:DQg5mZM+0 若葉マークというか、枯れ葉マークというか・・・
840はちみつ餃子 ◆8X2XSCHEME (ワッチョイ d932-GaOn)
2024/06/01(土) 03:47:15.85ID:Pz0ykI9j0 >>838
C11 以降には _Atomic キーワードがあって型指定子もしくは型修飾子として使える。
stdatomic.h には関連した型やら関数やらがある。
仕様としてはオプショナルなので提供していない処理系はあるが GCC はサポートしてる。
実体を辿るとビルトイン関数だからそれを直接使ってもいいけど
言語仕様にある範囲で書けるならそのほうが現代的なんじゃないかな。
C11 以降には _Atomic キーワードがあって型指定子もしくは型修飾子として使える。
stdatomic.h には関連した型やら関数やらがある。
仕様としてはオプショナルなので提供していない処理系はあるが GCC はサポートしてる。
実体を辿るとビルトイン関数だからそれを直接使ってもいいけど
言語仕様にある範囲で書けるならそのほうが現代的なんじゃないかな。
841デフォルトの名無しさん (ワッチョイ ab0c-/tnW)
2024/06/01(土) 05:42:34.76ID:GcLNDseM0 >>809
プログラマ最上階級の形式言語屋は言語を学ぶ事自体が目的だけどめっちゃ伸びるだろ
プログラマ最上階級の形式言語屋は言語を学ぶ事自体が目的だけどめっちゃ伸びるだろ
842814 (ワッチョイ d99c-kizQ)
2024/06/01(土) 08:50:39.21ID:EbWIxJBI0 >>818
アルゴリズムとデータ構造とか、
プログラミングのお題スレの問題などは、
それこそRuby で学ぶ・作るべき
ガベージコレクションがあるから、ポインターでメモリの事を考えなくてよい。
C/C++, Rust など、メモリを特別に扱う言語は、
仕事で給料をもらいながら仕方なくやるもの
趣味でやるものじゃない。時間の無駄。
特に初心者には言語の文法よりも、
アプリを作る時に、どういう手順・技術が必要なのかとか、全体像が大切。
細部を勉強しても、その言語の仕事をやらなければ意味ないから
全てのシステム・アプリに共通する事を勉強する方が、知識を転用できる。
それがRuby on Rails。
最も有名な基礎となるフレームワーク
ループ処理であるEnumerable の所を見れば、どういう感じでアルゴリズムを書くか分かる
アルゴリズムとデータ構造とか、
プログラミングのお題スレの問題などは、
それこそRuby で学ぶ・作るべき
ガベージコレクションがあるから、ポインターでメモリの事を考えなくてよい。
C/C++, Rust など、メモリを特別に扱う言語は、
仕事で給料をもらいながら仕方なくやるもの
趣味でやるものじゃない。時間の無駄。
特に初心者には言語の文法よりも、
アプリを作る時に、どういう手順・技術が必要なのかとか、全体像が大切。
細部を勉強しても、その言語の仕事をやらなければ意味ないから
全てのシステム・アプリに共通する事を勉強する方が、知識を転用できる。
それがRuby on Rails。
最も有名な基礎となるフレームワーク
ループ処理であるEnumerable の所を見れば、どういう感じでアルゴリズムを書くか分かる
843ななし 警備員[Lv.7][芽] (ワッチョイ d68e-Nly0)
2024/06/02(日) 10:36:51.32ID:/kmCAD/j0 >>842
お返事ありがとうございます。
ID:dWGmqWr20です。
現在はC言語をやっているのですが、いずれC++をやりたいと思っているのでRubyは興味が持てたら試してみたいと思います。
ありがとうございます。
お返事ありがとうございます。
ID:dWGmqWr20です。
現在はC言語をやっているのですが、いずれC++をやりたいと思っているのでRubyは興味が持てたら試してみたいと思います。
ありがとうございます。
845デフォルトの名無しさん (ワッチョイ 4a8e-xpns)
2024/06/02(日) 22:54:32.70ID:0MnNF0Gg0 そんなこともわからない>>843はダメだな
846はちみつ餃子 ◆8X2XSCHEME (ワッチョイ a932-zlCG)
2024/06/03(月) 00:48:58.09ID:oYPTQzXH0 Ruby の構文解析器が巨大なのは有名な話だろう。
素朴な C コンパイラの三倍くらいの大きさはある。
それだけ複雑な文法ということだ。
Ruby が言語の細部を学ばずに扱えるものであるかのような意見に対しては受け入れがたい。
メモリ管理については (入門者が) 後回しにするというのはそれなりに納得のいく意見だけれど。
人によっては元々の感性に上手くはまれば少しばかり複雑でも楽に自然に使えることもあるし、
Ruby が多くの人にそうなのかもしれないけど客観的には比較的複雑な文法を持ってるよ。
そういった合うかどうかを脇に置けば理解の助けになるのは単純に知識の分量で、
分量に圧倒されずに学習し続けるのはモチベーションによるところが大きい。
やりたいことやりなよ。
素朴な C コンパイラの三倍くらいの大きさはある。
それだけ複雑な文法ということだ。
Ruby が言語の細部を学ばずに扱えるものであるかのような意見に対しては受け入れがたい。
メモリ管理については (入門者が) 後回しにするというのはそれなりに納得のいく意見だけれど。
人によっては元々の感性に上手くはまれば少しばかり複雑でも楽に自然に使えることもあるし、
Ruby が多くの人にそうなのかもしれないけど客観的には比較的複雑な文法を持ってるよ。
そういった合うかどうかを脇に置けば理解の助けになるのは単純に知識の分量で、
分量に圧倒されずに学習し続けるのはモチベーションによるところが大きい。
やりたいことやりなよ。
847デフォルトの名無しさん (ワッチョイ 8663-l7CW)
2024/06/03(月) 01:38:36.16ID:aE7W3wBo0 プログラム板で一番嫌われているのが Ruby
その理由をよく考えてから人に勧めて下さい
その理由をよく考えてから人に勧めて下さい
848デフォルトの名無しさん (ワッチョイ feae-FHn0)
2024/06/03(月) 02:06:18.02ID:q/07Ajy70 Matzは言語オタクかもしれんがCSの教養が感じられない
だいたいPerlの命名真似てRubyとか発想がクソダサい
だいたいPerlの命名真似てRubyとか発想がクソダサい
849デフォルトの名無しさん (ワッチョイ 152a-fUCz)
2024/06/03(月) 03:07:28.76ID:oHlmHzRo0 だいたいBの命名真似てCとか発想がクソダサい
850デフォルトの名無しさん (ワッチョイ d561-4CLV)
2024/06/03(月) 11:50:29.84ID:21u+58W30 そりゃ、Ruby はオブジェクト指向でクラスもある。
だから、クラスを派生させるだけで、シンプルに書ける。
つまり、コンパイラが頑張っているから、開発者は簡単に書ける
C では、そんな短時間で動くアプリは作れない。
開発時間のほとんどが、ポインターとメモリ確保・解放でバグる言語
既に、慶応卒のRubyの女神・池澤あやかが言ってる。
大学でのCの授業は、99% 挫折すると
授業料を損した挙句、プログラミングが嫌いになるだけ。
授業を受けた生徒が言ってる
結局、彼女は山陰地方の合宿で、Ruby on Rails を学んだ。
筑波大学もRails チュートリアルを使っている
だから、クラスを派生させるだけで、シンプルに書ける。
つまり、コンパイラが頑張っているから、開発者は簡単に書ける
C では、そんな短時間で動くアプリは作れない。
開発時間のほとんどが、ポインターとメモリ確保・解放でバグる言語
既に、慶応卒のRubyの女神・池澤あやかが言ってる。
大学でのCの授業は、99% 挫折すると
授業料を損した挙句、プログラミングが嫌いになるだけ。
授業を受けた生徒が言ってる
結局、彼女は山陰地方の合宿で、Ruby on Rails を学んだ。
筑波大学もRails チュートリアルを使っている
851デフォルトの名無しさん (ワッチョイ 1510-L6jh)
2024/06/03(月) 12:02:04.60ID:P8rXJxjs0 95年あたりに大学の情報工学科入ったら
Pascal、C言語、Fortranの授業が必須科目だったわ。
OSはDOS(Win3.1インストール済み)とUnixだった。
Pascal、C言語、Fortranの授業が必須科目だったわ。
OSはDOS(Win3.1インストール済み)とUnixだった。
852デフォルトの名無しさん (ワッチョイ dd15-hn0t)
2024/06/03(月) 12:03:10.35ID:Ffe49uvh0 Cでコード書くと必ずバグると思ってるアホw
853デフォルトの名無しさん (ワッチョイ dd15-hn0t)
2024/06/03(月) 12:16:52.25ID:Ffe49uvh0 ちなみにRubyはほとんどCで書かれてるぞ
だとするとRubyはバグだらけってことだなw
だとするとRubyはバグだらけってことだなw
854デフォルトの名無しさん (ワッチョイ dd15-hn0t)
2024/06/03(月) 12:19:23.85ID:Ffe49uvh0 そんなにメモリを管理したくなければ、Boehm GC使えば良いだろ
malloc→GC_MALLOCに置き換えるだけ
RubyもGCを使ってるからCで書いてるコードにメモリを管理するコードはほとんど無い
malloc→GC_MALLOCに置き換えるだけ
RubyもGCを使ってるからCで書いてるコードにメモリを管理するコードはほとんど無い
855デフォルトの名無しさん (ワッチョイ 4aaa-VD3x)
2024/06/03(月) 12:45:46.35ID:qNgYNwPE0 RUBYならRustを選ぶけどなぁ
856デフォルトの名無しさん (ブーイモ MMde-FHn0)
2024/06/03(月) 13:56:08.03ID:SdyTtN0bM >>849
B言語とC言語は誰が作ったか調べろよアホ
B言語とC言語は誰が作ったか調べろよアホ
857デフォルトの名無しさん (ワッチョイ 8663-l7CW)
2024/06/03(月) 14:08:20.29ID:aE7W3wBo0858デフォルトの名無しさん (ワッチョイ dd15-hn0t)
2024/06/03(月) 14:18:14.33ID:Ffe49uvh0 >>849
D言語の悪口はそこまでだw
D言語の悪口はそこまでだw
859デフォルトの名無しさん (ワッチョイ caad-6Hk5)
2024/06/03(月) 15:25:13.77ID:yy1qDNYs0860デフォルトの名無しさん (ワッチョイ 4a8e-xpns)
2024/06/03(月) 15:59:23.98ID:3hY3UrlC0 結論
終わったRuby関わってはいけない
終わったRuby関わってはいけない
861デフォルトの名無しさん (ワッチョイ 8663-l7CW)
2024/06/03(月) 16:06:27.33ID:aE7W3wBo0 数百行程度のC言語プログラムだと、いきなり書き始めることがあって
書いてる途中で、「あ、いけね、これも」って直しが入ったりしていた
そうすると、エリア不足でメモリ破壊したり、初期化忘れで値が不正になったり
それはそれで楽しかったな
書いてる途中で、「あ、いけね、これも」って直しが入ったりしていた
そうすると、エリア不足でメモリ破壊したり、初期化忘れで値が不正になったり
それはそれで楽しかったな
862デフォルトの名無しさん (ワッチョイ 21b3-biI/)
2024/06/03(月) 17:08:27.38ID:X5avmCbk0 Cは人類には早すぎた
863デフォルトの名無しさん (ワッチョイ 8663-l7CW)
2024/06/03(月) 17:13:07.33ID:aE7W3wBo0 モノリス君、100万年ぶりだね
865デフォルトの名無しさん (ワッチョイ 2949-VD3x)
2024/06/03(月) 19:24:53.57ID:I+TVoXo/0866デフォルトの名無しさん (ワッチョイ caad-6Hk5)
2024/06/03(月) 19:39:47.69ID:yy1qDNYs0 はじめての C
867デフォルトの名無しさん (ワッチョイ 8663-l7CW)
2024/06/03(月) 19:46:48.96ID:aE7W3wBo0 初めてのCは、どうだった?
868デフォルトの名無しさん (ワッチョイ c12a-+5RJ)
2024/06/03(月) 22:01:50.99ID:uc7P5jee0 C調言語に御用心
869デフォルトの名無しさん (US 0Hb2-giKA)
2024/06/04(火) 04:27:20.80ID:x3r0yQzfH C言語上のアリア
870デフォルトの名無しさん (ワッチョイ 9d4d-HpFF)
2024/06/04(火) 07:48:30.99ID:YQQ4Gdo/0 かきを最新AIに重箱の隅をつつく用意尋ねましょう
全ての電磁波は強い低周波も高周波も被爆する?
電磁かいが強い場所は20Hzと55Hzは磁気閃光これも被爆している.?
音波も強い場合は被爆する?
※自然界の化学科学の観測結果論文と人間の人工物で可能な化学と科学論文を読み込ませておく
是者と校舎を別々で回答する用意する
さらに制度を挙げるなら
グレーゾーンの論文をできるともいえるしできないともいえる用意認識させる
現在の科学が正しいのならなら電磁波攻撃はこのグレーゾーンの論文を使用しているので逃亡できている?
統合失調症電磁は音波なら周囲の者被爆している!?
寿命が短いのと免疫力低下起きて当然
全ての電磁波は強い低周波も高周波も被爆する?
電磁かいが強い場所は20Hzと55Hzは磁気閃光これも被爆している.?
音波も強い場合は被爆する?
※自然界の化学科学の観測結果論文と人間の人工物で可能な化学と科学論文を読み込ませておく
是者と校舎を別々で回答する用意する
さらに制度を挙げるなら
グレーゾーンの論文をできるともいえるしできないともいえる用意認識させる
現在の科学が正しいのならなら電磁波攻撃はこのグレーゾーンの論文を使用しているので逃亡できている?
統合失調症電磁は音波なら周囲の者被爆している!?
寿命が短いのと免疫力低下起きて当然
871デフォルトの名無しさん (ワッチョイ 4a65-HpFF)
2024/06/04(火) 20:02:38.17ID:JvLx0o4/0 GPT4-Vの100分の1のサイズで同等の性能を誇るマルチモーダルモデル「Llama 3-V」が登場、トレーニング費用はたった8万円
2024年05月29日 14時00分
OpenAIがサム・アルトマンCEOを含む「安全・セキュリティ委員会」を設置、さらにGPT-4後継モデルのトレーニングを開始
2024年05月29日
「毒杯飲む直前どんな気持ちだった?」ソクラテスと対話できるAIを開発!
2024.06.04
※対象者【被害者】そっくりの返答が可能
たった数秒の音声データから音声合成が可能な「VoiceCraft」
2024年04月16日 07時00分
OpenAIがわずか15秒の音声からクローン音声を生成できるAIモデル「Voice Engine」をリリース
2024年04月01日
会話相手を数秒見つめて声を登録するだけでその人の声だけを聞くことができるAIヘッドホンシステムが開発される
2024年05月30日
※対象者の声を個別に録音
2024年05月29日 14時00分
OpenAIがサム・アルトマンCEOを含む「安全・セキュリティ委員会」を設置、さらにGPT-4後継モデルのトレーニングを開始
2024年05月29日
「毒杯飲む直前どんな気持ちだった?」ソクラテスと対話できるAIを開発!
2024.06.04
※対象者【被害者】そっくりの返答が可能
たった数秒の音声データから音声合成が可能な「VoiceCraft」
2024年04月16日 07時00分
OpenAIがわずか15秒の音声からクローン音声を生成できるAIモデル「Voice Engine」をリリース
2024年04月01日
会話相手を数秒見つめて声を登録するだけでその人の声だけを聞くことができるAIヘッドホンシステムが開発される
2024年05月30日
※対象者の声を個別に録音
872デフォルトの名無しさん (スプッッ Sdca-RTzL)
2024/06/07(金) 12:13:02.56ID:UxfjOjokd873デフォルトの名無しさん (ワッチョイ 152a-+5RJ)
2024/06/07(金) 12:43:37.59ID:q6BY+Kco0 C-- (マイナス) ってあるのかな? とググると、あった。
ttps://github.com/tctsigemura/C--
C-1.0 (マイナス1.0) は当たらなかった。
ttps://github.com/tctsigemura/C--
C-1.0 (マイナス1.0) は当たらなかった。
874デフォルトの名無しさん (ワッチョイ 4a01-HpFF)
2024/06/07(金) 12:50:45.39ID:tQZH7Tnk0 グーグル、資料のわからないところを最新AIに質問できる「NotebookLM」日本版公開
https://ascii.jp/elem/000/004/202/4202481/
https://ascii.jp/elem/000/004/202/4202481/
875デフォルトの名無しさん (ワッチョイ 6acd-V++I)
2024/06/07(金) 21:47:45.33ID:8MnTJRoZ0 >>873
B言語を知らないのか?
B言語を知らないのか?
876デフォルトの名無しさん (ササクッテロル Sped-0SzS)
2024/06/07(金) 21:49:19.50ID:hKLycayJp コンピュータ言語はAから始まったからなぁ
877デフォルトの名無しさん (ササクッテロル Sped-0SzS)
2024/06/07(金) 21:49:19.50ID:hKLycayJp コンピュータ言語はAから始まったからなぁ
878デフォルトの名無しさん (ワッチョイ 6acd-V++I)
2024/06/07(金) 22:05:21.69ID:8MnTJRoZ0 48歳だが、いまだにAも経験したことがない。
879デフォルトの名無しさん (ワッチョイ 8663-l7CW)
2024/06/07(金) 22:27:33.19ID:0mzvmJ6U0 人生色々、プログラマも色々
880デフォルトの名無しさん (ワッチョイ 6acd-V++I)
2024/06/07(金) 22:35:00.49ID:8MnTJRoZ0 >>879
小泉進次郎はセクシー
小泉進次郎はセクシー
881デフォルトの名無しさん (ワッチョイ 29c6-hn0t)
2024/06/08(土) 00:52:43.66ID:tLyyH4Tg0 >>878
Aは母ちゃんが最初だろw
Aは母ちゃんが最初だろw
882デフォルトの名無しさん (アウアウエー Sab2-JqXl)
2024/06/08(土) 09:20:14.39ID:Kcr3cAzIa D:ぼくを忘れないで
883デフォルトの名無しさん (ワッチョイ 4a88-HpFF)
2024/06/08(土) 10:46:58.37ID:TRqvICLK0 「毒杯飲む直前どんな気持ちだった?」ソクラテスと対話できるAIを開発!
2024.06.04
リコーと理研、技術の実用化の“兆し”を察知するアルゴリズムを開発
2024/06/05
グーグル、資料のわからないところを最新AIに質問できる「NotebookLM」日本版公開
2024年06月06日
2024.06.04
リコーと理研、技術の実用化の“兆し”を察知するアルゴリズムを開発
2024/06/05
グーグル、資料のわからないところを最新AIに質問できる「NotebookLM」日本版公開
2024年06月06日
884デフォルトの名無しさん (ワッチョイ 8663-l7CW)
2024/06/08(土) 10:58:03.36ID:QPPnom480 認知するから、住所氏名連絡先電話番号をここに書いて
885デフォルトの名無しさん (ワッチョイ 29c6-hn0t)
2024/06/08(土) 15:11:45.50ID:tLyyH4Tg0 A B Cは知ってるがDが何なのか分からん…
886デフォルトの名無しさん (ワッチョイ a1bb-hn0t)
2024/06/08(土) 20:12:38.72ID:nTIq188V0 電子工作やってる人いる?
887デフォルトの名無しさん (ワッチョイ fea6-FHn0)
2024/06/08(土) 20:40:02.81ID:k3Jnk/Aj0 いない
888デフォルトの名無しさん (ワッチョイ c60b-jX5N)
2024/06/08(土) 23:06:51.81ID:nWnWQxaC0 >>886
仕事でやってますよ
仕事でやってますよ
889デフォルトの名無しさん (ワッチョイ a1bb-hn0t)
2024/06/08(土) 23:13:26.33ID:nTIq188V0 >>888
モーターが回ってぐるぐるアームが動いたりカパカパ蓋が開いたりするギミック作りたいんだけどArduinoの延長線上にありますかね?
モーターが回ってぐるぐるアームが動いたりカパカパ蓋が開いたりするギミック作りたいんだけどArduinoの延長線上にありますかね?
890デフォルトの名無しさん (ワッチョイ fea6-FHn0)
2024/06/08(土) 23:28:20.49ID:k3Jnk/Aj0 ない
891デフォルトの名無しさん (ワッチョイ c60b-jX5N)
2024/06/08(土) 23:45:46.12ID:nWnWQxaC0 >>889
モーター扱ったことないですけど、モーターを動かすサンプルはarduinoにあったと思いますよ。
モーター扱ったことないですけど、モーターを動かすサンプルはarduinoにあったと思いますよ。
892デフォルトの名無しさん (ワッチョイ cf63-7AaF)
2024/06/09(日) 00:13:57.86ID:kxK960g50 ラズパイ辺りでやってそうだが、流石にスレ違いだろ
893デフォルトの名無しさん (ワッチョイ f332-Oh5j)
2024/06/09(日) 01:18:53.58ID:bthWHIYm0 制御対象の特性を理解してないとマイコンに詳しくなってもちゃんと制御できないからなぁ……
電子工作の経験があって Arduino を導入しようと考えてるならやればいいんじゃないのと思うがこれから入門という段階なら初手で Arduino からってのは変な学習ルートに思える。
でもやりやすさは人によるので興味をもったらどこからでもやってみればいいんじゃないの、たいして高級品ってわけでもないし。
電子工作の経験があって Arduino を導入しようと考えてるならやればいいんじゃないのと思うがこれから入門という段階なら初手で Arduino からってのは変な学習ルートに思える。
でもやりやすさは人によるので興味をもったらどこからでもやってみればいいんじゃないの、たいして高級品ってわけでもないし。
894デフォルトの名無しさん (ワッチョイ ff0c-xov0)
2024/06/09(日) 08:03:28.72ID:GyoPGP3N0 全ての波【電磁波】で下記の症状が起きる
理由は電磁波が強いために起こるか電磁波が通過すれば磁気が生じて鉄分が振動して間接的に鼓膜などが振動する
マイクロ波聴覚効果を用いた音声伝送に関する検討
2018/03/05
https://www.bookpark.ne.jp/cm/ieej/detail/IEEJ-ZT181039-PDF/
マイクロ波聴覚効果 Wikipedia
https://ja.wikipedia.org/wiki/%E3%83%9E%E3%82%A4%E3%82%AF%E3%83%AD%E6%B3%A2%E8%81%B4%E8%A6%9A%E5%8A%B9%E6%9E%9C
>>マイクロ波を照射された被験者は、クリック音やブザーのようなうなり音が聞こえる
早大、物質中の創発磁気モノポールに起こる集団振動現象を理論的に発見
2024/06/04
https://news.mynavi.jp/techplus/article/20240604-2958879/
理研、電子ビームの電子回折をアト秒で制御できる技術を開発
2024/06/06
https://news.mynavi.jp/techplus/article/20240606-2960578/
※電磁波も振動させれると記載あり
最低でも下記ノ電磁波の威力が必要なら行っている者全員補足されている
GPSの電波は超微弱
https://gigazine.net/news/20240421-gypsum-gps-receiver/
[22]米国特許5868100号
【GPS位置情報を使用した動物コントロール・システム】
一例ですが年々受信機の感度は向上している
東工大、磁束集中器を用いない高感度「ダイヤモンド量子センサ」を開発
2024/06/07
https://news.mynavi.jp/techplus/article/20240607-2961238/
電磁波音波攻撃をされている部位ごとにホルモンや異常物質などの観測
パーキンソン病の原因物質、脳内の可視化に成功
2024年6月6日 0時00分
https://www.asahi.com/articles/ASS652V7RS65ULBH00GM.html
理由は電磁波が強いために起こるか電磁波が通過すれば磁気が生じて鉄分が振動して間接的に鼓膜などが振動する
マイクロ波聴覚効果を用いた音声伝送に関する検討
2018/03/05
https://www.bookpark.ne.jp/cm/ieej/detail/IEEJ-ZT181039-PDF/
マイクロ波聴覚効果 Wikipedia
https://ja.wikipedia.org/wiki/%E3%83%9E%E3%82%A4%E3%82%AF%E3%83%AD%E6%B3%A2%E8%81%B4%E8%A6%9A%E5%8A%B9%E6%9E%9C
>>マイクロ波を照射された被験者は、クリック音やブザーのようなうなり音が聞こえる
早大、物質中の創発磁気モノポールに起こる集団振動現象を理論的に発見
2024/06/04
https://news.mynavi.jp/techplus/article/20240604-2958879/
理研、電子ビームの電子回折をアト秒で制御できる技術を開発
2024/06/06
https://news.mynavi.jp/techplus/article/20240606-2960578/
※電磁波も振動させれると記載あり
最低でも下記ノ電磁波の威力が必要なら行っている者全員補足されている
GPSの電波は超微弱
https://gigazine.net/news/20240421-gypsum-gps-receiver/
[22]米国特許5868100号
【GPS位置情報を使用した動物コントロール・システム】
一例ですが年々受信機の感度は向上している
東工大、磁束集中器を用いない高感度「ダイヤモンド量子センサ」を開発
2024/06/07
https://news.mynavi.jp/techplus/article/20240607-2961238/
電磁波音波攻撃をされている部位ごとにホルモンや異常物質などの観測
パーキンソン病の原因物質、脳内の可視化に成功
2024年6月6日 0時00分
https://www.asahi.com/articles/ASS652V7RS65ULBH00GM.html
895デフォルトの名無しさん (ワッチョイ ffb7-xov0)
2024/06/10(月) 07:48:02.71ID:QAB9rEB/0 AIの性能が上がれば世界情勢が見えてくる
にゅーーすで話していることもそれらしきことを話すようになる
まづボイス・トォ・スカルが存在している場合としていない場合を問う
そのあとに人間の行動をどのように行動するかを問う
交友関係全てわかる範囲で入力しておく
社会っ情勢を知るにはさらにどういった役職等も調べておく
自分が使用しているボイス・トォ・スカルを本物か偽物化も割り出せる
にゅーーすで話していることもそれらしきことを話すようになる
まづボイス・トォ・スカルが存在している場合としていない場合を問う
そのあとに人間の行動をどのように行動するかを問う
交友関係全てわかる範囲で入力しておく
社会っ情勢を知るにはさらにどういった役職等も調べておく
自分が使用しているボイス・トォ・スカルを本物か偽物化も割り出せる
896デフォルトの名無しさん (ワッチョイ ffb7-xov0)
2024/06/10(月) 13:47:48.16ID:QAB9rEB/0 不眠症にカップ麺やスナック菓子などの「超加工食品」が関係しているという研究結果
https://gigazine.net/news/20240610-insomnia-linked-ultra-processed-foods/
インターネットの都市伝説「The Backrooms」の起源となった画像の正体はどうやって判明したのか?
https://gigazine.net/news/20240610-origin-of-the-backrooms/
GoogleのGeminiとMicrosoftのCopilotが過去のアメリカの大統領選挙を含めた世界中の選挙の結果を正常に返していないことが判明
https://gigazine.net/news/20240610-google-microsoft-chatbots-election-questions/
https://gigazine.net/news/20240610-insomnia-linked-ultra-processed-foods/
インターネットの都市伝説「The Backrooms」の起源となった画像の正体はどうやって判明したのか?
https://gigazine.net/news/20240610-origin-of-the-backrooms/
GoogleのGeminiとMicrosoftのCopilotが過去のアメリカの大統領選挙を含めた世界中の選挙の結果を正常に返していないことが判明
https://gigazine.net/news/20240610-google-microsoft-chatbots-election-questions/
897デフォルトの名無しさん (ワッチョイ ffb7-xov0)
2024/06/10(月) 20:08:29.30ID:QAB9rEB/0 ボイス・トォ・スカル
電磁波音波攻撃が判明する
人間は電磁界を発生させている
※被害者の身体に痕跡あり
パーキンソン病の原因物質、脳内の可視化に成功
2024年6月6日 0時00分
東工大、磁束集中器を用いない高感度「ダイヤモンド量子センサ」を開発
2024/06/07
名市大、頭蓋内全体の脳脊髄液の動態をマクロ的に観測する手法の開発に成功
2024/06/07
早大、物質中の創発磁気モノポールに起こる集団振動現象を理論的に発見
2024/06/04
理研、電子ビームの電子回折をアト秒で制御できる技術を開発
2024/06/06
分子研など、金ナノ粒子が円偏光の左右選択性を70倍に高めることを発見
2024/06/06
弾性乱流と古典的なニュートン乱流との共通点を発見――弾性乱流を記述する数学的理論の開発に寄与 OISTら
2024-5-29
京大、テラヘルツ波の照射で超伝導体の臨界電流を制御できることを実証
2024/05/28
産総研など、1000個以上の量子ビットを制御可能な超伝導回路の原理実証に成功
2024/06/05
名大など、水素原子の約1/20の超高精度で収差補正できるX線顕微鏡を開発
2024/05/09
電磁波音波攻撃が判明する
人間は電磁界を発生させている
※被害者の身体に痕跡あり
パーキンソン病の原因物質、脳内の可視化に成功
2024年6月6日 0時00分
東工大、磁束集中器を用いない高感度「ダイヤモンド量子センサ」を開発
2024/06/07
名市大、頭蓋内全体の脳脊髄液の動態をマクロ的に観測する手法の開発に成功
2024/06/07
早大、物質中の創発磁気モノポールに起こる集団振動現象を理論的に発見
2024/06/04
理研、電子ビームの電子回折をアト秒で制御できる技術を開発
2024/06/06
分子研など、金ナノ粒子が円偏光の左右選択性を70倍に高めることを発見
2024/06/06
弾性乱流と古典的なニュートン乱流との共通点を発見――弾性乱流を記述する数学的理論の開発に寄与 OISTら
2024-5-29
京大、テラヘルツ波の照射で超伝導体の臨界電流を制御できることを実証
2024/05/28
産総研など、1000個以上の量子ビットを制御可能な超伝導回路の原理実証に成功
2024/06/05
名大など、水素原子の約1/20の超高精度で収差補正できるX線顕微鏡を開発
2024/05/09
898デフォルトの名無しさん (ワッチョイ ffb7-xov0)
2024/06/10(月) 20:08:54.70ID:QAB9rEB/0 細胞の内部を鮮明に観察できる蛍光顕微鏡技術を開発 阪大など
2024/05/07
OIST、有機電気化学トランジスタのON時に生じるタイムラグの原因を解明
2024/05/07
並行世界でタイムリープを繰り返す!?効率的な新しいシミュレーション技術
2024.05.22
東大、電子回折パターンの減少とエントロピー増加の対応を実証
2024/06/03
理研など、「スキルミオンひも」の観察とその詳細な融解過程の記録に成功
2024/05/23 19:29
東大など、金属3Dプリント中の2D画像から3D多孔質構造を予測する手法を開発
2024/06/03
2024/05/07
OIST、有機電気化学トランジスタのON時に生じるタイムラグの原因を解明
2024/05/07
並行世界でタイムリープを繰り返す!?効率的な新しいシミュレーション技術
2024.05.22
東大、電子回折パターンの減少とエントロピー増加の対応を実証
2024/06/03
理研など、「スキルミオンひも」の観察とその詳細な融解過程の記録に成功
2024/05/23 19:29
東大など、金属3Dプリント中の2D画像から3D多孔質構造を予測する手法を開発
2024/06/03
899デフォルトの名無しさん (スプッッ Sd1f-7qJZ)
2024/06/10(月) 22:13:02.43ID:3t115ymGd900デフォルトの名無しさん (ワッチョイ cf63-7AaF)
2024/06/10(月) 22:32:33.85ID:6QG92Zys0 おぎゃーは、Eだな
901デフォルトの名無しさん (ワッチョイ 6fe2-xov0)
2024/06/11(火) 05:31:33.15ID:7n9sgmId0 男性の精子の減少、携帯電話の使用と関係か 最新研究
2023/11/02
https://www.cnn.co.jp/fringe/35211064.html
放射線と被曝
https://www.kan-etsu-hp.ne.jp/wp-content/themes/kan-etsu-hp/assets/kanetsu-hospital/department/pdf/radiology/radiation.pdf
>>エネルギーが極端に大きくなると X 線やガンマ線と呼ばれる放射線の一種になります。
※電磁波音波攻撃被爆している?
MrIは強力な磁場を利用しているので被爆しない
冷凍した人間の脳組織を解凍した後も正常に機能する技術開発
2024.05.12
https://karapaia.com/archives/52331859.html
1立方ミリメートルの脳の断片をハーバード大学とGoogleの研究者がナノメートル単位で3Dマッピングすることに成功
2024年05月10日
https://gigazine.net/news/20240510-human-brain-mapped-in-spectacular-detail/
幼児期の脳活動から18歳時点でのIQを予測できるという研究結果
2023/09/09
https://gigazine.net/news/20230909-brain-activity-toddler-predict-18-iq/
パーキンソン病の原因物質、脳内の可視化に成功
2024年6月6日 0時00分
https://www.asahi.com/articles/ASS652V7RS65ULBH00GM.html
東工大、磁束集中器を用いない高感度「ダイヤモンド量子センサ」を開発
2024/06/07
https://news.mynavi.jp/techplus/article/20240607-2961238/
2023/11/02
https://www.cnn.co.jp/fringe/35211064.html
放射線と被曝
https://www.kan-etsu-hp.ne.jp/wp-content/themes/kan-etsu-hp/assets/kanetsu-hospital/department/pdf/radiology/radiation.pdf
>>エネルギーが極端に大きくなると X 線やガンマ線と呼ばれる放射線の一種になります。
※電磁波音波攻撃被爆している?
MrIは強力な磁場を利用しているので被爆しない
冷凍した人間の脳組織を解凍した後も正常に機能する技術開発
2024.05.12
https://karapaia.com/archives/52331859.html
1立方ミリメートルの脳の断片をハーバード大学とGoogleの研究者がナノメートル単位で3Dマッピングすることに成功
2024年05月10日
https://gigazine.net/news/20240510-human-brain-mapped-in-spectacular-detail/
幼児期の脳活動から18歳時点でのIQを予測できるという研究結果
2023/09/09
https://gigazine.net/news/20230909-brain-activity-toddler-predict-18-iq/
パーキンソン病の原因物質、脳内の可視化に成功
2024年6月6日 0時00分
https://www.asahi.com/articles/ASS652V7RS65ULBH00GM.html
東工大、磁束集中器を用いない高感度「ダイヤモンド量子センサ」を開発
2024/06/07
https://news.mynavi.jp/techplus/article/20240607-2961238/
902デフォルトの名無しさん (ワッチョイ 6fe2-xov0)
2024/06/11(火) 05:31:58.00ID:7n9sgmId0 日常的な蓋内全体の脳脊髄液の動態をマクロ的に観測する手法の開発に成功
2024/06/07
https://news.mynavi.jp/techplus/article/20240607-2961214/
細胞の内部を鮮明に観察できる蛍光顕微鏡技術を開発 阪大など
2024/05/07
https://news.mynavi.jp/techplus/article/20240507-2941335/
脳が鮮明に見える!世界最強の磁束密度で脳をスキャンするMRI「イズールト」
2024.04.05
https://nazology.net/archives/148090
※5分で全身スキャン完了するのかな
2024/06/07
https://news.mynavi.jp/techplus/article/20240607-2961214/
細胞の内部を鮮明に観察できる蛍光顕微鏡技術を開発 阪大など
2024/05/07
https://news.mynavi.jp/techplus/article/20240507-2941335/
脳が鮮明に見える!世界最強の磁束密度で脳をスキャンするMRI「イズールト」
2024.04.05
https://nazology.net/archives/148090
※5分で全身スキャン完了するのかな
903デフォルトの名無しさん (ワッチョイ ff8a-xov0)
2024/06/11(火) 06:54:36.26ID:3zjiFVVb0 電磁波兵器の特許情報/Google検索で下記が判明
電磁波過敏症 低周波騒音被害 の症状が出現
設立 1998年 テクノロジー犯罪の撲滅
Https://media.toriaez.jp/s2972/32686.pdf
P77-身体・運動機能が遠隔から操作される P78-五感が遠隔から操作される
ギャングストーキングと電磁攻撃 - 広島修道大学学術リポジトリ
https://shudo-u.repo.nii.ac.jp/record/3395/files/SG63205.pdf
下記を頭部などで再現
人間の「第六感」 磁気を感じる能力発見
2019/03/19
https://www.sankei.com/article/20190319-6UGPQVLP4BLEDJYGVSX3WW6A4A/
髪の毛ほど薄いのに音を75%カット!MIT開発の「革新的防音カーテン」
2024.05.13
https://nazology.net/archives/149896
言葉に出さずとも内なる声を解読する、脳の読み取り装置が解発される
2024.05.20
https://karapaia.com/archives/52331884.html
電磁波過敏症 低周波騒音被害 の症状が出現
設立 1998年 テクノロジー犯罪の撲滅
Https://media.toriaez.jp/s2972/32686.pdf
P77-身体・運動機能が遠隔から操作される P78-五感が遠隔から操作される
ギャングストーキングと電磁攻撃 - 広島修道大学学術リポジトリ
https://shudo-u.repo.nii.ac.jp/record/3395/files/SG63205.pdf
下記を頭部などで再現
人間の「第六感」 磁気を感じる能力発見
2019/03/19
https://www.sankei.com/article/20190319-6UGPQVLP4BLEDJYGVSX3WW6A4A/
髪の毛ほど薄いのに音を75%カット!MIT開発の「革新的防音カーテン」
2024.05.13
https://nazology.net/archives/149896
言葉に出さずとも内なる声を解読する、脳の読み取り装置が解発される
2024.05.20
https://karapaia.com/archives/52331884.html
904デフォルトの名無しさん (スップ Sd1f-7qJZ)
2024/06/11(火) 07:41:44.85ID:PurewGljd >>900
じゃあ、D はウギャー?(遊びで抱いた女が妊娠したのが分かったときの男の悲鳴)
じゃあ、D はウギャー?(遊びで抱いた女が妊娠したのが分かったときの男の悲鳴)
905デフォルトの名無しさん (ワッチョイ 335f-lVcs)
2024/06/11(火) 09:18:49.34ID:iWfhzVB80 ボテ腹のDだろ
906あぼーん
NGNGあぼーん
907デフォルトの名無しさん (ワッチョイ ffe1-AzNm)
2024/06/14(金) 19:49:03.49ID:nzHUeHXM0 glibcとlibgccは何が違うのだろう
908デフォルトの名無しさん (ワッチョイ 6f43-W8Aw)
2024/06/14(金) 20:46:34.33ID:2LbvURbZ0 標準ライブラリとランタイムライブラリ
前者は普段お前らが呼び出して使うやつ
後者はコンパイラが実行時に呼び出すように仕込んでるやつ
前者は普段お前らが呼び出して使うやつ
後者はコンパイラが実行時に呼び出すように仕込んでるやつ
909デフォルトの名無しさん (ワッチョイ ffe1-AzNm)
2024/06/14(金) 20:49:49.15ID:nzHUeHXM0 サンクスです
910あぼーん
NGNGあぼーん
911あぼーん
NGNGあぼーん
912あぼーん
NGNGあぼーん
913あぼーん
NGNGあぼーん
914あぼーん
NGNGあぼーん
915デフォルトの名無しさん (ワッチョイ cf2a-Wcph)
2024/06/26(水) 09:37:56.77ID:N112RWnJ0 printf( "あぼん続きで未読がマークが外れんのじゃ!" );
917あぼーん
NGNGあぼーん
918あぼーん
NGNGあぼーん
919あぼーん
NGNGあぼーん
920あぼーん
NGNGあぼーん
921あぼーん
NGNGあぼーん
922あぼーん
NGNGあぼーん
923あぼーん
NGNGあぼーん
924デフォルトの名無しさん (ワッチョイ 7b90-SQnC)
2024/06/30(日) 22:32:27.83ID:t0peTjy20 https://i.imgur.com/tFN6wJX.jpg
10日のチェックインだけで5500P貰えます
10日のチェックインだけで5500P貰えます
925あぼーん
NGNGあぼーん
926あぼーん
NGNGあぼーん
927あぼーん
NGNGあぼーん
928デフォルトの名無しさん (ワッチョイ 7fe3-6rfK)
2024/07/04(木) 22:17:16.67ID:rk7+203c0 https://i.imgur.com/GKWQkmG.jpg
10日の連続チェックインだけで5000P貰えます。
10日の連続チェックインだけで5000P貰えます。
929デフォルトの名無しさん (ワッチョイ 0a42-wMZl)
2024/07/05(金) 09:53:42.21ID:0jVwcVAV0 https://i.imgur.com/xuICFXl.jpg
10日間の連続チェックインだけで5000P貰えます。
10日間の連続チェックインだけで5000P貰えます。
930デフォルトの名無しさん (ワッチョイ 0a54-AdrP)
2024/07/05(金) 14:12:39.37ID:Dko2Msz80 繰り返し書き込んでるのはスクリプトでやってるから?
931デフォルトの名無しさん (ワッチョイ eaf0-F3ze)
2024/07/05(金) 15:49:01.49ID:jzxpJ+i30 https://i.imgur.com/wUnQkpy.jpg
10日連続チェックインだけで5000P貰えます
10日連続チェックインだけで5000P貰えます
932デフォルトの名無しさん (ワッチョイ 23ad-lIpH)
2024/07/05(金) 19:16:00.42ID:TlSLATbO0 https://i.imgur.com/ybaxg26.jpg
すぐ2500P+2500P手に入ります
すぐ2500P+2500P手に入ります
933あぼーん
NGNGあぼーん
935デフォルトの名無しさん (ワッチョイ 4ae6-YZVP)
2024/07/06(土) 11:41:20.39ID:tTTndFvT0 https://i.imgur.com/Q2Nu6WK.jpg
すぐに2500P+2500P手に入ります。
すぐに2500P+2500P手に入ります。
936デフォルトの名無しさん (ワッチョイ 4ae6-YZVP)
2024/07/06(土) 11:55:09.99ID:tTTndFvT0 https://i.imgur.com/brLUGrx.jpg
すぐに2500P+2500P手に入ります
すぐに2500P+2500P手に入ります
937デフォルトの名無しさん (ワッチョイ 874d-42zQ)
2024/07/06(土) 13:14:33.48ID:Arqdwybu0 https://i.imgur.com/8N8NHa9.jpg
すぐに2500P+2500P手に入ります
すぐに2500P+2500P手に入ります
938デフォルトの名無しさん (ワッチョイ a310-62Sl)
2024/07/06(土) 14:17:17.71ID:Bma9QbI50 ポイント詐欺、文面の一部にunicode混ぜたりと小賢しいNG判定回避してんな。
939デフォルトの名無しさん (ワッチョイ 5301-2Kdk)
2024/07/06(土) 14:36:38.12ID:WDK3FXFS0 なんでこのスレばっかり詐欺書き込みするんだろう
940デフォルトの名無しさん (ワッチョイ 1f10-aAYy)
2024/07/06(土) 14:48:03.47ID:kTIMjEkj0 スクリプトがバグってて板の特定のスレが連投される
投稿済み(投稿に成功した)というフラグが立たないためと思われ
自演レスも付かない
ム板的にはその理由を推測するのもまた一興
たとえばゲーム製作なら
https://mevius.5ch.net/test/read.cgi/gamedev/1699879792/
https://mevius.5ch.net/test/read.cgi/gamedev/1700545559/
の2スレが該当する
投稿済み(投稿に成功した)というフラグが立たないためと思われ
自演レスも付かない
ム板的にはその理由を推測するのもまた一興
たとえばゲーム製作なら
https://mevius.5ch.net/test/read.cgi/gamedev/1699879792/
https://mevius.5ch.net/test/read.cgi/gamedev/1700545559/
の2スレが該当する
941デフォルトの名無しさん (ワッチョイ 1e63-2Kdk)
2024/07/06(土) 16:04:40.45ID:wdvB4Pnm0 このスレ埋めてみるかw
942デフォルトの名無しさん (ワッチョイ 7f32-s7TM)
2024/07/06(土) 17:02:30.46ID:mF2Bv0pD0943デフォルトの名無しさん (ワッチョイ 1e63-2Kdk)
2024/07/06(土) 17:12:50.54ID:wdvB4Pnm0 単に設定を変えていないものぐさだって事だろう
944デフォルトの名無しさん (ワッチョイ 1f10-aAYy)
2024/07/06(土) 23:48:46.43ID:kTIMjEkj0 >>942
本来はたとえば
https://mevius.5ch.net/test/read.cgi/tech/1716759686/104
↓
https://mevius.5ch.net/test/read.cgi/tech/1716759686/106
https://mevius.5ch.net/test/read.cgi/tech/1716759686/112
とか
https://mevius.5ch.net/test/read.cgi/tech/1712104264/237
↓
https://mevius.5ch.net/test/read.cgi/tech/1712104264/238
https://mevius.5ch.net/test/read.cgi/tech/1712104264/246
のように自演レスが付き、そのスレでの宣伝レスは終わる
本来はたとえば
https://mevius.5ch.net/test/read.cgi/tech/1716759686/104
↓
https://mevius.5ch.net/test/read.cgi/tech/1716759686/106
https://mevius.5ch.net/test/read.cgi/tech/1716759686/112
とか
https://mevius.5ch.net/test/read.cgi/tech/1712104264/237
↓
https://mevius.5ch.net/test/read.cgi/tech/1712104264/238
https://mevius.5ch.net/test/read.cgi/tech/1712104264/246
のように自演レスが付き、そのスレでの宣伝レスは終わる
945デフォルトの名無しさん (ワッチョイ e3b1-tXWD)
2024/07/07(日) 04:05:27.06ID:6Ch43eQf0 暇人すぎだろ
946デフォルトの名無しさん (ワッチョイ f5d0-eRYk)
2024/07/13(土) 10:21:19.69ID:SJF7SOz+0 c言語初心者なんだけど
新し目のVSを使っててメモ帳みたいな簡素なウィンドウアプリケーションの作り方を解説してくれてるサイトや本って無いかな?
少し前に同じようなものを探したことがあってその際は本を買ったんだけど初心者に優しくなくてアプリを作る部分はおまけでコンピューターの解説が始まったってのがあったからできれば優しいやつ希望です
それから古いVSがDLできなかったのって治ったのかな?
新し目のVSを使っててメモ帳みたいな簡素なウィンドウアプリケーションの作り方を解説してくれてるサイトや本って無いかな?
少し前に同じようなものを探したことがあってその際は本を買ったんだけど初心者に優しくなくてアプリを作る部分はおまけでコンピューターの解説が始まったってのがあったからできれば優しいやつ希望です
それから古いVSがDLできなかったのって治ったのかな?
947デフォルトの名無しさん (ワッチョイ cb63-IQIW)
2024/07/13(土) 10:38:54.98ID:lEcXG8hx0 できるだろうけど、スレ違いじゃないかと思う
948デフォルトの名無しさん (ワッチョイ 8d6e-g0U6)
2024/07/13(土) 10:50:34.84ID:R8bc08740 カレーを作るのにまず牛と野菜と稲を育てますってくらいの苦行だぞ
https://oshiete.goo.ne.jp/qa/3999457.html
https://oshiete.goo.ne.jp/qa/3999457.html
949デフォルトの名無しさん (ワッチョイ cb63-IQIW)
2024/07/13(土) 11:02:57.49ID:lEcXG8hx0 簡素なウィンドウアプリケーションって事だから、DOSベースではないだろう
950はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ad32-D9Rd)
2024/07/13(土) 11:57:14.35ID:UG7jOJ2R0 >>946
初心者に基礎を教えないことを「優しい」という感覚がわからん。
初心者に基礎を教えないことを「優しい」という感覚がわからん。
951デフォルトの名無しさん (ワッチョイ 1be7-tQMZ)
2024/07/13(土) 12:18:34.93ID:Sreg3kj80952デフォルトの名無しさん (ワッチョイ cb10-pk1M)
2024/07/13(土) 17:37:52.12ID:KaYnUPVr0 GUIだとQtかWinUI3になるからC++必須なんだよなあ
どうしてもレガシーコードで書きたいのであれば猫でもわかるシリーズに残ってそうだが
ただしコンパイルを通すのにかなり苦労すると思う
どうしてもレガシーコードで書きたいのであれば猫でもわかるシリーズに残ってそうだが
ただしコンパイルを通すのにかなり苦労すると思う
953デフォルトの名無しさん (ワッチョイ cb63-IQIW)
2024/07/13(土) 19:14:27.31ID:lEcXG8hx0 大分マニアックな領域になるよな
初心者向けではない
初心者向けではない
954デフォルトの名無しさん (ワッチョイ cb63-IQIW)
2024/07/13(土) 19:29:06.80ID:lEcXG8hx0 初心者としてwindowsアプリを学んでみたいって事なら
C++でやる方が色々選べるから楽でしょう
どうしてもC言語でやりたいってなると
windows歴史博物館で誕生から終末まで学ぶつもりで取り組めば何とか
コード生成はもちろん16ビットでやります(動作環境作るのも大変だw)
C++でやる方が色々選べるから楽でしょう
どうしてもC言語でやりたいってなると
windows歴史博物館で誕生から終末まで学ぶつもりで取り組めば何とか
コード生成はもちろん16ビットでやります(動作環境作るのも大変だw)
955デフォルトの名無しさん (ワッチョイ f5d0-eRYk)
2024/07/13(土) 19:56:06.53ID:SJF7SOz+0956デフォルトの名無しさん (ワッチョイ f5d0-eRYk)
2024/07/13(土) 19:56:22.00ID:SJF7SOz+0957デフォルトの名無しさん (ワッチョイ 9b74-kC4j)
2024/07/13(土) 20:01:22.10ID:MzDhk0E80 今Windows API触るとそんなに面倒なのかな
958はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ad32-D9Rd)
2024/07/13(土) 20:17:00.87ID:UG7jOJ2R0 >>955
「ウィンドウの開き方」の説明が本の最初のページに書いてあったとしても理解できない。
理解のためにはそれらを取り巻く様々な事情が前提知識として知っておく必要があるから。
それらの事情を教えるところからスタートするのが当然なのに、事情を教えるのは初心者に対して優しくない!というのが意味不明。
学ばずに出来るようになりたいってこと?
「ウィンドウの開き方」の説明が本の最初のページに書いてあったとしても理解できない。
理解のためにはそれらを取り巻く様々な事情が前提知識として知っておく必要があるから。
それらの事情を教えるところからスタートするのが当然なのに、事情を教えるのは初心者に対して優しくない!というのが意味不明。
学ばずに出来るようになりたいってこと?
959デフォルトの名無しさん (ワッチョイ cb63-IQIW)
2024/07/13(土) 20:22:43.71ID:lEcXG8hx0 >>956
https://c-lang.sevendays-study.com/win32/index_win32.html
1日目 はじめの一歩
2日目 ウインドウの表示
3日目 文字の表示
2日目、3日目のソース見て、理解できそう?
https://c-lang.sevendays-study.com/win32/index_win32.html
1日目 はじめの一歩
2日目 ウインドウの表示
3日目 文字の表示
2日目、3日目のソース見て、理解できそう?
960デフォルトの名無しさん (アウアウウー Sa09-Qmcr)
2024/07/13(土) 22:38:39.29ID:i5xfMqB7a 20年以上前かな、かなり前にWindowsAPIは弄ってたけど、Window作成するまででかなりパラメータを渡さなきゃならなくて一つ一つ確認してめっちゃ時間かかった気がする
その後は自分用テンプレとして作ってたからすぐにwimdow立ち上げまでできたけど、次はrectとか描画処理、セマホ、フックとかそこら辺まではやり込んだな
その後は自分用テンプレとして作ってたからすぐにwimdow立ち上げまでできたけど、次はrectとか描画処理、セマホ、フックとかそこら辺まではやり込んだな
961デフォルトの名無しさん (アウアウエー Sa13-pk1M)
2024/07/13(土) 23:30:45.23ID:nTr8FyGBa >951
ほんそれ
ほんそれ
962デフォルトの名無しさん (ブーイモ MMcb-tQMZ)
2024/07/13(土) 23:32:29.53ID:q3jiasP2M >>955
最終的にWindowsのデスクトップアプリを考えてるのなら今は始めるにはよい時期ではない
歴史的にいくつものフレームワークがリリースされてとっちらかっている
でマイクロソフトは絶賛Windows App SDK/WinUI3という形でまとめなおしている最中
それでもやりたいならどのフレームワーク使うか決めてそのスレで質問しな
最終的にWindowsのデスクトップアプリを考えてるのなら今は始めるにはよい時期ではない
歴史的にいくつものフレームワークがリリースされてとっちらかっている
でマイクロソフトは絶賛Windows App SDK/WinUI3という形でまとめなおしている最中
それでもやりたいならどのフレームワーク使うか決めてそのスレで質問しな
963デフォルトの名無しさん (ワッチョイ 2379-Ms5l)
2024/07/13(土) 23:34:03.78ID:cM/J+a8n0 ぶっちゃけChatGPTと連携すればCでもGUIなんて楽勝だと思うが
964はちみつ餃子 ◆8X2XSCHEME (ワッチョイ b132-Pdg8)
2024/07/14(日) 08:34:48.57ID:CpW1/GRz0 ChatGPT はわかる人が楽する使い方や学習のための使い方は出来るが
わからん人がわからんまま (十分な品質で) 何か作れるものではないよ。
わからん人がわからんまま (十分な品質で) 何か作れるものではないよ。
965デフォルトの名無しさん (ワッチョイ da79-lqEU)
2024/07/14(日) 12:36:15.10ID:IlPTxPLU0 >>964
一体何を言ってるんだ
環境や条件を指定しつつCでGUI作れで適当なソースが出てくるじゃろ
判らん箇所があったら何してるのか問い質していけばほぼコード書くことなく完成するぞ
人間とまともに会話できなければGPTとも最初話が通じないかもしれん問題はあるが
GPTは怒って帰ったりしないから粘着し続ければヤフー知恵送れでもいずれは答えに辿り着くよ
一体何を言ってるんだ
環境や条件を指定しつつCでGUI作れで適当なソースが出てくるじゃろ
判らん箇所があったら何してるのか問い質していけばほぼコード書くことなく完成するぞ
人間とまともに会話できなければGPTとも最初話が通じないかもしれん問題はあるが
GPTは怒って帰ったりしないから粘着し続ければヤフー知恵送れでもいずれは答えに辿り着くよ
966デフォルトの名無しさん (ワッチョイ 7663-/pEx)
2024/07/14(日) 12:56:13.63ID:edKbqaNA0 たまに発狂するGPTがあると楽しいのに
967デフォルトの名無しさん (ワッチョイ 7610-hIhh)
2024/07/14(日) 13:14:46.37ID:u/myXhco0 Win32APIのレガシーコードなんてネットに腐るほど転がっているからChatGPTの回答精度も高いだろうけど
いまさら初心者がそれを勉強するだけの価値があるかというと微妙だなあ
将来のつぶしがきかないというか、趣味なら別にいいけど
いまさら初心者がそれを勉強するだけの価値があるかというと微妙だなあ
将来のつぶしがきかないというか、趣味なら別にいいけど
968デフォルトの名無しさん (アウアウウー Sa39-COmH)
2024/07/14(日) 13:35:46.37ID:9deZz+6ua GTPで中の定数の人とかまったくないわからないまま作っても後が大変そう
969はちみつ餃子 ◆8X2XSCHEME (ワッチョイ b132-Pdg8)
2024/07/14(日) 13:41:26.84ID:CpW1/GRz0 >>965
「わからんまま」では作れないというのは分かるように学習すれば作れるという意味だがそれが読み取れなかったか?
「わからんまま」では作れないというのは分かるように学習すれば作れるという意味だがそれが読み取れなかったか?
970デフォルトの名無しさん (ワッチョイ da79-lqEU)
2024/07/14(日) 13:53:07.42ID:IlPTxPLU0 >「わからんまま」では作れないというのは分かるように学習すれば作れるという意味だがそれが読み取れなかったか?
まずその括弧の付いた言葉遊びをやめろよ
お前の文書普段から長文で判り難いのによく1行で何言ってるのか判らんように書けるな
そろそろ引退しなよ
まずその括弧の付いた言葉遊びをやめろよ
お前の文書普段から長文で判り難いのによく1行で何言ってるのか判らんように書けるな
そろそろ引退しなよ
971はちみつ餃子 ◆8X2XSCHEME (ワッチョイ b132-Pdg8)
2024/07/14(日) 14:01:17.53ID:CpW1/GRz0 >>967
C で書くという前提を動かさないなら Win32 API は比較的マシかもしれない。
中途半端なラッパーライブラリだとどうせ内部構造に対するある程度の理解は必要だし、
C 用のリッチなフレームワークがあったとしても Win32 API と同程度にニッチだろう。
C++ 用の API やフレームワークを C から使うというのも無理すれば出来ることもあるけどそれはそれで大変だし。
C で書くという前提を動かさないなら Win32 API は比較的マシかもしれない。
中途半端なラッパーライブラリだとどうせ内部構造に対するある程度の理解は必要だし、
C 用のリッチなフレームワークがあったとしても Win32 API と同程度にニッチだろう。
C++ 用の API やフレームワークを C から使うというのも無理すれば出来ることもあるけどそれはそれで大変だし。
972デフォルトの名無しさん (スフッ Sdfa-xb7l)
2024/07/14(日) 14:08:03.60ID:QSWfl6GGd973デフォルトの名無しさん (ワッチョイ 7663-/pEx)
2024/07/14(日) 14:09:11.63ID:edKbqaNA0 「Hello, World!」と表示するWindowsアプリ作り隊だけなのに、
何で何百行もソース書かないといけないのか
この疑問は正しい。その後の行動は分かれるが。
初心者はまず、この長いソースを追いかけて、
何故こんなこと書かないといけないのかを考え、理解する事が必要
RADツール使うのは、その後でいい
何で何百行もソース書かないといけないのか
この疑問は正しい。その後の行動は分かれるが。
初心者はまず、この長いソースを追いかけて、
何故こんなこと書かないといけないのかを考え、理解する事が必要
RADツール使うのは、その後でいい
974デフォルトの名無しさん (ワッチョイ daac-YSIk)
2024/07/14(日) 15:59:56.05ID:2PTbWkYV0 >>955 そんなあなたにこの本
Win32API完璧マスタ: Visual C++プログラミングへのアプローチ
内容は古いけど、API直接叩いて基本のWindow出せるし、内容は濃いのにページは少ないw
仕様や細けえことは他の本で学びな的なw
Win32API完璧マスタ: Visual C++プログラミングへのアプローチ
内容は古いけど、API直接叩いて基本のWindow出せるし、内容は濃いのにページは少ないw
仕様や細けえことは他の本で学びな的なw
975デフォルトの名無しさん (アウアウエー Sa02-hIhh)
2024/07/14(日) 17:32:58.10ID:KvX85dc0a Yあほー智慧を呉れは馬鹿が使うと永久にループする
976デフォルトの名無しさん (アウアウエー Sa02-hIhh)
2024/07/14(日) 17:35:37.43ID:KvX85dc0a977デフォルトの名無しさん (ワッチョイ 5aad-fmIf)
2024/07/14(日) 19:19:47.82ID:KI/vWIVu0 数百行も書かなくてもHello World表示できるよ
あと32bit,64bitでもC+SDKで書けるし
一回書けば後はそれをベースに出来るのでそんなに難しくない
あと32bit,64bitでもC+SDKで書けるし
一回書けば後はそれをベースに出来るのでそんなに難しくない
978デフォルトの名無しさん (オッペケ Sr75-+4E8)
2024/07/15(月) 18:16:26.64ID:dyz3Dcwbr 遅れてきた
中間地点として、winformでほしいものとりあえず作るのがいい気がする
良くも悪くも標準搭載になってるどとねとが使える
モチベ管理重要
とにかくCreateWindowW()からいくと、やることが多すぎて、慣れるまでは心が折れやすい
中間地点として、winformでほしいものとりあえず作るのがいい気がする
良くも悪くも標準搭載になってるどとねとが使える
モチベ管理重要
とにかくCreateWindowW()からいくと、やることが多すぎて、慣れるまでは心が折れやすい
979デフォルトの名無しさん (ワッチョイ daa5-4kFy)
2024/07/16(火) 05:44:20.09ID:OKcwpKml0 C23の編集作業が締め切り過ぎちゃって自動的にキャンセルされたらしい
https://www.iso.org/standard/82075.html
> Deleted
> ISO/IEC DIS 9899
https://www.iso.org/standard/82075.html
> Deleted
> ISO/IEC DIS 9899
980デフォルトの名無しさん (ワッチョイ 7d10-+4E8)
2024/07/16(火) 09:24:49.93ID:HnAIOUFv0 >973
VC++使ってのコマンドプロンプトでの表示と、APIで自分でウィンドウ作っての表示と
MFCでの表示でソース量全然違うよね。
VC++使ってのコマンドプロンプトでの表示と、APIで自分でウィンドウ作っての表示と
MFCでの表示でソース量全然違うよね。
981デフォルトの名無しさん (ワッチョイ eee7-zKgd)
2024/07/16(火) 12:16:07.88ID:G8ZSXNCF0 printf垂れ流し部+入力窓+ボタンいくつか
っていう汎用フレームワークを作って超使いまわしてたわ
懐かしい
っていう汎用フレームワークを作って超使いまわしてたわ
懐かしい
982デフォルトの名無しさん (ワッチョイ 9501-uieQ)
2024/07/16(火) 13:09:56.99ID:S75gU2/t0 Windowsはよく分からんのだが
どの言語やライブラリやフレームワークを使うにしろ
それらってWin32APIを呼んでるって認識であってる?
どの言語やライブラリやフレームワークを使うにしろ
それらってWin32APIを呼んでるって認識であってる?
983はちみつ餃子 ◆8X2XSCHEME (ワッチョイ b132-Pdg8)
2024/07/16(火) 13:47:14.30ID:f/Rbre/X0 >>982
いいえ。 Windows には異なる系統の API が存在していて、 Win32 API はそのひとつに過ぎません。
内部的にはお互いに呼んでいることもあるはずですが形式的にはあくまでも異なる系統の API です。
いいえ。 Windows には異なる系統の API が存在していて、 Win32 API はそのひとつに過ぎません。
内部的にはお互いに呼んでいることもあるはずですが形式的にはあくまでも異なる系統の API です。
984デフォルトの名無しさん (ワッチョイ 7663-/pEx)
2024/07/16(火) 13:52:20.00ID:cfxI+Evv0 Win32 API 以外のAPIって、具体的には何?
986デフォルトの名無しさん (ブーイモ MMfa-HocF)
2024/07/16(火) 15:50:51.48ID:U7/vzWh2M987はちみつ餃子 ◆8X2XSCHEME (ワッチョイ b132-Pdg8)
2024/07/16(火) 16:26:42.34ID:f/Rbre/X0 Windows の API で Win32 API とは別系統と言えるのは WinRT くらいなんだけどね。
Windows にはサブシステムが追加されることもある。
普段は Win32 サブシステムや Win64 サブシステムの上で作業してると思うけど
今だと WSL (Windows Subsystem for Linux) もメジャーな存在になってる。
そういったサブシステムとアプリケーションとの間のインターフェイスは Win32 API とは別系統。
Windows のサブシステムという仕組みは新しいものではなくて、
かつては POSIX (Unix の統一規格) サブシステムや OS/2 サブシステムが載ってた時期もあった。
Windows にはサブシステムが追加されることもある。
普段は Win32 サブシステムや Win64 サブシステムの上で作業してると思うけど
今だと WSL (Windows Subsystem for Linux) もメジャーな存在になってる。
そういったサブシステムとアプリケーションとの間のインターフェイスは Win32 API とは別系統。
Windows のサブシステムという仕組みは新しいものではなくて、
かつては POSIX (Unix の統一規格) サブシステムや OS/2 サブシステムが載ってた時期もあった。
988デフォルトの名無しさん (ワッチョイ aee4-+5P0)
2024/07/16(火) 17:02:50.25ID:o15eUmK30 WinRTはサブシステムじゃないだろ
Win32の上に構築されてる
Win32の上に構築されてる
989はちみつ餃子 ◆8X2XSCHEME (ワッチョイ b132-Pdg8)
2024/07/16(火) 17:22:22.40ID:f/Rbre/X0990デフォルトの名無しさん (アウアウエー Sa02-hIhh)
2024/07/16(火) 18:14:55.55ID:zAWhziLLa NTLDR
991デフォルトの名無しさん (ワッチョイ 45ba-Lem2)
2024/07/16(火) 22:44:21.14ID:ZrsCjURC0 C言語なら俺に聞け 163
https://mevius.5ch.net/test/read.cgi/tech/1721137434/
https://mevius.5ch.net/test/read.cgi/tech/1721137434/
992デフォルトの名無しさん (ワッチョイ 8d70-fT49)
2024/07/17(水) 03:08:40.82ID:Si6nD6Cy0 WinRTがサブシステムかどうかは不明だし、Win32の上に構築されてるかも明らかにされてない
少なくともMSはWin32に変わるC++の基礎と位置付けていて、MSは今後はWinUI3を推奨とアナウンスしたけど、それの基礎でも有る
WinRTはCOMのAPIなのでJavaScriptやC#等の他の言語からでも使える
少なくともMSはWin32に変わるC++の基礎と位置付けていて、MSは今後はWinUI3を推奨とアナウンスしたけど、それの基礎でも有る
WinRTはCOMのAPIなのでJavaScriptやC#等の他の言語からでも使える
993デフォルトの名無しさん (ワッチョイ b132-HYxY)
2024/07/17(水) 08:07:58.66ID:rcKIBlXh0 WinRT の実装はどうあれ API であるとは書いてあるのでそれが公式な立場
994デフォルトの名無しさん (ワッチョイ aee4-+5P0)
2024/07/17(水) 10:40:59.54ID:okwkanyy0 プロセス情報とロードされるDLLみたら明らか
サブシステムでない
サブシステムでない
995デフォルトの名無しさん (ワッチョイ 8d52-SxAw)
2024/07/17(水) 12:23:19.00ID:RM/TGsIi0 ComCtl32.dll万歳
996デフォルトの名無しさん (ワッチョイ 3173-6R/B)
2024/07/17(水) 14:48:58.95ID:Sspv/MB00 昔は遅くて良いならbasicインタープリター、速さを求めるならアセンブラかC言語しかなかった
それで仕方なくアセンブラ、それも面倒だからCを勉強したけど
オレはもう最近はC#かVB.netで楽してるわ
VBなのはbasicに慣れててすぐ書けるからだな
それでも十分実用速度でGUIアプリ出来て満足してる
今からGUIアプリをCで作りたいとか >>946 はすごいな
スレチスマソ
それで仕方なくアセンブラ、それも面倒だからCを勉強したけど
オレはもう最近はC#かVB.netで楽してるわ
VBなのはbasicに慣れててすぐ書けるからだな
それでも十分実用速度でGUIアプリ出来て満足してる
今からGUIアプリをCで作りたいとか >>946 はすごいな
スレチスマソ
997デフォルトの名無しさん (ワッチョイ da79-lqEU)
2024/07/19(金) 01:41:17.15ID:ZuPPmWX/0 WinRTは全く流行らず終わった
俺が知ってるのはそれぐらいだぜ
俺が知ってるのはそれぐらいだぜ
998デフォルトの名無しさん (ワッチョイ 7663-/pEx)
2024/07/19(金) 01:57:02.76ID:C8y14UUu0 終わったのはWindowsかも知れないと思う今日この頃
999デフォルトの名無しさん (ワッチョイ 7610-hIhh)
2024/07/19(金) 02:41:34.60ID:JL3kCSXE0 WindowsRT…ARM版Windows8
WinRT…Windows Rutime API
WinRT…Windows Rutime API
1000デフォルトの名無しさん (ワッチョイ 0d01-uieQ)
2024/07/19(金) 02:42:03.28ID:MAZ+GQEV0 WinRTを試そうと思ってるのに
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 262日 9時間 29分 4秒
新しいスレッドを立ててください。
life time: 262日 9時間 29分 4秒
10021002
Over 1000Thread 5ちゃんねるの運営はUPLIFT会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《UPLIFT会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
4 USD/mon. から匿名でご購入いただけます。
▼ UPLIFT会員登録はこちら ▼
https://uplift.5ch.net/
▼ UPLIFTログインはこちら ▼
https://uplift.5ch.net/login
運営にご協力お願いいたします。
───────────────────
《UPLIFT会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
4 USD/mon. から匿名でご購入いただけます。
▼ UPLIFT会員登録はこちら ▼
https://uplift.5ch.net/
▼ UPLIFTログインはこちら ▼
https://uplift.5ch.net/login
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 高市総理の周辺「小さな火種が火事になりかけている。早く鎮火しないといけない」 ★5 [Hitzeschleier★]
- 日本の立場説明へ…外務省局長が北京到着 “台湾有事”首相答弁に中国反発 [煮卵★]
- 国内ホテル、既にキャンセルも 訪日客関連業界、事態見守る [蚤の市★]
- 高市総理の周辺「小さな火種が火事になりかけている。早く鎮火しないといけない」 ★6 [Hitzeschleier★]
- 【外交】日中関係悪化、長期化の様相 2012年には自動車輸出80%減も ロイター★2 [1ゲットロボ★]
- 早大名誉教授が高市早苗首相の発言に言及「台湾も迷惑だと言っている」… [BFU★]
- 【んな専🏡】姫森ルーナ(・o・🍬)総合スレッド🏰【ホロライブ▶】★2
- 安倍晋三「台湾省は中国様のものでゲス~🤓」 1年後安倍晋三「台湾で中国と米国の武力衝突が起きた場合、米側で参戦する [455031798]
- 【悲報】有名ウヨ論客、「現実的に考えて中国と仲直りするしかなくね?」と言ったら野良ウヨから総叩きにあう [856698234]
- 【高市悲報】経団連会長、高市と面談「おい!ちゃんと中国と対話しろよ!😨」 [359965264]
- 【実況】博衣こよりのえちえち雀魂1位耐久🧪★4
- TV「港区美女スペシャル」👉すべからくカリカリが出てきて界隈に衝撃が走る [329329848]
