[過去ログ]
C言語なら俺に聞け 151 (1002レス)
C言語なら俺に聞け 151 http://mevius.5ch.net/test/read.cgi/tech/1554171817/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
594: デフォルトの名無しさん (オッペケ Sr88-2aw6) [sage] 2019/05/21(火) 18:23:31.31 ID:6muVxYSDr >>593 書き出し周期はファイルシステムに依存するよ 例えばext3かext4かで挙動は違う http://mevius.5ch.net/test/read.cgi/tech/1554171817/594
595: デフォルトの名無しさん (ササクッテロル Sp88-Qul6) [] 2019/05/21(火) 18:37:21.97 ID:G/IUf+gXp C言語のfprintfを用いるときに、前行の改行を消す方法をご存知ないですか? エスケープシーケンスでバックスペースを試したのですか上手くいかなくて困っています。 状況としてはfor文を用いて改行を含んだ文字列を繰り返し出力させているんですが、最後の行だけ改行を無くし、続けて別の文を出力したいのです。 繰り返しの回数を変えて最後に改行なしの処理をいれればいいと思うのですが、簡単な方法があればと思い質問させていただきました。 よろし
くお願いします。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/595
596: デフォルトの名無しさん (ワッチョイ 3f01-pg4x) [sage] 2019/05/21(火) 18:40:11.67 ID:UdJL+OJH0 ストリームの撒き戻しは難しいんじゃないか? 表示装置なのかファイルなのかでも変わるだろうし… http://mevius.5ch.net/test/read.cgi/tech/1554171817/596
597: デフォルトの名無しさん (ワッチョイ 1c79-N32O) [sage] 2019/05/21(火) 18:54:48.20 ID:Hcv2vO/e0 ファイルポインタは巻き戻せる 標準出力ならエスケープシーケンスで右上に行けばいい http://mevius.5ch.net/test/read.cgi/tech/1554171817/597
598: デフォルトの名無しさん (ワッチョイ ee02-8NB0) [sage] 2019/05/21(火) 19:19:14.41 ID:IJ+i04U80 こんな感じでいいのか? #include <stdio.h> int main(void) { FILE* fp; fp = fopen("Test.txt","w"); fprintf(fp,"hoge\n"); fseek(fp,-1,SEEK_CUR); /* 改行2byteなら-2 */ fprintf(fp,"fuga\n"); fclose(fp); return 0; } http://mevius.5ch.net/test/read.cgi/tech/1554171817/598
599: デフォルトの名無しさん (ワッチョイ 462d-EL+e) [sage] 2019/05/21(火) 19:53:55.55 ID:UPiNM42a0 質問者が知りたい情報とは違うので、スルー推奨かもですが。 もし自分が、同じことをやれ、と言われたら。 「改行を含んだ文字列」を、「改行」と「それ以外の文字列」の2つに分けて、別々に出力しようとするかなあ。 ループの回数を変える必要はなくて。イメージとしては for() ※行単位のループ { if(最初の行でなければ) fprintf で「改行」を出力 fprintf で「それ以外の文字列」を出力 } fprintf で「別の文を出力」 http://mevius.5ch.ne
t/test/read.cgi/tech/1554171817/599
600: デフォルトの名無しさん (ドコグロ MM02-A+mh) [sage] 2019/05/21(火) 19:58:03.98 ID:kdkwqODuM >>595 bool First = true; for( … ){ if(First){ First = false; } else { fprintf("¥n"); } fprintf( … ); } http://mevius.5ch.net/test/read.cgi/tech/1554171817/600
601: デフォルトの名無しさん (ドコグロ MM02-A+mh) [sage] 2019/05/21(火) 19:58:35.62 ID:kdkwqODuM あっ、被ったや http://mevius.5ch.net/test/read.cgi/tech/1554171817/601
602: デフォルトの名無しさん (ワッチョイ ee02-8NB0) [sage] 2019/05/21(火) 20:07:13.38 ID:IJ+i04U80 ファイルが標準出力等でvt100互換端末であれば。 #include <stdio.h> #include <string.h> int main(void) { int i; i=fprintf(stdout,"hogehogehogehoge\n"); if (0) fprintf(stdout,"\E[01Afuga%*c\n",i,' '); /* これか? */ else fprintf(stdout,"\E[01A\E[%02dCfuga\n",i-strlen("\n")); /* あるいはこれか? */ return 0; } cmdとかdos窓なら無理? http://mevius.5ch.net/test/read.c
gi/tech/1554171817/602
603: デフォルトの名無しさん (ササクッテロル Sp88-Qul6) [] 2019/05/21(火) 20:22:57.69 ID:G/IUf+gXp >>596-602 皆様回答ありがとうございます。 ファイルを扱っているので、fseekで戻す方法を試してみようと思います。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/603
604: デフォルトの名無しさん (スププ Sd94-AU7T) [sage] 2019/05/21(火) 20:31:17.43 ID:JOJ6V6qzd プログラムいじられるなら、改行出す方をどうにかした方が良さそうだが http://mevius.5ch.net/test/read.cgi/tech/1554171817/604
605: デフォルトの名無しさん (ワッチョイ aaf9-8NB0) [sage] 2019/05/21(火) 20:31:52.25 ID:8vKfOnx40 ansi.sysを組み込めばVT100互換エスケープシーケンスが という昔話…と思ったが、ググったらvistaまであったんだな驚き Windows 10 Threshold 2(10.0.1058)ではコマンドプロンプトでANSI/VT100互換表示が可能に というスラドの記事も出た http://mevius.5ch.net/test/read.cgi/tech/1554171817/605
606: デフォルトの名無しさん (アウアウウー Sa83-RNyv) [] 2019/05/21(火) 20:52:46.26 ID:BVi2WQ22a 最後に改行出すんじゃなくて最初に改行出すようにすれば良いだけでは? 一番最初の行だけは最初に出さなければ良いだけ。 バッファリングされて出力されないのが嫌なら行末でfflush()する。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/606
607: デフォルトの名無しさん (ワッチョイ aa01-A+mh) [sage] 2019/05/21(火) 21:47:10.75 ID:n1jvW3Ih0 >>606 >>599-600 http://mevius.5ch.net/test/read.cgi/tech/1554171817/607
608: デフォルトの名無しさん (ワッチョイ 9602-XAPB) [] 2019/05/21(火) 22:06:40.11 ID:Y+BS98b80 >>607 おお。既にあった。 さっきスマホで見てて気付かなかった。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/608
609: デフォルトの名無しさん (ワッチョイ 1e01-Qul6) [] 2019/05/21(火) 22:09:47.12 ID:JtLDtEYt0 >>604-607 603です。>>600の意味をちゃんとわかってませんでしたが、>>606の方のレスでわかりました。 >>600の方が安全な気がするのでそちらを検討します。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/609
610: デフォルトの名無しさん (ワッチョイ dfb9-9b2Z) [] 2019/05/24(金) 09:00:19.45 ID:h3dkW7YJ0 C言語はクラスが無い。 それは実際どれくらい問題になりますか? 昔C使ってたけど、本格的な抽象的設計をやってたわけじゃなくて、 最近Java使っててそういうのをやりだしたけど、 今思い返してみるとC言語はクラスや継承や多態性が無いから かなり厳しい言語なんじゃないかな、と思ったんです。 メジャーなカーネルがCで作られてるという事実に驚愕します。 クラス無しで大規模開発は不可能としか思えません。 それどころか、1アルゴリズムの実装でも
クラスは有用だと思うんですが。 最近、NimとかRustのようなCを代替するかもしれない勢いのある言語があります。 そういう言語はかなり抽象的な設計が可能です。 そういうのと比べると、小さなデバイスドライバみたいなものはCでいいだろうけど、 大規模開発におけるCはかなり無理があるんじゃないかな?と そうでもないものですか? http://mevius.5ch.net/test/read.cgi/tech/1554171817/610
611: デフォルトの名無しさん (アウアウエー Sa9f-eVvB) [sage] 2019/05/24(金) 09:04:22.51 ID:a6wIXg41a まあファイルがクラスと同じだし。 継承はしづらいけど、そんなもん使ったらC++でもむしろ見通し悪くなるでしょ? http://mevius.5ch.net/test/read.cgi/tech/1554171817/611
612: デフォルトの名無しさん (ワッチョイ dfa5-vAXu) [sage] 2019/05/24(金) 10:11:20.70 ID:M2ZwKTAn0 最大のデバイスドライバがOSのカーネルなんじゃねえの そしてそれがC言語の限界 http://mevius.5ch.net/test/read.cgi/tech/1554171817/612
613: デフォルトの名無しさん (ワッチョイ dfb9-9b2Z) [] 2019/05/24(金) 10:43:06.36 ID:h3dkW7YJ0 Linuxカーネルは2100万行を超えているそうなので たぶん地球上でもっとも大規模な開発の1つです。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/613
614: デフォルトの名無しさん (ワッチョイ bf8c-GX6Y) [] 2019/05/24(金) 11:21:47.36 ID:0dR+L/D60 責任ある人は気がくるっているじゃない。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/614
615: デフォルトの名無しさん (アウアウウー Saab-EYzY) [] 2019/05/24(金) 12:25:59.56 ID:Cw+6mW4za Cでもオブジェクト指向的に考えて作ることは可能。構造体へのポインタまたは情報を区別する番号などを渡してその中身に基づいて処理する関数作ればいいので。 ファイルアクセスとかは作りがそうなってるよね。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/615
616: デフォルトの名無しさん (ワッチョイ c7d2-Fpyl) [sage] 2019/05/24(金) 12:32:21.84 ID:M3xcEept0 クラスはコンストラクタ/デストラクタは活用したけど 継承で面倒になって、ちょっと便利な関数付き構造体としてしか設計したことない。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/616
617: デフォルトの名無しさん (ブーイモ MMcb-/OyN) [sage] 2019/05/24(金) 12:35:03.01 ID:C+5joBz9M C言語ではオブジェクト指向も関数型プログラミングもできる。その下位レイヤーだから。 面倒臭いけど。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/617
618: デフォルトの名無しさん (ドコグロ MM9f-LXA5) [sage] 2019/05/24(金) 12:50:51.48 ID:8pSuDyEhM >>613 デバドラとかが山ほどあるだけでコア部分はそんなにたいしたことないよ http://mevius.5ch.net/test/read.cgi/tech/1554171817/618
619: デフォルトの名無しさん (ドコグロ MM9f-LXA5) [sage] 2019/05/24(金) 12:53:08.72 ID:8pSuDyEhM >>610 構造体に関数ポインタ入れたりすれば継承も多態も可能 書くのが面倒ってだけの話 モジュールを適切に分割すれば個々の開発部分はそんなにでかくならないし http://mevius.5ch.net/test/read.cgi/tech/1554171817/619
620: デフォルトの名無しさん (アウアウウー Saab-EYzY) [] 2019/05/24(金) 12:59:14.48 ID:Cw+6mW4za まあしかしC++は複雑怪奇な状態になったような感じがするのでなんか別の言語でオブジェクト指向やった方が良いような気がする。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/620
621: デフォルトの名無しさん (ワッチョイ c7da-YLUn) [sage] 2019/05/24(金) 13:49:11.26 ID:FIKXvkBI0 Javaがとてもシンプルな言語に見えてくる http://mevius.5ch.net/test/read.cgi/tech/1554171817/621
622: デフォルトの名無しさん (スププ Sdff-OWKl) [sage] 2019/05/24(金) 14:27:11.63 ID:YkjJvwKvd linux kernelなんておもくそオブジェクト指向的な構造だろ http://mevius.5ch.net/test/read.cgi/tech/1554171817/622
623: デフォルトの名無しさん (ワッチョイ e701-/OyN) [sage] 2019/05/24(金) 19:13:34.31 ID:E0qJKDus0 関係ないけどOOPが流行り始めた頃に「WindowsのUIはオブジェクト指向だ」と言ってたやつを思い出した。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/623
624: デフォルトの名無しさん (ワッチョイ 7f63-buEI) [sage] 2019/05/24(金) 19:26:36.07 ID:omgaeJxY0 目指していた方向はそうだったと思う http://mevius.5ch.net/test/read.cgi/tech/1554171817/624
625: ◆QZaw55cn4c (ワッチョイ df47-SwLn) [sage] 2019/05/24(金) 20:26:08.87 ID:0N6+tWvP0 >>615 >Cでもオブジェクト指向的に考えて作ること あくまでも「オブジェクト指向『的』」であることに注意すること C ではオブジェクト指向を実現できない(断言) http://mevius.5ch.net/test/read.cgi/tech/1554171817/625
626: ◆QZaw55cn4c (ワッチョイ df47-SwLn) [sage] 2019/05/24(金) 20:27:08.05 ID:0N6+tWvP0 >>617 >C言語ではオブジェクト指向も関数型プログラミングもできる C ではオブジェクト指向はできない(断言) 継承をCでどのように記述するのでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1554171817/626
627: ◆QZaw55cn4c (ワッチョイ df47-SwLn) [sage] 2019/05/24(金) 20:27:59.68 ID:0N6+tWvP0 >>622 >linux kernelなんておもくそオブジェクト指向的な構造だろ あくまでも「オブジェクト指向『的』」であってオブジェクト指向そのものではありません(断言) http://mevius.5ch.net/test/read.cgi/tech/1554171817/627
628: デフォルトの名無しさん (アウアウウー Saab-EYzY) [] 2019/05/24(金) 20:41:47.14 ID:1FXcUtRQa いやできなくはないよ。何せC++は元々はCへのコンバータだったしな。C++のソースを読んでC言語に変換して後のことはCコンパイラに任せてたんだよ。それが初期のC++。 もちろんCは言語そのものがオブジェクト指向をサポートしてないから人間がそれをやろうとするととても面倒な事になるけどな。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/628
629: デフォルトの名無しさん (ワッチョイ e701-/OyN) [sage] 2019/05/24(金) 20:51:16.47 ID:E0qJKDus0 そんなん言い始めたらアセンブラでもオブジェクト指向プログラミングできることになっちゃう。 言語としてOOPがサポートされてなきゃ認められないでしょ。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/629
630: ◆QZaw55cn4c (ワッチョイ df47-SwLn) [sage] 2019/05/24(金) 21:00:32.57 ID:0N6+tWvP0 >>628 >C++のソースを読んでC言語に変換して後のことはCコンパイラに任せてたんだよ。それが初期のC++。 C++ から C へのトランスパイラが存在したからといって、C にてオブジェクト指向(的ではなくそのものずばり)なプログラミングができるわけではありません C++ のコンパイラが存在するからといって機械語が OO でないのと同じです、まず、 C++ https://ideone.com/vAp2Sj に対応する C のコードを示してください http://mevius.5ch.net/test/
read.cgi/tech/1554171817/630
631: ◆QZaw55cn4c (ワッチョイ df47-SwLn) [sage] 2019/05/24(金) 21:01:09.07 ID:0N6+tWvP0 >>629 >言語としてOOPがサポートされてなきゃ認められないでしょ。 激しく同感いたします! http://mevius.5ch.net/test/read.cgi/tech/1554171817/631
632: デフォルトの名無しさん (ワッチョイ 67f6-dCWx) [sage] 2019/05/24(金) 21:12:51.85 ID:ZwmHdTYl0 >>610 全く問題にならない classというキーワードがなくても コードを書く者の考え方次第でカプセル化や継承はできる FILE構造体がその例だ 多態性がないというのは、おまえさんの認識不足で 関数ポインタでそんなものはすぐに実現できる そういう認識不足があるからこそ メジャーなカーネルをなぜ書けたかが理解できないのだ http://mevius.5ch.net/test/read.cgi/tech/1554171817/632
633: デフォルトの名無しさん (ワッチョイ 67f6-dCWx) [sage] 2019/05/24(金) 21:15:04.81 ID:ZwmHdTYl0 >>630 対応するCのコードを示せるやつがいたら、おまえどうする? 朝8時の品川駅のホームでストリーキングでもするか? http://mevius.5ch.net/test/read.cgi/tech/1554171817/633
634: デフォルトの名無しさん (アウアウエー Sa9f-eVvB) [sage] 2019/05/24(金) 21:24:37.67 ID:QPLeHwR8a まあ継承なんてオブジェクト指向と関係ないよ http://mevius.5ch.net/test/read.cgi/tech/1554171817/634
635: ◆QZaw55cn4c (ワッチョイ df47-SwLn) [sage] 2019/05/24(金) 21:45:54.65 ID:0N6+tWvP0 >>632 >classというキーワードがなくても >コードを書く者の考え方次第でカプセル化や継承はできる C ではカプセル化はできても継承は不可能ですよ http://mevius.5ch.net/test/read.cgi/tech/1554171817/635
636: ◆QZaw55cn4c (ワッチョイ df47-SwLn) [sage] 2019/05/24(金) 21:46:59.73 ID:0N6+tWvP0 >>633 >対応するCのコードを示せるやつがいたら、おまえどうする? あなたができないことをそんなにアピールしなくてもいいと思いますよ http://mevius.5ch.net/test/read.cgi/tech/1554171817/636
637: デフォルトの名無しさん (ワッチョイ e701-GX6Y) [sage] 2019/05/24(金) 21:56:28.68 ID:wwZ4gkZH0 仮想関数テーブルの実装方法について語るスレはここですか? http://mevius.5ch.net/test/read.cgi/tech/1554171817/637
638: デフォルトの名無しさん (ワッチョイ 67f6-dCWx) [sage] 2019/05/24(金) 22:01:07.63 ID:ZwmHdTYl0 >>635 いーや、できる おまえさん禿本やリップマンくらい読んだか? 裸踊りを賭す自信もねえやつがいきがってんなよ http://mevius.5ch.net/test/read.cgi/tech/1554171817/638
639: デフォルトの名無しさん (ワッチョイ 67f6-dCWx) [sage] 2019/05/24(金) 22:02:14.93 ID:ZwmHdTYl0 >>637 いいぜ おら、来いや http://mevius.5ch.net/test/read.cgi/tech/1554171817/639
640: 蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 2701-6B7C) [sage] 2019/05/24(金) 22:06:22.36 ID:/xfbOr910 >>630 https://ideone.com/omqT5r http://mevius.5ch.net/test/read.cgi/tech/1554171817/640
641: ◆QZaw55cn4c (ワッチョイ df47-SwLn) [sage] 2019/05/24(金) 22:17:20.89 ID:0N6+tWvP0 >>638 ではストロヴストルップやリップマンはどういっているのか、ここに引用していただけますか? あらかじめいっておきますが、引用はできない、なぜならば、そんな内容をストロヴストルップもリップマンも書いていないのだから http://mevius.5ch.net/test/read.cgi/tech/1554171817/641
642: デフォルトの名無しさん (ワッチョイ df01-LXA5) [sage] 2019/05/24(金) 22:18:09.05 ID:TMKOHW7N0 >>625-627, >>629 オブジェクト指向と言う概念と実装の区別がついてないんだな 低能なプログラマーによくある行動w 例えばLinuxで言えばリダイレクトなんて言うのはもろオブジェクト指向な機能だよね Applicatlon > xxx ってやればxxxがファイルならApplicatlon が出力したデータをファイルに書き込むし、xxxが端末なら端末にデータを表示するし、xxxがプリンタならデータを印刷する Applicatlonは出力先が何であるかを気にする必要
はない もちろんLinuxはC言語でこれを実現してるしより面倒だろうけど当然アセンブラで実装することも可能 http://mevius.5ch.net/test/read.cgi/tech/1554171817/642
643: デフォルトの名無しさん (ワッチョイ e701-1x1Z) [sage] 2019/05/24(金) 22:21:05.39 ID:0NhXAFL60 概念ならFILE構造体とそれの操作関数群 http://mevius.5ch.net/test/read.cgi/tech/1554171817/643
644: ◆QZaw55cn4c (ワッチョイ df47-SwLn) [sage] 2019/05/24(金) 22:21:27.40 ID:0N6+tWvP0 >>640 >typedef struct C >{ > A ThisA; > B ThisB; > int c; >} C; これは委譲であって継承ではありません。私は >>626 で「Cでは継承はできない」と主張しており、これを否定するために委譲は使えません http://mevius.5ch.net/test/read.cgi/tech/1554171817/644
645: ◆QZaw55cn4c (ワッチョイ df47-SwLn) [sage] 2019/05/24(金) 22:23:27.35 ID:0N6+tWvP0 >>642 それは smalltalk 的な OO であって C++ の OO の概念とは多少食い違うと思います http://mevius.5ch.net/test/read.cgi/tech/1554171817/645
646: デフォルトの名無しさん (ワッチョイ e701-1x1Z) [sage] 2019/05/24(金) 22:24:05.41 ID:0NhXAFL60 コンストラクタとデストラクタの機構だけは欲しいと思ったことがしばしば http://mevius.5ch.net/test/read.cgi/tech/1554171817/646
647: ◆QZaw55cn4c (ワッチョイ df47-SwLn) [sage] 2019/05/24(金) 22:24:31.62 ID:0N6+tWvP0 >>643 FILE は OO 的ではありますが、OO そのものではありません OO というからには委譲とは別の継承を表現できねばなりませんが、 C では継承を表現できません http://mevius.5ch.net/test/read.cgi/tech/1554171817/647
648: デフォルトの名無しさん (ブーイモ MMcf-wr5r) [sage] 2019/05/24(金) 22:41:32.12 ID:K6buSCwsM glibとか大昔からあるじゃん… glibがooでないならooの定義をまず示せ http://mevius.5ch.net/test/read.cgi/tech/1554171817/648
649: デフォルトの名無しさん (アウアウカー Sa3b-eVvB) [sage] 2019/05/24(金) 22:42:05.32 ID:hUeULEjja オブジェクト指向ってC++固有の概念なの? だとすると、そりゃCで実現は無理でしょう。関係ないんだから。CとC++は。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/649
650: ◆QZaw55cn4c (ワッチョイ df47-SwLn) [sage] 2019/05/24(金) 22:44:44.02 ID:0N6+tWvP0 >>648 glibc++ は OO かもしれませんが glibc が OO だとは寡聞にして聞きませんね http://mevius.5ch.net/test/read.cgi/tech/1554171817/650
651: ◆QZaw55cn4c (ワッチョイ df47-SwLn) [sage] 2019/05/24(金) 22:45:51.47 ID:0N6+tWvP0 >>649 >オブジェクト指向ってC++固有の概念なの? いいえ、Java も C# も OO だし、 python も ruby も OO で表現できます http://mevius.5ch.net/test/read.cgi/tech/1554171817/651
652: デフォルトの名無しさん (アウアウカー Sa3b-eVvB) [sage] 2019/05/24(金) 22:50:26.22 ID:hUeULEjja >>650 GLibだよGLib 今知らないのもどうかと思うけど、使ってみると面白いと思うよ http://mevius.5ch.net/test/read.cgi/tech/1554171817/652
653: デフォルトの名無しさん (アウアウカー Sa3b-eVvB) [sage] 2019/05/24(金) 22:51:22.70 ID:hUeULEjja >>651 いや、それだとつじつま合わないでしょ 自分の決めた道を突き進めよ http://mevius.5ch.net/test/read.cgi/tech/1554171817/653
654: 蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 2701-uiLC) [sage] 2019/05/24(金) 22:53:40.43 ID:/xfbOr910 GTKのGLibだよね。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/654
655: ◆QZaw55cn4c (ワッチョイ df47-SwLn) [sage] 2019/05/24(金) 22:54:27.15 ID:0N6+tWvP0 >>653 どうつじつまがあわないというのですか?説明ください 私は「OO ならば委譲と区別された継承を記述されなければならない」と主張しています http://mevius.5ch.net/test/read.cgi/tech/1554171817/655
656: デフォルトの名無しさん (ブーイモ MMcf-wr5r) [sage] 2019/05/24(金) 22:55:59.59 ID:K6buSCwsM >>650 glibcじゃねーよ… gimp、inkscape、gnomeほか様々なソフトウェアで使われてる。 linuxとは無縁だったんだな http://mevius.5ch.net/test/read.cgi/tech/1554171817/656
657: デフォルトの名無しさん (ワッチョイ c7c3-OWKl) [sage] 2019/05/24(金) 23:36:16.20 ID:SCqWQYPI0 >>629 出来るに決まっている OO言語はオブジェクト指向プログラミングがやり易いようになっているだけでそれじゃなきゃOO出来ないというのはOOについて理解していないだけ http://mevius.5ch.net/test/read.cgi/tech/1554171817/657
658: デフォルトの名無しさん (ワッチョイ c7c3-OWKl) [sage] 2019/05/24(金) 23:46:49.71 ID:SCqWQYPI0 >>644 多重じゃない継承の場合Cでは1つめのメンバにベースクラスのインスタンスを書くというルールなだけ それだけで呼び出し元のコードはほぼなにも考えずにベースクラスの機能を使うことができる http://mevius.5ch.net/test/read.cgi/tech/1554171817/658
659: デフォルトの名無しさん (ワッチョイ bfba-GX6Y) [sage] 2019/05/24(金) 23:58:34.02 ID:S5Q/uU3j0 >>655 CでもOOできるし、継承できるし、オーバーライドもできる。 20年位前の本に「ANSI C に準拠したコンパイラならできる」と紹介されている。 メモリを意識したコードを書けない人には理解できないけどね。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/659
660: デフォルトの名無しさん (ワッチョイ dfb9-9b2Z) [] 2019/05/25(土) 00:01:58.97 ID:7Hh+Cor80 C言語はABIが標準化されている、という文を見たんですが、 その標準仕様の名前は何ですか? 新しいプラットフォームがその標準仕様を満たせば バイナリレベルあるいはソースレベルで移植性があるんでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1554171817/660
661: デフォルトの名無しさん (ワッチョイ bfba-GX6Y) [sage] 2019/05/25(土) 00:07:07.65 ID:KPhaQb+n0 >>654 ていうかお前、MZ級にウンコな片山博文やんけ。 >>660 標準の名前は無いんじゃないの? とりあえず「ABI」でググれ。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/661
662: デフォルトの名無しさん (ワッチョイ c7c3-OWKl) [sage] 2019/05/25(土) 00:11:09.80 ID:oops2jeN0 アーキテクチャ跨いでABIが統一できるわけないよね 引数の渡し方なんてアーキテクチャ変わったらそもそも使えるレジスタ変わるし 同一アーキテクチャの特定OS内ならバージョン変わってもABI互換ってのは良くあるけど http://mevius.5ch.net/test/read.cgi/tech/1554171817/662
663: 蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 2701-uiLC) [sage] 2019/05/25(土) 00:29:35.52 ID:2ZlhwbAL0 >>661 そのプライドを大切にしろよ http://mevius.5ch.net/test/read.cgi/tech/1554171817/663
664: デフォルトの名無しさん (ワッチョイ df01-LXA5) [sage] 2019/05/25(土) 05:52:48.29 ID:Tic4GHY30 >>645 お前のOOの定義書いてくれ 俺の思うOOじゃないとか言われたらどうしようもないわなw http://mevius.5ch.net/test/read.cgi/tech/1554171817/664
665: デフォルトの名無しさん (ワッチョイ df79-buEI) [sage] 2019/05/25(土) 05:57:11.32 ID:6KmI3UXB0 Cでオブジェクト指向プログラムなんて書くのは時間の無駄 速度が必要な部分だけCで作るのが正解 http://mevius.5ch.net/test/read.cgi/tech/1554171817/665
666: デフォルトの名無しさん (ワッチョイ 67f6-dCWx) [sage] 2019/05/25(土) 06:05:28.22 ID:6T2yG8cn0 >>641 てめえの怠慢を俺が尻拭いする筋合いはねえぜ 調べるところまで教えてやったんだ 自分で調べる気がねえなら不勉強のまま取り残されろ http://mevius.5ch.net/test/read.cgi/tech/1554171817/666
667: デフォルトの名無しさん (ドコグロ MM9f-LXA5) [sage] 2019/05/25(土) 07:19:56.39 ID:DOpjF4HUM >>665 > Cでオブジェクト指向プログラムなんて書くのは時間の無駄 そう言うこと ただ時間がかかると言うのとできるできないの話は別 なのでお前のレスのほうが時間の無駄w http://mevius.5ch.net/test/read.cgi/tech/1554171817/667
668: ◆QZaw55cn4c (ワッチョイ df47-SwLn) [sage] 2019/05/25(土) 15:51:01.79 ID:jppBZDTS0 >>658 >多重じゃない継承の場合Cでは1つめのメンバにベースクラスのインスタンスを書くというルールなだけ C では構造体のメンバの順番をプログラムから指定することはできたのでしょうか? C コンパイラはアラインメントを考慮して最適化をはかり構造体のメンバを、プログラマの記述から適宜入れ替えていもいいのでは? となると一つめのメンバにベースクラスのインスタンスを書いても、コンパイラに入れ替えられてしまっては無意味なのでは? htt
p://mevius.5ch.net/test/read.cgi/tech/1554171817/668
669: ◆QZaw55cn4c (ワッチョイ df47-SwLn) [sage] 2019/05/25(土) 15:52:11.46 ID:jppBZDTS0 >>659 >CでもOOできるし、継承できるし、オーバーライドもできる。 できないとおもいますよ、できるというのなら >>630 を C で記述してみてください >20年位前の本に「ANSI C に準拠したコンパイラならできる」と紹介されている。 出典を明記ください http://mevius.5ch.net/test/read.cgi/tech/1554171817/669
670: ◆QZaw55cn4c (ワッチョイ df47-SwLn) [sage] 2019/05/25(土) 15:53:43.84 ID:jppBZDTS0 >>666 >てめえの怠慢を俺が尻拭いする筋合いはねえぜ あなたは私の怠慢を主張するのと同様の筋で、私はあなたの欺瞞を主張します 出典元や引用を正確にできないのであれば、あなたは嘘をついていると判断されてもしかたがないと思います http://mevius.5ch.net/test/read.cgi/tech/1554171817/670
671: ◆QZaw55cn4c (ワッチョイ df47-SwLn) [sage] 2019/05/25(土) 15:55:14.60 ID:jppBZDTS0 >>661 片山先生は私とは比較にならないほど生産性の高いプログラマですよ http://mevius.5ch.net/test/read.cgi/tech/1554171817/671
672: ◆QZaw55cn4c (ワッチョイ df47-SwLn) [sage] 2019/05/25(土) 16:03:59.98 ID:jppBZDTS0 >>652 はじめて知りました、>>650 は勘違いした内容でした、すみません ご紹介ありがとうございます。今試しているところです! http://mevius.5ch.net/test/read.cgi/tech/1554171817/672
673: デフォルトの名無しさん (ワッチョイ df01-LXA5) [sage] 2019/05/25(土) 16:17:34.75 ID:Tic4GHY30 >>668 真面目な話、規格書読んでこい ツッコミどころが頓珍漢すぎる http://mevius.5ch.net/test/read.cgi/tech/1554171817/673
674: ◆QZaw55cn4c (ワッチョイ df47-SwLn) [sage] 2019/05/25(土) 17:02:40.54 ID:jppBZDTS0 >>673 コメントありがとうございます。確かに >>668 には誤りが含まれていました ISO/IEC 9899:1999 6.7.2.1.5 As discussed in 6.2.5, a structure is a type consisting of a sequence of members, whose storage is allocated in an ordered sequence, JIS X3010:2003 構造体は,メンバの列から成る型とし,メンバの記憶域は,並べられた順に割り付ける(6.2.5参照)。 しかし、この記述は構造体のパディングが構造体の先頭に詰められる場
合を排除していないと考えます よって、>>658 >多重じゃない継承の場合Cでは1つめのメンバにベースクラスのインスタンスを書く >それだけで呼び出し元のコードはほぼなにも考えずにベースクラスの機能を使うことができる 構造体の先頭にパディングがあった場合は、この記述は正しくないのではないでしょうか。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/674
675: ◆QZaw55cn4c (ワッチョイ df47-SwLn) [sage] 2019/05/25(土) 17:37:11.41 ID:jppBZDTS0 >>674 よくよく考えると、私の「この記述は構造体のパディングが構造体の先頭に詰められる場合を排除していないと考えます」もかなり疑わしい、 パディングというものは、一つのメンバがあって、それに対してもう一つのメンバを置くときにパディングを置くものであって、最初からパディングを置く必然性がないですね struct S { int a; } b; のとき &b = &(b.a) は保障されている、時間がたつにつれてそんな気がどんどんしてきました… >&
gt;658 を認め、同時に単一継承であれば C で OO と継承を表現できることを認めます http://mevius.5ch.net/test/read.cgi/tech/1554171817/675
676: ◆QZaw55cn4c (ワッチョイ df47-SwLn) [sage] 2019/05/25(土) 18:11:59.97 ID:jppBZDTS0 >>674 > a type consisting of a sequence of members, whose storage is allocated … この is にも惑わされてしまいました これは a type consisting of a sequence of members, each of which is allocated about storage in an ordered sequence とか a type consisting of a sequence of members, each of which's storage is allocated in an ordered sequence くらいに解釈するべきなんですね 検討する機会をいただきありがとうございました
http://mevius.5ch.net/test/read.cgi/tech/1554171817/676
677: デフォルトの名無しさん (ブーイモ MMcb-wr5r) [sage] 2019/05/25(土) 21:04:32.61 ID:DDy3bloZM >>675 絶対許さんぞおおおお http://mevius.5ch.net/test/read.cgi/tech/1554171817/677
678: デフォルトの名無しさん (アウアウエー Sa9f-eVvB) [sage] 2019/05/25(土) 21:07:06.72 ID:aM9QB8YDa オブジェクト指向って抽象化が目的なのに、メモリ配置とか気にするのは馬鹿みたいだよな http://mevius.5ch.net/test/read.cgi/tech/1554171817/678
679: デフォルトの名無しさん (ワッチョイ e701-GX6Y) [sage] 2019/05/25(土) 21:23:55.56 ID:cjrLAMgS0 MicrosoftのCOMはほとんど全てのコンパイラが構造体のメモリ配列を同じ様にするってのを利用してるんだっけ? http://mevius.5ch.net/test/read.cgi/tech/1554171817/679
680: デフォルトの名無しさん (ドコグロ MMeb-LXA5) [sage] 2019/05/25(土) 22:13:30.07 ID:UN9uDEfaM >>678 ここにも概念と実装の区別がついてないバカが…w http://mevius.5ch.net/test/read.cgi/tech/1554171817/680
681: デフォルトの名無しさん (ワッチョイ bfba-GX6Y) [sage] 2019/05/25(土) 23:25:49.27 ID:KPhaQb+n0 >>669 C言語でオブジェクト指向を表現する (クラス、継承) https://qiita.com/qiita_kuru/items/8f3441bce9b2f53d1d62 この辺でも読んどけ。 「何故できるか」まで言及したもっといい文献はあるがカスには教えない。 俺は「せざるを得ない」状況だったのでCでOOしたが、ネイティブでOOできるならそれに越したことはない。 あ、同じ板でハッシュが一致してるのでお前は蟻。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/681
682: デフォルトの名無しさん (アウアウエー Sa9f-eVvB) [sage] 2019/05/26(日) 01:24:13.78 ID:zv+FEFKTa >>681 またおまえか http://mevius.5ch.net/test/read.cgi/tech/1554171817/682
683: デフォルトの名無しさん (ワッチョイ 67f6-dCWx) [sage] 2019/05/26(日) 08:36:08.16 ID:o+/j3IaP0 >>670 は? 俺は主張なんざしてねえぜ 事実をありのまま指摘しただけだ 何勘違いしてやがる というか勘違いということにせねば立場がねえってかw http://mevius.5ch.net/test/read.cgi/tech/1554171817/683
684: デフォルトの名無しさん (ワッチョイ e7dc-dCWx) [sage] 2019/05/26(日) 08:56:22.54 ID:7tI1cTYc0 もうこんなとこで喧嘩しても勝敗つかないんだからやめろw 仲良くできねえのかお前らは http://mevius.5ch.net/test/read.cgi/tech/1554171817/684
685: デフォルトの名無しさん (ワッチョイ df2c-o9SV) [sage] 2019/05/26(日) 12:29:05.12 ID:lzKtO2WM0 でも冷静になって考えてみろ 単細胞時代から何億年と喧嘩してきた結果今の人間がいる訳だから喧嘩をやめてしまったらそれは果たして生物と言えるのか 逆に言えばAIが人知を超える時 人間は機械に滅ぼされ地球から人間はいなくなっているという事 つまり今何をすべきかと言うと人間は思考をやめアホになるべきである そうアホの坂田こそ未来の救世主ネオなのである http://mevius.5ch.net/test/read.cgi/tech/1554171817/685
686: ◆QZaw55cn4c (ワッチョイ c798-SwLn) [sage] 2019/05/26(日) 15:17:23.15 ID:CpBTYp0n0 >>681 そのご紹介のリンク先は、内容について、はっきりいって詰めが甘いです すなわち、継承と委譲を区別できていません そんな中途半端な理解で quita に掲載するとか、玉か石かどちらかといえば、石の部類でしょう、全然参考になりませんでした そんな中途半端な内容の記事を掲載するあなたも同様と判断いたします http://mevius.5ch.net/test/read.cgi/tech/1554171817/686
687: ◆QZaw55cn4c (ワッチョイ c798-SwLn) [sage] 2019/05/26(日) 15:19:14.79 ID:CpBTYp0n0 >>683 事実かどうかは、主観的か客観的か、に依存すると思いますが、 相対論においてはすべての事象について純客観的などありえない…? ので、?より、あなたは主観を主張しているものと私は理解します http://mevius.5ch.net/test/read.cgi/tech/1554171817/687
688: デフォルトの名無しさん (ワッチョイ df33-Fpyl) [sage] 2019/05/26(日) 15:46:43.76 ID:aNhG7Lwu0 >>686 「継承」に必要な操作一式を委譲に基づいて提供できているなら継承できていると思うんだけど、 言語サポートを伴って暗黙的に機能しない限り「継承」と呼ぶべきではない、ということなの? そこで明確に区別することにあんまり意義が見出せないんだけど、その定義どっか出典示せる? http://mevius.5ch.net/test/read.cgi/tech/1554171817/688
689: ◆QZaw55cn4c (ワッチョイ c798-SwLn) [sage] 2019/05/26(日) 15:52:14.70 ID:CpBTYp0n0 >>688 委譲による実装で継承を実現できているのなら、それは継承(の一形態)である、…? という主張ですね ?は私にも理解できますが、委譲はダイヤモンド継承を回避できない欠点があるのでは、と考えています 「ダイヤモンド継承」については C++ の書籍には大概載っているかと、具体的な書籍名は探しておきます http://mevius.5ch.net/test/read.cgi/tech/1554171817/689
690: デフォルトの名無しさん (ワッチョイ df59-eVvB) [sage] 2019/05/26(日) 16:00:20.28 ID:Jdhtsrqd0 まあ継承なんてオブジェクト指向と関係ないからね http://mevius.5ch.net/test/read.cgi/tech/1554171817/690
691: ◆QZaw55cn4c (ワッチョイ c798-SwLn) [sage] 2019/05/26(日) 16:02:51.60 ID:CpBTYp0n0 >>690 それは初耳です Object Oriented に継承は憑き物だと思っていました、継承のない OO って存在するのですか?それは例えばなにですか? http://mevius.5ch.net/test/read.cgi/tech/1554171817/691
692: デフォルトの名無しさん (ワッチョイ df33-Fpyl) [sage] 2019/05/26(日) 16:08:55.02 ID:aNhG7Lwu0 >>689 ちょっと何言ってるかわからないな。 ダイアモンド継承の問題を「継承」で回避しているが委譲では回避できないであろう例を挙げてくれたら考える。 明確に区別しないことも理解できると言うなら「詰めが甘い」とか「中途半端」とか言ってたのは何なのか・・・。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/692
693: デフォルトの名無しさん (ワッチョイ df59-eVvB) [sage] 2019/05/26(日) 16:22:19.45 ID:Jdhtsrqd0 >>691 なにって、言語を知りたいということ? http://mevius.5ch.net/test/read.cgi/tech/1554171817/693
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 309 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.076s