- 1 名前:デフォルトの名無しさん (ワッチョイ 0f63-sFbk) mailto:sage [2023/04/21(金) 14:05:20.18 ID:rqj2HSDF0.net]
- !extend:checked:vvvvv:1000:512
(新スレ立ての際上記コマンドを2行書き込んでください) C言語の話題のみ取り扱います C++の話題はC++スレへ 質問には最低限の情報(ソース/コンパイラ/OS)を付ける 数行で収まらないソースは以下を適当に使ってURLを晒す https://paiza.io/ https://ideone.com/ codepad.org/ C17 www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4713.pdf C11 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 www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf kikakurui.com/x3/X3010-2003-01.html C FAQ 日本語訳 www.kouno.jp/home/c_faq/ JPCERT C コーディングスタンダード https://www.jpcert.or.jp/sc-rules/ ※前スレ C言語なら俺に聞け 160 https://mevius.5ch.net/test/read.cgi/tech/1672191630/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
- 824 名前:デフォルトの名無しさん (ワッチョイ 0aaf-ap/T) mailto:sage [2023/10/08(日) 22:56:49.03 ID:bFy9tmBW0.net]
- SJISにエンディアンの問題なんかねーしw
- 825 名前:デフォルトの名無しさん (ワッチョイ ae5f-iLfk) mailto:sage [2023/10/09(月) 00:16:32.12 ID:v5yIEMGi0.net]
- >>820
まあ強いて言うならSJISはビッグエンディアン固定だよね
- 826 名前:デフォルトの名無しさん (ワッチョイ 0aaf-ap/T) mailto:sage [2023/10/09(月) 00:31:56.49 ID:J9meIr3U0.net]
- >>821
エンディアンというのは数値にしか成り立たない概念でしょ UTF-16はエンディアンの区別があるけど、これは16bitの数値だからあって当然だけど、SJISは単なるバイトストリームでしょ なのでエンディアンの区別は無いはずだけどね SJISが16bitの数値として定義されてんなら、何かソースを教えてくれよ
- 827 名前:デフォルトの名無しさん (ワッチョイ 7a11-kEni) [2023/10/09(月) 01:36:54.19 ID:Epzok5Ad0.net]
- C言語はOSの仕様とセットだから、どのOSのC言語か書かないと意味がない。
- 828 名前:デフォルトの名無しさん (ワッチョイ 7d10-GYY9) mailto:sage [2023/10/09(月) 07:56:20.38 ID:JBACiIYd0.net]
- SJISにしろJISにしろ98/88で使おう(テキストVRAM書き込みや漢字ROMからの読み出し)
とするときはなんかよくわからん変換やらされた思い出・・・。
- 829 名前:デフォルトの名無しさん (ワッチョイ d5f3-lQHQ) mailto:sage [2023/10/09(月) 18:41:50.35 ID:iynFVAFm0.net]
- >>817
constexpr、nullptr、auto C++で便利だったやつが追加されるんだ
- 830 名前:デフォルトの名無しさん (ワッチョイ d5f3-lQHQ) mailto:sage [2023/10/09(月) 18:42:02.61 ID:iynFVAFm0.net]
- >>817
constexpr、nullptr、auto C++で便利だったやつが追加されるんだ
- 831 名前:デフォルトの名無しさん (ワッチョイ ae5f-iLfk) mailto:sage [2023/10/09(月) 19:19:32.46 ID:v5yIEMGi0.net]
- >>822
文字コードは数値だと思ってたけど違うの? ソースに似てるけどソートは出来るよ
- 832 名前:デフォルトの名無しさん (ワッチョイ ae5f-iLfk) mailto:sage [2023/10/09(月) 19:24:49.57 ID:v5yIEMGi0.net]
- アナル可変長形式は数値じゃあないのか
勉強になったわセンキュー>>882
- 833 名前:デフォルトの名無しさん (ワッチョイ 7663-Hwqz) mailto:sage [2023/10/09(月) 19:30:25.37 ID:Slr0Hoys0.net]
- コーヒーふきそうだった
責任取ってよね
- 834 名前:デフォルトの名無しさん (ワッチョイ daad-Mhb2) mailto:sage [2023/10/09(月) 19:34:22.38 ID:Oqw93GGy0.net]
- アナル可変長形式ってどんな形式だべ?
太さによって広がりはするけど長さは……
- 835 名前:デフォルトの名無しさん (ワッチョイ 6ed5-IgUm) mailto:sage [2023/10/09(月) 19:58:17.35 ID:U5VU0viZ0.net]
- SJISって1stバイトの最上位ビットが立ってるのをもって
後続バイトがペアになるわけだが ここからエンディアンへの繋がりを見出だせない
- 836 名前:デフォルトの名無しさん (ワッチョイ 7663-Hwqz) mailto:sage [2023/10/09(月) 20:01:41.10 ID:Slr0Hoys0.net]
- >最上位ビットが立ってる
もうちょっと複雑だったと思う UJISとは違う
- 837 名前:デフォルトの名無しさん (ワッチョイ 7a36-GYY9) mailto:sage [2023/10/09(月) 23:50:22.00 ID:G12VbuWM0.net]
- SJISはコード表見てて文字列を1バイトづつ見て行って
0x81~0x98、0xe0~0xeeが出てきたらSJIS文字だと判断するコード書いてた。
- 838 名前:デフォルトの名無しさん (ワッチョイ 7a36-GYY9) mailto:sage [2023/10/09(月) 23:55:28.00 ID:G12VbuWM0.net]
- あと文字列操作コード書きやすいように1文字2バイトに変換(?)するコードも書いてた。
- 839 名前:デフォルトの名無しさん (ワッチョイ 0aaf-ap/T) mailto:sage [2023/10/10(火) 00:04:28.27 ID:vFMCesii0.net]
- >>827
> SJISが16bitの数値として定義されてんなら、 と書いてあるだろ 数値だと思ってたけどとか、読解力が無さすぎて泣けてくる… JISコードは16bitの数値(2byteコード)としても定義されてるけど、SJISはそれを巧妙にエンコードしたものと言えるだろう なのでやはりバイトストリームだな
- 840 名前:デフォルトの名無しさん (ワッチョイ 7a36-GYY9) mailto:sage [2023/10/10(火) 00:41:46.82 ID:WRpVvMtq0.net]
- テキストファイルの形式としてSJISはビッグエンディアンでなければならないって程度の認識。
- 841 名前:デフォルトの名無しさん (ワッチョイ 7a36-GYY9) mailto:sage [2023/10/10(火) 00:44:51.87 ID:WRpVvMtq0.net]
- SJISを文字と数値の相対表と見るか、
テキストのファイル形式を含めた規格とみるか。
- 842 名前:デフォルトの名無しさん (ワッチョイ 5a7f-FHep) [2023/10/10(火) 01:54:11.03 ID:hSg/mMq/0.net]
- いまどきキャラクタセットの操作を自作してしまうのはヤバいプログラマ
- 843 名前:デフォルトの名無しさん mailto:sage [2023/10/10(火) 09:46:25.05 ID:jpaIozT30.net]
- 昔書いたunicode対応のソースが最新コンパイラでエラー、ワーニングが山程出てきて心折れるんや・・・。
- 844 名前:デフォルトの名無しさん [2023/10/10(火) 10:47:51.74 ID:0SFeJAzN0.net]
- 文字列としてリトルエンデアンだと可変長文字コードが面倒な事になるでしょうに
- 845 名前:デフォルトの名無しさん [2023/10/10(火) 10:58:37.96 ID:vCJOXgr3a.net]
- >>824
漢字ROMとVRAMはエンディアンというより(エンディアン)もあるが ややこしかったのは右半分と左半分とかな
- 846 名前:デフォルトの名無しさん mailto:sage [2023/10/10(火) 11:36:08.74 ID:k8E2nUhl0.net]
- >>840
"Aア"は0x41 0x83 0x41だけどこれがもし0x41 0x41 0x83だったら、0x41 0x41まで読んだところでこれが"AA"なのかどうかを次のバイトまで読まないと確定出来なくなるわけだよね
- 847 名前:デフォルトの名無しさん mailto:sage [2023/10/10(火) 14:45:56.30 ID:lY2q8v9P0.net]
- >>835
どのあたりが巧妙なのか ついでに解説をお願い思案す
- 848 名前:デフォルトの名無しさん [2023/10/10(火) 15:06:58.22 ID:vCJOXgr3a.net]
- x 巧妙に
o 泥臭く EUC-JPで良かったんだよ
- 849 名前:デフォルトの名無しさん mailto:sage [2023/10/10(火) 17:44:06.68 ID:JaQe+SGi0.net]
- EUC-JPにすると半角カナ文字が全滅するんだよな
- 850 名前:デフォルトの名無しさん mailto:sage [2023/10/10(火) 20:02:21.46 ID:SBkOlj5r0.net]
- 半角カナは全滅してほしかったし
今すぐにも全滅してほしい
- 851 名前:デフォルトの名無しさん [2023/10/10(火) 22:25:54.11 ID:8PzXep7k0.net]
- もう面倒だから Unicode を UTF-8 で使え。
- 852 名前:デフォルトの名無しさん mailto:sage [2023/10/11(水) 00:45:18.47 ID:m71rV3Zb0.net]
- euc-jpの半角カナは全滅じゃなくて、バイト数が多くなる、だったような。3バイトとか
- 853 名前:デフォルトの名無しさん mailto:sage [2023/10/11(水) 01:29:28.77 ID:cflt71CU0.net]
- >>843
JIS X 0208はいわゆる半角文字も2byteコードで定義されてるが、それと半角カナをエスケープシーケンス無しで混在させる方法を定義したんだよ! ほぼWikipediaの受け売りだw 詳しいことはWikipediaを見ろよ つうかそんなことも分からん若造が増えたんだな…
- 854 名前:デフォルトの名無しさん [2023/10/11(水) 03:32:09.53 ID:RVlIgJ7N0.net]
- >>848
2バイト。 0x8e が最初にあって、その次にシフトJISの半角仮名と同じコードが来る。
- 855 名前:デフォルトの名無しさん (ワッチョイ 7663-Hwqz) mailto:sage [2023/10/11(水) 09:52:13.46 ID:LeQSJgup0.net]
- 1バイトアルファベットも2バイト化して
- 856 名前:デフォルトの名無しさん (ワッチョイ 0a0d-HisN) [2023/10/11(水) 10:14:54.69 ID:NQyPw3h00.net]
- 文字コードも、32bitとか、64bitとか、メモリーアクセス単位に見合うサイズにしたらいいだけだよなぁ
可変長にする必要が全く無い
- 857 名前:デフォルトの名無しさん (ワッチョイ 7a36-GYY9) mailto:sage [2023/10/11(水) 10:43:08.13 ID:ZfRV8AUK0.net]
- 80年代プログラマ「1バイト、1ビットでも無駄にするんじゃねぇよ!!」
- 858 名前:デフォルトの名無しさん (ワッチョイ 85de-ap/T) mailto:sage [2023/10/11(水) 11:58:33.24 ID:cflt71CU0.net]
- 1文字に見える絵文字もUTF-8で41byteになったりするんで、1文字64bitにしようが可変長になる
なのでUTF-8かUTF-16にしておくのが無難 UTF-16は主な漢字は2byteで済むんで、何気にバランスが良い文字コードだと思えるようになってきた
- 859 名前:デフォルトの名無しさん mailto:sage [2023/10/11(水) 21:17:47.06 ID:DBrOrPS60.net]
- >>824
表示コードだろ SJISにしろJISにしろ表にすると空白部分がいっぱいあってROM容量がもったいない(当時は)から
- 860 名前:デフォルトの名無しさん mailto:sage [2023/10/11(水) 21:21:23.81 ID:DBrOrPS60.net]
- >>852
まあ数百文字しか文章を書かないプログラマーの発想だねえw 数万文字や数万ページの文書になると保存や検索にリソース食ってもったいない
- 861 名前:デフォルトの名無しさん [2023/10/11(水) 22:12:46.43 ID:RVlIgJ7N0.net]
- >>853
2KBに無理矢理詰め込むみたいなことを昔やったことあるな。ROMの容量に合わせてビット単位で詰め込む。 そういえば Apple ][ のモニタプログラムが2KB丁度で6502のアセンブラのソース見て物凄い詰め込み具合に感動した。 1バイトも無駄がなく2KBピッタリだった。
- 862 名前:デフォルトの名無しさん mailto:sage [2023/10/11(水) 23:09:10.07 ID:Oo4KNMoV0.net]
- > 1バイトも無駄がなく2KBピッタリだった。
そんなことない。まだ詰めれるし空きもあった。
- 863 名前:デフォルトの名無しさん [2023/10/11(水) 23:34:38.65 ID:RVlIgJ7N0.net]
- >>858
えー。なかったと思ったがなあ。それって Apple ][ plus とか、後に出た少し変えたやつでは?
- 864 名前:デフォルトの名無しさん mailto:sage [2023/10/11(水) 23:40:13.44 ID:m71rV3Zb0.net]
- >>850
おお、指摘サンキューです アップル2とか マニアック過ぎて付いて行け ま
- 865 名前:デフォルトの名無しさん mailto:sage [2023/10/11(水) 23:42:44.40 ID:UuDrjcXU0.net]
- アリスソフトのゲームはひらがながカタカナで入っててうふ~んだったな
- 866 名前:デフォルトの名無しさん (ワッチョイ 9120-5icV) [2023/10/12(木) 02:28:41.65 ID:5xqSIwyk0.net]
- >>859
https://6502disassembly.com/a2-rom/OrigF8ROM.html > feae: ea nop > feaf: ea nop ↑空きの例
- 867 名前:デフォルトの名無しさん (ワッチョイ 7a26-vQFs) [2023/10/12(木) 06:14:09.61 ID:YEvWoXVk0.net]
- linuxのファイルディスクリプタの操作に関する質問です。
別デバイスとのシリアル通信制御にselect関数を使用しています。 受信可能かタイムアウトかを判断しているんですが、別デバイスから電文が送られてからselect関数が受信可能を検知するまでに20msほどかかり、その後のreadしたサイズは32ビットほどです。 理想は5ms以内で受信可能を検知してほしいです。 ボーレートは80000bps(カスタム) システムコールを使っている以上、デバイスドライバ。いじらないと難しいですかね?
- 868 名前:デフォルトの名無しさん (ワッチョイ 0941-LlOc) mailto:sage [2023/10/12(木) 07:17:12.28 ID:oHsanHa80.net]
- むむむ
20msは遅いですね 特殊な環境?
- 869 名前:デフォルトの名無しさん [2023/10/12(木) 08:00:06.42 ID:YEvWoXVk0.net]
- >>864
ラズパイです 32ビットではなく32バイトです 送っている電文も32バイトです
- 870 名前:デフォルトの名無しさん [2023/10/12(木) 08:06:20.25 ID:YEvWoXVk0.net]
- ちなみにselect置かずに、ノンブロッキングでループでreadした場合も、少しずつreadできるわけではなく、20ms後に送った電文全てがreadで読み取れます
- 871 名前:デフォルトの名無しさん mailto:sage [2023/10/12(木) 08:47:57.58 ID:qyteNpVi0.net]
- rawモードにしてないとかじゃないの
- 872 名前:デフォルトの名無しさん mailto:sage [2023/10/12(木) 09:10:29.66 ID:qyteNpVi0.net]
- 後は低遅延カーネルが使えるなら使うとか
- 873 名前:デフォルトの名無しさん (ワントンキン MMea-nQTY) [2023/10/12(木) 09:28:19.79 ID:aDAtXVNfM.net]
- そもそもデータは実際どれくらいで到着してんのか確認はしたんだよな?
送信側が20ms毎にしか動いてないかとかその辺も
- 874 名前:デフォルトの名無しさん (アウアウウー Sa39-OOOs) [2023/10/12(木) 10:25:26.89 ID:u59ybXeVa.net]
- 16bit sensation 観てるけど
https://16bitsensation-al.com/ 出て来るPC画面の編集中のアセンブラが 32bit用のコードじゃん
- 875 名前:デフォルトの名無しさん (ワッチョイ 7663-Hwqz) mailto:sage [2023/10/12(木) 10:58:22.07 ID:ULGeIkC90.net]
- どの画面かよく分からなかった
使ってるPCはどうやら9801VMみたいだ https://twitter.com/16bit_anime/status/1708133347308818759/photo/1 5インチフロッピーなんて、なつかし (deleted an unsolicited ad)
- 876 名前:デフォルトの名無しさん [2023/10/12(木) 11:22:56.30 ID:m8bqtWD+0.net]
- >>869
それは確認してます。
- 877 名前:デフォルトの名無しさん [2023/10/12(木) 11:23:04.80 ID:m8bqtWD+0.net]
- >>869
それは確認してます。
- 878 名前:デフォルトの名無しさん mailto:sage [2023/10/12(木) 12:24:11.74 ID:CHwK2zqJ0.net]
- >>870
アセンブラスレッドでやれ
- 879 名前:デフォルトの名無しさん [2023/10/12(木) 17:39:39.42 ID:m8bqtWD+0.net]
- >>865
200バイト送ってみましたが、検知の時間差はあまりありませんでしたが、read1回で200バイト全部取れました…
- 880 名前:デフォルトの名無しさん (ワッチョイ da79-4iaA) mailto:sage [2023/10/12(木) 21:33:07.79 ID:ZXm8+EHB0.net]
- ラズパイのスタックがバグってるだけだろ
他の環境でも試したのか?
- 881 名前:デフォルトの名無しさん (ワッチョイ 4677-HisN) [2023/10/13(金) 21:33:40.39 ID:9i9XasLe0.net]
- パケットサイズ貯まるまで送信しないか
貯まらなくても時間で送信だったかなぁ
- 882 名前:デフォルトの名無しさん (ブーイモ MMfa-rRiV) mailto:sage [2023/10/13(金) 21:48:20.10 ID:tPyDzWZ1M.net]
- >>877
その辺は設定で変えられるんだよ rawモードにすれば両方無効になる
- 883 名前:デフォルトの名無しさん (ワッチョイ ae5f-iLfk) mailto:sage [2023/10/13(金) 22:00:39.18 ID:vGVgbb2n0.net]
- 1人日5万円くれたら解決してあげるよ
- 884 名前:デフォルトの名無しさん (ワッチョイ c914-cthS) mailto:sage [2023/10/14(土) 01:22:13.59 ID:tQyeYAE20.net]
- つ5万円
- 885 名前:デフォルトの名無しさん mailto:sage [2023/10/14(土) 01:23:14.75 ID:Z8feDlim0.net]
- プロになると、Linux は3回 shutdown しろと言う香具師がいるw
Windows に至っては、 shutdown はダメ、再起動しろってさw どういうシステムやねんw
- 886 名前:デフォルトの名無しさん [2023/10/14(土) 02:10:30.63 ID:BgrcFKKf0.net]
- >>862
それ何かの都合でどうしても必要だから NOP にしてあるのでは? まあでも開いてると言えば開いてるな。 とすると2KB未満であの機能が詰め込まれていることになって、余計に凄い感じするわけだが。 まあでも逆アセンブルが出来るのにその文字がソースに入ってなくて、一体どうやっているのかと延々と プログラムを読んで、確か2バイトに3文字詰め込んでて(f9c0, fa00 の辺り)、当時それを見つけて驚いたな。 初心者だったからね。
- 887 名前:デフォルトの名無しさん (ワッチョイ 7b27-S8Dy) [2023/10/14(土) 12:58:59.76 ID:FvSW4+JI0.net]
- 3回shutdownは初めて聞いた
3回syncのことかな? 1回目が依頼、2回目が実行、3回目は祈り・・・
- 888 名前:デフォルトの名無しさん [2023/10/14(土) 23:20:34.47 ID:BgrcFKKf0.net]
- 2回以上連続syncはやったことないなあ
- 889 名前:881 mailto:sage [2023/10/15(日) 00:37:55.29 ID:1GgH9uvV0.net]
- スマン。3回shutdown じゃないわ。
3回sync だった Windows は高速スタートアップがあるから、 shutdownはメモリの内容をSSD に保持するから、復元されてしまうので、 再起動するのが正解らしい
- 890 名前:デフォルトの名無しさん (ワッチョイ c925-+xaX) mailto:sage [2023/10/15(日) 06:23:13.62 ID:RYkKDVjT0.net]
- 説明がヘタで何言ってるのかわからんが
このスレッドのテーマと関係ないだろ他でやれ
- 891 名前:デフォルトの名無しさん (ワッチョイ 1336-8seT) mailto:sage [2023/10/15(日) 21:52:14.34 ID:nkdZTM470.net]
- 一回目の sync に時間がかかるとその間にメモリの書き換えが起きてしまう可能性があるから、二度目の sync をする。ふつうはそこで満足する。どうしても心配ならもう一度 sync するわけだけど、そこまで心配なら別の方法を考えた方がいい。
- 892 名前:デフォルトの名無しさん (ワッチョイ 1379-3b5p) mailto:sage [2023/10/15(日) 21:54:23.57 ID:WV6g/2dS0.net]
- 888888888888888888888888888888888888888
888888う8888888888ん88888888888888888こ88 888888888888888888888888888888888888888
- 893 名前:デフォルトの名無しさん [2023/10/16(月) 10:05:31.11 ID:kgcCjrnKa.net]
- CでWindowsのデバドラ描くなら
shutdownが高速スタートアップかそうじゃないかは重要じゃないか cmd 起動して shutdown -s -t 0 をよくやる これだけじゃなくて hybernate をあらかじめ off にしておく必要もある powercfg.exe /hibernate
- 894 名前:デフォルトの名無しさん (ワッチョイ 29b7-S8Dy) [2023/10/17(火) 10:35:23.04 ID:QQA0GvA50.net]
- >>887
1回目のsyncはコマンド実行後にすぐ返るけど、 2回目のsyncは1回目が終わるまでブロックされるんよ だから書き込み保証の代わりになってたってわけ 3回目は祈り・・・
- 895 名前:デフォルトの名無しさん (ワッチョイ 8b63-iZeJ) mailto:sage [2023/10/17(火) 10:47:53.72 ID:+MFXb2Fe0.net]
- 祈りは聞き届けられました!
- 896 名前:デフォルトの名無しさん mailto:sage [2023/10/17(火) 12:31:38.91 ID:y7v373yJ0.net]
- 三菱UFJ銀行など10金融機関で約250万件の送金が滞った全国銀行データ通信システム(全銀システム)の障害は、各金融機関と同システムをつなぐ機器の容量(メモリー)不足が要因だったことがわかった。機器の更新で処理量が増え、想定の容量を超えてパンクした。事前のテストが不十分だった可能性もあり、検証が求められる。
- 897 名前:デフォルトの名無しさん mailto:sage [2023/10/17(火) 12:35:48.82 ID:y7v373yJ0.net]
- 記事読んでると、素人が作ったのかと思うほど粗雑に感じるが、
単に記事を書いた記者が素人だからかもしれない。
- 898 名前:デフォルトの名無しさん [2023/10/17(火) 13:14:23.15 ID:XZGXsIC3M.net]
- またスレチかよわざとやってんのか?w
- 899 名前:デフォルトの名無しさん (アウアウウー Sadd-f0fU) [2023/10/17(火) 14:30:57.88 ID:vCPpyEw2a.net]
- ルーターのNATテーブルが貧弱で
定期的に再起動しないといけないルーターがあったのを思い出した
- 900 名前:デフォルトの名無しさん (ワッチョイ 0bc2-T9H3) [2023/10/20(金) 15:45:46.46 ID:Ipe4ElpV0.net]
- それなんてcorega?
ってフレーズも懐かしい・・・。
- 901 名前:デフォルトの名無しさん (ワッチョイ e95f-pCU2) mailto:sage [2023/10/20(金) 15:48:07.37 ID:v1uIJG0f0.net]
- 最近じゃ組み込み系もPythonになってるらしいな
- 902 名前:デフォルトの名無しさん (ワッチョイ 13ad-62ca) [2023/10/20(金) 18:19:30.36 ID:Zfs7dH680.net]
- 初耳だ
- 903 名前:デフォルトの名無しさん (ワッチョイ 13ad-62ca) [2023/10/20(金) 18:19:46.73 ID:Zfs7dH680.net]
- 初耳だ
- 904 名前:デフォルトの名無しさん (ラクッペペ MMeb-BOBA) mailto:sage [2023/10/20(金) 19:00:07.60 ID:OBgHVD6WM.net]
- ArduinoとかはまだC/C++が使われているけどRaspberryPiあたりではPythonが使われている
- 905 名前:デフォルトの名無しさん (ワッチョイ c134-eijK) [2023/10/20(金) 20:37:45.65 ID:iiycX8pJ0.net]
- ラズパイが組み込みって言われてもなぁ
- 906 名前:デフォルトの名無しさん (ワッチョイ 8b63-iZeJ) mailto:sage [2023/10/20(金) 20:52:13.36 ID:WNS0tsmN0.net]
- コンパクトなバイナリーが作れるんだろうか
それともライブラリーが別途必要?
- 907 名前:デフォルトの名無しさん (ワッチョイ 2bb6-AzOG) [2023/10/20(金) 22:48:36.74 ID:gDJgEYng0.net]
- Cでつくったもので自慢のものある?
- 908 名前:デフォルトの名無しさん (ワッチョイ ddf0-5RLD) mailto:sage [2023/10/21(土) 12:56:21.39 ID:Auba50wB0.net]
- ラズパイの話するならPicoか否か書けよ
- 909 名前:デフォルトの名無しさん mailto:sage [2023/10/21(土) 13:34:03.99 ID:ifbOBJO10.net]
- ラズパイの話するな
- 910 名前:デフォルトの名無しさん mailto:sage [2023/10/21(土) 13:40:58.48 ID:m23W7dra0.net]
- >>903
通信プロクシとテストデータ作成ツール^^ しょうもない物しか作ってないわスマンな
- 911 名前:デフォルトの名無しさん (ワントンキン MM8a-xqvO) mailto:sage [2023/10/21(土) 21:29:19.14 ID:t2gg/cweM.net]
- 作ったものは数々あるが、
自慢できるものはない
- 912 名前:デフォルトの名無しさん [2023/10/21(土) 22:19:05.57 ID:9n8k9yEZ0.net]
- 恥の多いプログラムを作って来ました。
- 913 名前:デフォルトの名無しさん (アウアウウー Sa09-6i8i) [2023/10/22(日) 11:30:49.85 ID:GXjFDCr1a.net]
- そもそも業務で造ったものは守秘義務あるからな
- 914 名前:デフォルトの名無しさん (ワッチョイ 7a79-Idv/) mailto:sage [2023/10/22(日) 12:04:50.59 ID:7Lbl94Rb0.net]
- >>908
プログラマー失格やな!
- 915 名前:デフォルトの名無しさん (ワッチョイ d663-iKuA) mailto:sage [2023/10/22(日) 12:08:40.64 ID:+M4dXZ790.net]
- 作っていて、恥ずかしさを感じないとすれば、それこそ失格だ
人は失敗の中から多くを学ぶ
- 916 名前:デフォルトの名無しさん (スッップ Sd9a-ilqh) mailto:sage [2023/10/22(日) 12:41:16.58 ID:WtUZjflvd.net]
- 恥とかそんなのとは違う
ビジネスとはスピードと品質のトレードオフ そのバランスを考えられないのがプロとして恥
- 917 名前:デフォルトの名無しさん (ワッチョイ dd14-PKJr) mailto:sage [2023/10/22(日) 12:41:36.43 ID:DsuvifSY0.net]
- >>911
太宰治の人間失格とかけてんだろ 気付いてやれよ
- 918 名前:デフォルトの名無しさん (ワッチョイ 7aad-CfcT) [2023/10/22(日) 13:27:44.71 ID:lT9uYjte0.net]
- >>900
それってLinuxではないOSで動く場合? Linux入れちゃったらドライバとそれに対するライブラリだけの問題で言語は関係なくなるよね。
- 919 名前:デフォルトの名無しさん (ワッチョイ 7a79-Idv/) mailto:sage [2023/10/22(日) 13:30:41.44 ID:7Lbl94Rb0.net]
- 自分で調べろよそれぐらい…お前もプログラマー失格やな!
- 920 名前:デフォルトの名無しさん mailto:sage [2023/10/22(日) 19:09:03.13 ID:1z8BeiKk0.net]
- 生まれてすみません
- 921 名前:デフォルトの名無しさん mailto:sage [2023/10/22(日) 19:19:12.31 ID:+M4dXZ790.net]
- いいってことよ
- 922 名前:デフォルトの名無しさん [2023/10/24(火) 16:01:52.72 ID:ju9L4gE1F.net]
- おかえり
- 923 名前:デフォルトの名無しさん [2023/10/26(木) 00:49:54.03 ID:89nTklyv0.net]
- C23でC11ぶりに更新ってC標準化委員会(?)だかはサボり過ぎじゃねーか。
C++なみとは言わんが5年ぐらいごとに見直せや。 nullptrとか入るの遅過ぎる。 deferも無いとかアホすぎる。
- 924 名前:デフォルトの名無しさん mailto:sage [2023/10/26(木) 02:57:54.97 ID:q3UKhsX80.net]
- いつまでも未完成のサグラダファミリアみたいなC++とは違ってCは生まれた時から完成してるから
後々機能追加したところでそいつの自己満でしかない 未完成のC++から逆輸入されて良かったことなんて行コメント程度しかない
- 925 名前:デフォルトの名無しさん (スフッ Sd9a-dytz) [2023/10/26(木) 08:37:00.27 ID:FkoAeS+Vd.net]
- コンパイラがC11のgets_s()関数に対応してないんですが、どうすればいいですか?
- 926 名前:デフォルトの名無しさん (スフッ Sd9a-dytz) [2023/10/26(木) 08:37:12.14 ID:FkoAeS+Vd.net]
- コンパイラがC11のgets_s()関数に対応してないんですが、どうすればいいですか?
- 927 名前:デフォルトの名無しさん (ワッチョイ dd14-PKJr) mailto:sage [2023/10/26(木) 09:02:33.67 ID:nJ6kaeWr0.net]
- あきら🍈
- 928 名前:デフォルトの名無しさん (スフッ Sd9a-9f78) [2023/10/26(木) 09:08:02.65 ID:FkoAeS+Vd.net]
- >>923 あきらめてvisual studioでgets_s()関数を使えていますが、vscodeの普段使っているコンパイラでは
使えません
- 929 名前:デフォルトの名無しさん (スフッ Sd9a-9f78) [2023/10/26(木) 09:08:14.78 ID:FkoAeS+Vd.net]
- >>923 あきらめてvisual studioでgets_s()関数を使えていますが、vscodeの普段使っているコンパイラでは
使えません
- 930 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 8e3e-exru) mailto:sage [2023/10/26(木) 09:11:27.20 ID:oN20rU1J0.net]
- 自分で書いたってそんなに時間はかからんだろう。
行がバッファより長いときや引数が条件を満たさないときに 制約ハンドラを呼ぶってだけだぞ。
- 931 名前:デフォルトの名無しさん [2023/10/26(木) 09:13:48.45 ID:FkoAeS+Vd.net]
- >>926 結局gets()関数の代用はfgets()しかないというこですね
- 932 名前:デフォルトの名無しさん mailto:sage [2023/10/26(木) 09:38:07.39 ID:G4ruVh0t0.net]
- 自分で作れよ
Cってそういうもんだ
- 933 名前:デフォルトの名無しさん (スフッ Sd9a-9f78) [2023/10/26(木) 10:11:10.35 ID:FkoAeS+Vd.net]
- >>928 自分で書きました
- 934 名前:デフォルトの名無しさん (スッップ Sd9a-Habm) [2023/10/26(木) 11:50:48.14 ID:ZES507rzd.net]
- >>920
そんなんだからリーナスだってぶち切れるんだぞ。
- 935 名前:デフォルトの名無しさん (スッップ Sd9a-SL8W) mailto:sage [2023/10/26(木) 13:16:49.71 ID:62xlwgird.net]
- winでguiアプリ作る時とかCランタイムなんて全く使わないでしよ
今更Cで作るかは置いといて
- 936 名前:デフォルトの名無しさん (ワッチョイ f969-Dq0e) mailto:sage [2023/10/26(木) 13:20:48.32 ID:S8nCpIo20.net]
- (σ・∀・)σゲッツ!!
- 937 名前:デフォルトの名無しさん (ワッチョイ d6ab-OCAv) mailto:sage [2023/10/26(木) 14:24:42.99 ID:Qn92XRBA0.net]
- 文字列周りのあれこれは Cランタイムのお世話も併用することが
- 938 名前:デフォルトの名無しさん (スフッ Sd9a-Cy5w) [2023/10/26(木) 15:12:00.43 ID:ES29OdTad.net]
- TCHAR無視でASCIIzしか使わないならいけるかな
memcpyとかmallicとかも普通に使えるしな TCHARのUNICODE版の文字列処理ってもうCランタイムと言うのは無理ありそう 末尾にに_s付いたのとか先頭にl付いたのとか もう亜種増え過ぎで覚えられんくなった あれはCランタイムじゃなくてwin32apiだわ
- 939 名前:デフォルトの名無しさん (ワッチョイ 8e5f-ANn9) mailto:sega [2023/10/26(木) 17:56:31.84 ID:SEjxiCyL0.net]
- C言語でGC実装したライブラリあったよね
あれって今でも使われてんの?
- 940 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 8e3e-exru) mailto:sage [2023/10/26(木) 18:27:34.63 ID:oN20rU1J0.net]
- >>935
Boehm GC のこと?
- 941 名前:デフォルトの名無しさん (ワッチョイ 8e5f-ANn9) mailto:sage [2023/10/26(木) 21:04:51.64 ID:SEjxiCyL0.net]
- >>936
そうそうそれそれ 思い出したけど w3m とかで使ってたよな w3mが現役ってことはboehmgcも現役なんかね
- 942 名前:デフォルトの名無しさん (ワッチョイ f969-Dq0e) mailto:sage [2023/10/26(木) 23:37:41.65 ID:S8nCpIo20.net]
- Boehm GC使ってるぞ
つうかUnityのランタイムはBoehm GCが使われてる
- 943 名前:デフォルトの名無しさん mailto:sage [2023/10/26(木) 23:41:25.14 ID:S8nCpIo20.net]
- Unity使ってるゲームはごまんとあるけど、敢えてGCを切ってるゲームも中には有るかも知れんが、ほとんどのゲームは裏でBoehm GCが動いている
要するに知らないだけで、Boehm GCはメチャクチャ使われてる 無知は罪だなw
- 944 名前:デフォルトの名無しさん mailto:sage [2023/10/26(木) 23:50:27.25 ID:S8nCpIo20.net]
- > ほとんどのゲーム
ほとんどのUnity使ったゲームでだな それと最近UnityのBoehm GCにインクリメンタルGCが追加された それまではStop The World(STW)のインパクトが凄くて、みんな最後にはなるべくGCが発生しないようにするチューニングが待っていたw
- 945 名前:はちみつ餃子 mailto:sage [2023/10/27(金) 00:08:08.21 ID:heVGcbpM0.net]
- Boehm GC はマシンスタックも走査するようなデザインだからアーキテクチャに依存する部分がいっぱいあるし、メンテナンスもし続けないとすぐ実情にあわなくなって破綻すると思う。
逆に言えば採用されてちゃんと動いているのはちゃんとメンテナンスされてるからだろう。 それなりに活発に利用も開発もされてると言えるんじゃないか。 プログラミング言語処理系のいくつかで採用事例を見たことはある。
- 946 名前:デフォルトの名無しさん mailto:sage [2023/10/27(金) 00:26:28.28 ID:u2CdPYGW0.net]
- 今も活発に開発されてるよ
まぁリリースは半年とか年一ぐらいだけどね
- 947 名前:デフォルトの名無しさん (ワッチョイ cee7-ANn9) mailto:sage [2023/10/27(金) 11:18:26.71 ID:dEbuX89/0.net]
- そうなのかUnityすげーな
そもそもUnityがC言語だったのも知らんかったわ C言語でGUIなゲーム作れるならやってみるわ ありがとう
- 948 名前:デフォルトの名無しさん (ワッチョイ cd10-JD/u) mailto:sage [2023/10/27(金) 11:33:41.42 ID:9P66tx0i0.net]
- ゲームのMOD管理や改造ツール探してると結構間違ってソース配布ページへ飛ばされる。
ファイル拡張子が*.cなトコは無いにしても、*.cppなとこは多いね。
- 949 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 8e3e-exru) mailto:sage [2023/10/27(金) 12:18:24.77 ID:heVGcbpM0.net]
- >>943
dotNET が Unity の基礎にあるからユーザが使うレイヤでは C# が前提だよ。 ただ、それを実行するランタイムサポートの中には低レイヤ寄りの部分も当然あるし、 そこで Boehm GC が使われているって話。 C で書いたモジュールを呼び出すことは出来るんだけど…。 「C でゲームを作る」のがやりたいなら Unity は全然向いてない。
- 950 名前:デフォルトの名無しさん (ワッチョイ ddf4-U54k) mailto:sage [2023/10/27(金) 12:22:07.63 ID:gE38RsN70.net]
- そもそもC言語でGUIゲーム作れるじゃんUnityじゃなくても
- 951 名前:デフォルトの名無しさん (ワッチョイ fade-UUkb) [2023/10/27(金) 13:36:32.37 ID:DWeOppJn0.net]
- 公開して
- 952 名前:デフォルトの名無しさん (ワッチョイ 999f-dytz) mailto:sage [2023/10/27(金) 13:59:41.03 ID:CZ4Htjtu0.net]
- 後悔しました
- 953 名前:デフォルトの名無しさん (ワッチョイ 7aad-iKuA) mailto:sage [2023/10/27(金) 15:35:27.52 ID:sXR1+sXw0.net]
- 航海します
- 954 名前:デフォルトの名無しさん (ワッチョイ c18f-BTDU) [2023/10/27(金) 21:03:53.47 ID:nBxrDXuS0.net]
- Cでゲームかぁ
面倒くさそう
- 955 名前:デフォルトの名無しさん (ワッチョイ d663-iKuA) mailto:sage [2023/10/27(金) 21:16:42.74 ID:qIG6QpEs0.net]
- Cじゃなくてもめんどくさそうって言い出しそう
- 956 名前:デフォルトの名無しさん (ワッチョイ dd14-PKJr) mailto:sage [2023/10/27(金) 21:30:02.47 ID:t+LCPq2M0.net]
- Windowsのクロンダイク作ろうぜ
あれならもともとCのはず
- 957 名前:デフォルトの名無しさん (ワッチョイ d663-iKuA) mailto:sage [2023/10/27(金) 21:37:13.50 ID:qIG6QpEs0.net]
- MS-DOSの頃はアマチュアの作ったゲームがたくさんあったな
ゲームメーカーの商品より優秀なのもあったし、 メーカーから訴えられた個人もいたな。 メーカー側が取り下げた様だが、 もしかしたら訴えた事実がなかったかも知れない その後倒産したという噂を聞いた Windowsになってからは、VBで作る人が多かった
- 958 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 8e3e-exru) mailto:sage [2023/10/27(金) 21:44:44.21 ID:heVGcbpM0.net]
- アマチュアが作っているゲーム作品の数で言えば今のほうがずっと多いと思うが。
- 959 名前:デフォルトの名無しさん (ワッチョイ d663-iKuA) mailto:sage [2023/10/27(金) 22:25:12.50 ID:qIG6QpEs0.net]
- そうなのか・・・
最近はゲームしてないので知らないんだw
- 960 名前:デフォルトの名無しさん (ワッチョイ 7a79-Idv/) mailto:sage [2023/10/27(金) 22:28:08.93 ID:M9GgCmOO0.net]
- 今はvやutuberに媚びたゲーム作れば配信で遊んでくれるから一気にプレイヤー数も増えるよ
- 961 名前:デフォルトの名無しさん (ワッチョイ 81f4-WJPr) mailto:sage [2023/10/28(土) 11:42:50.19 ID:vcHM6tqr0.net]
- >>953
すっごい適当なことばっかり言うねw
- 962 名前:デフォルトの名無しさん (ワッチョイ 5359-g3nS) mailto:sage [2023/10/28(土) 12:43:38.00 ID:p7wdBTPe0.net]
- >>957
Bio_100%とかタカリスなんて知らないせだいなんだろうな
- 963 名前:デフォルトの名無しさん (ワッチョイ 199f-CP9B) mailto:sage [2023/10/28(土) 13:20:46.38 ID:CS7+IID10.net]
- ゲームエンジンもライブラリもろくになかった時代にC言語とアセンブラを駆使して
高レベルなゲームを作れるアマチュアプログラマがたくさんいた (Unityで作るより高スキルが求められる)という話であって、 アマチュア/インディーズゲームのリリース数が論点というわけじゃないんじゃね?w
- 964 名前:デフォルトの名無しさん (ワッチョイ 215f-H9h+) mailto:sage [2023/10/28(土) 13:35:13.59 ID:t5G+utQT0.net]
- 1997年あたりにワイヤフレームだけどゴリゴリの3Dで8台で競艇するゲームは当時かなりオーパーツ感あった
波でグラグラゆれたり、あの当時でステージメイキングも確か出来たし、誰か知ってる人おらんじゃろうか
- 965 名前:デフォルトの名無しさん (ワッチョイ 5351-zW/F) [2023/10/28(土) 14:14:38.32 ID:wcF/YB9E0.net]
- よそできけよ
- 966 名前:デフォルトの名無しさん (ワッチョイ 937c-cQ99) [2023/10/29(日) 00:56:56.68 ID:GrwAVmld0.net]
- C言語標準規格、せめて5年毎ぐらいに見直してくれればなぁ。
そしたらとっくにnullptrは入ってただそうし。もしかしたら deferや lambdaも入ってたかもしれん。
- 967 名前:デフォルトの名無しさん (ワッチョイ 5351-zW/F) [2023/10/29(日) 08:16:14.69 ID:d4XtWcMl0.net]
- 規格に対してまあそういう考えの人がいるのも分かるが、全体としては改定に対しての需要というか声は小さかったってことでしょ
- 968 名前:デフォルトの名無しさん (ワッチョイ 1379-JwVi) mailto:sage [2023/10/29(日) 08:37:00.25 ID:x+5RB5aB0.net]
- どれも今更すぎていらんわ
そういうの絶対必要って奴はとっくにC言語ではない何かを使ってるでしょ
- 969 名前:はちみつ餃子 mailto:sage [2023/10/29(日) 09:22:00.09 ID:C0ma4yse0.net]
- >>962
C17 がわずかな保守で終わってることから察しなよ。 見直した結果として変更が要らんという判断をしたんだ。 C に defer を入れる意味はない。 提案として出ている以上は欲しいと思う人もいるんだろうけど。 あれは panic とかがあっても後始末するというところが価値なので そういうのがない C で関数の終わりに後始末したけりゃ関数の終わりに書けばいい。 例外処理も含めて入れるってのだとなおさら無理だと思うし。 いまさらランタイムを分厚くする方向の機能を言語コアに入れるのは賛成を得られるはずがなさそう。 ラムダ式はまだ可能性がなくもなさそうに思うが…… C++ のラムダ式は暗黙のクラス定義の構文糖として定義することで詳細な規定を 大幅に別項目に丸投げ出来ている。 C で理屈をきちんと整理するのはちょっと難しくない? キャプチャを全く諦めるならあり得そう。
- 970 名前:デフォルトの名無しさん mailto:sage [2023/10/29(日) 09:22:16.65 ID:+KTUg2vO0.net]
- 継続メンテナンスが必要なのはだいたいC89の頃のプロダクトだったりするので
C言語自体の規格アップデートはさほど必要とされていないのね
- 971 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9b3e-g5YV) mailto:sage [2023/10/29(日) 10:51:27.53 ID:C0ma4yse0.net]
- モダンな機能が必要なら C++ を使えばいいって言えてしまうってのもあるしな。
C23 は刷新が大きいけど、新しい機能を入れるというよりは あまりにも駄目すぎるところを (C++ の後追いをする形で) 改良するって感じだし。
- 972 名前: mailto:sage [2023/10/29(日) 15:22:27.72 ID:YxpLOPna0.net]
- C99 からの無名構造体は廃止してほしいねえ、あれでC++との互換が失われた。
構造体にコンストラクタを記述できるようにした方がマシだったと思う…
- 973 名前: mailto:sage [2023/10/29(日) 15:22:33.47 ID:YxpLOPna0.net]
- C99 からの無名構造体は廃止してほしいねえ、あれでC++との互換が失われた。
構造体にコンストラクタを記述できるようにした方がマシだったと思う…
- 974 名前:デフォルトの名無しさん mailto:sage [2023/10/29(日) 15:24:11.31 ID:V/yNBYFm0.net]
- コンストラクタ用意したら、それはもはやCではない
- 975 名前:はちみつ餃子 mailto:sage [2023/10/29(日) 16:10:21.42 ID:C0ma4yse0.net]
- >>968
コンストラクタこそ要らないだろ。 関数として書けば済む話だから。 ああいうのは色んな機能と連携して便利になるので 個々に見てしまうとたいして便利ではない。
- 976 名前:デフォルトの名無しさん (ワッチョイ 1379-JwVi) mailto:sage [2023/10/29(日) 17:23:22.94 ID:x+5RB5aB0.net]
- >>968
Cでtypedef+無名構造体/共用体のペアはstruct tag書式より使われてると思うが これはstructをいちいち書かされるC固有の仕様の問題であって、C++では最初から型宣言自体のやり方が違う つまりCの仕様をC++に合わせる意味は無く、C++との互換性はどうでもいい
- 977 名前:デフォルトの名無しさん mailto:sage [2023/10/29(日) 22:25:46.25 ID:ce2BuRgD0.net]
- >>965
例外の無いCでのdeferの意味は、単に後処理(デストラクタ)をコンストラクタ(Cではmallocや初期化関数)の直下に書けるという意味がある 関数の下に書けばいいといっても、gotoで飛ばしてんじゃ、プログラミング言語として欠陥が有ると思うよ goto使うな→エラー処理で使えば綺麗に書けるよ!って、やっぱおかしいだろw
- 978 名前:デフォルトの名無しさん (ワッチョイ 1989-FUJr) mailto:sage [2023/10/29(日) 23:50:43.25 ID:eMkvRHiW0.net]
- defer って分からんのですが、関数単位での atexit() みたいなもの?
- 979 名前:デフォルトの名無しさん (ワッチョイ d95d-kYJB) mailto:sage [2023/10/30(月) 00:11:39.03 ID:2SouKz/I0.net]
- double* q = malloc(something);
defer { free(q); } ↑これ見れば一目瞭然だな exitと関数やブロックを抜ける時に発動する けど、Cは書かれた通りに動くという前提を少し逸脱してんだよね それでも絶対便利ではある 難しい問題だな
- 980 名前:デフォルトの名無しさん (ワッチョイ 1989-FUJr) mailto:sage [2023/10/30(月) 00:12:01.02 ID:hHEGE8Ol0.net]
- 合ってるよね、うん
それ(他言語の defer 相当機能)って、問題解決にC言語を採用する環境では、OS上のプロセスの切り出し単位の設計、にマッピングすれば済む事ではないのかな? 建設的な議論の参考ネタとして: perl言語が嫌われた理由の一つに「同じ事をいろんな書き方で書ける」言語設計ポリシーがあって、それは他人が書いたコードをメンテする立場だと「あらゆる書き方に精通してないとメンテできない」デメリットになり pythonはそれを反面教師として「同じ事はだいたいみんな同じ書き方になるような言語設計を目指す」ポリシーにした、と認識してます
- 981 名前:デフォルトの名無しさん (ワッチョイ 1989-FUJr) mailto:sage [2023/10/30(月) 00:33:24.74 ID:hHEGE8Ol0.net]
- ああ、ブロック単位なのね…
とすると、上手なC言語のプログラマー達が習慣的にやってきた方法は以下ですよね: ■実装すべき処理を関数にマッピングするとき(主処理、失敗時処理を)細かく分ける ■関数をイベントハンドラとして「登録する」流儀の ミドルレイヤを書いて、そのミドルシステム上で 実装対象の「意味のある処理単位」を書くよう、プロジェクト単位でコーディングルールを定め、守り&守らせ ■◯◯失敗時には△△を行う、を明確に設計し実装して、それが分かりやすい納入プログラムとする で解決してきた、と思います。 つまり defer 機能がなくても同じ事をやる手法は既に確立している。 前のレスでの主張と合わせ、defer 機能を追加しないのが正解、と言いたいです
- 982 名前:デフォルトの名無しさん (ワッチョイ 9b5f-zW/F) mailto:sage [2023/10/30(月) 01:02:35.88 ID:tKZ3J0Lw0.net]
- breakでいつでもブロックを離脱できればgotoより明確でスムーズでかっこよくdeferっぽいことできるよな
- 983 名前:デフォルトの名無しさん (ワッチョイ 937c-cQ99) [2023/10/30(月) 01:09:19.67 ID:SHIqNVOV0.net]
- かっこいいかなぁ、、、
- 984 名前:デフォルトの名無しさん (ワッチョイ 1989-FUJr) mailto:sage [2023/10/30(月) 01:25:52.81 ID:hHEGE8Ol0.net]
- >>978
{int rc=0; do{ ★始め 処理 rc=1; break; ★失敗した 処理 break; ★成功した } while(0); if(rc) { ★ 異常時処理 }} ★終り とかそういう話? こういうのを #define で「エセ構文糖」みたいに定義する人もいますよね。(自分はあまり好きじゃない。格好悪いと思う) C言語用の単体テストフレームワークで unity ってのがあります。unity ではテストコード内で 独自の try ~ catch 風文法を書けるのですが、それがまさに (setjmp longjmp も使って) #define でエセ構文糖風に実装してました。需要があれば再度調べてここで概要報告しますw
- 985 名前:はちみつ餃子 mailto:sage [2023/10/30(月) 09:24:19.57 ID:I7fISnX+0.net]
- >>975
Go の defer に倣うなら defer 文に書けるのは関数かメソッドの呼出し。 (式一般、文一般を書けるわけではない。) 呼出しは関数の末尾だが引数は書いてある場所で評価されるというルール。 C 風の文法で書くなら double* q = malloc(something); defer free(q); q=NULL; return; というように書いても malloc した場所はちゃんと free されることになる。 このルールのおかげで前準備と後始末を近い場所に書けて「対応関係は」一目瞭然と言えるが、 そのために変則的な評価規則が入ってるわけ。 式単位での順序が入れ替わるってだけじゃなくて引数の評価と関数の呼び出しが 分離されるってだいぶん変な仕組みだよな。
- 986 名前:デフォルトの名無しさん [2023/10/30(月) 10:15:21.12 ID:xnp7PI6ya.net]
- >>973-974
Nim の defer 良いよね
- 987 名前:デフォルトの名無しさん [2023/10/30(月) 10:15:44.95 ID:xnp7PI6ya.net]
- >>973-974
Nim の defer 良いよね
- 988 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 10:17:23.47 ID:hHEGE8Ol0.net]
- 正常ルートは終わる時 q==NULL なのに、その前の
defer free(q) したときのqの値でfree() するんですね うへぇ… 誤解釈してバグ出しそう てかこれは、ひねり出された意地悪サンプルで…実際のプログラミングでdefer式が効果的となる使用例ではない、ですよね?
- 989 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 10:34:41.68 ID:hHEGE8Ol0.net]
- この話で改めてあぶり出されるのは、
あるプログラミング言語を深く理解して「書ける」「読める」ようになることには「自分なりの 上手なエラー処理の書き方 を探して身に付ける」事が含まれる、って事ですよね。 それは人類の資産なんだけど、実際の存在場所は あまたのプログラマー達の脳内 であって、一朝一夕に書き換えられる物じゃない。 だから言語仕様を改定して新機能を足すのは、新言語を作る時よりは慎重になる必要がある、と解釈しました
- 990 名前:デフォルトの名無しさん [2023/10/30(月) 11:45:07.40 ID:Ccd5zWuDd.net]
- nullptrはもっと早く入れるべきだった。
- 991 名前:はちみつ餃子 mailto:sage [2023/10/30(月) 11:57:46.53 ID:I7fISnX+0.net]
- >>984
Go でどうだか知らんけど C に defer を入れたとしたらというテーマでの話なら malloc と free を対応づけるのは考えられる用途の筆頭でしょ。 逆にこういう変則的な評価規則を持ち込まないとしたら、 つまり defer 文に書いたものが単に return の直前に評価されるだけということにしたら 途中で書き換えられる可能性が出てきて 前準備と後始末が対応づいているかどうか一目瞭然とはいかなくなる。 どこかしらでなんか汚い感じにはなるよ。 そういう汚さを受け入れてもなお欲しいほどの利便性かというとやっぱり疑問は残る。 汚さを受け入れていいなら goto の汚さを受け入れるのとそんなに差があるとも思えないし。
- 992 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 12:40:32.59 ID:2SouKz/I0.net]
- >>980
意地でもgoto使いたくない時にはそれでもいいけど、それの欠点は中にswitch文を書くと、breakで抜けれるのはswitch文からだけになる事だな 自分ではwhileを抜けた気になって実は抜けてないという、微妙なバグを生み出す可能性があるなw
- 993 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 16:19:29.96 ID:hHEGE8Ol0.net]
- >>988
do {...} while(0) なので、必ず1回実行し、2回目はないです
- 994 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 16:52:46.78 ID:bW5EQkS/0.net]
- >>989
適当だけどこういうことでは? {int rc=0; do{ ★始め 処理1 siwtch(x){ case 0: rc=1; break; ★失敗した ※siwtchから抜けるだけでwhileからは抜け出せていない case 1: break; ★成功だけど処理2は実行しない ※siwtchから抜けるだけでwhileからは抜け出せていない case 2: break; ★成功で処理2も行う } 処理2 break; ★成功した } while(0); if(rc) { ★ 異常時処理 }} ★終り
- 995 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 16:58:35.91 ID:hHEGE8Ol0.net]
- >>990
おっしゃる事、分かります。具体的に書いてくれてありがとうm(_ _)m
- 996 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 17:01:08.71 ID:hHEGE8Ol0.net]
- >>987
はい… mallocとfreeを確保と解放の例とするのは異論ないです deferより一つ上位の話は、エラー処理をバグなく、分かりやすく書こうというテーマだ、で合ってますよね。 その上で、deferがないとこんな面倒なのが、deferがあるとこんなに分かりやすい 例がよいのです 確保と解放の書き方検討で、私が検討するのは例えばこんな感じです: ■(1)ある意味のある処理単位が、リソースを 2個以上使う 場合を考えると、1個の場合より検討がよく進む。特に、 ■■(1a)初期化が途中で失敗した場合、すでに確保が成功してしまった資源をどう解放するか ■■(1b)資源の変数は最初に、確保処理のエラー戻り値と同じ値で初期化をすると、スッキリする事が多い ■(2)正常ルートでの解放と、エラールートでの解放で、コードを共通とするか、別とするか。 ■■(2a)確保、主、開放 の処理を、同じ「関数」で書くのと、別の「関数」に分けるのはどちらが良いか ■■(2b)「goto エラーラベル;」を好きか嫌いか ■(3)プログラマーによる解放処理の前の 「if(確保済みなら)」のガードが、必要なもの(fcloseなど)と、不要なもの(free)があるので、マニュアル確認は要る もっと語りたいけど、レス分けます、というか時間を置きます。あまり一人が語りすぎると、嫌がる人もいますよね
- 997 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 17:09:39.89 ID:hHEGE8Ol0.net]
- てかキータで書いて、皆さんの意見を聞いて修正していったり、してみようかな…
- 998 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 17:17:16.34 ID:hHEGE8Ol0.net]
- とりあえず次スレ立てました。即死防止の保守書き込みは要らない、で良いのかな?
C言語なら俺に聞け 162 https://mevius.5ch.net/test/read.cgi/tech/1698653580/
- 999 名前:デフォルトの名無しさん (スプッッ Sd73-cQ99) [2023/10/30(月) 18:42:32.58 ID:Ccd5zWuDd.net]
- >>994
乙。 あなたの男気に女気に惚れました。
- 1000 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9b3e-g5YV) mailto:sage [2023/10/30(月) 22:27:42.13 ID:I7fISnX+0.net]
- Golang の defer はあくまで関数の終わりまで遅延させる (ブロックの終わりではない) ので
呼び出される defer の個数が動的になりうるんだな。 https://go.dev/tour/flowcontrol/13 この挙動も C には馴染まなさそうだな。
- 1001 名前:デフォルトの名無しさん (ワッチョイ 1379-JwVi) mailto:sage [2023/10/30(月) 22:37:34.66 ID:n3VNJX5I0.net]
- 俺は某画像ライブラリのリソーストラッカーみたいに開放が必要な物を全部紐付けて後で開放する仕掛けを使ってる
まあCには何にも縛られないのが良いんだし好きにしたらいいよ
- 1002 名前:デフォルトの名無しさん (ワッチョイ d95d-kYJB) mailto:sage [2023/10/30(月) 23:34:44.67 ID:2SouKz/I0.net]
- 構文的にはC#っぽく
using (double* p = malloc(...); free(p)) { p を使う } でも良いかも知れない これだと1ループのforに似ててCに良く馴染むな もちろんreturnとかexitで脱出してもfreeは呼ばれる
- 1003 名前:デフォルトの名無しさん (ワントンキン MM53-wL8D) [2023/10/31(火) 10:19:02.32 ID:i2gAy2CGM.net]
- そんなもんが規格に入るわけないんだから無駄話だろ
- 1004 名前:デフォルトの名無しさん (ワントンキン MM53-wL8D) [2023/10/31(火) 10:19:24.66 ID:i2gAy2CGM.net]
- うめ
- 1005 名前:1001 [Over 1000 Thread ID:Thread.net]
- このスレッドは1000を超えました。
新しいスレッドを立ててください。 life time: 192日 20時間 14分 5秒
- 1006 名前:過去ログ ★ [[過去ログ]]
- ■ このスレッドは過去ログ倉庫に格納されています
|

|