[過去ログ]
C言語なら俺に聞け 161 (1002レス)
C言語なら俺に聞け 161 http://mevius.5ch.net/test/read.cgi/tech/1682053520/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
1: デフォルトの名無しさん (ワッチョイ 0f63-sFbk) [sage] 2023/04/21(金) 14:05:20.18 ID:rqj2HSDF0 !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言語なら俺に聞け 160 https://mevius.5ch.net/test/read.cgi/tech/1672191630/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured http://mevius.5ch.net/test/read.cgi/tech/1682053520/1
903: デフォルトの名無しさん (ワッチョイ 2bb6-AzOG) [] 2023/10/20(金) 22:48:36.74 ID:gDJgEYng0 Cでつくったもので自慢のものある? http://mevius.5ch.net/test/read.cgi/tech/1682053520/903
904: デフォルトの名無しさん (ワッチョイ ddf0-5RLD) [sage] 2023/10/21(土) 12:56:21.39 ID:Auba50wB0 ラズパイの話するならPicoか否か書けよ http://mevius.5ch.net/test/read.cgi/tech/1682053520/904
905: デフォルトの名無しさん (ワッチョイ 7a79-Idv/) [sage] 2023/10/21(土) 13:34:03.99 ID:ifbOBJO10 ラズパイの話するな http://mevius.5ch.net/test/read.cgi/tech/1682053520/905
906: デフォルトの名無しさん (ワッチョイ 1934-egvn) [sage] 2023/10/21(土) 13:40:58.48 ID:m23W7dra0 >>903 通信プロクシとテストデータ作成ツール^^ しょうもない物しか作ってないわスマンな http://mevius.5ch.net/test/read.cgi/tech/1682053520/906
907: デフォルトの名無しさん (ワントンキン MM8a-xqvO) [sage] 2023/10/21(土) 21:29:19.14 ID:t2gg/cweM 作ったものは数々あるが、 自慢できるものはない http://mevius.5ch.net/test/read.cgi/tech/1682053520/907
908: デフォルトの名無しさん (ワッチョイ 9946-5z4m) [] 2023/10/21(土) 22:19:05.57 ID:9n8k9yEZ0 恥の多いプログラムを作って来ました。 http://mevius.5ch.net/test/read.cgi/tech/1682053520/908
909: デフォルトの名無しさん (アウアウウー Sa09-6i8i) [] 2023/10/22(日) 11:30:49.85 ID:GXjFDCr1a そもそも業務で造ったものは守秘義務あるからな http://mevius.5ch.net/test/read.cgi/tech/1682053520/909
910: デフォルトの名無しさん (ワッチョイ 7a79-Idv/) [sage] 2023/10/22(日) 12:04:50.59 ID:7Lbl94Rb0 >>908 プログラマー失格やな! http://mevius.5ch.net/test/read.cgi/tech/1682053520/910
911: デフォルトの名無しさん (ワッチョイ d663-iKuA) [sage] 2023/10/22(日) 12:08:40.64 ID:+M4dXZ790 作っていて、恥ずかしさを感じないとすれば、それこそ失格だ 人は失敗の中から多くを学ぶ http://mevius.5ch.net/test/read.cgi/tech/1682053520/911
912: デフォルトの名無しさん (スッップ Sd9a-ilqh) [sage] 2023/10/22(日) 12:41:16.58 ID:WtUZjflvd 恥とかそんなのとは違う ビジネスとはスピードと品質のトレードオフ そのバランスを考えられないのがプロとして恥 http://mevius.5ch.net/test/read.cgi/tech/1682053520/912
913: デフォルトの名無しさん (ワッチョイ dd14-PKJr) [sage] 2023/10/22(日) 12:41:36.43 ID:DsuvifSY0 >>911 太宰治の人間失格とかけてんだろ 気付いてやれよ http://mevius.5ch.net/test/read.cgi/tech/1682053520/913
914: デフォルトの名無しさん (ワッチョイ 7aad-CfcT) [] 2023/10/22(日) 13:27:44.71 ID:lT9uYjte0 >>900 それってLinuxではないOSで動く場合? Linux入れちゃったらドライバとそれに対するライブラリだけの問題で言語は関係なくなるよね。 http://mevius.5ch.net/test/read.cgi/tech/1682053520/914
915: デフォルトの名無しさん (ワッチョイ 7a79-Idv/) [sage] 2023/10/22(日) 13:30:41.44 ID:7Lbl94Rb0 自分で調べろよそれぐらい…お前もプログラマー失格やな! http://mevius.5ch.net/test/read.cgi/tech/1682053520/915
916: デフォルトの名無しさん (ワッチョイ 5d01-iKuA) [sage] 2023/10/22(日) 19:09:03.13 ID:1z8BeiKk0 生まれてすみません http://mevius.5ch.net/test/read.cgi/tech/1682053520/916
917: デフォルトの名無しさん (ワッチョイ d663-iKuA) [sage] 2023/10/22(日) 19:19:12.31 ID:+M4dXZ790 いいってことよ http://mevius.5ch.net/test/read.cgi/tech/1682053520/917
918: デフォルトの名無しさん (ワイーワ2 FF62-6i8i) [] 2023/10/24(火) 16:01:52.72 ID:ju9L4gE1F おかえり http://mevius.5ch.net/test/read.cgi/tech/1682053520/918
919: デフォルトの名無しさん (ワッチョイ ba7c-Habm) [] 2023/10/26(木) 00:49:54.03 ID:89nTklyv0 C23でC11ぶりに更新ってC標準化委員会(?)だかはサボり過ぎじゃねーか。 C++なみとは言わんが5年ぐらいごとに見直せや。 nullptrとか入るの遅過ぎる。 deferも無いとかアホすぎる。 http://mevius.5ch.net/test/read.cgi/tech/1682053520/919
920: デフォルトの名無しさん (ワッチョイ 7a79-Idv/) [sage] 2023/10/26(木) 02:57:54.97 ID:q3UKhsX80 いつまでも未完成のサグラダファミリアみたいなC++とは違ってCは生まれた時から完成してるから 後々機能追加したところでそいつの自己満でしかない 未完成のC++から逆輸入されて良かったことなんて行コメント程度しかない http://mevius.5ch.net/test/read.cgi/tech/1682053520/920
921: デフォルトの名無しさん (スフッ Sd9a-dytz) [] 2023/10/26(木) 08:37:00.27 ID:FkoAeS+Vd コンパイラがC11のgets_s()関数に対応してないんですが、どうすればいいですか? http://mevius.5ch.net/test/read.cgi/tech/1682053520/921
922: デフォルトの名無しさん (スフッ Sd9a-dytz) [] 2023/10/26(木) 08:37:12.14 ID:FkoAeS+Vd コンパイラがC11のgets_s()関数に対応してないんですが、どうすればいいですか? http://mevius.5ch.net/test/read.cgi/tech/1682053520/922
923: デフォルトの名無しさん (ワッチョイ dd14-PKJr) [sage] 2023/10/26(木) 09:02:33.67 ID:nJ6kaeWr0 あきら🍈 http://mevius.5ch.net/test/read.cgi/tech/1682053520/923
924: デフォルトの名無しさん (スフッ Sd9a-9f78) [] 2023/10/26(木) 09:08:02.65 ID:FkoAeS+Vd >>923 あきらめてvisual studioでgets_s()関数を使えていますが、vscodeの普段使っているコンパイラでは 使えません http://mevius.5ch.net/test/read.cgi/tech/1682053520/924
925: デフォルトの名無しさん (スフッ Sd9a-9f78) [] 2023/10/26(木) 09:08:14.78 ID:FkoAeS+Vd >>923 あきらめてvisual studioでgets_s()関数を使えていますが、vscodeの普段使っているコンパイラでは 使えません http://mevius.5ch.net/test/read.cgi/tech/1682053520/925
926: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 8e3e-exru) [sage] 2023/10/26(木) 09:11:27.20 ID:oN20rU1J0 自分で書いたってそんなに時間はかからんだろう。 行がバッファより長いときや引数が条件を満たさないときに 制約ハンドラを呼ぶってだけだぞ。 http://mevius.5ch.net/test/read.cgi/tech/1682053520/926
927: デフォルトの名無しさん (スフッ Sd9a-9f78) [] 2023/10/26(木) 09:13:48.45 ID:FkoAeS+Vd >>926 結局gets()関数の代用はfgets()しかないというこですね http://mevius.5ch.net/test/read.cgi/tech/1682053520/927
928: デフォルトの名無しさん (ワッチョイ d663-iKuA) [sage] 2023/10/26(木) 09:38:07.39 ID:G4ruVh0t0 自分で作れよ Cってそういうもんだ http://mevius.5ch.net/test/read.cgi/tech/1682053520/928
929: デフォルトの名無しさん (スフッ Sd9a-9f78) [] 2023/10/26(木) 10:11:10.35 ID:FkoAeS+Vd >>928 自分で書きました http://mevius.5ch.net/test/read.cgi/tech/1682053520/929
930: デフォルトの名無しさん (スッップ Sd9a-Habm) [] 2023/10/26(木) 11:50:48.14 ID:ZES507rzd >>920 そんなんだからリーナスだってぶち切れるんだぞ。 http://mevius.5ch.net/test/read.cgi/tech/1682053520/930
931: デフォルトの名無しさん (スッップ Sd9a-SL8W) [sage] 2023/10/26(木) 13:16:49.71 ID:62xlwgird winでguiアプリ作る時とかCランタイムなんて全く使わないでしよ 今更Cで作るかは置いといて http://mevius.5ch.net/test/read.cgi/tech/1682053520/931
932: デフォルトの名無しさん (ワッチョイ f969-Dq0e) [sage] 2023/10/26(木) 13:20:48.32 ID:S8nCpIo20 (σ・∀・)σゲッツ!! http://mevius.5ch.net/test/read.cgi/tech/1682053520/932
933: デフォルトの名無しさん (ワッチョイ d6ab-OCAv) [sage] 2023/10/26(木) 14:24:42.99 ID:Qn92XRBA0 文字列周りのあれこれは Cランタイムのお世話も併用することが http://mevius.5ch.net/test/read.cgi/tech/1682053520/933
934: デフォルトの名無しさん (スフッ Sd9a-Cy5w) [] 2023/10/26(木) 15:12:00.43 ID:ES29OdTad TCHAR無視でASCIIzしか使わないならいけるかな memcpyとかmallicとかも普通に使えるしな TCHARのUNICODE版の文字列処理ってもうCランタイムと言うのは無理ありそう 末尾にに_s付いたのとか先頭にl付いたのとか もう亜種増え過ぎで覚えられんくなった あれはCランタイムじゃなくてwin32apiだわ http://mevius.5ch.net/test/read.cgi/tech/1682053520/934
935: デフォルトの名無しさん (ワッチョイ 8e5f-ANn9) [sega] 2023/10/26(木) 17:56:31.84 ID:SEjxiCyL0 C言語でGC実装したライブラリあったよね あれって今でも使われてんの? http://mevius.5ch.net/test/read.cgi/tech/1682053520/935
936: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 8e3e-exru) [sage] 2023/10/26(木) 18:27:34.63 ID:oN20rU1J0 >>935 Boehm GC のこと? http://mevius.5ch.net/test/read.cgi/tech/1682053520/936
937: デフォルトの名無しさん (ワッチョイ 8e5f-ANn9) [sage] 2023/10/26(木) 21:04:51.64 ID:SEjxiCyL0 >>936 そうそうそれそれ 思い出したけど w3m とかで使ってたよな w3mが現役ってことはboehmgcも現役なんかね http://mevius.5ch.net/test/read.cgi/tech/1682053520/937
938: デフォルトの名無しさん (ワッチョイ f969-Dq0e) [sage] 2023/10/26(木) 23:37:41.65 ID:S8nCpIo20 Boehm GC使ってるぞ つうかUnityのランタイムはBoehm GCが使われてる http://mevius.5ch.net/test/read.cgi/tech/1682053520/938
939: デフォルトの名無しさん (ワッチョイ f969-Dq0e) [sage] 2023/10/26(木) 23:41:25.14 ID:S8nCpIo20 Unity使ってるゲームはごまんとあるけど、敢えてGCを切ってるゲームも中には有るかも知れんが、ほとんどのゲームは裏でBoehm GCが動いている 要するに知らないだけで、Boehm GCはメチャクチャ使われてる 無知は罪だなw http://mevius.5ch.net/test/read.cgi/tech/1682053520/939
940: デフォルトの名無しさん (ワッチョイ f969-Dq0e) [sage] 2023/10/26(木) 23:50:27.25 ID:S8nCpIo20 > ほとんどのゲーム ほとんどのUnity使ったゲームでだな それと最近UnityのBoehm GCにインクリメンタルGCが追加された それまではStop The World(STW)のインパクトが凄くて、みんな最後にはなるべくGCが発生しないようにするチューニングが待っていたw http://mevius.5ch.net/test/read.cgi/tech/1682053520/940
941: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 8e3e-+JM7) [sage] 2023/10/27(金) 00:08:08.21 ID:heVGcbpM0 Boehm GC はマシンスタックも走査するようなデザインだからアーキテクチャに依存する部分がいっぱいあるし、メンテナンスもし続けないとすぐ実情にあわなくなって破綻すると思う。 逆に言えば採用されてちゃんと動いているのはちゃんとメンテナンスされてるからだろう。 それなりに活発に利用も開発もされてると言えるんじゃないか。 プログラミング言語処理系のいくつかで採用事例を見たことはある。 http://mevius.5ch.net/test/read.cgi/tech/1682053520/941
942: デフォルトの名無しさん (ワッチョイ f969-Dq0e) [sage] 2023/10/27(金) 00:26:28.28 ID:u2CdPYGW0 今も活発に開発されてるよ まぁリリースは半年とか年一ぐらいだけどね http://mevius.5ch.net/test/read.cgi/tech/1682053520/942
943: デフォルトの名無しさん (ワッチョイ cee7-ANn9) [sage] 2023/10/27(金) 11:18:26.71 ID:dEbuX89/0 そうなのかUnityすげーな そもそもUnityがC言語だったのも知らんかったわ C言語でGUIなゲーム作れるならやってみるわ ありがとう http://mevius.5ch.net/test/read.cgi/tech/1682053520/943
944: デフォルトの名無しさん (ワッチョイ cd10-JD/u) [sage] 2023/10/27(金) 11:33:41.42 ID:9P66tx0i0 ゲームのMOD管理や改造ツール探してると結構間違ってソース配布ページへ飛ばされる。 ファイル拡張子が*.cなトコは無いにしても、*.cppなとこは多いね。 http://mevius.5ch.net/test/read.cgi/tech/1682053520/944
945: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 8e3e-exru) [sage] 2023/10/27(金) 12:18:24.77 ID:heVGcbpM0 >>943 dotNET が Unity の基礎にあるからユーザが使うレイヤでは C# が前提だよ。 ただ、それを実行するランタイムサポートの中には低レイヤ寄りの部分も当然あるし、 そこで Boehm GC が使われているって話。 C で書いたモジュールを呼び出すことは出来るんだけど…。 「C でゲームを作る」のがやりたいなら Unity は全然向いてない。 http://mevius.5ch.net/test/read.cgi/tech/1682053520/945
946: デフォルトの名無しさん (ワッチョイ ddf4-U54k) [sage] 2023/10/27(金) 12:22:07.63 ID:gE38RsN70 そもそもC言語でGUIゲーム作れるじゃんUnityじゃなくても http://mevius.5ch.net/test/read.cgi/tech/1682053520/946
947: デフォルトの名無しさん (ワッチョイ fade-UUkb) [] 2023/10/27(金) 13:36:32.37 ID:DWeOppJn0 公開して http://mevius.5ch.net/test/read.cgi/tech/1682053520/947
948: デフォルトの名無しさん (ワッチョイ 999f-dytz) [sage] 2023/10/27(金) 13:59:41.03 ID:CZ4Htjtu0 後悔しました http://mevius.5ch.net/test/read.cgi/tech/1682053520/948
949: デフォルトの名無しさん (ワッチョイ 7aad-iKuA) [sage] 2023/10/27(金) 15:35:27.52 ID:sXR1+sXw0 航海します http://mevius.5ch.net/test/read.cgi/tech/1682053520/949
950: デフォルトの名無しさん (ワッチョイ c18f-BTDU) [] 2023/10/27(金) 21:03:53.47 ID:nBxrDXuS0 Cでゲームかぁ 面倒くさそう http://mevius.5ch.net/test/read.cgi/tech/1682053520/950
951: デフォルトの名無しさん (ワッチョイ d663-iKuA) [sage] 2023/10/27(金) 21:16:42.74 ID:qIG6QpEs0 Cじゃなくてもめんどくさそうって言い出しそう http://mevius.5ch.net/test/read.cgi/tech/1682053520/951
952: デフォルトの名無しさん (ワッチョイ dd14-PKJr) [sage] 2023/10/27(金) 21:30:02.47 ID:t+LCPq2M0 Windowsのクロンダイク作ろうぜ あれならもともとCのはず http://mevius.5ch.net/test/read.cgi/tech/1682053520/952
953: デフォルトの名無しさん (ワッチョイ d663-iKuA) [sage] 2023/10/27(金) 21:37:13.50 ID:qIG6QpEs0 MS-DOSの頃はアマチュアの作ったゲームがたくさんあったな ゲームメーカーの商品より優秀なのもあったし、 メーカーから訴えられた個人もいたな。 メーカー側が取り下げた様だが、 もしかしたら訴えた事実がなかったかも知れない その後倒産したという噂を聞いた Windowsになってからは、VBで作る人が多かった http://mevius.5ch.net/test/read.cgi/tech/1682053520/953
954: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 8e3e-exru) [sage] 2023/10/27(金) 21:44:44.21 ID:heVGcbpM0 アマチュアが作っているゲーム作品の数で言えば今のほうがずっと多いと思うが。 http://mevius.5ch.net/test/read.cgi/tech/1682053520/954
955: デフォルトの名無しさん (ワッチョイ d663-iKuA) [sage] 2023/10/27(金) 22:25:12.50 ID:qIG6QpEs0 そうなのか・・・ 最近はゲームしてないので知らないんだw http://mevius.5ch.net/test/read.cgi/tech/1682053520/955
956: デフォルトの名無しさん (ワッチョイ 7a79-Idv/) [sage] 2023/10/27(金) 22:28:08.93 ID:M9GgCmOO0 今はvやutuberに媚びたゲーム作れば配信で遊んでくれるから一気にプレイヤー数も増えるよ http://mevius.5ch.net/test/read.cgi/tech/1682053520/956
957: デフォルトの名無しさん (ワッチョイ 81f4-WJPr) [sage] 2023/10/28(土) 11:42:50.19 ID:vcHM6tqr0 >>953 すっごい適当なことばっかり言うねw http://mevius.5ch.net/test/read.cgi/tech/1682053520/957
958: デフォルトの名無しさん (ワッチョイ 5359-g3nS) [sage] 2023/10/28(土) 12:43:38.00 ID:p7wdBTPe0 >>957 Bio_100%とかタカリスなんて知らないせだいなんだろうな http://mevius.5ch.net/test/read.cgi/tech/1682053520/958
959: デフォルトの名無しさん (ワッチョイ 199f-CP9B) [sage] 2023/10/28(土) 13:20:46.38 ID:CS7+IID10 ゲームエンジンもライブラリもろくになかった時代にC言語とアセンブラを駆使して 高レベルなゲームを作れるアマチュアプログラマがたくさんいた (Unityで作るより高スキルが求められる)という話であって、 アマチュア/インディーズゲームのリリース数が論点というわけじゃないんじゃね?w http://mevius.5ch.net/test/read.cgi/tech/1682053520/959
960: デフォルトの名無しさん (ワッチョイ 215f-H9h+) [sage] 2023/10/28(土) 13:35:13.59 ID:t5G+utQT0 1997年あたりにワイヤフレームだけどゴリゴリの3Dで8台で競艇するゲームは当時かなりオーパーツ感あった 波でグラグラゆれたり、あの当時でステージメイキングも確か出来たし、誰か知ってる人おらんじゃろうか http://mevius.5ch.net/test/read.cgi/tech/1682053520/960
961: デフォルトの名無しさん (ワッチョイ 5351-zW/F) [] 2023/10/28(土) 14:14:38.32 ID:wcF/YB9E0 よそできけよ http://mevius.5ch.net/test/read.cgi/tech/1682053520/961
962: デフォルトの名無しさん (ワッチョイ 937c-cQ99) [] 2023/10/29(日) 00:56:56.68 ID:GrwAVmld0 C言語標準規格、せめて5年毎ぐらいに見直してくれればなぁ。 そしたらとっくにnullptrは入ってただそうし。もしかしたら deferや lambdaも入ってたかもしれん。 http://mevius.5ch.net/test/read.cgi/tech/1682053520/962
963: デフォルトの名無しさん (ワッチョイ 5351-zW/F) [] 2023/10/29(日) 08:16:14.69 ID:d4XtWcMl0 規格に対してまあそういう考えの人がいるのも分かるが、全体としては改定に対しての需要というか声は小さかったってことでしょ http://mevius.5ch.net/test/read.cgi/tech/1682053520/963
964: デフォルトの名無しさん (ワッチョイ 1379-JwVi) [sage] 2023/10/29(日) 08:37:00.25 ID:x+5RB5aB0 どれも今更すぎていらんわ そういうの絶対必要って奴はとっくにC言語ではない何かを使ってるでしょ http://mevius.5ch.net/test/read.cgi/tech/1682053520/964
965: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9b3e-g5YV) [sage] 2023/10/29(日) 09:22:00.09 ID:C0ma4yse0 >>962 C17 がわずかな保守で終わってることから察しなよ。 見直した結果として変更が要らんという判断をしたんだ。 C に defer を入れる意味はない。 提案として出ている以上は欲しいと思う人もいるんだろうけど。 あれは panic とかがあっても後始末するというところが価値なので そういうのがない C で関数の終わりに後始末したけりゃ関数の終わりに書けばいい。 例外処理も含めて入れるってのだとなおさら無理だと思うし。 いまさらランタイムを分厚くする方向の機能を言語コアに入れるのは賛成を得られるはずがなさそう。 ラムダ式はまだ可能性がなくもなさそうに思うが…… C++ のラムダ式は暗黙のクラス定義の構文糖として定義することで詳細な規定を 大幅に別項目に丸投げ出来ている。 C で理屈をきちんと整理するのはちょっと難しくない? キャプチャを全く諦めるならあり得そう。 http://mevius.5ch.net/test/read.cgi/tech/1682053520/965
966: デフォルトの名無しさん (ワッチョイ 9b5f-zW/F) [sage] 2023/10/29(日) 09:22:16.65 ID:+KTUg2vO0 継続メンテナンスが必要なのはだいたいC89の頃のプロダクトだったりするので C言語自体の規格アップデートはさほど必要とされていないのね http://mevius.5ch.net/test/read.cgi/tech/1682053520/966
967: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9b3e-g5YV) [sage] 2023/10/29(日) 10:51:27.53 ID:C0ma4yse0 モダンな機能が必要なら C++ を使えばいいって言えてしまうってのもあるしな。 C23 は刷新が大きいけど、新しい機能を入れるというよりは あまりにも駄目すぎるところを (C++ の後追いをする形で) 改良するって感じだし。 http://mevius.5ch.net/test/read.cgi/tech/1682053520/967
968: ◆QZaw55cn4c (ワッチョイ 9bba-A9tB) [sage] 2023/10/29(日) 15:22:27.72 ID:YxpLOPna0 C99 からの無名構造体は廃止してほしいねえ、あれでC++との互換が失われた。 構造体にコンストラクタを記述できるようにした方がマシだったと思う… http://mevius.5ch.net/test/read.cgi/tech/1682053520/968
969: ◆QZaw55cn4c (ワッチョイ 9bba-A9tB) [sage] 2023/10/29(日) 15:22:33.47 ID:YxpLOPna0 C99 からの無名構造体は廃止してほしいねえ、あれでC++との互換が失われた。 構造体にコンストラクタを記述できるようにした方がマシだったと思う… http://mevius.5ch.net/test/read.cgi/tech/1682053520/969
970: デフォルトの名無しさん (ワッチョイ eb63-c8RC) [sage] 2023/10/29(日) 15:24:11.31 ID:V/yNBYFm0 コンストラクタ用意したら、それはもはやCではない http://mevius.5ch.net/test/read.cgi/tech/1682053520/970
971: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9b3e-g5YV) [sage] 2023/10/29(日) 16:10:21.42 ID:C0ma4yse0 >>968 コンストラクタこそ要らないだろ。 関数として書けば済む話だから。 ああいうのは色んな機能と連携して便利になるので 個々に見てしまうとたいして便利ではない。 http://mevius.5ch.net/test/read.cgi/tech/1682053520/971
972: デフォルトの名無しさん (ワッチョイ 1379-JwVi) [sage] 2023/10/29(日) 17:23:22.94 ID:x+5RB5aB0 >>968 Cでtypedef+無名構造体/共用体のペアはstruct tag書式より使われてると思うが これはstructをいちいち書かされるC固有の仕様の問題であって、C++では最初から型宣言自体のやり方が違う つまりCの仕様をC++に合わせる意味は無く、C++との互換性はどうでもいい http://mevius.5ch.net/test/read.cgi/tech/1682053520/972
973: デフォルトの名無しさん (ワッチョイ d95d-kYJB) [sage] 2023/10/29(日) 22:25:46.25 ID:ce2BuRgD0 >>965 例外の無いCでのdeferの意味は、単に後処理(デストラクタ)をコンストラクタ(Cではmallocや初期化関数)の直下に書けるという意味がある 関数の下に書けばいいといっても、gotoで飛ばしてんじゃ、プログラミング言語として欠陥が有ると思うよ goto使うな→エラー処理で使えば綺麗に書けるよ!って、やっぱおかしいだろw http://mevius.5ch.net/test/read.cgi/tech/1682053520/973
974: デフォルトの名無しさん (ワッチョイ 1989-FUJr) [sage] 2023/10/29(日) 23:50:43.25 ID:eMkvRHiW0 defer って分からんのですが、関数単位での atexit() みたいなもの? http://mevius.5ch.net/test/read.cgi/tech/1682053520/974
975: デフォルトの名無しさん (ワッチョイ d95d-kYJB) [sage] 2023/10/30(月) 00:11:39.03 ID:2SouKz/I0 double* q = malloc(something); defer { free(q); } ↑これ見れば一目瞭然だな exitと関数やブロックを抜ける時に発動する けど、Cは書かれた通りに動くという前提を少し逸脱してんだよね それでも絶対便利ではある 難しい問題だな http://mevius.5ch.net/test/read.cgi/tech/1682053520/975
976: デフォルトの名無しさん (ワッチョイ 1989-FUJr) [sage] 2023/10/30(月) 00:12:01.02 ID:hHEGE8Ol0 合ってるよね、うん それ(他言語の defer 相当機能)って、問題解決にC言語を採用する環境では、OS上のプロセスの切り出し単位の設計、にマッピングすれば済む事ではないのかな? 建設的な議論の参考ネタとして: perl言語が嫌われた理由の一つに「同じ事をいろんな書き方で書ける」言語設計ポリシーがあって、それは他人が書いたコードをメンテする立場だと「あらゆる書き方に精通してないとメンテできない」デメリットになり pythonはそれを反面教師として「同じ事はだいたいみんな同じ書き方になるような言語設計を目指す」ポリシーにした、と認識してます http://mevius.5ch.net/test/read.cgi/tech/1682053520/976
977: デフォルトの名無しさん (ワッチョイ 1989-FUJr) [sage] 2023/10/30(月) 00:33:24.74 ID:hHEGE8Ol0 ああ、ブロック単位なのね… とすると、上手なC言語のプログラマー達が習慣的にやってきた方法は以下ですよね: ■実装すべき処理を関数にマッピングするとき(主処理、失敗時処理を)細かく分ける ■関数をイベントハンドラとして「登録する」流儀の ミドルレイヤを書いて、そのミドルシステム上で 実装対象の「意味のある処理単位」を書くよう、プロジェクト単位でコーディングルールを定め、守り&守らせ ■◯◯失敗時には△△を行う、を明確に設計し実装して、それが分かりやすい納入プログラムとする で解決してきた、と思います。 つまり defer 機能がなくても同じ事をやる手法は既に確立している。 前のレスでの主張と合わせ、defer 機能を追加しないのが正解、と言いたいです http://mevius.5ch.net/test/read.cgi/tech/1682053520/977
978: デフォルトの名無しさん (ワッチョイ 9b5f-zW/F) [sage] 2023/10/30(月) 01:02:35.88 ID:tKZ3J0Lw0 breakでいつでもブロックを離脱できればgotoより明確でスムーズでかっこよくdeferっぽいことできるよな http://mevius.5ch.net/test/read.cgi/tech/1682053520/978
979: デフォルトの名無しさん (ワッチョイ 937c-cQ99) [] 2023/10/30(月) 01:09:19.67 ID:SHIqNVOV0 かっこいいかなぁ、、、 http://mevius.5ch.net/test/read.cgi/tech/1682053520/979
980: デフォルトの名無しさん (ワッチョイ 1989-FUJr) [sage] 2023/10/30(月) 01:25:52.81 ID:hHEGE8Ol0 >>978 {int rc=0; do{ ★始め 処理 rc=1; break; ★失敗した 処理 break; ★成功した } while(0); if(rc) { ★ 異常時処理 }} ★終り とかそういう話? こういうのを #define で「エセ構文糖」みたいに定義する人もいますよね。(自分はあまり好きじゃない。格好悪いと思う) C言語用の単体テストフレームワークで unity ってのがあります。unity ではテストコード内で 独自の try ~ catch 風文法を書けるのですが、それがまさに (setjmp longjmp も使って) #define でエセ構文糖風に実装してました。需要があれば再度調べてここで概要報告しますw http://mevius.5ch.net/test/read.cgi/tech/1682053520/980
981: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9b3e-g5YV) [sage] 2023/10/30(月) 09:24:19.57 ID:I7fISnX+0 >>975 Go の defer に倣うなら defer 文に書けるのは関数かメソッドの呼出し。 (式一般、文一般を書けるわけではない。) 呼出しは関数の末尾だが引数は書いてある場所で評価されるというルール。 C 風の文法で書くなら double* q = malloc(something); defer free(q); q=NULL; return; というように書いても malloc した場所はちゃんと free されることになる。 このルールのおかげで前準備と後始末を近い場所に書けて「対応関係は」一目瞭然と言えるが、 そのために変則的な評価規則が入ってるわけ。 式単位での順序が入れ替わるってだけじゃなくて引数の評価と関数の呼び出しが 分離されるってだいぶん変な仕組みだよな。 http://mevius.5ch.net/test/read.cgi/tech/1682053520/981
982: デフォルトの名無しさん (アウアウウー Sad5-g+2W) [] 2023/10/30(月) 10:15:21.12 ID:xnp7PI6ya >>973-974 Nim の defer 良いよね http://mevius.5ch.net/test/read.cgi/tech/1682053520/982
983: デフォルトの名無しさん (アウアウウー Sad5-g+2W) [] 2023/10/30(月) 10:15:44.95 ID:xnp7PI6ya >>973-974 Nim の defer 良いよね http://mevius.5ch.net/test/read.cgi/tech/1682053520/983
984: デフォルトの名無しさん (ワッチョイ 1989-FUJr) [sage] 2023/10/30(月) 10:17:23.47 ID:hHEGE8Ol0 正常ルートは終わる時 q==NULL なのに、その前の defer free(q) したときのqの値でfree() するんですね うへぇ… 誤解釈してバグ出しそう てかこれは、ひねり出された意地悪サンプルで…実際のプログラミングでdefer式が効果的となる使用例ではない、ですよね? http://mevius.5ch.net/test/read.cgi/tech/1682053520/984
985: デフォルトの名無しさん (ワッチョイ 1989-FUJr) [sage] 2023/10/30(月) 10:34:41.68 ID:hHEGE8Ol0 この話で改めてあぶり出されるのは、 あるプログラミング言語を深く理解して「書ける」「読める」ようになることには「自分なりの 上手なエラー処理の書き方 を探して身に付ける」事が含まれる、って事ですよね。 それは人類の資産なんだけど、実際の存在場所は あまたのプログラマー達の脳内 であって、一朝一夕に書き換えられる物じゃない。 だから言語仕様を改定して新機能を足すのは、新言語を作る時よりは慎重になる必要がある、と解釈しました http://mevius.5ch.net/test/read.cgi/tech/1682053520/985
986: デフォルトの名無しさん (スプッッ Sd73-cQ99) [] 2023/10/30(月) 11:45:07.40 ID:Ccd5zWuDd nullptrはもっと早く入れるべきだった。 http://mevius.5ch.net/test/read.cgi/tech/1682053520/986
987: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9b3e-g5YV) [sage] 2023/10/30(月) 11:57:46.53 ID:I7fISnX+0 >>984 Go でどうだか知らんけど C に defer を入れたとしたらというテーマでの話なら malloc と free を対応づけるのは考えられる用途の筆頭でしょ。 逆にこういう変則的な評価規則を持ち込まないとしたら、 つまり defer 文に書いたものが単に return の直前に評価されるだけということにしたら 途中で書き換えられる可能性が出てきて 前準備と後始末が対応づいているかどうか一目瞭然とはいかなくなる。 どこかしらでなんか汚い感じにはなるよ。 そういう汚さを受け入れてもなお欲しいほどの利便性かというとやっぱり疑問は残る。 汚さを受け入れていいなら goto の汚さを受け入れるのとそんなに差があるとも思えないし。 http://mevius.5ch.net/test/read.cgi/tech/1682053520/987
988: デフォルトの名無しさん (ワッチョイ d95d-kYJB) [sage] 2023/10/30(月) 12:40:32.59 ID:2SouKz/I0 >>980 意地でもgoto使いたくない時にはそれでもいいけど、それの欠点は中にswitch文を書くと、breakで抜けれるのはswitch文からだけになる事だな 自分ではwhileを抜けた気になって実は抜けてないという、微妙なバグを生み出す可能性があるなw http://mevius.5ch.net/test/read.cgi/tech/1682053520/988
989: デフォルトの名無しさん (ワッチョイ 1989-FUJr) [sage] 2023/10/30(月) 16:19:29.96 ID:hHEGE8Ol0 >>988 do {...} while(0) なので、必ず1回実行し、2回目はないです http://mevius.5ch.net/test/read.cgi/tech/1682053520/989
990: デフォルトの名無しさん (ワッチョイ 13ad-c8RC) [sage] 2023/10/30(月) 16:52:46.78 ID:bW5EQkS/0 >>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) { ★ 異常時処理 }} ★終り http://mevius.5ch.net/test/read.cgi/tech/1682053520/990
991: デフォルトの名無しさん (ワッチョイ 1989-FUJr) [sage] 2023/10/30(月) 16:58:35.91 ID:hHEGE8Ol0 >>990 おっしゃる事、分かります。具体的に書いてくれてありがとうm(_ _)m http://mevius.5ch.net/test/read.cgi/tech/1682053520/991
992: デフォルトの名無しさん (ワッチョイ 1989-FUJr) [sage] 2023/10/30(月) 17:01:08.71 ID:hHEGE8Ol0 >>987 はい… mallocとfreeを確保と解放の例とするのは異論ないです deferより一つ上位の話は、エラー処理をバグなく、分かりやすく書こうというテーマだ、で合ってますよね。 その上で、deferがないとこんな面倒なのが、deferがあるとこんなに分かりやすい 例がよいのです 確保と解放の書き方検討で、私が検討するのは例えばこんな感じです: ■(1)ある意味のある処理単位が、リソースを 2個以上使う 場合を考えると、1個の場合より検討がよく進む。特に、 ■■(1a)初期化が途中で失敗した場合、すでに確保が成功してしまった資源をどう解放するか ■■(1b)資源の変数は最初に、確保処理のエラー戻り値と同じ値で初期化をすると、スッキリする事が多い ■(2)正常ルートでの解放と、エラールートでの解放で、コードを共通とするか、別とするか。 ■■(2a)確保、主、開放 の処理を、同じ「関数」で書くのと、別の「関数」に分けるのはどちらが良いか ■■(2b)「goto エラーラベル;」を好きか嫌いか ■(3)プログラマーによる解放処理の前の 「if(確保済みなら)」のガードが、必要なもの(fcloseなど)と、不要なもの(free)があるので、マニュアル確認は要る もっと語りたいけど、レス分けます、というか時間を置きます。あまり一人が語りすぎると、嫌がる人もいますよね http://mevius.5ch.net/test/read.cgi/tech/1682053520/992
993: デフォルトの名無しさん (ワッチョイ 1989-FUJr) [sage] 2023/10/30(月) 17:09:39.89 ID:hHEGE8Ol0 てかキータで書いて、皆さんの意見を聞いて修正していったり、してみようかな… http://mevius.5ch.net/test/read.cgi/tech/1682053520/993
994: デフォルトの名無しさん (ワッチョイ 1989-FUJr) [sage] 2023/10/30(月) 17:17:16.34 ID:hHEGE8Ol0 とりあえず次スレ立てました。即死防止の保守書き込みは要らない、で良いのかな? C言語なら俺に聞け 162 https://mevius.5ch.net/test/read.cgi/tech/1698653580/ http://mevius.5ch.net/test/read.cgi/tech/1682053520/994
995: デフォルトの名無しさん (スプッッ Sd73-cQ99) [] 2023/10/30(月) 18:42:32.58 ID:Ccd5zWuDd >>994 乙。 あなたの男気に女気に惚れました。 http://mevius.5ch.net/test/read.cgi/tech/1682053520/995
996: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9b3e-g5YV) [sage] 2023/10/30(月) 22:27:42.13 ID:I7fISnX+0 Golang の defer はあくまで関数の終わりまで遅延させる (ブロックの終わりではない) ので 呼び出される defer の個数が動的になりうるんだな。 https://go.dev/tour/flowcontrol/13 この挙動も C には馴染まなさそうだな。 http://mevius.5ch.net/test/read.cgi/tech/1682053520/996
997: デフォルトの名無しさん (ワッチョイ 1379-JwVi) [sage] 2023/10/30(月) 22:37:34.66 ID:n3VNJX5I0 俺は某画像ライブラリのリソーストラッカーみたいに開放が必要な物を全部紐付けて後で開放する仕掛けを使ってる まあCには何にも縛られないのが良いんだし好きにしたらいいよ http://mevius.5ch.net/test/read.cgi/tech/1682053520/997
998: デフォルトの名無しさん (ワッチョイ d95d-kYJB) [sage] 2023/10/30(月) 23:34:44.67 ID:2SouKz/I0 構文的にはC#っぽく using (double* p = malloc(...); free(p)) { p を使う } でも良いかも知れない これだと1ループのforに似ててCに良く馴染むな もちろんreturnとかexitで脱出してもfreeは呼ばれる http://mevius.5ch.net/test/read.cgi/tech/1682053520/998
999: デフォルトの名無しさん (ワントンキン MM53-wL8D) [] 2023/10/31(火) 10:19:02.32 ID:i2gAy2CGM そんなもんが規格に入るわけないんだから無駄話だろ http://mevius.5ch.net/test/read.cgi/tech/1682053520/999
1000: デフォルトの名無しさん (ワントンキン MM53-wL8D) [] 2023/10/31(火) 10:19:24.66 ID:i2gAy2CGM うめ http://mevius.5ch.net/test/read.cgi/tech/1682053520/1000
1001: 1001 [] ID:Thread このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 192日 20時間 14分 5秒 http://mevius.5ch.net/test/read.cgi/tech/1682053520/1001
1002: 1002 [] ID:Thread 5ちゃんねるの運営はUPLIFT会員の皆さまに支えられています。 運営にご協力お願いいたします。 ─────────────────── 《UPLIFT会員の主な特典》 ★ 5ちゃんねる専用ブラウザからの広告除去 ★ 5ちゃんねるの過去ログを取得 ★ 書き込み規制の緩和 ─────────────────── 会員登録には個人情報は一切必要ありません。 4 USD/mon. から匿名でご購入いただけます。 ▼ UPLIFT会員登録はこちら ▼ https://uplift.5ch.net/ ▼ UPLIFTログインはこちら ▼ https://uplift.5ch.net/login http://mevius.5ch.net/test/read.cgi/tech/1682053520/1002
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.027s