C言語なら俺に聞け 14 ..
[2ch|▼Menu]
907:デフォルトの名無しさん
18/08/11 21:43:12.30 N9ICkOCi0.net
F(1千万)の計算時間
gmp_fib_uiは0.72秒
私のは0.25秒
私が適当に作ったヤツの方が勝っちゃいましたね
コードは以下
URLリンク(ideone.com)

908:
18/08/11 21:47:29.90 vW2Ha+vq0.net
>>890
>F(1000000000) = 0
となっていますが、ちゃんと動いているのでしょうか?

909:デフォルトの名無しさん
18/08/11 21:50:41.32 N9ICkOCi0.net
ローカル環境では動いてますが、
>>858に書いた通りideoneだと動きません

910:デフォルトの名無しさん
18/08/11 21:58:41.55 VKOHvb3S0.net
floatとdoubleの値の範囲を教えてください。
-0.000034 < float < 0.000034
-0.00000000016 < long < 0.0000000016
みたいな感じで教えてください><

911:デフォルトの名無しさん
18/08/11 22:22:37.58 v96Fcglg0.net
>>892
ライブラリがないとかならエラーになるし
そんなことって


912:るん? 何が原因だ



913:
18/08/11 22:25:26.31 vW2Ha+vq0.net
>>892
私も手元で確かめました、確かにこれは爆速ですね…私の古いPCでもf(1000万)までならば一瞬で答えが出ます。

914:デフォルトの名無しさん
18/08/11 22:26:14.75 UyVMPuF50.net
C言語でゲームがアクションゲームが作りたくてプログラミングはじめた
実際にプログラミングって楽しいと感じてる
でも入門書通りソートアルゴリズムを勉強してて、基本交換法やら基本選択法は楽にフローチャートもコードも書けたのに、そのあとにやった クイックソートとか単純挿入法では面白いぐらい苦戦した(どっちももうできるようになったけど)
これって、俺のアルゴリズムを考える能力が乏しいってことなのかな
それともはじめはみんなこんなもの?

915:デフォルトの名無しさん
18/08/11 22:26:40.35 UyVMPuF50.net
×ゲームがアクションが
◯アクションゲームが

916:デフォルトの名無しさん
18/08/11 22:35:15.61 d91dd04/0.net
再帰とポインタで躓くと昔から伝わっている
特に再帰は禅でもやって悟りを得ないと理解できない

917:さまよえる蟻人間
18/08/11 22:35:57.56 /IS35TFAd.net
だれでも最初は赤ちゃん歩き。私も最初はじゃんけんのプログラミングが全くできなかった。

918:デフォルトの名無しさん
18/08/11 22:42:41.92 N9ICkOCi0.net
>>890のバグを修正しました
URLリンク(ideone.com)
F(1千万)のideoneでの計算時間は0.31s

919:デフォルトの名無しさん
18/08/11 23:13:57.75 N9ICkOCi0.net
n log nより遅いように見えるのは
サイズが大きいとキャッシュから外れるため
フーリエ変換はメモリのランダムアクセスが頻発するので
キャッシュに入るかどうかで大きく時間が変わる
適当に並び変えながら変換することで
キャッシュヒット率を上げたり
メインメモリに収まりきらない巨大サイズをHDDを使いながら変換することも出来るのだが、
今回はシンプルさ重視の為見送り
世の中にある高速FFTライブラリに差し替えれば
もっと高速化する

920:デフォルトの名無しさん
18/08/11 23:25:51.63 N9ICkOCi0.net
>>893
環境依存
float, double がそれぞれIEEE754のbinary32とbinary64準拠の場合はおおよそ
-3.4028234663852885981*10^38 ≦ float ≦ 3.4028234663852885981*10^38
-1.7976931348623157081*10^308 ≦ double ≦ 1.7976931348623157081*10^308
正確には以下の範囲
float : ±(2^24-1)*2^104
double : ±(2^53-1)*2^971
これに追加して±∞, NaN などがある
組み込みなどではdoubleも32bitであることも多い

921:デフォルトの名無しさん
18/08/11 23:33:36.42 N9ICkOCi0.net
C言語スレだから ^ は排他的論理和の意味で使うべきでしたかね
-340282346638528859811704183484516925440 ≦ binary32 ≦ 340282346638528859811704183484516925440
-1797693134862315708145274237317043567980705675258449965989174768
0315726078002853876058955863276687817154045895351438246423432132
6889464182768467546703537516986049910576551282076245490090389328
9440758685084551339423045832369032229481658085593321233482747978
26204144723168738177180919299881250404026184124858368
≦ binary64 ≦
1797693134862315708145274237317043567980705675258449965989174768
0315726078002853876058955863276687817154045895351438246423432132
6889464182768467546703537516986049910576551282076245490090389328
9440758685084551339423045832369032229481658085593321233482747978
26204144723168738177180919299881250404026184124858368

922:デフォルトの名無しさん
18/08/11 23:41:42.36 N9ICkOCi0.net
>>894
単純なバグでした
size_t が64bit前提の部分があったのと、
非常に恥ずかしいですが以下のような動作不定なコードがありました
a->data[i++


923:] = b->data[i] + carry; 私のローカル環境だとたまたま動いていたようです intが16bitだとまだヤバそうですが、 16bit環境で動かすことはないと思うので気にしないことにします



924:デフォルトの名無しさん
18/08/11 23:47:51.76 VKOHvb3S0.net
>>902
ありがとうございました
例えば、986.0033っていう数字は
floatではないのでしょうか?

925:デフォルトの名無しさん
18/08/11 23:56:09.61 N9ICkOCi0.net
>>905
986.0033 はdoubleのリテラル
986.0033f はfloatのリテラル

926:デフォルトの名無しさん
18/08/12 00:23:34.17 BxiB5wa+0.net
>>904
ideoneだと100万ちょっと下でRuntimeErrorで途中でとまってるぽいね

927:デフォルトの名無しさん
18/08/12 07:44:42.21 P7wTPSJQa.net
蛇とJSとアセンブラ少しかじったんだけどCの効率的な勉強法ある?
主に蛇のチューニングと、これから勉強する予定なんだけど組み込み用マイコンのプログラムを書くために使う
小型のドローンもどきにのせたマイコンに、学習済みパターンをのせて動作制御したい

928:デフォルトの名無しさん
18/08/12 07:46:52.98 3JJNsMDc0.net
蛇?

929:デフォルトの名無しさん
18/08/12 07:47:28.70 P7wTPSJQa.net
ぱいそん

930:デフォルトの名無しさん
18/08/12 07:52:36.70 3JJNsMDc0.net
アセンブラをかじったのならCの習得は速そう
組み込みマイコンはどんなやつ?

931:デフォルトの名無しさん
18/08/12 07:57:10.98 P7wTPSJQa.net
聞いといて申し訳ないんだけど全然知らないんだよね門外漢で
シンプリンク?とか言うやつでいいかなと思ってるけど、種類により出来ること出来ないことも分からない

932:デフォルトの名無しさん
18/08/12 08:08:39.25 3JJNsMDc0.net
文法をざっくり本とかで覚えたらあとは実践
高速化なら具体例を提示すれば私がアドバイスしますよ
高速化する場合はクリティカルポイントを絞ってから
時間がかからない所は高速化せずにそのままにしておくこと
アルゴリズムや式など、
上位の改良の方が高速化に寄与しやすいので
まずは上の方から考えること
下を高速化することで上が見にくくなって上の改良を妨げるようじゃ本末転倒なので

933:デフォルトの名無しさん
18/08/12 08:10:55.02 3JJNsMDc0.net
>>907
出力データが大きすぎて途中で切られたのかと思ったけど
エラーになってます?

934:デフォルトの名無しさん
18/08/12 08:15:31.91 P7wTPSJQa.net
>>913
なるほど
心にとどめておきます
C入門でおすすめの本とかサイトとかある?
JSには教科書探しに大分苦労させられたので

935:デフォルトの名無しさん
18/08/12 08:25:40.14 El938M/O0.net
アルゴリズムなど分からないですが、プログラムが出来るようになりますか?

936:デフォルトの名無しさん
18/08/12 08:40:26.57 2Xoj+DoI0.net
>>915
ISBN 4-320-02692-6

937:デフォルトの名無しさん
18/08/12 09:27:40.23 eabwfPDR0.net
>>915
苦しんで覚えるC言語
URLリンク(9cguide.appspot.com)
書籍版:ISBN 978-4798030142
>>917の本は古い記法だったはずだから初学者向けではないと思う

938:デフォルトの名無しさん
18/08/12 09:36:27.44 2Xoj+DoI0.net
古い記法ってこれか?
main(argc, argv)
char **argv;
{
int i 0;
while (i < argc) printf("%s ", argv[i =+ 1]);
return (0);
}

939:デフォルトの名無しさん
18/08/12 10:04:57.52 sdNRpf8zM.net
>>917
K&Rって言えよ。余計わかりにくい。
>>915
K&Rは「既にプログラミングできる人がCの文法を覚える用」だから、本当に最小セットしか乗ってない。
ただ、それでいい人=上級者からは絶賛されてる。彼らにとってはいわゆる入門書は冗長すぎるから。
十分にPythonと『アセンブラ』を使え、文法だけ知ればいけるの


940:ネら、K&Rはすごくいい。 PythonやJS等の上級言語しか使ったことなく、ポインタって何?なら、 殆どの人はポインタで躓くので、K&Rだけではかなり厳しいと思う。 アセンブラのインデックスレジスタがポインタそのものなのだが、ピンと来るか? ピンと来るなら、まずK&R買って、だめなら入門書でいいと思う。 意味不明だと思うのなら、最初から入門書を買え。



941:デフォルトの名無しさん
18/08/12 10:22:27.82 sFpP4hR50.net
>>920
> 文法だけ知ればいけるのなら、K&Rはすごくいい。
アホなの?

942:デフォルトの名無しさん
18/08/12 10:28:59.49 P7wTPSJQa.net
ありがとう
とりあえず苦Cは確定で、メインとしてK&R 使えるか本屋で見てくる
正直上級者どころか初心者を脱したかどうかレベルだから合わないかもだが
数学でチューリングマシンがーって机上の勉強やってたからかアセンブラはすんなりいった
行けそうだったらK&R使ってみる
てことで本屋行ってくる

943:デフォルトの名無しさん
18/08/12 11:20:48.05 1gNSypiFd.net
チューリングマシンは数学板の巨大数スレッドで
よく話題にあがるので
ご教授しに来ていただけるとうれしいです

944:デフォルトの名無しさん
18/08/12 11:36:54.26 zEU3SQsmM.net
>>922
> 数学でチューリングマシンがーって机上の勉強やってたからかアセンブラはすんなりいった
これって理論畑から行くとチューリングマシンがプログラミングより先に来るんか?
正直、それが何の役に立つのかはよく分からんが…

945:デフォルトの名無しさん
18/08/12 11:45:51.35 1gNSypiFd.net
コンピューター言語で記述出来る事の限界がわかる
実際のコーディング技術はあまり関係ないと思う

946:デフォルトの名無しさん
18/08/12 11:48:28.53 1gNSypiFd.net
全ての命令に、次に実行する命令のアドレスを指定出来るようなCPUがあるが
これはちょっと近いか

947:デフォルトの名無しさん
18/08/12 12:31:18.04 zEU3SQsmM.net
>>925
それって自然言語に対してって事?
なら逆にチューリングマシンの範囲を超える事象って何?
単純に言えば、それは未来永劫今の構造のCPUでは無理ってことになるはずだが、
そんな分野があるのか?

948:デフォルトの名無しさん
18/08/12 14:06:00.94 1gNSypiFd.net
>>927
ある

949:デフォルトの名無しさん
18/08/12 14:09:23.49 1gNSypiFd.net
プログラムの停止判定とか
乱数生成とか
非常に増加量の大きな関数とか

950:デフォルトの名無しさん
18/08/12 14:17:10.15 BCWcLjTed.net
P≠NP問題をご存知ない?

951:デフォルトの名無しさん
18/08/14 09:46:10.53 KzkkOfFYd.net
>>889
a, bを漸化式の形にして
それを行列表記にすると
|0.5 2.5|^n
|0.5 0.5|
これを基底変換して最適化すると
結局>>829 >>857になりました
まあ当たり前と言えば当たり前なんですが

952:デフォルトの名無しさん
18/08/15 06:16:23.73 fPb+tE65d.net
Java屋なんですけど自己啓発のために学生時代以来のCを夏休みに勉強しようと思ってます
開発環境のオススメを教えてください
自分が思いつくところでは…
・Vimとgcc
・VScode
・eclipse
こんな所ですが皆さんどうされてますか?
MacもWindowsも両方手元にはあります

953:デフォルトの名無しさん
18/08/15 08:44:48.25 NFQKBcxz0.net
開発環境なんて何でもいいから
さっさと勉強しなさい

954:デフォルトの名無しさん
18/08/15 09:12:26.87 o8lgioa70.net
>>932
組み込みとかで特定のコンパイラ使うとかならVSCodeでいいと思うが、そうでないなら普通にVisual Studioでいいと思う

955:デフォルトの名無しさん
18/08/15 11:22:04.73 mhFNubNm0.net
IDEが無い時代の開発を体験してみるという修行をしたいのならテキストエディタとコマンドラインだけでやる
これは啓発効果が高い

956:デフォルトの名無しさん
18/08/15 12:03:22.86 YVF6Ac/t0.net
俺は未だにターミナルとエディター
これ以上の快適さを知らないし知るつもりもない

957:デフォルトの名無しさん
18/08/15 12:10:42.58 o8lgioa70.net
別にいいんじゃね?
ターミナル最高だからお前らも使え!
とか言わなきゃ

958:デフォルトの名無しさん
18/08/15 12:11:49.41 PVw+eqmQd.net
EDLIN最高

959:デフォルトの名無しさん
18/08/15 12:43:52.85 1lipv2et0.net
Vimと言いたいところだが最近はもっぱらVSCodeばかり

960:デフォルトの名無しさん
18/08/15 14:46:36.23 bAZUebux0.net
俺は超初心者時代をTurbo Cで、
中級以後はviとccでおぼえた
ただし常に他の環境も色々使ってみてた

961:デフォルトの名無しさん
18/08/15 14:58:02.44 1MwRKcc7d.net
VisualStudioで良いとか口が裂けても言えねぇよ
MSVCはこのご時世ですらpure CはC89だぞ?
初心者で知らないならともかくこういうスレでVSをCの環境として勧める奴何者だよ

962:デフォルトの名無しさん
18/08/15 15:30:10.79 NhDv8JXAa.net
gccもclangもインテルコンパイラーもc99さえ100%準拠してないだろ
何でmsvcだけ槍玉あげてんの?

963:デフォルトの名無しさん
18/08/15 15:44:09.01 PVw+eqmQd.net
C89/90から覚えれば良い
あとはおまけ
Cが使われるのなんて今時組み込みくらいだ
組み込み用コンパイラだといまだC89/90が多い

964:デフォルトの名無しさん
18/08/15 15:45:48.23 PVw+eqmQd.net
いろんなコンパイラ、いろんな環境を使って見るのも良い
8bit、RAM64バイトみたいなチープな環境とか

965:デフォルトの名無しさん
18/08/15 15:46:05.90 cYF20yina.net
いや、組込開発環境なんてgccばっかりだからC99が標準だよ。
まあ妙に保守的なひとがいて古い文法を強制するんだけど…

966:デフォルトの名無しさん
18/08/15 15:48:33.27 PVw+eqmQd.net
組み込みに標準なんて無い
各社いろいろだ

967:デフォルトの名無しさん
18/08/15 15:59:23.74 BN2igdfy0.net
そういやLinuxとかのCUIでTurboCみたいな環境ってあるのかな?
あると外部からsshでログインしている時に使えて良いのだが。

968:デフォルトの名無しさん
18/08/15 16:22:31.09 fRV95OwVa.net
>>946
年寄りぶったガキが「古い環境でもコンパイル可能なコード」にこだわってるせいでどんどんコードが汚くなるのよ。
>>947
emacsじゃだめってことなんだろうねえ。
webベースのIDEでいろいろあるんだろうけど、決定版があったら知りたいわ

969:デフォルトの名無しさん
18/08/15 16:28:18.26 PVw+eqmQd.net
>>948
細かい表記とかよりももっと大きな事を気にした方がいいぞ

970:デフォルトの名無しさん
18/08/15 17:03:06.47 BN2igdfy0.net
>>948
emacsねえ。あれは複雑過ぎて今更覚える気になれない。
まああれが多機能過ぎるせいで他が伸びなかったって感じはするなあ。

971:デフォルトの名無しさん
18/08/15 17:04:43.75 hzdQdpXra.net
>>949
大きいことって、15年前の環境でコンパイルできることだろ?

972:デフォルトの名無しさん
18/08/15 17:13:57.27 2ovpzQjs0.net
vimでエディットして :make でビルド、
エラーや警告は quickfix 機能でシラミ潰し。
強く薦める気はないし、他の人に使い方を教えるほどの技量はないけど、
個人的にはこの組み合わせが便利だわ。
errorformat オプションを設定すれば、どんなコンパイラや変換ツールでも
ソースファイルのエラー箇所を呼び出してくれるからね。

973:デフォルトの名無しさん
18/08/15 17:24:36.77 /SQznhgr0.net
C99じゃないと困ることなんてそんなにないしな。わざわざC++と互換性ないコード書くメリットもない。

974:デフォルトの名無しさん
18/08/15 17:36:19.98 tGPywhyN0.net
C89だとforの初期化のときに新しく変数を宣言できないじゃん

975:デフォルトの名無しさん
18/08/15 17:48:50.30 bAZUebux0.net
コンパイラは案件による、それだけ
C99を使う案件でC89がどうたらぬかすのはただのアホ
逆もまたしかり

976:デフォルトの名無しさん
18/08/15 17:52:57.43 cYF20yina.net
C++とCだとファイル分けるでしょ?

977:デフォルトの名無しさん
18/08/15 17:56:50.28 /SQznhgr0.net
そういう意味じゃたしかに、C99規格に入れられたいくつかの機能は便利だ。
なので訂正する↓
msvcがC99準拠じゃないからといって困ることなんてそんなにないしな。

978:デフォルトの名無しさん
18/08/15 17:58:30.01 /kIK810yM.net
自己啓発の勉強ならC89で困ることとかなんかあるんだろうか?

979:デフォルトの名無しさん
18/08/15 17:59:04.25 2ovpzQjs0.net
//コメントと、どこでも変数宣言、がダメってのは辛いのよね。
エラーを直すのは簡単だけど、いかにもバカバカしい作業で。

980:デフォルトの名無しさん
18/08/15 18:00:49.89 PyNbth/v0.net
他人に教えるなら標準は尊重しよう

981:デフォルトの名無しさん
18/08/15 19:26:07.57 kg5weZ+NM.net
VSでC++環境使ってC文法だけで組めばよくね?
それ以前に環境なんてどれでもいい、とは思うが。
JavaでEclipseに慣れてるのならそれもありだと思うよ。
環境で躓くこと自体が無駄だよ。
そもそもJava分かっててCの練習なら、ポインタと変数の寿命管理だけだろ。
GUIでなければ、寿命管理は全部入れ子の構造化プログラミング徹底で済んでしまうし、今時CでGUIもない。
結果的にポインタだけなのだから、環境なんて何でもいいと思うが。
その上で、現場で古い文法を使う必要があるのなら、その時に慣れればいいだけで。
環境なんて全くどれでもいいだろ、これなら。
emacs毛嫌いしている奴がいるのもよく分からんが。
Ctrl+Fとか覚えたくなければ、カーソルキー使えばいいだけだろ。
emacs使いでも、よほどコアな奴でない限り、EmacsLispなんて書いてないぞ。俺も書けんし。

982:デフォルトの名無しさん
18/08/15 19:29:59.75 BN2igdfy0.net
viのキーバインドになってないと体が覚えるまで面倒

983:デフォルトの名無しさん
18/08/15 19:42:07.19 kg5weZ+NM.net
キーバインド自体は対応させるELが有ってもおかしく無いと思うけど。
(emacs教団の入会基準があのキーバインドに慣れることでも無かろう)
むしろ編集モード/閲覧モードを持つviの方がエディタとしては異端だ。
他の通常エディタに慣れたらviは無理だと思うが。
とはいえ、どっちも使えるって奴も聞かないので、
vi派なら今更emacsに慣れる必要は無いと思うが。
同様に、JavaでEclipseに慣れてるのなら、VSに慣れる必要もないし、そのままやった方がいいと思うよ。
何も知らなくて環境の立ち上げすら面倒なら、
VSならインストールさえすればクリックでビルド&デバッグ実行まで出来るから楽ってだけで。

984:デフォルトの名無しさん
18/08/15 20:00:10.97 PVw+eqmQd.net
いろいろ使いたければC++を使えば良いんだよ
new delete 例外 stl を使わなくてもCより便利だろ
C++じゃなくてわざわざCを覚えたいって言うからには
何か理由があるんだろう

985:デフォルトの名無しさん
18/08/15 20:08:35.17 kg5weZ+NM.net
ちなみに、CとC++を明確に区別してるのって、C使いとC++使いだけだろ。
他はだいたいC/C++扱いだし、926もそうだと思うが。

986:デフォルトの名無しさん
18/08/15 20:21:36.71 53ohHsaIa.net
まあでかいプログラムはC++で書いてれば良かったと思うようになるよ。
でもC++で書かれたクソコードというのはCのそれの比ではないので、品質のコントロールは問題になる。

987:デフォルトの名無しさん
18/08/15 20:22:57.45 /SQznhgr0.net
C99はC++の拡張を取り入れるんならC++98と互換性が取れるところで一旦〆れば
よかったものを、なんで要らん独自性を出したかねぇ。

988:デフォルトの名無しさん
18/08/15 20:24:28.79 PVw+eqmQd.net
勉強段階なら一緒に覚えれば良いよ
自然といろんな流儀を覚える

989:デフォルトの名無しさん
18/08/15 20:27:16.78 kg5weZ+NM.net
>>966
> でもC++で書かれたクソコードというのはCのそれの比ではない
うむ、それは言えてる。
文法が簡易すぎてC++的意味不明な回りくどい糞コードを書けないからなのか、
それともこの簡易文法だけで戦っていける奴らは本質的に鍛えられるからなのか。

990:デフォルトの名無しさん
18/08/15 20:28:43.25 2ovpzQjs0.net
わざわざ「C言語なら俺に聞け」スレッドで質問してるからには
C++ではないCに限定してるんじゃないか、と判断するのも合理的ではあるわね。
CとC++の両方を扱う初心者向けスレッドも別に存在するし。
もちろん >>932 の意図は投稿者自身のものだけど。

991:デフォルトの名無しさん
18/08/15 20:28:52.37 PVw+eqmQd.net
C++の糞コードと言えばこれ
#define private public

992:デフォルトの名無しさん
18/08/15 20:28:53.66 kg5weZ+NM.net
>>967
それってC側からC++と分かれたってこと?(俺は経緯はよく知らない)
てっきりC++が独自路線突き進んだと思っていたが。

993:デフォルトの名無しさん
18/08/15 20:30:15.51 PVw+eqmQd.net
もう別の言語だよ
もちろん共通部分だけでも組めるけど

994:デフォルトの名無しさん
18/08/15 20:38:11.04 PVw+eqmQd.net
そういえば
コメントを // から /* */ にわざわざ変える人がいる
今まで何人か見た
そんな暇があったらさっさとコードを組め

995:デフォルトの名無しさん
18/08/15 20:39:14.27 kg5weZ+NM.net
>>971
それ、単純に通るか?
なおVC++/CLIではそこで手こずったことがある。
当初ほぼprivateで作っていたクラスを継承する必要が出てきて、
protectedとpublic等に変更したらコンパイラにさんざん文句言われて手こずった。
あれでC++の糞さを再認識した。本質的でないところで凄く引っかかる。
(VC++/CLIは意図的に文法を厳しくしているからというのもあるが)

996:デフォルトの名無しさん
18/08/15 20:44:46.95 PVw+eqmQd.net
単純に通るか通らないかは環境や作りに依存する
わざわざ糞コードを披露するところが律儀だね

997:デフォルトの名無しさん
18/08/15 20:53:59.37 kg5weZ+NM.net
あー、俺のコードが糞だったからってか?
しかし、当初継承無しで単独で使う予定だったクラスに対し、仕様変更で機能追加されたんだから致し方ないと思うが。
ただ、個人的にはpublic/private自体が不要、とは思っている。
JavaScriptはpublicしかなくて、当初「これでいいのか?」と思ったが、やってみたら全く問題ない。
外から使うときに中身なんて気にしたくないから、そもそもprivateなんて触りに行かない。
逆に、外から触りたい物をprivateにすることも間違っているし。
あれはいちいち書かなくとも自然と分かれ、それで全く問題ない。
(文法的にチェックするだけの意味しかない。まあそれを言えば型システム自体もそれに近いが)

998:デフォルトの名無しさん
18/08/15 21:00:35.67 PVw+eqmQd.net
じゃあclassを使わないで
全てstructで書けば良いよ
public protected privateは一切不要だから

999:デフォルトの名無しさん
18/08/15 21:06:02.60 YVF6Ac/t0.net
VSCodeのVimプラグイン使いづらいんだよな
SublimeTextのVimプラグインみたいに両方のエディタのいいとこ取りみたいなキーバインディングだったらいいのに

1000:デフォルトの名無しさん
18/08/15 21:08:10.50 YVF6Ac/t0.net
リロードしてなかったら既にエディタの話題が終わってて浦島みたいな気分だ
ハゲが

1001:さまよえる蟻人間
18/08/15 21:18:55.80 XbGFS7Sjd.net
はーげん脱

1002:デフォルトの名無しさん
18/08/15 22:46:38.48 UO318XzAM.net
>>978
確かに俺はそれでいいが、
それだと「出来る限りprivateにすべき」教の信者から迫害を受けるのがウザイ。
これはC++よりもJavaの方が酷いように思うが。
この辺の文法的宗教戦争がCにまるでないのはメリットかも、とは思うよ。
private/publicに関してはデメリットの方が多い気がする。
なお、型もだ。動的型ならC++のテンプレートの大半は書かなくて済む。
無駄に手間を増やしている。動的型の方が書くのは快適だ。
あとはtypoを完全に検出れば、といったところか。
とはいえ、


1003:ャ度を追求するC/C++の世界には馴染まないが。



1004:デフォルトの名無しさん
18/08/15 23:04:52.90 BN2igdfy0.net
Kotlinもよろしく

1005:デフォルトの名無しさん
18/08/15 23:05:44.66 B3Li9vMqa.net
まあ実装とインターフェースを区別する心掛けが大切なのであって、privateにして満足したらあかんとは思うよ。

1006:デフォルトの名無しさん
18/08/15 23:54:13.35 1IcV1KLeM.net
>>984
というよりJavaは「粗結合教」「イテレータ教」かな?
見せなくて済むなら見せるなでインタフェースを無理に細くしているのと、
抽象化する必要がない場合もとりあえずイテレータにしてるだろ。
C++もナマポ撲滅の為に無駄にイテレータを導入しているから、この点は似ているが。
Cはここら辺の宗教戦争がない代わりに、どうしても抽象レベルが上がりにくく、
低レベルコードをひたすら書く羽目になるのが欠点か。

1007:デフォルトの名無しさん
18/08/16 01:31:46.14 IiF9TGTT0.net
どの言語でも、基本は疎結合。
スパゲッティ・泥団子などの密結合は、皆大嫌い!
こっちをいじれば、あっちが変わり、
あっちをいじれば、こっちが変わりw

1008:デフォルトの名無しさん
18/08/16 01:50:41.92 HU9VHWiC0.net
クラスはないがモジュール分割くらいは普通にするだろう

1009:デフォルトの名無しさん
18/08/16 03:27:52.80 zyXyJDDmd.net
>>979
激しく同意

1010:デフォルトの名無しさん
18/08/16 07:14:50.63 yO9+GMaw0.net
イテレータがナマポ撲滅のため??

1011:デフォルトの名無しさん
18/08/16 07:39:41.31 IWf/QMdza.net
ここの人たちはリーナスさんのC++批判はどう思ってる?

1012:デフォルトの名無しさん
18/08/16 07:39:43.44 t6OwQxX10.net
相手するなよ…

1013:デフォルトの名無しさん
18/08/16 09:33:11.42 yO9+GMaw0.net
俺もC++には気に入らんところがいくつかあって
リーナスの意見とは一致するところが多い
まず筆頭のクソが例外
次いでnewのコレジャナイ感
classとstructのしょーもなすぎる違い

1014:デフォルトの名無しさん
18/08/16 13:12:37.52 KNhd5GXjd.net
>>992
C♯さんディスってるんですか?

1015:デフォルトの名無しさん
18/08/16 17:25:51.84 w2NRgS+k0.net
goにしよう

1016:デフォルトの名無しさん
18/08/16 17:56:37.44 sGlIzl1XH.net
goto

1017:デフォルトの名無しさん
18/08/16 18:29:44.72 GnkF98h40.net
gotogo2

1018:さまよえる蟻人間
18/08/16 18:34:35.64 x8SR5C2Sd.net
次スレ

1019:デフォルトの名無しさん
18/08/16 22:32:33.50 +7r3fHyOM.net
>>990
俺はかなり賛同。言いたいことは分かる。
ただ、Cはクラスとラムダを導入すべき、それからリテラルをもっと充実させて、複合代入も欲しい。
これらがあれば、ずいぶん楽に書けるようになるはず。
>>989
イテレータの必然性なんてほぼ無いだろ。
様々なコンテナに対応する必要があれば、列挙を抽象化する必要があるが、まずこれがほぼ無い。
次に、インタフェースを揃えたいだけなら、酷い話「forで回せる」でも揃ってしまう。
そしてクラス内のコンテナを外部から直接イテレートする必要もほぼ無い。(publicにイテレータを見せる必要がない)
イテレータが必要なのって、汎用コンテナを作るときくらいだろ。
イテレータは抽象化の分かりやすい例だから取り上げられているだけで、実用性は皆無だと思うぜ。
それよりforEachとかの方が100倍使える。
Matz「俺はxxx[i]なんていちいち書きたくないんだよ」の方が分かる。
抽象化もコストがかかるから、必要ない抽象化はやるべきではない。
同様に、疎結合化もコストがかかるから、必要ない疎結合化はやるべきではない。
Cの場合は一応、ファイル内は密結合、ファイル間は疎結合というコンセプトだろ。
(実際それが適用されているかはともかく)
まあこれで合ってると思うぜ。
同様にクラス言語もクラス内は密結合、クラス間は疎結合のはずだが、
Javaの場合はクラス内も疎結合にしようとして細切れにする


1020:フが基本だろ。 そういう文化もありだとは思うが。 (FizBuzzのJava実装でイテレータ導入して悪ノリしてたのがあったろ。あれ) 疎結合の方がいいのは事実なのだけど、結果的にコード量が増える。 それで読む手間が増えるようなら意味無いだろ。 自分が読んで一番楽なところでバランスすればいいのだけど、それは俺はC程度かと思う。 ただこれは俺がC出身だからであって、Java出身ならあの細切れ状態が合うのかもしれないが。 (Javaは、テンプレートがない分、多態の選択肢が狭くて、結果的にあの文化なのだとは思う)



1021:
18/08/16 22:41:01.15 G1RQbz/X0.net
>>998
>(FizBuzzのJava実装でイテレータ導入して悪ノリしてたのがあったろ。あれ)
これ、見てみたいです…

1022:デフォルトの名無しさん
18/08/16 23:37:52.43 fOCSKLtw0.net
C言語なら俺に聞け 147
スレリンク(tech板)

1023:デフォルトの名無しさん
18/08/17 02:02:24.00 itWjjCCsd.net
>>1000
乙なんだな

1024:デフォルトの名無しさん
18/08/17 04:54:29.33 xjFqJl5K0.net
>>1000
乙野郎!

1025:デフォルトの名無しさん
18/08/17 07:30:57.69 TtX4VAeH0.net
>>998
ちょっと何言ってるかわからん
983はナマポと何の関係があるのかと聞いているんだが??

1026:デフォルトの名無しさん
18/08/17 08:18:10.48 VdqNpuZ90.net
うめ

1027:デフォルトの名無しさん
18/08/17 08:18:29.95 VdqNpuZ90.net
うめ

1028:デフォルトの名無しさん
18/08/17 08:18:59.69 VdqNpuZ90.net
1000

1029:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 109日 3時間 31分 22秒

1030:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

1905日前に更新/274 KB
担当:undef