[過去ログ] C言語なら俺に聞け 151 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
544: (ワッチョイ 3f01-pg4x) 2019/05/16(木)19:48 ID:q0J7kB7g0(1/2)調 AAS
後のループの一発目は

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 となるコード
545: (アウアウウー Sa83-RNyv) 2019/05/16(木)20:27 ID:m1+/MMjMa(1)調 AAS
惜しいねえ。綺麗に逆に入ってはいるんだよな。
546: (ワッチョイ 29ad-BnNU) 2019/05/16(木)20:38 ID:GXqxfUU20(2/3)調 AAS
おっしゃる通りでした…今度は上手くいきました
ありがとうございます
547: (ワッチョイ 29ad-BnNU) 2019/05/16(木)20:38 ID:GXqxfUU20(3/3)調 AAS
おっしゃる通りでした…今度は上手くいきました
ありがとうございます
548: (ワッチョイ 3f01-pg4x) 2019/05/16(木)21:09 ID:q0J7kB7g0(2/2)調 AAS
自己解決できたようでなにより
整数の配列を逆に整列させるなら正解だったんだけどねー
「文字列」操作の落とし穴ですな
549
(2): (ワッチョイ 2c5f-N32O) 2019/05/18(土)22:03 ID:e0Mh58zT0(1/2)調 AAS
今C言語教室でSQLとGUIやってる初心者なんだがCでDB弄る仕事ってあるのか
JavaとかC#に取られそうだけど
550: (アウアウエー Sa6a-ZkGz) 2019/05/18(土)22:06 ID:8rj7/ih6a(1/2)調 AAS
sqliteは使うよ
551: ◆QZaw55cn4c (ワッチョイ ea47-8NB0) 2019/05/18(土)22:07 ID:Pqc0+ZP00(1)調 AAS
>>549
ODBC 経由ならできますが…昔、ハンドルのキャストをとちったミスを、その意味不明の動きから突き止めるのは大変でした
ODBC を直書きする情報はネットにほとんどありませんね
552: (ワッチョイ 2c5f-N32O) 2019/05/18(土)22:19 ID:e0Mh58zT0(2/2)調 AAS
SQL使うのか慣れてないからあんまやりたくないんだよなあ
頑張るか
553: (ワッチョイ aa01-A+mh) 2019/05/18(土)22:37 ID:D3aJPSyb0(1)調 AAS
>>549
C++ならまだしもC言語でGUI?
どこの教室だよ…
554: (ワッチョイ d863-N32O) 2019/05/18(土)22:53 ID:RWbfx4gX0(1/4)調 AAS
むかーし、Pro*C って使った事がある
Cのソース内にSQLを埋め込み
プリコンパイルする感じ
今は流行らないかもしれない
555: (アウアウエー Sa6a-ZkGz) 2019/05/18(土)22:58 ID:8rj7/ih6a(2/2)調 AAS
SQL使いこなしてる人ってすごいけど、正直ああはなりたくないという感じだよな。
556: (ワッチョイ d863-N32O) 2019/05/18(土)23:01 ID:RWbfx4gX0(2/4)調 AAS
賢いファイルシステムとして利用すると超便利だぞ
557: (ワッチョイ d863-N32O) 2019/05/18(土)23:02 ID:RWbfx4gX0(3/4)調 AAS
同じ事をCのロジックで組むとなると、アタマおかしくなるかも
558: (ワッチョイ 73c3-AU7T) 2019/05/18(土)23:08 ID:Y/SMFmS40(1)調 AAS
普通にアプリケーションの規模が大きくなるとsql使いたくなるだろ

そういう場合はsqlite使う
559: (ワッチョイ d863-N32O) 2019/05/18(土)23:10 ID:RWbfx4gX0(4/4)調 AAS
5ちゃんねる専用ブラウザもsqlite使っているそうですね?
プログラムコードはCではないですが
560: (ワッチョイ 8654-2aw6) 2019/05/19(日)10:01 ID:EV8D9m9A0(1)調 AAS
IoTのデバイス開発やってるけど、C言語でDBのクライアントライブラリ使ってるよ
561: (ワッチョイ 9ff6-EL+e) 2019/05/19(日)16:30 ID:b6d7Y/CF0(1/3)調 AAS
リーナスさんはC++嫌いつーてるしな
トレードマークのfuck口調で
562: (アウアウウー Sa83-RNyv) 2019/05/19(日)17:49 ID:V/GPYpFPa(1)調 AAS
この頃は間に何かライブラリ挟んでDB変わってもSQL文がほぼ同じままで行けるようなのが流行りなのでは?
563
(1): (ワッチョイ 4edc-EL+e) 2019/05/19(日)19:08 ID:SqCxdnVY0(1)調 AAS
大学の情報科の人たちってどのレベルでC言語使えるんですかね?
Cに限ったことではないですが大学4年でどの程度の練度が身につくのか
564: (ワッチョイ 4652-EL+e) 2019/05/19(日)19:17 ID:Ic55MIMX0(1)調 AAS
人によるだろ
そもそも好きなやつは大学入る前からやってるからな
565
(1): (アウアウエー Sa6a-ZkGz) 2019/05/19(日)19:22 ID:qBoKnLB7a(1)調 AAS
>>563
別に使えなくてもいいよ
566
(1): (ワッチョイ 9ff6-EL+e) 2019/05/19(日)21:05 ID:b6d7Y/CF0(2/3)調 AAS
>>565
おまえは情報科に来るなってだけ
やる気ねえやつが畑違いな学部に入ること自体が害悪だ
567
(1): (アウアウカー Sa0a-ZkGz) 2019/05/19(日)21:14 ID:Y3pJ4vrOa(1)調 AAS
>>566
お前が入ったの専門学校だろ?
568: (ワッチョイ 9ff6-EL+e) 2019/05/19(日)21:19 ID:b6d7Y/CF0(3/3)調 AAS
>>567
化学科だけど
569: (ワッチョイ d863-N32O) 2019/05/19(日)21:24 ID:RJz4Ejb00(1)調 AAS
学校だとアルゴリズムやシステム設計手法は学べるだろうが
練度が上がるのはやはり仕事を始めてからだと思う
570: (オッペケ Sr88-2aw6) 2019/05/20(月)12:44 ID:PSRVLRmYr(1)調 AAS
コンピュータサイカヨウの基本は一通りやるんじゃない?
情報処理試験の基本レベルくらいのもの
初心者は実務にはそのままは使えないけど、中級以上のエンジニアならこのあたりの知識があると差がついてくるね
571: (ワッチョイ 328c-TfzP) 2019/05/20(月)14:12 ID:0d3wAWyu0(1)調 AAS
業務のほとんどは手作業の自動化だから差は出ない。そしてみんなリストラされる。
572: (ワッチョイ 462d-EL+e) 2019/05/20(月)18:18 ID:IJBxlZ980(1)調 AAS
仕事で出会った、いろいろな人を思い出すに、ガチに使える人材って凄いからなあ。
学校や仕事を通じて学ぶ、みたいな次元じゃないんだよねえ。
573: (アウアウエー Sa6a-ZkGz) 2019/05/20(月)19:49 ID:Nbm/sW0Oa(1)調 AAS
おまえが使ってるんだったらおまえが偉いよ
574
(1): (ワッチョイ ae2c-uMtI) 2019/05/21(火)00:42 ID:jVHVO/YL0(1/4)調 AAS
setbuf関数っていつなんの為に使うんや?
バッファリングのためにあるのはわかるけどそもそもバッファリングがなんの為にあるのかわからん
575: (ワッチョイ 1c79-N32O) 2019/05/21(火)00:44 ID:Hcv2vO/e0(1/2)調 AAS
ちまちま出力するより溜めてからまとめて出力した方が高速
576
(2): (ワッチョイ ae2c-uMtI) 2019/05/21(火)01:29 ID:jVHVO/YL0(2/4)調 AAS
1万文字くらいのテキストファイルを標準出力でやってみたけど変わった気しなかったぞ
もしかして数百万文字レベルの巨大ファイルだと劇的に変わるんか?
577: (ワッチョイ 73c3-AU7T) 2019/05/21(火)01:34 ID:XM845/F70(1)調 AAS
10kbって小さくね
578: (アウアウカー Sa0a-ZkGz) 2019/05/21(火)01:46 ID:+xvLcOVEa(1)調 AAS
というか普通はバッファリングする関数ばっかりだが、自前でバッファ用意したいときもあるって話。
基本変わらんよたぶん。
579: (ワッチョイ ae2c-uMtI) 2019/05/21(火)01:47 ID:jVHVO/YL0(3/4)調 AAS
確かに少ないな
と思ったんで2,700kbでやってみたらむしろ4秒長くなったぞ
580: (ワッチョイ 9602-XAPB) 2019/05/21(火)02:21 ID:Y+BS98b80(1/4)調 AAS
>>574
FILE * 経由で出力する printf() 等は内部でバッファリングしていてバッファがいっぱいになったらまとめて出力する(出力先が端末の場合は行単位で出力する)。
そのバッファを自分で指定した領域を使わせるか、またはなしにできるのが setbuf()。更に自由に大きさやモードも指定したいなら setvbuf() を使う。

バッファリングに関して考慮しなくても良い入出力をする場合は read(), write() で行う。この場合は全くバッファリングされないので少ないバイト数の入出力が多いと遅くなる。
それと printf() のようなフォーマットを考慮した出力はないので必要なら自作する。
581
(1): (ワッチョイ 9602-XAPB) 2019/05/21(火)02:26 ID:Y+BS98b80(2/4)調 AAS
>>576
open()してwrite()で1バイトづつ書くのとまとめて書くのとではバイト数によっては大幅に違いが出ると思う。環境依存ではあるが。
582
(1): (ワッチョイ ae2c-uMtI) 2019/05/21(火)03:47 ID:jVHVO/YL0(4/4)調 AAS
>>581
大きなファイルの入出力を高速化したい時はsetbuf(fp,buf)
バッファリング無しにしてバッファをフラッシュするタイミングを順番に逐一実行させたい時はsetbuf(fp,NULL)
みたいな感じでええんかな?
583: (ワッチョイ 9602-XAPB) 2019/05/21(火)03:58 ID:Y+BS98b80(3/4)調 AAS
>>582
setvbuf()で自分でバッファの大きさ決めてしまった方が良いかも。
584
(2): (ワッチョイ a601-uGxO) 2019/05/21(火)04:24 ID:zmxtmgNI0(1)調 AAS
既出かもしれませんがconstがjavaのfinalと違うと知りました。どう違うのでしょうか?c初心者です
585
(2): (ワッチョイ 4101-MvwS) 2019/05/21(火)05:39 ID:SRv5ILQj0(1)調 AAS
>>576
OSによってはHDDへ遅延書き込みするから、結局バッファしてるのと大して変わらなかったりする。
586: (ワッチョイ 462d-EL+e) 2019/05/21(火)06:44 ID:UPiNM42a0(1/2)調 AAS
>>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は知らないんだけどね。
あまり自信がないので、詳しい方のレスを待ちましょう。
587: (ドコグロ MM02-A+mh) 2019/05/21(火)06:49 ID:tdstqwiHM(1)調 AAS
>>585
そっちもあるけどAPI呼出し回数の削減もあるから
588: (オッペケ Sr88-2aw6) 2019/05/21(火)07:08 ID:6muVxYSDr(1/2)調 AAS
>>585
今どきのディスクならほぼ遅延書き込みしてるといってもいいね
バッファには二段階あって、
?プロセスが持ってるバッファ
?OSが持ってるバッファ

flush関係のライブラリ関数やシステムコールは?を?に吐き出す
?を吐き出すにはLinuxだとfsyncもしくはfdatasync
589
(1): (アウアウウー Sa83-RNyv) 2019/05/21(火)09:19 ID:BVi2WQ22a(1/3)調 AAS
>>584
Cはポインタの指す先が const という指定ができるがJavaは配列の要素まで final にする指定ができなかったと思う。
つまり配列やクラスそのもののインスタンスへの参照は final にてきる。しかし参照される中身までは final にできず書き換え可能(クラスの場合はpublicのクラス変数とか、外部から書き換えられるようになっていれば書き換えられる)。

ま、ちょっと試してみな。
590
(1): (ワッチョイ f6d2-cXFR) 2019/05/21(火)10:05 ID:DLRGb2lZ0(1)調 AAS
LTOのオプション
を使ってコンパイルすれば
インライン関数をヘッ
ダーに書かなくても
勝手にインライン化できるものはインラ
イン化してくれる
という理解で
あってますか?
591: (アウアウウー Sa83-RNyv) 2019/05/21(火)10:21 ID:BVi2WQ22a(2/3)調 AAS
>>590
それコンパイラ依存なのでは?
592: (ササクッテロル Sp88-uMtI) 2019/05/21(火)12:55 ID:PZq+OQZ5p(1)調 AAS
>>589
これな
Javaを最初に設計した奴はバカなんじゃないかと final の仕様を見たとき思ったな
593
(1): (ワッチョイ ae2c-rckI) 2019/05/21(火)15:23 ID:ZAINLMmO0(1)調 AAS
Linux では、HDD へ書き込むのは、デフォルトで、5秒に1回

USB メモリで、書き込み回数を減らしたい場合は、
15秒に1回とかに設定する人もいる
594: (オッペケ Sr88-2aw6) 2019/05/21(火)18:23 ID:6muVxYSDr(2/2)調 AAS
>>593
書き出し周期はファイルシステムに依存するよ
例えばext3かext4かで挙動は違う
595
(1): (ササクッテロル Sp88-Qul6) 2019/05/21(火)18:37 ID:G/IUf+gXp(1/2)調 AAS
C言語のfprintfを用いるときに、前行の改行を消す方法をご存知ないですか?
エスケープシーケンスでバックスペースを試したのですか上手くいかなくて困っています。

状況としてはfor文を用いて改行を含んだ文字列を繰り返し出力させているんですが、最後の行だけ改行を無くし、続けて別の文を出力したいのです。
繰り返しの回数を変えて最後に改行なしの処理をいれればいいと思うのですが、簡単な方法があればと思い質問させていただきました。
よろしくお願いします。
596: (ワッチョイ 3f01-pg4x) 2019/05/21(火)18:40 ID:UdJL+OJH0(1)調 AAS
ストリームの撒き戻しは難しいんじゃないか? 表示装置なのかファイルなのかでも変わるだろうし…
597: (ワッチョイ 1c79-N32O) 2019/05/21(火)18:54 ID:Hcv2vO/e0(2/2)調 AAS
ファイルポインタは巻き戻せる
標準出力ならエスケープシーケンスで右上に行けばいい
598: (ワッチョイ ee02-8NB0) 2019/05/21(火)19:19 ID:IJ+i04U80(1/2)調 AAS
こんな感じでいいのか?

#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;
}
599
(1): (ワッチョイ 462d-EL+e) 2019/05/21(火)19:53 ID:UPiNM42a0(2/2)調 AAS
質問者が知りたい情報とは違うので、スルー推奨かもですが。

もし自分が、同じことをやれ、と言われたら。
「改行を含んだ文字列」を、「改行」と「それ以外の文字列」の2つに分けて、別々に出力しようとするかなあ。
ループの回数を変える必要はなくて。イメージとしては

for() ※行単位のループ
{
if(最初の行でなければ) fprintf で「改行」を出力

fprintf で「それ以外の文字列」を出力
}
fprintf で「別の文を出力」
600
(2): (ドコグロ MM02-A+mh) 2019/05/21(火)19:58 ID:kdkwqODuM(1/2)調 AAS
>>595
bool First = true;
for( … ){
if(First){
First = false;
} else {
fprintf("¥n");
}
fprintf( … );
}
601: (ドコグロ MM02-A+mh) 2019/05/21(火)19:58 ID:kdkwqODuM(2/2)調 AAS
あっ、被ったや
602: (ワッチョイ ee02-8NB0) 2019/05/21(火)20:07 ID:IJ+i04U80(2/2)調 AAS
ファイルが標準出力等で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窓なら無理?
603: (ササクッテロル Sp88-Qul6) 2019/05/21(火)20:22 ID:G/IUf+gXp(2/2)調 AAS
>>596-602
皆様回答ありがとうございます。
ファイルを扱っているので、fseekで戻す方法を試してみようと思います。
604
(1): (スププ Sd94-AU7T) 2019/05/21(火)20:31 ID:JOJ6V6qzd(1)調 AAS
プログラムいじられるなら、改行出す方をどうにかした方が良さそうだが
605
(1): (ワッチョイ aaf9-8NB0) 2019/05/21(火)20:31 ID:8vKfOnx40(1)調 AAS
ansi.sysを組み込めばVT100互換エスケープシーケンスが
という昔話…と思ったが、ググったらvistaまであったんだな驚き
Windows 10 Threshold 2(10.0.1058)ではコマンドプロンプトでANSI/VT100互換表示が可能に
というスラドの記事も出た
606
(2): (アウアウウー Sa83-RNyv) 2019/05/21(火)20:52 ID:BVi2WQ22a(3/3)調 AAS
最後に改行出すんじゃなくて最初に改行出すようにすれば良いだけでは?
一番最初の行だけは最初に出さなければ良いだけ。
バッファリングされて出力されないのが嫌なら行末でfflush()する。
607
(2): (ワッチョイ aa01-A+mh) 2019/05/21(火)21:47 ID:n1jvW3Ih0(1)調 AAS
>>606
>>599-600
608: (ワッチョイ 9602-XAPB) 2019/05/21(火)22:06 ID:Y+BS98b80(4/4)調 AAS
>>607
おお。既にあった。
さっきスマホで見てて気付かなかった。
609: (ワッチョイ 1e01-Qul6) 2019/05/21(火)22:09 ID:JtLDtEYt0(1)調 AAS
>>604-607
603です。>>600の意味をちゃんとわかってませんでしたが、>>606の方のレスでわかりました。
>>600の方が安全な気がするのでそちらを検討します。
610
(2): (ワッチョイ dfb9-9b2Z) 2019/05/24(金)09:00 ID:h3dkW7YJ0(1/2)調 AAS
C言語はクラスが無い。
それは実際どれくらい問題になりますか?

昔C使ってたけど、本格的な抽象的設計をやってたわけじゃなくて、
最近Java使っててそういうのをやりだしたけど、
今思い返してみるとC言語はクラスや継承や多態性が無いから
かなり厳しい言語なんじゃないかな、と思ったんです。

メジャーなカーネルがCで作られてるという事実に驚愕します。
クラス無しで大規模開発は不可能としか思えません。
それどころか、1アルゴリズムの実装でもクラスは有用だと思うんですが。

最近、NimとかRustのようなCを代替するかもしれない勢いのある言語があります。
そういう言語はかなり抽象的な設計が可能です。
そういうのと比べると、小さなデバイスドライバみたいなものはCでいいだろうけど、
大規模開発におけるCはかなり無理があるんじゃないかな?と

そうでもないものですか?
611: (アウアウエー Sa9f-eVvB) 2019/05/24(金)09:04 ID:a6wIXg41a(1)調 AAS
まあファイルがクラスと同じだし。
継承はしづらいけど、そんなもん使ったらC++でもむしろ見通し悪くなるでしょ?
612: (ワッチョイ dfa5-vAXu) 2019/05/24(金)10:11 ID:M2ZwKTAn0(1)調 AAS
最大のデバイスドライバがOSのカーネルなんじゃねえの
そしてそれがC言語の限界
613
(1): (ワッチョイ dfb9-9b2Z) 2019/05/24(金)10:43 ID:h3dkW7YJ0(2/2)調 AAS
Linuxカーネルは2100万行を超えているそうなので
たぶん地球上でもっとも大規模な開発の1つです。
614: (ワッチョイ bf8c-GX6Y) 2019/05/24(金)11:21 ID:0dR+L/D60(1)調 AAS
責任ある人は気がくるっているじゃない。
615
(1): (アウアウウー Saab-EYzY) 2019/05/24(金)12:25 ID:Cw+6mW4za(1/2)調 AAS
Cでもオブジェクト指向的に考えて作ることは可能。構造体へのポインタまたは情報を区別する番号などを渡してその中身に基づいて処理する関数作ればいいので。
ファイルアクセスとかは作りがそうなってるよね。
616: (ワッチョイ c7d2-Fpyl) 2019/05/24(金)12:32 ID:M3xcEept0(1)調 AAS
クラスはコンストラクタ/デストラクタは活用したけど
継承で面倒になって、ちょっと便利な関数付き構造体としてしか設計したことない。
617
(1): (ブーイモ MMcb-/OyN) 2019/05/24(金)12:35 ID:C+5joBz9M(1)調 AAS
C言語ではオブジェクト指向も関数型プログラミングもできる。その下位レイヤーだから。
面倒臭いけど。
618: (ドコグロ MM9f-LXA5) 2019/05/24(金)12:50 ID:8pSuDyEhM(1/2)調 AAS
>>613
デバドラとかが山ほどあるだけでコア部分はそんなにたいしたことないよ
619: (ドコグロ MM9f-LXA5) 2019/05/24(金)12:53 ID:8pSuDyEhM(2/2)調 AAS
>>610
構造体に関数ポインタ入れたりすれば継承も多態も可能
書くのが面倒ってだけの話
モジュールを適切に分割すれば個々の開発部分はそんなにでかくならないし
620: (アウアウウー Saab-EYzY) 2019/05/24(金)12:59 ID:Cw+6mW4za(2/2)調 AAS
まあしかしC++は複雑怪奇な状態になったような感じがするのでなんか別の言語でオブジェクト指向やった方が良いような気がする。
621: (ワッチョイ c7da-YLUn) 2019/05/24(金)13:49 ID:FIKXvkBI0(1)調 AAS
Javaがとてもシンプルな言語に見えてくる
622
(1): (スププ Sdff-OWKl) 2019/05/24(金)14:27 ID:YkjJvwKvd(1)調 AAS
linux kernelなんておもくそオブジェクト指向的な構造だろ
623: (ワッチョイ e701-/OyN) 2019/05/24(金)19:13 ID:E0qJKDus0(1/2)調 AAS
関係ないけどOOPが流行り始めた頃に「WindowsのUIはオブジェクト指向だ」と言ってたやつを思い出した。
624: (ワッチョイ 7f63-buEI) 2019/05/24(金)19:26 ID:omgaeJxY0(1)調 AAS
目指していた方向はそうだったと思う
625
(1): ◆QZaw55cn4c (ワッチョイ df47-SwLn) 2019/05/24(金)20:26 ID:0N6+tWvP0(1/14)調 AAS
>>615
>Cでもオブジェクト指向的に考えて作ること
あくまでも「オブジェクト指向『的』」であることに注意すること
C ではオブジェクト指向を実現できない(断言)
626
(2): ◆QZaw55cn4c (ワッチョイ df47-SwLn) 2019/05/24(金)20:27 ID:0N6+tWvP0(2/14)調 AAS
>>617
>C言語ではオブジェクト指向も関数型プログラミングもできる

C ではオブジェクト指向はできない(断言)
継承をCでどのように記述するのでしょうか?
627
(1): ◆QZaw55cn4c (ワッチョイ df47-SwLn) 2019/05/24(金)20:27 ID:0N6+tWvP0(3/14)調 AAS
>>622
>linux kernelなんておもくそオブジェクト指向的な構造だろ

あくまでも「オブジェクト指向『的』」であってオブジェクト指向そのものではありません(断言)
628
(1): (アウアウウー Saab-EYzY) 2019/05/24(金)20:41 ID:1FXcUtRQa(1)調 AAS
いやできなくはないよ。何せC++は元々はCへのコンバータだったしな。C++のソースを読んでC言語に変換して後のことはCコンパイラに任せてたんだよ。それが初期のC++。

もちろんCは言語そのものがオブジェクト指向をサポートしてないから人間がそれをやろうとするととても面倒な事になるけどな。
629
(3): (ワッチョイ e701-/OyN) 2019/05/24(金)20:51 ID:E0qJKDus0(2/2)調 AAS
そんなん言い始めたらアセンブラでもオブジェクト指向プログラミングできることになっちゃう。
言語としてOOPがサポートされてなきゃ認められないでしょ。
630
(3): ◆QZaw55cn4c (ワッチョイ df47-SwLn) 2019/05/24(金)21:00 ID:0N6+tWvP0(4/14)調 AAS
>>628
>C++のソースを読んでC言語に変換して後のことはCコンパイラに任せてたんだよ。それが初期のC++。
C++ から C へのトランスパイラが存在したからといって、C にてオブジェクト指向(的ではなくそのものずばり)なプログラミングができるわけではありません
C++ のコンパイラが存在するからといって機械語が OO でないのと同じです、まず、

C++ https://ideone.com/vAp2Sj

に対応する C のコードを示してください
631: ◆QZaw55cn4c (ワッチョイ df47-SwLn) 2019/05/24(金)21:01 ID:0N6+tWvP0(5/14)調 AAS
>>629
>言語としてOOPがサポートされてなきゃ認められないでしょ。

激しく同感いたします!
632
(1): (ワッチョイ 67f6-dCWx) 2019/05/24(金)21:12 ID:ZwmHdTYl0(1/4)調 AAS
>>610
全く問題にならない
classというキーワードがなくても
コードを書く者の考え方次第でカプセル化や継承はできる
FILE構造体がその例だ
多態性がないというのは、おまえさんの認識不足で
関数ポインタでそんなものはすぐに実現できる
そういう認識不足があるからこそ
メジャーなカーネルをなぜ書けたかが理解できないのだ
633
(1): (ワッチョイ 67f6-dCWx) 2019/05/24(金)21:15 ID:ZwmHdTYl0(2/4)調 AAS
>>630
対応するCのコードを示せるやつがいたら、おまえどうする?
朝8時の品川駅のホームでストリーキングでもするか?
634: (アウアウエー Sa9f-eVvB) 2019/05/24(金)21:24 ID:QPLeHwR8a(1)調 AAS
まあ継承なんてオブジェクト指向と関係ないよ
635
(1): ◆QZaw55cn4c (ワッチョイ df47-SwLn) 2019/05/24(金)21:45 ID:0N6+tWvP0(6/14)調 AAS
>>632
>classというキーワードがなくても
>コードを書く者の考え方次第でカプセル化や継承はできる

C ではカプセル化はできても継承は不可能ですよ
636: ◆QZaw55cn4c (ワッチョイ df47-SwLn) 2019/05/24(金)21:46 ID:0N6+tWvP0(7/14)調 AAS
>>633
>対応するCのコードを示せるやつがいたら、おまえどうする?
あなたができないことをそんなにアピールしなくてもいいと思いますよ
637
(1): (ワッチョイ e701-GX6Y) 2019/05/24(金)21:56 ID:wwZ4gkZH0(1)調 AAS
仮想関数テーブルの実装方法について語るスレはここですか?
638
(1): (ワッチョイ 67f6-dCWx) 2019/05/24(金)22:01 ID:ZwmHdTYl0(3/4)調 AAS
>>635
いーや、できる
おまえさん禿本やリップマンくらい読んだか?

裸踊りを賭す自信もねえやつがいきがってんなよ
639: (ワッチョイ 67f6-dCWx) 2019/05/24(金)22:02 ID:ZwmHdTYl0(4/4)調 AAS
>>637
いいぜ
おら、来いや
640
(1): 蟻人間◆T6xkBnTXz7B0 (ワッチョイ 2701-6B7C) 2019/05/24(金)22:06 ID:/xfbOr910(1/2)調 AAS
>>630
https://ideone.com/omqT5r
641
(1): ◆QZaw55cn4c (ワッチョイ df47-SwLn) 2019/05/24(金)22:17 ID:0N6+tWvP0(8/14)調 AAS
>>638
ではストロヴストルップやリップマンはどういっているのか、ここに引用していただけますか?
あらかじめいっておきますが、引用はできない、なぜならば、そんな内容をストロヴストルップもリップマンも書いていないのだから
642
(1): (ワッチョイ df01-LXA5) 2019/05/24(金)22:18 ID:TMKOHW7N0(1)調 AAS
>>625-627 >>629
オブジェクト指向と言う概念と実装の区別がついてないんだな
低能なプログラマーによくある行動w

例えばLinuxで言えばリダイレクトなんて言うのはもろオブジェクト指向な機能だよね
Applicatlon > xxx
ってやればxxxがファイルならApplicatlon が出力したデータをファイルに書き込むし、xxxが端末なら端末にデータを表示するし、xxxがプリンタならデータを印刷する
Applicatlonは出力先が何であるかを気にする必要はない
もちろんLinuxはC言語でこれを実現してるしより面倒だろうけど当然アセンブラで実装することも可能
643
(1): (ワッチョイ e701-1x1Z) 2019/05/24(金)22:21 ID:0NhXAFL60(1/2)調 AAS
概念ならFILE構造体とそれの操作関数群
1-
あと 359 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.026s