[過去ログ]
C言語なら俺に聞け 151 (1002レス)
C言語なら俺に聞け 151 http://mevius.5ch.net/test/read.cgi/tech/1554171817/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
544: デフォルトの名無しさん (ワッチョイ 3f01-pg4x) [sage] 2019/05/16(木) 19:48:10 ID:q0J7kB7g0 後のループの一発目は s[i]='\0'; I=i; /* ここのforを削って */ t[I-i]=s[i]; こういうことになるから t[0] = s[i] ってことになって t[0] = '\0'; をやってることになる 上記のは 1 2 3 4 \0 → \0 4 3 2 1 のコード 実装すべきなのは 1 2 3 4 \0 → 4 3 2 1 \0 となるコード http://mevius.5ch.net/test/read.cgi/tech/1554171817/544
545: デフォルトの名無しさん (アウアウウー Sa83-RNyv) [] 2019/05/16(木) 20:27:22 ID:m1+/MMjMa 惜しいねえ。綺麗に逆に入ってはいるんだよな。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/545
546: デフォルトの名無しさん (ワッチョイ 29ad-BnNU) [sage] 2019/05/16(木) 20:38:11 ID:GXqxfUU20 おっしゃる通りでした…今度は上手くいきました ありがとうございます http://mevius.5ch.net/test/read.cgi/tech/1554171817/546
547: デフォルトの名無しさん (ワッチョイ 29ad-BnNU) [sage] 2019/05/16(木) 20:38:46 ID:GXqxfUU20 おっしゃる通りでした…今度は上手くいきました ありがとうございます http://mevius.5ch.net/test/read.cgi/tech/1554171817/547
548: デフォルトの名無しさん (ワッチョイ 3f01-pg4x) [sage] 2019/05/16(木) 21:09:34 ID:q0J7kB7g0 自己解決できたようでなにより 整数の配列を逆に整列させるなら正解だったんだけどねー 「文字列」操作の落とし穴ですな http://mevius.5ch.net/test/read.cgi/tech/1554171817/548
549: デフォルトの名無しさん (ワッチョイ 2c5f-N32O) [sage] 2019/05/18(土) 22:03:40 ID:e0Mh58zT0 今C言語教室でSQLとGUIやってる初心者なんだがCでDB弄る仕事ってあるのか JavaとかC#に取られそうだけど http://mevius.5ch.net/test/read.cgi/tech/1554171817/549
550: デフォルトの名無しさん (アウアウエー Sa6a-ZkGz) [sage] 2019/05/18(土) 22:06:44 ID:8rj7/ih6a sqliteは使うよ http://mevius.5ch.net/test/read.cgi/tech/1554171817/550
551: ◆QZaw55cn4c (ワッチョイ ea47-8NB0) [sage] 2019/05/18(土) 22:07:47 ID:Pqc0+ZP00 >>549 ODBC 経由ならできますが…昔、ハンドルのキャストをとちったミスを、その意味不明の動きから突き止めるのは大変でした ODBC を直書きする情報はネットにほとんどありませんね http://mevius.5ch.net/test/read.cgi/tech/1554171817/551
552: デフォルトの名無しさん (ワッチョイ 2c5f-N32O) [sage] 2019/05/18(土) 22:19:48 ID:e0Mh58zT0 SQL使うのか慣れてないからあんまやりたくないんだよなあ 頑張るか http://mevius.5ch.net/test/read.cgi/tech/1554171817/552
553: デフォルトの名無しさん (ワッチョイ aa01-A+mh) [sage] 2019/05/18(土) 22:37:47 ID:D3aJPSyb0 >>549 C++ならまだしもC言語でGUI? どこの教室だよ… http://mevius.5ch.net/test/read.cgi/tech/1554171817/553
554: デフォルトの名無しさん (ワッチョイ d863-N32O) [sage] 2019/05/18(土) 22:53:12 ID:RWbfx4gX0 むかーし、Pro*C って使った事がある Cのソース内にSQLを埋め込み プリコンパイルする感じ 今は流行らないかもしれない http://mevius.5ch.net/test/read.cgi/tech/1554171817/554
555: デフォルトの名無しさん (アウアウエー Sa6a-ZkGz) [sage] 2019/05/18(土) 22:58:45 ID:8rj7/ih6a SQL使いこなしてる人ってすごいけど、正直ああはなりたくないという感じだよな。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/555
556: デフォルトの名無しさん (ワッチョイ d863-N32O) [sage] 2019/05/18(土) 23:01:53 ID:RWbfx4gX0 賢いファイルシステムとして利用すると超便利だぞ http://mevius.5ch.net/test/read.cgi/tech/1554171817/556
557: デフォルトの名無しさん (ワッチョイ d863-N32O) [sage] 2019/05/18(土) 23:02:38 ID:RWbfx4gX0 同じ事をCのロジックで組むとなると、アタマおかしくなるかも http://mevius.5ch.net/test/read.cgi/tech/1554171817/557
558: デフォルトの名無しさん (ワッチョイ 73c3-AU7T) [sage] 2019/05/18(土) 23:08:58 ID:Y/SMFmS40 普通にアプリケーションの規模が大きくなるとsql使いたくなるだろ そういう場合はsqlite使う http://mevius.5ch.net/test/read.cgi/tech/1554171817/558
559: デフォルトの名無しさん (ワッチョイ d863-N32O) [sage] 2019/05/18(土) 23:10:30 ID:RWbfx4gX0 5ちゃんねる専用ブラウザもsqlite使っているそうですね? プログラムコードはCではないですが http://mevius.5ch.net/test/read.cgi/tech/1554171817/559
560: デフォルトの名無しさん (ワッチョイ 8654-2aw6) [sage] 2019/05/19(日) 10:01:29 ID:EV8D9m9A0 IoTのデバイス開発やってるけど、C言語でDBのクライアントライブラリ使ってるよ http://mevius.5ch.net/test/read.cgi/tech/1554171817/560
561: デフォルトの名無しさん (ワッチョイ 9ff6-EL+e) [sage] 2019/05/19(日) 16:30:57 ID:b6d7Y/CF0 リーナスさんはC++嫌いつーてるしな トレードマークのfuck口調で http://mevius.5ch.net/test/read.cgi/tech/1554171817/561
562: デフォルトの名無しさん (アウアウウー Sa83-RNyv) [] 2019/05/19(日) 17:49:51 ID:V/GPYpFPa この頃は間に何かライブラリ挟んでDB変わってもSQL文がほぼ同じままで行けるようなのが流行りなのでは? http://mevius.5ch.net/test/read.cgi/tech/1554171817/562
563: デフォルトの名無しさん (ワッチョイ 4edc-EL+e) [sage] 2019/05/19(日) 19:08:51 ID:SqCxdnVY0 大学の情報科の人たちってどのレベルでC言語使えるんですかね? Cに限ったことではないですが大学4年でどの程度の練度が身につくのか http://mevius.5ch.net/test/read.cgi/tech/1554171817/563
564: デフォルトの名無しさん (ワッチョイ 4652-EL+e) [sage] 2019/05/19(日) 19:17:39 ID:Ic55MIMX0 人によるだろ そもそも好きなやつは大学入る前からやってるからな http://mevius.5ch.net/test/read.cgi/tech/1554171817/564
565: デフォルトの名無しさん (アウアウエー Sa6a-ZkGz) [sage] 2019/05/19(日) 19:22:28 ID:qBoKnLB7a >>563 別に使えなくてもいいよ http://mevius.5ch.net/test/read.cgi/tech/1554171817/565
566: デフォルトの名無しさん (ワッチョイ 9ff6-EL+e) [sage] 2019/05/19(日) 21:05:03 ID:b6d7Y/CF0 >>565 おまえは情報科に来るなってだけ やる気ねえやつが畑違いな学部に入ること自体が害悪だ http://mevius.5ch.net/test/read.cgi/tech/1554171817/566
567: デフォルトの名無しさん (アウアウカー Sa0a-ZkGz) [sage] 2019/05/19(日) 21:14:52 ID:Y3pJ4vrOa >>566 お前が入ったの専門学校だろ? http://mevius.5ch.net/test/read.cgi/tech/1554171817/567
568: デフォルトの名無しさん (ワッチョイ 9ff6-EL+e) [sage] 2019/05/19(日) 21:19:32 ID:b6d7Y/CF0 >>567 化学科だけど http://mevius.5ch.net/test/read.cgi/tech/1554171817/568
569: デフォルトの名無しさん (ワッチョイ d863-N32O) [sage] 2019/05/19(日) 21:24:37 ID:RJz4Ejb00 学校だとアルゴリズムやシステム設計手法は学べるだろうが 練度が上がるのはやはり仕事を始めてからだと思う http://mevius.5ch.net/test/read.cgi/tech/1554171817/569
570: デフォルトの名無しさん (オッペケ Sr88-2aw6) [sage] 2019/05/20(月) 12:44:26 ID:PSRVLRmYr コンピュータサイカヨウの基本は一通りやるんじゃない? 情報処理試験の基本レベルくらいのもの 初心者は実務にはそのままは使えないけど、中級以上のエンジニアならこのあたりの知識があると差がついてくるね http://mevius.5ch.net/test/read.cgi/tech/1554171817/570
571: デフォルトの名無しさん (ワッチョイ 328c-TfzP) [] 2019/05/20(月) 14:12:04 ID:0d3wAWyu0 業務のほとんどは手作業の自動化だから差は出ない。そしてみんなリストラされる。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/571
572: デフォルトの名無しさん (ワッチョイ 462d-EL+e) [sage] 2019/05/20(月) 18:18:34 ID:IJBxlZ980 仕事で出会った、いろいろな人を思い出すに、ガチに使える人材って凄いからなあ。 学校や仕事を通じて学ぶ、みたいな次元じゃないんだよねえ。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/572
573: デフォルトの名無しさん (アウアウエー Sa6a-ZkGz) [sage] 2019/05/20(月) 19:49:19 ID:Nbm/sW0Oa おまえが使ってるんだったらおまえが偉いよ http://mevius.5ch.net/test/read.cgi/tech/1554171817/573
574: デフォルトの名無しさん (ワッチョイ ae2c-uMtI) [sage] 2019/05/21(火) 00:42:18 ID:jVHVO/YL0 setbuf関数っていつなんの為に使うんや? バッファリングのためにあるのはわかるけどそもそもバッファリングがなんの為にあるのかわからん http://mevius.5ch.net/test/read.cgi/tech/1554171817/574
575: デフォルトの名無しさん (ワッチョイ 1c79-N32O) [sage] 2019/05/21(火) 00:44:38 ID:Hcv2vO/e0 ちまちま出力するより溜めてからまとめて出力した方が高速 http://mevius.5ch.net/test/read.cgi/tech/1554171817/575
576: デフォルトの名無しさん (ワッチョイ ae2c-uMtI) [sage] 2019/05/21(火) 01:29:10 ID:jVHVO/YL0 1万文字くらいのテキストファイルを標準出力でやってみたけど変わった気しなかったぞ もしかして数百万文字レベルの巨大ファイルだと劇的に変わるんか? http://mevius.5ch.net/test/read.cgi/tech/1554171817/576
577: デフォルトの名無しさん (ワッチョイ 73c3-AU7T) [sage] 2019/05/21(火) 01:34:19 ID:XM845/F70 10kbって小さくね http://mevius.5ch.net/test/read.cgi/tech/1554171817/577
578: デフォルトの名無しさん (アウアウカー Sa0a-ZkGz) [sage] 2019/05/21(火) 01:46:59 ID:+xvLcOVEa というか普通はバッファリングする関数ばっかりだが、自前でバッファ用意したいときもあるって話。 基本変わらんよたぶん。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/578
579: デフォルトの名無しさん (ワッチョイ ae2c-uMtI) [sage] 2019/05/21(火) 01:47:43 ID:jVHVO/YL0 確かに少ないな と思ったんで2,700kbでやってみたらむしろ4秒長くなったぞ http://mevius.5ch.net/test/read.cgi/tech/1554171817/579
580: デフォルトの名無しさん (ワッチョイ 9602-XAPB) [] 2019/05/21(火) 02:21:13 ID:Y+BS98b80 >>574 FILE * 経由で出力する printf() 等は内部でバッファリングしていてバッファがいっぱいになったらまとめて出力する(出力先が端末の場合は行単位で出力する)。 そのバッファを自分で指定した領域を使わせるか、またはなしにできるのが setbuf()。更に自由に大きさやモードも指定したいなら setvbuf() を使う。 バッファリングに関して考慮しなくても良い入出力をする場合は read(), write() で行う。この場合は全くバッファリングされないので少ないバイト数の入出力が多いと遅くなる。 それと printf() のようなフォーマットを考慮した出力はないので必要なら自作する。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/580
581: デフォルトの名無しさん (ワッチョイ 9602-XAPB) [] 2019/05/21(火) 02:26:07 ID:Y+BS98b80 >>576 open()してwrite()で1バイトづつ書くのとまとめて書くのとではバイト数によっては大幅に違いが出ると思う。環境依存ではあるが。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/581
582: デフォルトの名無しさん (ワッチョイ ae2c-uMtI) [sage] 2019/05/21(火) 03:47:59 ID:jVHVO/YL0 >>581 大きなファイルの入出力を高速化したい時はsetbuf(fp,buf) バッファリング無しにしてバッファをフラッシュするタイミングを順番に逐一実行させたい時はsetbuf(fp,NULL) みたいな感じでええんかな? http://mevius.5ch.net/test/read.cgi/tech/1554171817/582
583: デフォルトの名無しさん (ワッチョイ 9602-XAPB) [] 2019/05/21(火) 03:58:34 ID:Y+BS98b80 >>582 setvbuf()で自分でバッファの大きさ決めてしまった方が良いかも。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/583
584: デフォルトの名無しさん (ワッチョイ a601-uGxO) [sage] 2019/05/21(火) 04:24:32 ID:zmxtmgNI0 既出かもしれませんがconstがjavaのfinalと違うと知りました。どう違うのでしょうか?c初心者です http://mevius.5ch.net/test/read.cgi/tech/1554171817/584
585: デフォルトの名無しさん (ワッチョイ 4101-MvwS) [sage] 2019/05/21(火) 05:39:22 ID:SRv5ILQj0 >>576 OSによってはHDDへ遅延書き込みするから、結局バッファしてるのと大して変わらなかったりする。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/585
586: デフォルトの名無しさん (ワッチョイ 462d-EL+e) [sage] 2019/05/21(火) 06:44:08 ID:UPiNM42a0 >>584 20年前くらいの知識で、しかも完全に理解してるわけではないので、間違っていたらゴメンだけど。 変数について言えば、Java の final 変数は、値が未定義かどうか、という情報を内部的に持っていて。 もし、変数の値が未定義の場合は、1回だけ代入できたはず。例えば final int i; System.out.println("test"); i=4; System.out.println(i); i=5; System.out.println(i); の場合、1回目の代入(i=4)は許されるけど、2回目の代入(i=5)は怒られる。 それに対して、(C89の頃のだけど)Cのconst変数は・・・ const int i; printf("test\n"); i=0; printf("%d\n",i); 1回目の代入(i=0)であっても怒られる。 みたいな感じの違いはあったような。最近のCやJavaは知らないんだけどね。 あまり自信がないので、詳しい方のレスを待ちましょう。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/586
587: デフォルトの名無しさん (ドコグロ MM02-A+mh) [sage] 2019/05/21(火) 06:49:56 ID:tdstqwiHM >>585 そっちもあるけどAPI呼出し回数の削減もあるから http://mevius.5ch.net/test/read.cgi/tech/1554171817/587
588: デフォルトの名無しさん (オッペケ Sr88-2aw6) [sage] 2019/05/21(火) 07:08:29 ID:6muVxYSDr >>585 今どきのディスクならほぼ遅延書き込みしてるといってもいいね バッファには二段階あって、 ?プロセスが持ってるバッファ ?OSが持ってるバッファ flush関係のライブラリ関数やシステムコールは?を?に吐き出す ?を吐き出すにはLinuxだとfsyncもしくはfdatasync http://mevius.5ch.net/test/read.cgi/tech/1554171817/588
589: デフォルトの名無しさん (アウアウウー Sa83-RNyv) [] 2019/05/21(火) 09:19:53 ID:BVi2WQ22a >>584 Cはポインタの指す先が const という指定ができるがJavaは配列の要素まで final にする指定ができなかったと思う。 つまり配列やクラスそのもののインスタンスへの参照は final にてきる。しかし参照される中身までは final にできず書き換え可能(クラスの場合はpublicのクラス変数とか、外部から書き換えられるようになっていれば書き換えられる)。 ま、ちょっと試してみな。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/589
590: デフォルトの名無しさん (ワッチョイ f6d2-cXFR) [] 2019/05/21(火) 10:05:33 ID:DLRGb2lZ0 LTOのオプション を使ってコンパイルすれば インライン関数をヘッ ダーに書かなくても 勝手にインライン化できるものはインラ イン化してくれる という理解で あってますか? http://mevius.5ch.net/test/read.cgi/tech/1554171817/590
591: デフォルトの名無しさん (アウアウウー Sa83-RNyv) [] 2019/05/21(火) 10:21:18 ID:BVi2WQ22a >>590 それコンパイラ依存なのでは? http://mevius.5ch.net/test/read.cgi/tech/1554171817/591
592: デフォルトの名無しさん (ササクッテロル Sp88-uMtI) [sage] 2019/05/21(火) 12:55:43 ID:PZq+OQZ5p >>589 これな Javaを最初に設計した奴はバカなんじゃないかと final の仕様を見たとき思ったな http://mevius.5ch.net/test/read.cgi/tech/1554171817/592
593: デフォルトの名無しさん (ワッチョイ ae2c-rckI) [sage] 2019/05/21(火) 15:23:18 ID:ZAINLMmO0 Linux では、HDD へ書き込むのは、デフォルトで、5秒に1回 USB メモリで、書き込み回数を減らしたい場合は、 15秒に1回とかに設定する人もいる http://mevius.5ch.net/test/read.cgi/tech/1554171817/593
594: デフォルトの名無しさん (オッペケ Sr88-2aw6) [sage] 2019/05/21(火) 18:23: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 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 ID:UdJL+OJH0 ストリームの撒き戻しは難しいんじゃないか? 表示装置なのかファイルなのかでも変わるだろうし… http://mevius.5ch.net/test/read.cgi/tech/1554171817/596
597: デフォルトの名無しさん (ワッチョイ 1c79-N32O) [sage] 2019/05/21(火) 18:54:48 ID:Hcv2vO/e0 ファイルポインタは巻き戻せる 標準出力ならエスケープシーケンスで右上に行けばいい http://mevius.5ch.net/test/read.cgi/tech/1554171817/597
598: デフォルトの名無しさん (ワッチョイ ee02-8NB0) [sage] 2019/05/21(火) 19:19:14 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 ID:UPiNM42a0 質問者が知りたい情報とは違うので、スルー推奨かもですが。 もし自分が、同じことをやれ、と言われたら。 「改行を含んだ文字列」を、「改行」と「それ以外の文字列」の2つに分けて、別々に出力しようとするかなあ。 ループの回数を変える必要はなくて。イメージとしては for() ※行単位のループ { if(最初の行でなければ) fprintf で「改行」を出力 fprintf で「それ以外の文字列」を出力 } fprintf で「別の文を出力」 http://mevius.5ch.net/test/read.cgi/tech/1554171817/599
600: デフォルトの名無しさん (ドコグロ MM02-A+mh) [sage] 2019/05/21(火) 19:58:03 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 ID:kdkwqODuM あっ、被ったや http://mevius.5ch.net/test/read.cgi/tech/1554171817/601
602: デフォルトの名無しさん (ワッチョイ ee02-8NB0) [sage] 2019/05/21(火) 20:07:13 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.cgi/tech/1554171817/602
603: デフォルトの名無しさん (ササクッテロル Sp88-Qul6) [] 2019/05/21(火) 20:22:57 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 ID:JOJ6V6qzd プログラムいじられるなら、改行出す方をどうにかした方が良さそうだが http://mevius.5ch.net/test/read.cgi/tech/1554171817/604
605: デフォルトの名無しさん (ワッチョイ aaf9-8NB0) [sage] 2019/05/21(火) 20:31:52 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 ID:BVi2WQ22a 最後に改行出すんじゃなくて最初に改行出すようにすれば良いだけでは? 一番最初の行だけは最初に出さなければ良いだけ。 バッファリングされて出力されないのが嫌なら行末でfflush()する。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/606
607: デフォルトの名無しさん (ワッチョイ aa01-A+mh) [sage] 2019/05/21(火) 21:47:10 ID:n1jvW3Ih0 >>606 >>599-600 http://mevius.5ch.net/test/read.cgi/tech/1554171817/607
608: デフォルトの名無しさん (ワッチョイ 9602-XAPB) [] 2019/05/21(火) 22:06:40 ID:Y+BS98b80 >>607 おお。既にあった。 さっきスマホで見てて気付かなかった。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/608
609: デフォルトの名無しさん (ワッチョイ 1e01-Qul6) [] 2019/05/21(火) 22:09:47 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 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 ID:a6wIXg41a まあファイルがクラスと同じだし。 継承はしづらいけど、そんなもん使ったらC++でもむしろ見通し悪くなるでしょ? http://mevius.5ch.net/test/read.cgi/tech/1554171817/611
612: デフォルトの名無しさん (ワッチョイ dfa5-vAXu) [sage] 2019/05/24(金) 10:11:20 ID:M2ZwKTAn0 最大のデバイスドライバがOSのカーネルなんじゃねえの そしてそれがC言語の限界 http://mevius.5ch.net/test/read.cgi/tech/1554171817/612
613: デフォルトの名無しさん (ワッチョイ dfb9-9b2Z) [] 2019/05/24(金) 10:43:06 ID:h3dkW7YJ0 Linuxカーネルは2100万行を超えているそうなので たぶん地球上でもっとも大規模な開発の1つです。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/613
614: デフォルトの名無しさん (ワッチョイ bf8c-GX6Y) [] 2019/05/24(金) 11:21:47 ID:0dR+L/D60 責任ある人は気がくるっているじゃない。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/614
615: デフォルトの名無しさん (アウアウウー Saab-EYzY) [] 2019/05/24(金) 12:25:59 ID:Cw+6mW4za Cでもオブジェクト指向的に考えて作ることは可能。構造体へのポインタまたは情報を区別する番号などを渡してその中身に基づいて処理する関数作ればいいので。 ファイルアクセスとかは作りがそうなってるよね。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/615
616: デフォルトの名無しさん (ワッチョイ c7d2-Fpyl) [sage] 2019/05/24(金) 12:32:21 ID:M3xcEept0 クラスはコンストラクタ/デストラクタは活用したけど 継承で面倒になって、ちょっと便利な関数付き構造体としてしか設計したことない。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/616
617: デフォルトの名無しさん (ブーイモ MMcb-/OyN) [sage] 2019/05/24(金) 12:35:03 ID:C+5joBz9M C言語ではオブジェクト指向も関数型プログラミングもできる。その下位レイヤーだから。 面倒臭いけど。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/617
618: デフォルトの名無しさん (ドコグロ MM9f-LXA5) [sage] 2019/05/24(金) 12:50:51 ID:8pSuDyEhM >>613 デバドラとかが山ほどあるだけでコア部分はそんなにたいしたことないよ http://mevius.5ch.net/test/read.cgi/tech/1554171817/618
619: デフォルトの名無しさん (ドコグロ MM9f-LXA5) [sage] 2019/05/24(金) 12:53:08 ID:8pSuDyEhM >>610 構造体に関数ポインタ入れたりすれば継承も多態も可能 書くのが面倒ってだけの話 モジュールを適切に分割すれば個々の開発部分はそんなにでかくならないし http://mevius.5ch.net/test/read.cgi/tech/1554171817/619
620: デフォルトの名無しさん (アウアウウー Saab-EYzY) [] 2019/05/24(金) 12:59:14 ID:Cw+6mW4za まあしかしC++は複雑怪奇な状態になったような感じがするのでなんか別の言語でオブジェクト指向やった方が良いような気がする。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/620
621: デフォルトの名無しさん (ワッチョイ c7da-YLUn) [sage] 2019/05/24(金) 13:49:11 ID:FIKXvkBI0 Javaがとてもシンプルな言語に見えてくる http://mevius.5ch.net/test/read.cgi/tech/1554171817/621
622: デフォルトの名無しさん (スププ Sdff-OWKl) [sage] 2019/05/24(金) 14:27:11 ID:YkjJvwKvd linux kernelなんておもくそオブジェクト指向的な構造だろ http://mevius.5ch.net/test/read.cgi/tech/1554171817/622
623: デフォルトの名無しさん (ワッチョイ e701-/OyN) [sage] 2019/05/24(金) 19:13:34 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 ID:omgaeJxY0 目指していた方向はそうだったと思う http://mevius.5ch.net/test/read.cgi/tech/1554171817/624
625: ◆QZaw55cn4c (ワッチョイ df47-SwLn) [sage] 2019/05/24(金) 20:26:08 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 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 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 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 ID:E0qJKDus0 そんなん言い始めたらアセンブラでもオブジェクト指向プログラミングできることになっちゃう。 言語としてOOPがサポートされてなきゃ認められないでしょ。 http://mevius.5ch.net/test/read.cgi/tech/1554171817/629
630: ◆QZaw55cn4c (ワッチョイ df47-SwLn) [sage] 2019/05/24(金) 21:00:32 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 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 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 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 ID:QPLeHwR8a まあ継承なんてオブジェクト指向と関係ないよ http://mevius.5ch.net/test/read.cgi/tech/1554171817/634
635: ◆QZaw55cn4c (ワッチョイ df47-SwLn) [sage] 2019/05/24(金) 21:45:54 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 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 ID:wwZ4gkZH0 仮想関数テーブルの実装方法について語るスレはここですか? http://mevius.5ch.net/test/read.cgi/tech/1554171817/637
638: デフォルトの名無しさん (ワッチョイ 67f6-dCWx) [sage] 2019/05/24(金) 22:01:07 ID:ZwmHdTYl0 >>635 いーや、できる おまえさん禿本やリップマンくらい読んだか? 裸踊りを賭す自信もねえやつがいきがってんなよ http://mevius.5ch.net/test/read.cgi/tech/1554171817/638
639: デフォルトの名無しさん (ワッチョイ 67f6-dCWx) [sage] 2019/05/24(金) 22:02:14 ID:ZwmHdTYl0 >>637 いいぜ おら、来いや http://mevius.5ch.net/test/read.cgi/tech/1554171817/639
640: 蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 2701-6B7C) [sage] 2019/05/24(金) 22:06:22 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 ID:0N6+tWvP0 >>638 ではストロヴストルップやリップマンはどういっているのか、ここに引用していただけますか? あらかじめいっておきますが、引用はできない、なぜならば、そんな内容をストロヴストルップもリップマンも書いていないのだから http://mevius.5ch.net/test/read.cgi/tech/1554171817/641
642: デフォルトの名無しさん (ワッチョイ df01-LXA5) [sage] 2019/05/24(金) 22:18:09 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 ID:0NhXAFL60 概念ならFILE構造体とそれの操作関数群 http://mevius.5ch.net/test/read.cgi/tech/1554171817/643
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 359 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.022s