17/07/17 21:06:47.63 J4JGo3XO.net
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
URLリンク(paiza.io)
URLリンク(ideone.com)
URLリンク(codepad.org)
C11
URLリンク(www.open-std.org)
C99
URLリンク(www.open-std.org)
URLリンク(kikakurui.com)
C FAQ 日本語訳
URLリンク(www.kouno.jp)
JPCERT C コーディングスタンダード
URLリンク(www.jpcert.or.jp)
前
スレリンク(tech板)
URLリンク(www.geocities.jp)
2:デフォルトの名無しさん
17/07/17 21:15:16.42 bGVplWmj.net
< `∀´>ニダー
3:デフォルトの名無しさん
17/07/17 21:41:46.56 /QULOYxM.net
#include < `∀´>
4:デフォルトの名無しさん
17/07/17 21:56:04.46 PKmAGp8M.net
>>1
乙
>>994
>だからgotoでどうやってやるんだよ
>戻り番地の意味わかる?
できないわけがないってw gotoで飛んでgotoで戻りゃいいんだから
非同期なら別関数にする必要があるが
5:デフォルトの名無しさん
17/07/17 21:57:25.18 4pA3RK/K.net
ちょっと書いてみてよ
6:デフォルトの名無しさん
17/07/17 21:58:43.30 n17oqQVv.net
プログラムカウンタをスタックに積まないでコール元に戻れるわけ無いだろ
プログラムの動作原理を知らなさ過ぎる
7:デフォルトの名無しさん
17/07/17 22:02:11.80 PKmAGp8M.net
逆に関数内関数じゃないとできない処理ってどんなの?
8:デフォルトの名無しさん
17/07/17 22:08:32.43 LYlgQVUQ.net
Python信者がうるさいのでもう一度書いておくと、以下URLの下のほう、
> しかし、16行目にある print func_a(5) を 4行目の def func_a(a): 行よりも上に移動すると、次のようなエラーが返る。
> URLリンク(www.isc.meiji.ac.jp)
これはJavaScriptは通るんだよ。
つーか、他言語は多分全部通る。落ちるのはPythonだけ。
お前らPythonしか使って無いからこれが糞だと認識できないんだよ多分。
9:デフォルトの名無しさん
17/07/17 22:16:47.67 LYlgQVUQ.net
前スレ>>995
990にレスが付いているのはヘッダについてか?
それなら俺はGCCに「自動ヘッダ生成器」を組み込んでくれよと思う。
というかCはヘッダで妙なトリック使いすぎてて自動生成できる状況ではないのだとは思うが、
それなら足りない関数だけでも自動で追加してくれよ、と思う。
つっても「後方参照」できるようになれば解決する話で、
マジでこれをいまだに放置している理由はよく分からん。
というか、俺に反論している連中ですらこれについては多分賛成なんだよな?
「後方参照」出来ない方がいいんだ!って理由がある奴っていないだろ。
だからこそ、Pythonが出来ないのがアホすぎて際立つわけでね。
10:デフォルトの名無しさん
17/07/17 22:25:47.17 Dn7+fEGp.net
前後を理解してないバカは参加するな
ID:LYlgQVUQ お前のことだ
11:デフォルトの名無しさん
17/07/17 22:28:20.57 WpdYiVZf.net
何でわっちょい無くなったの?
12:デフォルトの名無しさん
17/07/17 22:32:47.62 LYlgQVUQ.net
>>11
お、確かにそうだな。
俺はワッチョイありの新スレが立ったらそっちに動くって事で問題ない。
(つってももうこの話は終わりそうだが)
13:デフォルトの名無しさん
17/07/17 22:43:11.36 Zyqgn8pO.net
>>4
> gotoで戻りゃいいんだから
だからどこに戻るんだよ? w
> 非同期なら別関数にする必要があるが
戻り番地も知らん奴が非同期とか笑えるわ
>>7
ないでしょ
ローカル変数でないとできない処理を聞いてるのと同じ
14:デフォルトの名無しさん
17/07/17 22:53:34.33 PKmAGp8M.net
>>13
だからできるでしょ
俺は同じようには書けないが同じ処理はできると言ってるの
新たにスタック積む話なんか初めからしてないぞw
15:デフォルトの名無しさん
17/07/17 22:53:37.21 Zyqgn8pO.net
>>8
> > しかし、16行目にある print func_a(5) を 4行目の def func_a(a): 行よりも上に移動すると、次のようなエラーが返る。
> > URLリンク(www.isc.meiji.ac.jp)
まだやってるのかよ w
他の言語に倣うなら頭に
def main:
print func_a(5)
って書いて最後に
if __name__ == 'main':
main()
書けばいいだけ
> お前らPythonしか使って無いからこれが糞だと認識できないんだよ多分。
お前がPython知らんだけ
16:デフォルトの名無しさん
17/07/17 22:59:52.61 HedtDN7o.net
x86なら ENTER/LEAVEで実装されているな
出来るっていうならコードで示せよ
17:デフォルトの名無しさん
17/07/17 23:01:17.10 Zyqgn8pO.net
>>14
void f( ){
void g( ){
...
}
g();
g();
}
goto 使って同じ処理書いてみろよ
18:デフォルトの名無しさん
17/07/17 23:02:18.10 vodzC7WI.net
/ ̄\
| |
\_/
| __
┴´ ``ヽ
/::::::::::|:::::: `ヽ gotoで戻りゃいいんだから!!
/:::\::::::::<● > `ヽ
(( / <●>::::::::::⌒ )
| ⌒(_人__) ノ | |
ヽ )vvノ: / ノノ
ヽ (__ン 人
人 \
/
19:デフォルトの名無しさん
17/07/17 23:07:04.75 LYlgQVUQ.net
>>15
だからそれはできるうちに入らないんだよ。
どうにもPython信者には通じないようだが。
20:デフォルトの名無しさん
17/07/17 23:13:04.25 PKmAGp8M.net
>>17
void f( ){
void *ret;
goto a;
g:
printf("g¥n");
goto *ret;
a:
printf("a¥n");
ret = &&b;
goto g;
b:
printf("b¥n");
ret = &&c;
goto g;
c:;
printf("c¥n");
}
21:デフォルトの名無しさん
17/07/17 23:18:43.57 n17oqQVv.net
ID:PKmAGp8Mはプログラムの動作原理なーんも分かってない
22:デフォルトの名無しさん
17/07/17 23:21:10.09 4pA3RK/K.net
>>15で出来るうちに入らないとかいちゃもんつけたいだけやん
それCで関数の外にprintf書いてコンパイル通らなくて発狂してるようなもんだから
23:デフォルトの名無しさん
17/07/17 23:25:27.16 4pA3RK/K.net
いや、こんなこと書いたら揚げ足とってアホ認定されそうだから重ねておくけど、上のレスではコードの見た目の話に話を絞ってある
その範囲では、関数外に書いても通るだけ有難く思うべきである
24:デフォルトの名無しさん
17/07/17 23:27:45.16 LYlgQVUQ.net
>>20
まあ俺はそっちの話にあんまり突っ込む気はないんだけどさ、、、
アイデアは理解した。
が、そのラベルの使い方が保障されてるかというと、かなり微妙だと思う。
俺は仕様には詳しく無いからなんともいえないが。
とはいえ、実際はそれで動くケースが大半だとも思う。
25:デフォルトの名無しさん
17/07/17 23:29:34.59 81nqESXy.net
>>19
さっきからプロトタイプ宣言を書く書かないの話して、中身で使うだけの関数を下に書ければ見やすい的なことを言ってなかった?
その観点から言って、>>15にどんな問題があるの?
26:デフォルトの名無しさん
17/07/17 23:35:29.76 4pA3RK/K.net
実用上問題なくてもイチャモンつけたいだけw
27:デフォルトの名無しさん
17/07/17 23:51:06.35 LYlgQVUQ.net
>>22-23,25,26
だからPython信者はアホなんだよ。何度も言っている通り、
JavaScriptは以下のコードが動く=後方参照できる
Pythonは以下のコードが動かない=後方参照できない
といっているだけ。マジで分かれよアホ。
以下コードをブラウザ上でF12押してコピペしてみろ。動くから。
(function(){
say_hello();
say_world();
function say_hello(){console.log('hello');}
function say_world(){console.log('world');}
})()
Cはこの順に配置しようとすると《歴史的理由で》プロトタイプ宣言が必要。しかしやれば出来る。
Pythonはこの順に配置することがどうやっても出来ない。だから糞。
CもJavaScriptも設計者の自由を制限しない言語だ。
子関数をどこに配置するのが良いのかは設計者が考え、最適化できる。
これがCやJavaScriptの思想。
対してPythonは設計者の自由を制限し、
設計者ごとに異なる部分が無いことこそが読みやすさだと嘯く。
それはPythonerは馬鹿であると定義しているのと同じ。
だってCでもJavaScriptでも、Pythonと同じ順に配置は出来るのだから、
Pythoner以上の脳みそがあればPythonより読みやすく書くことは出来る。
もちろん馬鹿が書けばPython以上に読みにくくなるが、それ
28:はそういう仕様だ。(馬鹿は死ねという仕様) Python馬鹿がCスレまで来て思想が全く異なることを理解せずに喚いているから話が通じない。 Pythonは馬鹿用言語だということを自覚しろアホ。
29:デフォルトの名無しさん
17/07/17 23:55:03.58 PKmAGp8M.net
なんか問題あったかい?
ラベルのポインタはGCCとclangは対応してる
標準じゃなく拡張だけどなw
30:デフォルトの名無しさん
17/07/17 23:55:41.84 81nqESXy.net
>>27
で、どんな問題があるの?
31:デフォルトの名無しさん
17/07/17 23:57:28.74 4pA3RK/K.net
>>27
まずCスレでPythonの話題持ち出したお前が何言ってんの?w
32:デフォルトの名無しさん
17/07/18 00:06:20.95 zmpO/wkd.net
>>27
うわー最初は
viod say_hello(count){
if (--count<0) return;
printf("hello");
say_world(count);
}
void say_world(count){
printf(" world!\n");
say_hello(count);
}
みたいな例を出してたのに、それが出来ると分かるないなやわざわざPythonで出来ない例持ち出して来てら
これアンチしたいだけじゃん
33:デフォルトの名無しさん
17/07/18 00:08:33.09 tZS7qvye.net
>>28
いや、ラベルって「そこから下」に対しては保証されてるが、
「そこから上」って保証されてるか?
まあこの言い方では通じないと思うから具体的に書くと、
(A)
label:
(B)
で(B)側にゴミがない=次の命令がすぐ詰まっていてそこにJUMPすれば動作する
ことは保障されていると思う。これは普通の使い方だから。
ただ、上から流れてきたときに、(A)側にパディングされてたりしないか?というのは微妙で、
x86だとイミディエートに十分な長さがあるから問題ないとして、
16bitとか8bitとかの場合、コード領域にイミディエートを積んでいることは普通にあって、
しかも結構適当な場所に吐かれていた記憶が。
だからコンパイラ側に「ここは明らかに通らない」という風に見える場所はかなり危険かと。
ただし既に言っているが、俺は仕様には詳しく無いから、なんともいえないのだが。
34:デフォルトの名無しさん
17/07/18 00:20:24.14 yhFxnttF.net
>>32
この場合実行時にジャンプ先のアドレスを代入するのでその手の問題は無いでしょう
URLリンク(docs.oracle.com)
35:デフォルトの名無しさん
17/07/18 00:21:58.12 tZS7qvye.net
>>29
子関数を下に書いた方が分かりやすいときに、それが出来ないのが問題。
>>31
それは俺の間違いだった。俺が思っていたほどは糞ではないのも事実だ。
ただしやっぱりJavaScriptやCと比べたら糞だよ。
しかしお前らも知っていると思うが、
Pythonの最大の糞ポイントはラムダに式しか書けない事だろ。
つか、糞ポイントがぽこぽこ出せる時点で糞言語なのは確定なんだよマジで。
そしてCやJavaScriptの思想とは対極にあるのがPythonだ。
それを使うのはお前らの自由だが、それをCスレで喚くのはキチガイだ。
C的価値観からするとPythonなんてキチガイ馬鹿用言語だよ。
逆にお前らがPythonスレで
「Cみたいなシートベルトもエアバッグもない車に今更乗れるか!」って
言ってりゃいいんだよ。
というわけでお帰りくださいマジで。
俺は思想的にPythonとは合わないから、自主的に使うことはないと思います。
36:デフォルトの名無しさん
17/07/18 00:25:56.65 tZS7qvye.net
>>28,33
ああすまん間違えた。確かに問題ない。普通の使い方だ。
俺が勘違いしてた。
37:デフォルトの名無しさん
17/07/18 00:30:29.84 NDJOFNKG.net
>>32
コード領域にイミディエイト積んでいるのは当たり前
イミディエイトは即値
アセンブリコードのニーモニックでオペコードに直接データ(値)を指定するのだから
コード領域にしかイミディエイト値は存在し得ない
38:デフォルトの名無しさん
17/07/18 00:31:52.64 zmpO/wkd.net
>>34
そもそも最初にCスレにPythonの話題を書き込んだのは君なのに何言ってんの?
こっちはそもそもPythonを擁護してるんじゃなくて君の言っていることの変な部分を指摘してるだけだぞ
39:デフォルトの名無しさん
17/07/18 00:34:45.35 /ZeLwNbO.net
>>34
なんか知らんがHaskellみたいな順序に依存しない言語がおまいさんにあってる気がする。
40:デフォルトの名無しさん
17/07/18 00:44:21.05 tZS7qvye.net
>>36
いや、オペランドの長さが足りなかった場合、
中途半端なところにデータ領域を確保するCPUもあるって事。
>>38
Haskellは意識高すぎて無理だった。
てかあれ、遅延評価以外目新しくないよな?
そしてその遅延評価はC++にテンプレートでパクられてて笑ったが。
あれでC++のテンプレートの汎用性の高さに驚いたよ。
ちなみに、他言語のすごいコードって知ってるか?見てみたいとは思うから。
例えばCなら、LinuxのカーネルやGit(作者同じ)がそうだし、
C++ならchromeやV8が多分そう(といっても割とCらしいが)
PythonやHaskellって喚いているだけで現物がなくね?
所詮スクリプトで使い捨てコードが多いってことか?
41:デフォルトの名無しさん
17/07/18 00:47:51.04 gHxy0snY.net
>>39
PythonアンチカスPythonアンチスレに行け
二度とこのスレでPythonの名を出すな
42:デフォルトの名無しさん
17/07/18 00:55:04.83 tZS7qvye.net
そういやgotoで思い出したが、
マルチレベルbreakはあってもいいと思うけどね。
gotoがあればなあ、ってのは大体このケースだろうし。
オレオレパーサも組めない範囲でもないんだろうけど、
やっぱ誰かががっつりデバッグ済みにしてくれてるのを使いたいよ。
43:デフォルトの名無しさん
17/07/18 01:00:22.85 NDJOFNKG.net
>41
その用途に最も近いのは例外処理のtry-cattch構文だろうな
C言語では使えないけど
44:デフォルトの名無しさん
17/07/18 01:00:53.59 NDJOFNKG.net
try-catch
45:デフォルトの名無しさん
17/07/18 01:03:09.04 zmpO/wkd.net
try-catch遅くなかった?
46:デフォルトの名無しさん
17/07/18 01:03:12.76 r4nh1nKp.net
で
そのCスタイル22k行のコードはどういう書き方をしてたから読みやすかったんだ?
47:デフォルトの名無しさん
17/07/18 01:06:51.15 NDJOFNKG.net
>>44
遅いって一体…
try-catch使える独自拡張とかあったっけ?
48:デフォルトの名無しさん
17/07/18 01:09:17.66 zmpO/wkd.net
>>46
あー、遅かった気がするのはC++の話だわ
まあ例外処理が速い言語なんてないと思うけどさ
49:デフォルトの名無しさん
17/07/18 01:10:26.49 sjXtAWuw.net
setjmp, longjmp はペア
50:デフォルトの名無しさん
17/07/18 01:11:57.66 tZS7qvye.net
>>42
いやtry-catchはだいぶ違うぞ。
てかあれはC的エラー処理とは逆を行っている。
ただ最近は非同期が流行りだしてtry-catchでは対応できなくて
値埋め込み≒C的にはなってきてる。
個人的にはtry-catchは要らないなあ。
マルチレベルブレークはまあ、フラグ使って書けはするが、
見た目汚いから何とかならんのか、といったところ。
どっちかというとショートカット論理に使う。
51:デフォルトの名無しさん
17/07/18 01:21:43.38 yLpc3eXF.net
>>34
Pythonがゴミだからなんなの? わざわざCスレでPythonアンチしていい理由にはならないよね
しかもあんな的外れで何も知らないこと丸わかりなアンチ書き込みしたら対象がどんな言語であっても荒れるに決まってるよね?
帰るのは君だよ
52:デフォルトの名無しさん
17/07/18 01:32:30.51 /ZeLwNbO.net
>>39
すごいコードってのが分からんが、Haskellのprintfはコード見れるけど全く分からん。
(Hoogleでprintfで検索してソース覗く)
型推論出来れば普通のprintfにも、フォーマット済の文字列欲しい時はsprintf的にも使える関数なんだが。。。
53:デフォルトの名無しさん
17/07/18 02:23:27.20 tZS7qvye.net
>>51
おうサンクス。見てみたがなるほど分からん。
つっても俺はHaskellの文法も覚えてないレベルなんだが。
ただまあ、その仕様なら、確かに短いのかもね。
GNUのprintfって確か400行程度でgotoが20個くらいあるトンデモコードだったはずだが、
(探したけどすぐには出てこなかった)
それよりも仕様は大きいからねえ。
54:デフォルトの名無しさん
17/07/18 02:24:26.42 tZS7qvye.net
>>51
> すごいコード
これな。
俺が思うに問題はこういう「下位コード」ではなくて、
printfやオブジェクトを呼び出す「中位コード」の書きやすさだと思うんだよ。
関数型の連中と話していて違和感を感じるのはそこで、
奴らは10行のコードを5行にすることに精を出しているが、
10k行のコードを5k行にすることには興味が無いように見える。
実際のアプリを書いていて差が出るのはそこで、
Cはその点、最適なデータ構造を目指す、という方向に特化している。
だから構造体ポインタの塊になってしまうわけでさ。
それをもうちょっと自動的に取り扱おうとするとオブジェクト指向になり、C++になる。
で、そこらへんの「中位コード」のサンプルが無いんだよ。
具体的には10k-数万行を必要とするOSSアプリ。
Cの場合はこれはいくらでもあって、既に書いた通りlinuxやGit等。
C++ならFireFoxでもchromeでも、OSSで開発されているからいくらでも読める。
JavaScriptは最近atomエディタというのが出てきた。まあそれ以前から見放題ではあったが。
これに対して、「Haskell製の有名アプリ(OSS)」ってないよね?
(というか俺が知らないだけではあるが)
関数型の連中はCみたいな手続き型を悪く言うのだけど、それは全て下位コードなんだよ。
そして現実的には、下位コードなんて短く書けても大して意味無いんだよ。
どうせ読まないから。(名前がprintfな時点で読み飛ばし決定だし)
ただ、短く書けること自体はやはりすごくて、ポテンシャルがあるのは認めるが、
それが本当に使い物になるのか?については俺はちょっと疑問なんだ。
だから実際に動いているものを見て、どうなのか確認したいわけでさ。
というわけでHaskell製の有名OSSアプリあったら教えてください。
55:デフォルトの名無しさん
17/07/18 02:49:55.27 FK0nGZqt.net
>>27
LLで関数をオブジェクト扱いするような言語だと宣言前の関数を呼び出せるの相性悪いんだよね
一応確認して見た(シェルスクリプトみたいな特殊なものは無視)
Ruby→呼べない
perl→呼べない
lua→呼べない
PHP→呼べる(ただし、条件分岐内などの文脈で宣言されていない関数のみ)
JavaScriptl→呼べる(関数宣言「文」のみ)
JavaScriptの「巻き上げる」っていう仕様は結局わかりにくくて、ECMAScript以外で採用してる言語はないはず
56:デフォルトの名無しさん
17/07/18 03:10:01.00 FK0nGZqt.net
>>53
Pandocは現状かなり知名度あるんじゃないかな
URLリンク(github.com)
適当にググったらMoongiftのHaskellタグのやつそこそこあった
URLリンク(www.moongift.jp)
Pythonに関しては現物を見たことないの常識的にやばいと思うが・・・
機械学習とか数値処理とかの学術系はpython無双だし、Ansibleやyumみたいな管理系統、GUIソフトですらお前Python通って時がちらほら
Googleも社内標準言語にPython入ってて、Githubにもいくつか公開されてるな
57:デフォルトの名無しさん
17/07/18 05:04:08.81 a2LOcSSt.net
>>20
それ再起呼び出しに対応できないことぐらいは理解してるよね?
58:デフォルトの名無しさん
17/07/18 05:45:17.46 yhFxnttF.net
>>56
そもそも、Cでは大抵別の関数に切り出すからそんな心配いらんよ
59:デフォルトの名無しさん
17/07/18 08:27:43.78 qfl2Yypx.net
>>57
はあ?
ローカル関数でも再起は普通に使うし心配いらんって言われても困るわ
むしろお前の頭の方が心配だよ w
60:デフォルトの名無しさん
17/07/18 08:41:06.12 NDJOFNKG.net
別の関数として切り出しているから再起が出来るということだろ
無名関数の場合は再起には工夫が必要
>>20は無名関数とすら呼べない代物ではあるが…
URLリンク(ja.wikipedia.org)
61:デフォルトの名無しさん
17/07/18 08:58:56.41 yhFxnttF.net
心配性だねえ
再帰な
62:デフォルトの名無しさん
17/07/18 10:00:20.99 9AYHL0AJ.net
>> URLリンク(mevius.2ch.net)
> しかしヘッダファイルを用意するなんて完全に二度手間だし、
失笑
仕様と実装に分けて管理することが何の二度手間なんだよボケ
APIだとかインターフェイスだとかみんなそうだろうが
> コンパイラが自動的にやれよマジで、と思ったことは無いのか?
あああるよ
内製でサクッと作れてしまうほど簡単なことだからなおまえには簡単じゃないかも知れんがw
> 面倒ならなしでよし、
そうなってるだろうが、まさか知らんのか?
> その場合はコンパイラが勝手に探してくる、
これがおまえの言う「自動化」か
ワードやエクセルが「自動で」いらんことしやがるようなのがコンパイラにもついていて欲しいのかw
俺は反対、ライブラリをバージョン管理してるときなど断りもなく最新だか旧版だかとやられたら殺意がわく
> お前みたいに疑問を持ってない奴
疑問は持つぜ
おまえみたいに間違った正義を説くアホは見逃してねえだろ
63:デフォルトの名無しさん
17/07/18 11:46:36.57 Oj2nYHmM.net
CL /Zg じゃあかんのけ?
64:デフォルトの名無しさん
17/07/18 12:41:25.17 gVG2yFi+.net
>>59
無名関数の話なんて誰もしてないから無駄に絡んでこないでくれ
65:デフォルトの名無しさん
17/07/18 12:41:58.87 IlqGlOEF.net
まだ続いてたのか……
仕様に不満があるのは理解できた。同意できるかどうかはともかく。
そろそろ、「不満があるから何をしてるのか」という話を聞きたいな。
66:デフォルトの名無しさん
17/07/18 14:49:00.45 D0vI4DI2.net
そもそも個人的にPythonをプログラムと呼ぶのに違和感ある
Pythonはスクリプトだろ
67:デフォルトの名無しさん
17/07/18 15:27:18.14 P4sGRRLT.net
お願いします。どうしても、課題ができません。どなたかわかる方いませんか?
text.txtというファイルに以下のような個人情報が保存されているとする。これを読み込み、実行例のように画面に出力するプログラムを作成しなさい。
ヒント: 氏名の読み込みでは"name: %s\n"のような変換仕様を用いると良い。
▼text.txtの内容
name: Ichiro
age: 20
weight: 65.5
e-mail: ichiro@foo.bar
▼実行例
氏名: Ichiro
年齢: 20
体重: 65.5
Eメール: ichiro@foo.bar
68:デフォルトの名無しさん
17/07/18 15:27:59.32 P4sGRRLT.net
#include <stdio.h>
int main(void)
{
int x;
double b;
char str[100];
FILE*fp;
fp=fopen("test.txt","r");
if(fp==NULL){
printf("ファイルをオープンできませんでした。\n");
return 1;
}else{
printf("ファイルをオープンしました\n");
}
69:デフォルトの名無しさん
17/07/18 15:28:25.02 P4sGRRLT.net
fscanf(fp,"name:%s",&str);
printf("氏名:%s\n",str);
fscanf(fp,"age:%d",&x);
printf("年齢:%d\n",x);
fscanf(fp,"weight:%d",&b);
printf("体重:%.1lf\n",b);
fscanf(fp,"e-mail:%s",&str);
printf("Eメール:ichiro@foo.bar\n",str);
printf ("ファイルを読み込みました\n");
fclose(fp);
printf("ファイルをクローズしました\n");
return 0;
}
70:デフォルトの名無しさん
17/07/18 18:43:44.87 /pPGIQYg.net
Makefileの書き方で質問なんだけど
all: hoge piyo fuga
みたいな行があるとして、 依存ファイルを変数みたいに使いたいんだけど
どう書いたらいいの? いちいち
HOGE := hoge piyo fuga
all: $(HOGE)
みたいに書かないとだめなの?
71:デフォルトの名無しさん
17/07/18 20:34:14.13 Cdvgr3b8.net
>>69
とりあえず俺は知らないんだけど、参考文献どうぞ。
URLリンク(www.oreilly.co.jp)
無料でpdfダウンロードできる。
72:デフォルトの名無しさん
17/07/18 21:58:43.01 zbCywyZZ.net
>>66
課題なら、>>68で十分なのだろうけど実務で使うときは幅指定必須なので、先生に聞いとけ~
%100s%*とかね。
73:デフォルトの名無しさん
17/07/18 22:05:43.42 zbCywyZZ.net
>>69
変数みたいにつかって何したいかわからんな。
makefileってそういうものだとしか、言えない。
依存関係は依存するファイルをコンパイラが出力してくれるから、それをincludeするなんてのも良くある。
74:デフォルトの名無しさん
17/07/18 23:26:17.54 fPBWIN/L.net
>>68
惜しいな。
> fscanf(fp,"weight:%d",&b);
ヒント: % の後。
75:デフォルトの名無しさん
17/07/18 23:30:58.21 fPBWIN/L.net
>>68
もう一箇所。
> fscanf(fp,"e-mail:%s",&str);
> printf("Eメール:ichiro@foo.bar\n",str);
惜しいな。strに読む所は良い。その後、それを出す所。これだと固定の文字列が出るだけだよね。
76:デフォルトの名無しさん
17/07/18 23:36:18.53 Th9l296P.net
専門学校一年です
プログラム言語っていくつも必要?応用性ある最強言語一つあればいいんでないの?
77:デフォルトの名無しさん
17/07/18 23:48:43.24 tZS7qvye.net
>>46,48
なんか実装している奴いるぞ。
URLリンク(www.nurs.or.jp)
URLリンク(www.nurs.or.jp)
78:デフォルトの名無しさん
17/07/18 23:49:23.68 tZS7qvye.net
>>54
Perlは出来るぞ。
Rubyは出来ないようだが。これは予想外だった。つかMatzはこっち側のはずだが。
luaは出来ないね。LiveDemoで確認した。
URLリンク(d.hatena.ne.jp)
URLリンク(soudan1.biglobe.ne.jp)
JavaScriptが文だけなのは全く問題ない。以下コードは動く。
代入は他文と同様上から順に評価されるだけであって、シンボルは見えてる。
(function(){
say_hello();
var say_something = say_world;
say_something();
function say_hello(){console.log('hello');}
function say_world(){console.log('world');}
})()
> JavaScriptの「巻き上げる」っていう仕様は結局わかりにくくて
これは俺は「分かりにくい」というのが理解不能で、単に関数スコープなだけだ。
Cで言うANSI以前の「ド頭で全部宣言しとけ」でしかない。(C89と言うのか?)
ここで間違ったらCはSyntaxErrorだったはずだが、
JavaScriptの場合はそこらへんがユルくて、
「どこで宣言しても頭で宣言したことにして、エラー無しで動作」となるだけ。
Rubyが出来ないのはMatzが方針を間違えてるね。
「全部先に宣言した方が読みやすい」ってのはMatzの意見であって、
全員がそう思っているわけではない。だからRubyの思想なら制限しては駄目だ。一�
79:ム性がない。 逆にPythonはユーザーごとのばらつきこそが可読性を低下させるという思想だから、 制限するべきだし、実際にそうなっているから問題ない。こちらは一貫性がある。 結果、俺にとってはRubyも糞だと判明しだだけだな。
80:デフォルトの名無しさん
17/07/18 23:50:25.98 tZS7qvye.net
>>55
> 機械学習とか数値処理とかの学術系
あまり詳しくはないが、MLとかは当てにならん。
あれらはループがえぐいだけで中身は大した事はない。
大半が下位コード、1k行か精々3k行程度のはずで、俺なら使い捨てにする。
しかも自分の環境で動けばいいだけのイージーモードだ。
がっつり保守されてる奴を見ないと実用上の向き不向きは分からん。
ウォーターフォールで作ればアホでも綺麗に作れるのは当たり前であって、
問題はそこからの耐性だから。
本来のOOPもそこからのスタートだったろ。
最近のOOPは若干暴走気味で、設計の設計の設計みたいな感じになっている奴も多いが。
で、教えてもらって文句を言うのも悪いんだが、、、
> pandoc
マークアップコンバータは再帰で実装できるからHaskell向きかもしれん。
ただこれもかなり簡単で、しかもどの言語でも実装できる代物でしかない。
要するに再帰とストリング系が強ければいけるから、
LL言語ならどれを使っても問題ないし、苦労もしないだろう。
Haskellを使ったからこそ生きる、というものではないと思う。
Cが使われている現場は、Cでしか書けないから、だ。
それはお世辞にも生産性が高いとはいい難いことの裏返しではあるが、
linuxKernelについてはLinus自身がC++では無理だったと言っているし、
Gitについても同様だ。
> gitのような、効率を第一の目的としたのには、C++の「利点」とやらは大失敗なんだよ。
> 実際のところ、LinuxではC++を試したことがある。1992年のことだった。
> 結果はクソだった。マジで、カーネルコードをC++で書くのは、ド低脳の考えだ。
> URLリンク(cpplover.blogspot.jp)
実際Git全盛だし、Linuxについても
「安全なOOPでカーネルを書き直そう!」という話が10年程前には在った筈だが、
今全く聞かないので、完全にポシャったのだろう。
結果的にLinusの意見の正しさを証明している。
81:デフォルトの名無しさん
17/07/18 23:51:25.94 tZS7qvye.net
Haskellの売りは遅延評価だろ?
ならば、遅延評価がビルトインで提供されているからこそこれだけ簡単に実装できる、
そうでない言語ではかなり辛いことになる、というところで戦わなければ意味が無い。
マークアップコンバータは違うし、そこに挙げられている他12種も同様だ。
Linusの言葉を借りるなら、
> (c) 授業でそういう課題を与えられた者
でしかない。他言語を既に十二分に使えるときに、それらアプリでHaskellを選択する理由がない。
遅延評価の利点は、俺が思うに、適当に書いても速いことだ。
具体的には、超大富豪プログラムを動的に貧民プログラムに変身させられる事だ。
だからチャキチャキ書けないと意味が無いのだが、Haskellはお世辞にもそういう感じではないだろ。
だからHaskell使いがあの程度のアプリしか作れない時点で将来性はないよ。
彼らもそれなりに優秀なはずで、仮に俺が学んだとしても、彼ら以上のものを作るのは容易ではない。
それで作れるものがあの程度?そそられねーな、って感じ。
あのラインナップなら今でも他言語で作れるし、多分そんなに苦労もしない。
とはいえこれはサンプルとしては素晴らしい。ありがとう。
保守されているし、俺が確認したい中位コードは大量に含まれているはずだ。
俺自身が他言語で実装できるだろうというの�
82:烽「い。オレオレ実装と比較できる。 つまり、言語比較という意味ではかなりいい素材だ。 ただそれ以前に俺はHaskellをほぼ読めないので、読むのはずいぶん先になりそうだ。 これについては申し訳ないね。
83:デフォルトの名無しさん
17/07/18 23:52:11.26 tZS7qvye.net
> Ansibleやyum
お手軽スクリプトの域を出ないと思う。最悪、シェルスクリプトでも出来る範囲だろ。
C++の現場、たとえばブラウザでは、本当にエグイほど仕様変更が入って、
結果的にソースコードはぼろぼろになっていって、それでも保守している。
だからやっぱりLL言語はLL言語なんだと思うよ。
これだからスクリプターは、、、というのも当たってる。戦場の厳しさの次元が違う。
一通り動かすところまではどの言語を使っても出来る。
その過程で、例えばHaskellの遅延評価のような言語独自のフィーチャーがあり、
それを生かせれば素晴らしい。
しかしPythonにはそもそもそれがない。特に可もなく不可もなく、的な言語だ。
そして問題はそこから先で、
当初想定してなかった仕様変更が入ってきたときどこまで耐えられるかなのだが、
これに関してはPythonは不可も無いのだからそれなりではある。(悪くはない)
(なおJavaScriptはデタラメなパッチで一時しのぎする方法には事欠かないため、
俺はこの点も気に入っている)
エコシステムが云々、というのはおいておいて、
言語自体の能力で言えば、Pythonを積極的に選ぶ理由が一つもない。
とはいえ他言語は色々尖っていることも多いので、消極的にPythonってのもありだとは思うし、
実際そこにポジションしているとも思うが。Javaに近いというか。
両言語ともそれで繁栄しているのだから間違いでもないわけだが。
84:デフォルトの名無しさん
17/07/19 00:28:57.41 42DPUduf.net
>>75
金鎚だけで家が作れるかね?
85:デフォルトの名無しさん
17/07/19 00:53:51.97 PZqfvVeo.net
>>75
そーいう発想は大事
大きいプログラムも小さいプログラムも
スケーラブルに書けるほうが良い!
というのが動機で出来た言語があるにはある
86:デフォルトの名無しさん
17/07/19 01:09:15.68 Cm6fsZ7A.net
Cは大も小もなんでも書けるよ
ただ工数がかかるけど
87:デフォルトの名無しさん
17/07/19 01:28:24.97 q7UYRLiM.net
確かにCはなんでも書ける。
きめ細かくハードウェアに密接するようなのも書ける。
OSやデバイスドライバも書ける。
OSなし環境向けの組み込み用マイコンボードのROMに書くプログラムなんかも書ける。
逆にいうと、きめ細かくしか書けない。それなりのライブラリが用意されてないと作るのが大変。
88:デフォルトの名無しさん
17/07/19 01:36:11.94 9e7c5i6Q.net
つ アセンブリ言語
89:デフォルトの名無しさん
17/07/19 03:29:33.92 YP+Z6klr.net
>77
perlのやつは勘違いだった、すまん
>「分かりにくい」というのが理解不能で、単に関数スコープなだけだ。
関数の巻き上げは、ブラウザの種類、バージョン、strict modeの有無の組み合わせで位置と動作が不安定になったりするのはかなりわかりにくいと思う
URLリンク(developer.mozilla.org)
>Rubyの思想なら制限しては駄目だ。一貫性がない
Rubyは「その場にメソッドを定義する」という機能を持つ文が用意されているだけ
「すべてはオブジェクト」という思想的に一貫してる
その結果、javascriptではできない関数の中身や別ファイル、if文の中とかでもメソッド定義が比較的自然に行える
hoge = □
def hoge
■
end if true
みたいなこともできないと仕様上不自然。
javascriptみたいにifをつけると巻き上げが起こらないみたいにすると、この場合では
ifなし→□
ifあり→■
みたいに非直感的な挙動になって一貫性が失われる。そう考えると、言語全体の仕様の見
90:直しが必要になって・・・ と考えてくと、評価時に定義されるというのはそれはそれで合理的。
91:デフォルトの名無しさん
17/07/19 03:52:13.57 q7UYRLiM.net
>>85
それの場合CPU毎に覚える必要があって面倒。
C言語コンパイラはだいたいのCPU向けに素早く実装される傾向にあると思うのでアセンブリ言語よりは良いと思う。
92:デフォルトの名無しさん
17/07/19 04:35:20.40 YP+Z6klr.net
>>78-80
Haskellはちょうど具体例を知ってたから上げただけで全然わからないから詳しくはわからんので申し訳ない
人から数学系とHaskellを極めればいろんな界隈で需要があるらしいという噂だけ聞いたことはあるが
他の話は結局何が言いたいのかわからん
PythonはLL言語なんだから「お手軽スクリプト」として使うのは当たり前じゃん
機械学習とかの研究分野は、実装を素早く作って考えた手順を評価してを高速に繰り返すんだからC言語では無理。
それこそgitでも最初期の仕様を考えてるときはperlとか使ってたし
URLリンク(gihyo.jp)
>消極的にPythonってのもありだとは思うし、実際そこにポジションしているとも思うが
大体の人はそれを理解してるのに突然「Pythonはクソ!使ったことないけどクソ!」ってやつがわいてきてみんな頭の中???
Haskellについてのやつを見ても思うけど、断片的な経験と情報、ネットで見た内容とかを元に理解したと思いこむ癖があるんだろう
個人のソフトはともかく、Googleとかパッケージマネージャとかで積極採用されるからにはそれなりの評価点があるはずなんだから、自分の考えは常に疑って更新したほうがいいぞ
93:デフォルトの名無しさん
17/07/19 04:42:21.33 I/2F8nLs.net
要するに「なんでも書ける」は言い過ぎだということ
C言語がハードウェア寄りの記述が得意な言語であることは確かだけれど
それでも大抵はわざわざインラインアセンブラという抜け道を用意している
その理由はどうやっても書けないこともあるから
94:デフォルトの名無しさん
17/07/19 04:43:24.78 I/2F8nLs.net
アンカ忘れた
>>89は>>87へのレス
95:デフォルトの名無しさん
17/07/19 05:21:02.93 2gF8BL9h.net
>>89
割り込み関係みたいに特権命令を使うところは
「きれいなC」だけじゃ絶対書けないな
96:デフォルトの名無しさん
17/07/19 08:01:13.73 /uBE13O5.net
使ったこともない言語をディスり、同意しない相手は無知だと思っているガイジに汚染されたスレはここですか?
97:デフォルトの名無しさん
17/07/19 08:13:15.18 q7UYRLiM.net
>>89
ああ。書けないものもあるな。
そうなるとインラインアセンブラで無理矢理埋め込んだりする事になるとは思うが、そういうのは普通は全体からすればほんの少しだよな。
98:デフォルトの名無しさん
17/07/19 08:23:52.23 4WYjcaP8.net
>>53
Haskell処理系のGHCがまさにHaskellで書かれてるし、モナディウスっていうゲームはHaskeller界隈じゃ有名。
そもそもHaskellが有名になったのはPerl本家より早くPerl6の実装したのがキッカケ。
それまで知る人はほとんど居なかった。
99:デフォルトの名無しさん
17/07/19 08:29:05.26 I/2F8nLs.net
>>93
その通り
>きめ細かくハードウェアに密接するようなのも書ける。
>OSやデバイスドライバも書ける。
>OSなし環境向けの組み込み用マイコンボードのROMに書くプログラムなんかも書ける。
こういうのは全体からすればほんの少しだよ
100:デフォルトの名無しさん
17/07/19 08:39:40.95 iAmsiybP.net
>>75
そうだよ、みんなわかってないんだよ
PL/1, Ada ...
101:デフォルトの名無しさん
17/07/19 08:42:04.13 PZqfvVeo.net
>>92
そうだよ
こいつにレス返すと終わりが見えないぞ?っていうタイプ
それを無邪気に触っちゃうのがこのスレだよ
みんなさすがに今回ので学習したと思うけどw
102:デフォルトの名無しさん
17/07/19 09:21:43.24 NslmVuOC.net
>>72
変数を使いたくない ってことです
103:デフォルトの名無しさん
17/07/19 09:28:45.98 rMOwSLhX.net
>>98
例えばどう書きたいの
104:デフォルトの名無しさん
17/07/19 10:08:57.54 iAmsiybP.net
>>91
組み込み用コンパイラとかは拡張構文できれいに書けたりするけどね
105:デフォルトの名無しさん
17/07/19 10:35:07.29 Fe8jikVu.net
プラットフォーム依存のレジスタいじったりする必要があるから
綺麗なCってのは難しい
綺麗なCの定義にもよるけど
まぁ関数化するなどして隠蔽化はできるけど
106:デフォルトの名無しさん
17/07/19 10:41:07.44 4WYjcaP8.net
>>75
誰かが自分には分かりやすく書いた言語が、他人には分かりやすいとは限らない。
で、書ける奴は他人の言語押し付けられるなら自分用言語作っちゃう。
今も増え続けてる。
107:デフォルトの名無しさん
17/07/19 10:50:02.60 4WYjcaP8.net
>>100
組み込みはPICアセンブラで遊んだだけだけど、PC向けよりもハードがまだ完成してないと言うか、SoCでCPU(MPU)とメモリは用意するから後は自分で追加してねって感じだし、返って文法としては単純かもね。
結局CPUとしては計算以外じゃポートやメモリに読み書きするだけだし。
ハード作りながら入出力の関数も自作する感じですかね?
108:デフォルトの名無しさん
17/07/19 11:04:35.78 NslmVuOC.net
>>99
HOGE := hoge piyo fuga
all: $(HOGE)
clean:; rm *.o $(HOGE)
みたいなのをたとえば
all: hoge piyo fuga
clean:; rm *.o ★(all)
みたいにすっきり書きたい
109:デフォルトの名無しさん
17/07/19 11:06:41.55 PmVzrrzS.net
コンパイルするときにmakeとかcmakeとかありますけど他にもあるのかもしれませんけど
今ならどういうのが定番ですか?
110:デフォルトの名無しさん
17/07/19 11:13:41.95 NslmVuOC.net
>>105
makeなんか捨ててninja使おうぜ
111:デフォルトの名無しさん
17/07/19 11:49:17.31 HHR/5Ry0.net
>>104
ターゲットの依存ファイルを再帰的に展開すると言う事になるが、途中で止めたいとかわがまま言いだすだろ .hとか
例えそれが可能になったとしても、依存ファイルは、そのアクションを実行するために必要なので
削除するために作成すると言う極めて頭の悪い状況が発生する
112:デフォルトの名無しさん
17/07/19 12:36:53.34 BDmDUIr4.net
>>104
うーん正直上の方がわかりやすいと思うけどなあ
とりあえず下みたいなことをする方法は知らんわ。力になれなくてすまんな
113:デフォルトの名無しさん
17/07/19 13:37:37.50 NslmVuOC.net
>>107-108
無理なら無理であきらめるぜー! センキュー!
114:デフォルトの名無しさん
17/07/19 21:27:36.88 WSo7MpMs.net
cleanは、固定的に削除したほうがいいよ。でないとその内ゴミが混ざる。
まぁ、無理矢理やるなら
allに含めるターゲットを処理するときに中間リストへもファイル名を追加しといて、xargsに食わせるのが無難かと。
115:デフォルトの名無しさん
17/07/19 23:08:55.17 Cm6fsZ7A.net
時代はRubyのrake
116:デフォルトの名無しさん
17/07/19 23:40:47.89 87ZFTsAE.net
>>86
JavaScriptについては、Webリソース(というか個人ブログが多いが)も間違いが多いから注意した方がいい。
> strict modeの有無の組み合わせ
これが要らん。実際見りゃわかるが、全員 strict mode 使っている。
MDNは準仕様書みたいなものだから、非strict modeについても言及する必要もあるだけ。
> javascriptではできない関数の中身や別ファイル、if文の中とかでもメソッド定義が比較的自然に行える
いや、できるぞ。ただしやる必要もないし、意味もないが。
(strict mode の場合はif文中では禁止)
動的にクラス構成を変える必要があるケースはまずないが、(手抜きパッチを除く)
やる場合はプロパティとして差し込むので、それはただの文だ。どこにでも書ける。
function定義そのものではなく、関数ポインタを差し替える。
というか、ここら辺の流儀は他言語と同じだ。
俺は特に疑問を持ったこともなく、分かりにくいとも思わないが。
117:デフォルトの名無しさん
17/07/19 23:41:35.90 87ZFTsAE.net
> javascriptみたいにifをつけると巻き上げが起こらないみたいにすると
これが違う。(
118:内容自体ではなく、考え方が違う) プログラミングを暗記で済ませようという馬鹿はJavaScript界隈に多いが、 そうとしか捉えられないのなら、向いて無いから止めた方がいい。(君が上達することはない) それは「数学は暗記だ!」と言っているようなものだ。 或いはどうにも高校の物理に全く付いていけなかった奴とか。 あれは今にしたら分かるが、抽象思考が出来ない奴には無理だったということだ。 そしてプログラミングではその抽象思考こそが重要であり、逆に、それ以外は大して必要ない。 順に評価されるべきものは順に評価され、(巻き上げなし)、 そうでないものはC的に静的に評価されるだけ。(巻き上げあり) 俺は疑問を感じたことはない。 「巻上げという仕様ガー」とか言い出すから余計に意味不明になるのであって、 そもそも最初から直感的だ。後方参照できるだけでしかない。 JavaScriptはC(正確にはC++)以上に文法が抽象化されているから、暗記には向いてない。 結果的にC++並みのことがC並みの文法で出来るようになっている。俺はここも気に入っている。 それとは別に、君が「全部上から順に評価してくれなきゃヤダ」ならRubyの仕様をマンセーすればいいが、 JavaScriptの仕様はC等コンパイル言語を使ったことがあるやつにとっては非常に直感的だ。 俺にとってはRubyの仕様はウザいだけだね。
119:デフォルトの名無しさん
17/07/19 23:42:29.67 87ZFTsAE.net
>>88
要するにスクリプト言語はラピッドプロトタイピングには向いているんだよ。
そしてPCの能力が十二分に上がったので、
その遅いコードでも十分実用的だし、問題ないからそのまま使われてる。
俺も、もう低位コードだけCのDLLにして、
中上位コードは全面的にスクリプト言語で行った方がいいと思っている。楽だから。
NumPyはまさにこれでしょ。俺からみてもgoogleの動きは全然不思議じゃない。
ていうか多分、マトモなプログラマならgoogleの動きを不思議に思う奴はいない。
君がそんな言い方をする時点で君は色々分かってないと自白しているようなものなんだが。
> Googleとかパッケージマネージャとかで積極採用されるからにはそれなりの評価点があるはずなんだから
評価点はないね。ビジネス上の観点でしかない。
googleは社内言語を絞ってる。C++/Java/JavaScript/Pythonだ。この中ならPythonだろうさ。
だから、仮にRubyやHaskellがgoogle社内で評価されたとしても、
それらで書かれたツールが出てくることはない。
120:デフォルトの名無しさん
17/07/19 23:43:14.27 87ZFTsAE.net
>>94
> GHC
サンクス、そうであったか。これもサンプルとしてはいいね。
> モナディウス
Haskellってexeかよ!やってみた。グラディウスにしては速すぎる、、、左手が辛い、、、
> Perl6
つかそれってどういうことだ?
構文解釈等に関しては、実は圧倒的に単純に実装できたりするのか?
pandocもそっち系だ。俺には遅延評価とは無関係としか思えないのだが。
121:デフォルトの名無しさん
17/07/19 23:50:34.51 /uBE13O5.net
知識のない奴程語りたがる好例
122:デフォルトの名無しさん
17/07/19 23:51:34.81 b4rxwY3N.net
C始めるためにVS2017インストして苦C見ようとしてるんだけどどこをどうすればソースを書けるのかちんぷんかんぷん
そもそもCの内容をC++で書けるのか怪しい
スレチかもしれないけど助けて詳しい人
123:デフォルトの名無しさん
17/07/19 23:52:22.89 D2iudQ65.net
な、長ぇ…
124:デフォルトの名無しさん
17/07/19 23:55:40.31 /uBE13O5.net
完全な初心者?
125:デフォルトの名無しさん
17/07/20 00:08:04.51 hVyvHmVu.net
ラピッドプロトタイピング用に作られたのがスクリプト言語なんだから向いてて当たり前
ハードではFPGAなんかがASIC前のラピッドプロトタイピング用だね
しかし中上位コードしかかけん奴らがプログラマ気取る風潮はいかがなものかと危惧する
Cでの低位コードもスクリプト言語での中上位コードも書けんとな
126:片山博文MZ ◆T6xkBnTXz7B0
17/07/20 00:09:55.72 m6IHlIP+.net
>>117
127:適当な場所(フォルダ)にプロジェクトファイルを作成します。 プロジェクトにソースファイルを追加します。 ソースファイルにソースを書きます。 ビルドします。 デバッグ実行して、正しく動作するか確認します。 バグがあれば修正します。 リリースビルドして、EXEを作成。 exeを配布します。
128:デフォルトの名無しさん
17/07/20 00:15:44.40 X5om2hjt.net
任意のエディタでソースを書きます。CL.EXEでコンパイルします。以上
129:デフォルトの名無しさん
17/07/20 00:16:25.56 u2xEebDY.net
>>116
にわかなやつほど語りたがる、ってやつだな
何が動機なんか知らんけど
愚にもつかない長文いっぱい書いちゃう子おるよな
これはもう、定期的に出てくるとすら言っていい現象だけど
>>121みたいな簡潔なレスのほうがよっぽど好感度あるわ
130:デフォルトの名無しさん
17/07/20 00:32:04.78 13Lyjczi.net
URLリンク(ideone.com)
URLリンク(codepad.org)
こういうサイト利用して、色々試してみたら?
131:デフォルトの名無しさん
17/07/20 00:32:44.03 AEwXV/7G.net
>>120
上二行は後付。sed->awk->Perl->その他もろもろ、だろ。PLD->FPGAでもあるし。
下二行は時代の要請。
> MITがSICPを教えなくなった理由
> URLリンク(cpplover.blogspot.jp)
俺は中上位コードだけでもいいと思うけど、書き捨てばっかやってるのは駄目だと思う。
こういうことをすると保守ではまるのかーがないと、回避する能力が育たない。
132:デフォルトの名無しさん
17/07/20 00:36:40.77 lc7WOVge.net
>>115
関数型全般に言えるけど、言語やテーブルゲームの問題解かせたりし易い。
遅延評価はwebアプリでHTMLの長さを気にしないで読み込める無限リスト便利って読んだことあるな。
んなのどの言語でもそんな変わらんとは思うが。
どっちかと言うとIO部分分離してるから自然とMVCとかMVVMな設計になるってのがメリットに感じる。
133:デフォルトの名無しさん
17/07/20 01:40:25.59 AEwXV/7G.net
>>126
なるほど言語向きなのは関数型の特性か。
確かにbisonが一体化しているようにも見える。
遅延評価で無限リストがーってのは多分Webライタのデタラメ。
実際、無限リストなんて使おうと思ったことないだろ。
HTMLは多分頭からパースしないと悲惨なことになるだろうし。
(一部曖昧なところがあるらしい)
遅延評価は後払い方式のため、
読み込んだものの、結果的に使わずに捨てたデータが多い場合に負荷が軽くなる。
もちろんオーバーヘッドはあるので、全部使うのなら正格評価の方が軽い。
だから理想的にはどれを使うかきっちり管理して正格評価することだが、
これが面倒な場合は遅延評価にしておけば勝手にそうなる。
ノリとしてはGCと似てる。(管理が面倒なら遅延評価にしとけ)
で、マークアップコンバータとかも、全文書を評価することが分かりきっているのだから、
管理も要らず、普通に考えて正格評価の方が適している。だからあのラインナップは謎だった。
関数型言語の特性だということなら納得だ。
> 自然とMVCとかMVVMな設計になる
これはなあ、、、Cでも苦労するわけでもないので、言語特性ではなく、意識付けの問題かと。
実際にHaskell使おうって奴らはここら辺についても意識高いだろうし、
いい方向に寄与しているとは思うよ。
134:デフォルトの名無しさん
17/07/20 03:16:53.07 X0EJcA/q.net
>>112-115
>全員 strict mode 使っている。
新しいソースはね。破壊的変更だから古いソースはstrictじゃない場合も多い。
>俺にとってはRubyの仕様はウザいだけだね。
俺もメインでやってるのは静的言語だけど、JavaScriptもPythonもRubyも関数に関してはうざいと思うことはないな
単純に慣れの問題でお前のRubyやPythonの経験が不足してるだけだと思う
Pythonやる前はインデントって不便
135:だろうって思ってたけどすぐなれたし、使ったこともない言語を適当にディスるのはよくないぞ >最初から直感的だ、後方参照できるだけでしかない 初心者なら直感の理解でいいかもしれんが、ちゃんと仕様を理解するに越したことはない undefinedが予約語じゃない、typeofの結果が意味不明みたいにjavascriptも含めどの言語にも直感に反する仕様が存在するし、それを利用したライブラリとかのソース読むときにある程度理解してないと困る >俺からみてもgoogleの動きは全然不思議じゃない。 ID:LYlgQVUQとかID:tZS7qvyeとは別の人? 「Pythonは馬鹿用言語」「Pythonなんてキチガイ馬鹿用言語」っていう人にそんならGoogleみたいなところも使ってるよって言っただけなんだが >googleは社内言語を絞ってる。C++/Java/JavaScript/Pythonだ 知識が更新されてないな。現在はC/C++、Java、JavaScript、Python、Go、TypeScriptのはず >評価点はないね。ビジネス上の観点でしかない。 ビジネス上の観点も大事な評価点でしょ
136:デフォルトの名無しさん
17/07/20 03:42:11.85 X0EJcA/q.net
そもそも「文法が抽象化されている」ってどういうことだろう
javascriptはIE6時代から見てるからかもしれんが、文法からライブラリまで欠陥だらけで、現在の具体的な実装こそが正義な言語というイメージなんだけどな
クラスやプロトタイプチェーンの仕組みとか、thisがどこを指すかとか、for inとオブジェクトや配列がらみの仕様とか直感で完全に理解できる人はいないはず
言語仕様に関しては、C言語も//コメントは使うのに関数先頭以外で変数を宣言できないと思い込んでる人とか結構多いんだよなぁ・・・
137:デフォルトの名無しさん
17/07/20 09:24:07.80 VLxfq0H/.net
複合文の中で変数を宣言できるのを知らないやつはたまにいるが
printf("aho");
int boke;
これ知らねえやつはいねえだろ
逆に制限のある環境でこれをやってエラー吐かれるアフォがいるくらいで
138:デフォルトの名無しさん
17/07/20 09:29:55.18 Wske8588.net
ガイジがスクリプト言語に対する感想を述べる場となったC言語スレ
139:デフォルトの名無しさん
17/07/20 11:37:31.64 Gk3qg8E2.net
for( int i=0; i<10; i++) {
print i;
}
で、「i のスコープは for ブロックの中」って言うけど
ブロックって、中括弧の中だよね?
140:デフォルトの名無しさん
17/07/20 11:48:22.63 VLxfq0H/.net
i++ が中括弧の外にあるようだが?
141:デフォルトの名無しさん
17/07/20 12:04:35.30 Gk3qg8E2.net
そうそう。
だから、中括弧の外にもう一つ別のスコープがあるんだね。試してみた。
142:デフォルトの名無しさん
17/07/20 13:59:07.50 /8Z4pO5Y.net
i のスコープより
> print i;
の方が重大な問題だろ
143:デフォルトの名無しさん
17/07/20 14:01:49.38 oqUsFpSj.net
関数呼び出し演算子無しで呼べるとはC言語では無いな
144:デフォルトの名無しさん
17/07/20 14:54:53.75 Gk3qg8E2.net
すまん、最近 Quick BASIC 始めたからつい。
145:デフォルトの名無しさん
17/07/20 15:15:43.25 aeaiTPav.net
もうプチコンで開発するわ!
146:デフォルトの名無しさん
17/07/20 15:47:57.27 VLxfq0H/.net
>>134
ああそうか、i++が中括弧の外にあるのに
ブロックの中という説明はおかしいだろうと
言いたかったのか
あんまり関係ないけどISO/IEC9899:2011 6.8.5 Iteration statements を
読んでいたら、
for (expression opt; expression opt; expression opt) statement
って書いてあってびっくりしてる
改行の位置は単なるtypoとしても、それを修正すると
for (declaration expression opt; expression opt) statement
になる
制御式のセミコロンが1つって、いつそうなったんだ?
147:デフォルトの名無しさん
17/07/20 15:48:59.77 VLxfq0H/.net
訂正
for ( expressionopt ; expressionopt ; expressionopt ) statement for
( declaration expressionopt ; expressionopt ) statement
って書いてあってびっくりしてる
148:デフォルトの名無しさん
17/07/21 10:48:58.02.net
unsigned int を uint32 みたいに書くやつ
あれの標準ヘッダができたの C99 から?
149:片山博文MZ ◆T6xkBnTXz7B0
17/07/21 11:23:14.96.net
uint32_tね。そうだ。
150:デフォルトの名無しさん
17/07/21 23:40:03.14 K6o
151:F7/iC.net
152:デフォルトの名無しさん
17/07/22 13:45:26.72 jxtKz7JV.net
C11とかC99とか似合わせてチェックしてくれるツールってありませんか?
153:デフォルトの名無しさん
17/07/22 14:09:07.67 nEpy0tzd.net
なにを?
154:デフォルトの名無しさん
17/07/22 15:36:12.70 uvo/ftbB.net
>>143
サンキューありがとう
stdint.h かー
C99をうちでも標準にすべきかどうか悩むなー
155:デフォルトの名無しさん
17/07/22 17:15:23.73 4ZNVKbnD.net
お隣はもうC11ですってよ!
うちも11にしましょうよ。ボーナスでたんでしょ。
156:デフォルトの名無しさん
17/07/22 17:42:54.52 TVAxaytW.net
C++を使えないかあるいはあえて使わないポリシーなのでなければ、C++をbetter Cとして使う方が
いろいろ楽だと思うがな。
157:デフォルトの名無しさん
17/07/22 17:56:47.93 uvo/ftbB.net
>>147
そうは言うけどなお前・・・
うちはまだローン(C89必須案件)だって残ってるんだぞ
158:デフォルトの名無しさん
17/07/22 18:58:02.33 YJU7D9tD.net
隣のC99は青くみえる
159:デフォルトの名無しさん
17/07/22 19:03:04.98 yf/DliCJ.net
俺はstdint.h相当のヘッダファイルを自作してるけどな。
C89コンパイラだったら自作をincludeするようにしてる。
160:デフォルトの名無しさん
17/07/22 22:05:24.77 0HjhMGYw.net
>>148
betterCとしてC++使ってたら今度は「今時生ポインタなんてありえない、unique_ptr使え」と圧力がかかって、どこまでC++の機能使うか悩む
161:デフォルトの名無しさん
17/07/22 22:20:17.19 XcmtOt3t.net
ベターCとしての使い方は、C++という名のとおり、設計どおりの使い方だ
基本的にCとの共通部分だけ、C++のみの拡張機能は欲しいところだけつまみ食いは、邪道ではない
unique_ptrも例外ではなく、欲しければ使い、いらなければスルー
それでいい、至極真っ当な使い方だ
162:デフォルトの名無しさん
17/07/22 23:32:49.28 0HjhMGYw.net
いいこと言うなあ
C with lambdaとして使う踏ん切りがついたわ
163:デフォルトの名無しさん
17/07/23 00:22:49.43 yjtelfLq.net
>>154
それならスクリプト言語の方が手っ取り早いと思うがな。
全部shared_ptrやRAIIならほぼGCだろ、とも思うし。
というかC++erの生ポ嫌いは一体なんなんだ?
元々メモリリーク自体はそんなに苦労しないよな?今時ツールで検出できるみたいだし。
Cで何らかのタスク(演算等)をこなす場合、
構造化プログラミングだから同一関数内での確保&解放が多いし。
(というか、そのように書きたければ大概の場合はできる)
164:デフォルトの名無しさん
17/07/23 00:32:19.27 2YxatxBr.net
>>155
そう
作り方が下手なだけで言語やツールのせいする奴多すぎ
技術屋としてのレベル/精度が低いだけ
165:デフォルトの名無しさん
17/07/23 01:06:53.41 yjtelfLq.net
ちょっと補足しておく。
俺が思うに、容量的に問題がないのであれば、
大体の場合はmallocではなくallocaで実装でき、当然、管理する必要もない。
だからCはもうちょっとalloca推奨でもいいとは思うし、
そのためにもうちょっとスタック領域に多めに割り当ててくれとも思う。
(コンパイラがallocaをmalloc+freeに分解し、呼んだ関数の末尾でfreeしてくれてもいい。
そうすれば容量の心配ないallocaが手に入るから。
てかこれやってるコンパイラないんか?誰でも思いつきそうだが)
166:デフォルトの名無しさん
17/07/23 01:43:34.81 Juol04gL.net
んー、イメージ的には、組み込み系が多そうだしcならヒープ使った方がいいきがする。
小メモリで済�
167:゙のはc最大のアドバンテージだと思うんだ。
168:デフォルトの名無しさん
17/07/23 02:13:19.95 QcJiE5IU.net
>>155
なんでC with lambdaならスクリプト言語の方が手っ取り早いのか全くわからん
169:デフォルトの名無しさん
17/07/23 08:51:27.89 bC6CfLCk.net
> 構造化プログラミングだから同一関数内での確保&解放が多いし。
このフワフワした一文だけで、今後こいつからは何の情報も得られないのが分かる
170:デフォルトの名無しさん
17/07/23 11:07:58.09 EA1ZzpWz.net
>>155
生でもきちんと管理していれば問題は起きないが
いちいち気にしなければならないことが多いので
もうずっと付けてた方がいいよね という話ですよ
171:デフォルトの名無しさん
17/07/23 15:05:48.85 Tqr2YDDV.net
>>153
designated initializerが使えないのでワースCだ
172:デフォルトの名無しさん
17/07/23 16:32:54.76 yjtelfLq.net
>>162
これか。
URLリンク(stackoverflow.com)
つか入れない理由ないし、ClangとVSでは使えるとも書いてあるが、
C++仕様自体は無駄に意識高くて無視しているといったところか。
一部C++がCの完全上位互換ではない部分があると聞いたが、これか。
他にあれば、キーワードだけでも教えてくれれば助かる。
173:デフォルトの名無しさん
17/07/23 16:48:41.41 hUTftRXy.net
tentative
restrict
_Imaginal
_Thread_local
_Generic
_Bool
extern const
storage class "auto"
pointer to register
174:デフォルトの名無しさん
17/07/23 17:18:38.88 yjtelfLq.net
>>164
サンクス。感想は以下。
俺には我慢できる範囲だな。
tentative <- 要らん、つか廃止の方がいい
restrict <- ねえのかよ!しかし自動並列化とかしない限り要らん
_Imaginal <- class があるから要らん
_Thread_local <- これはC++にあってもいいと思うが、、、
_Generic <- マクロがらみか?価値は俺にはよく分からん
_Bool <- boolが既に拡張済みだから要らん
extern const <- 個人的にはconst派ではないからいいや
storage class "auto" <- なんだこれ?いわゆる自動変数って全部これだと思うが、、、
pointer to register <- registerそのものが最早要らんし
175:デフォルトの名無しさん
17/07/23 17:56:02.81 Tqr2YDDV.net
>>163
コンパウンドリテラル
(float[2]){1,2}
176:デフォルトの名無しさん
17/07/23 19:12:51.83 yjtelfLq.net
>>166
designated initializerと同じに見えるが違うのか?
前者は初期化、後者はリテラルとして使ったときの呼称か?
URLリンク(seclan.dll.jp)
URLリンク(d.hatena.ne.jp)
177:デフォルトの名無しさん
17/07/23 19:28:51.61 GpgYjQaH.net
全く違う
178:デフォルトの名無しさん
17/07/23 19:30:48.75 hUTftRXy.net
>>165
tentativeがないくせにテンプレート具現化の統合という
同じベクトルでもっと面倒くさいのがあるわけだが
179:デフォルトの名無しさん
17/07/23 19:38:30.48 Tqr2YDDV.net
>>167
ファッションとして「ベターC」と言いたがってた事はよくわかった
180:デフォルトの名無しさん
17/07/23 20:01:31.75 1KmUXPg0.net
「ベターC」を名乗るのになんか条件ってあるのかね?
個人的には、K&Rは時代遅れのC、C89が普通のC、それより改善されているのがベターC、ってな感覚だが。
181:デフォルトの名無しさん
17/07/23 20:09:09.26 yjtelfLq.net
>>171
俺の理解では、C99がC、
それにC++の機能(class等)をつまみ食いした「ほぼCだけど、、、」がbetterC。
182:デフォルトの名無しさん
17/07/23 20:26:36.42 hUTftRXy.net
>>171
条件はない
"Cの後置増分"とは、"最初はC"でよいという意味だ
そこから段階的にソフトランディングで移行できることが
C++の売りなので、気まぐれにつまみ食いすることは
実はC++らしい使い方の1つといういことだ
183:デフォルトの名無しさん
17/07/23 20:35:47.04 GpgYjQaH.net
C99以降の機能を使いだすとC++でビルド通らなくなるし
Cを使わずベターCとしてC++使うなら、C99/C11を知るは必要ないでしょ
Cっぽいものが書ければ十分
184:デフォルトの名無しさん
17/07/23 20:39:42.68 Tqr2YDDV.net
ベターな部分がないのに「ベターC」 w
185:デフォルトの名無しさん
17/07/23 21:05:01.13 1KmUXPg0.net
あぁなるほど、C99が基準だとC++は劣化Cに見えるわけか。
ただ、一般には「ベターC」という言い方がされたのはC++に対してだと思うがなぁ。
186:デフォルトの名無しさん
17/07/23 21:06:32.74 hUTftRXy.net
ヒント: 煽り耐性
187:デフォルトの名無しさん
17/07/23 21:14:20.95 yjtelfLq.net
>>175
よく分からんが君は生C派なのか?
正直俺はbetterC派とC++派しかもう居ない(生C派は絶滅済み)と思っていたのだが、
昨今のC++の暴走を見てると生C派が健在なのも分からんでもない。Linusもそのようだし。
ただ、classとかtemplateとかは「控えめに使っている限りは」便利だと思うぞ。
C++erは無理に活用しようとしておかしなことになっているが。
>>176
俺の理解では、
Cでは機能が足りないが、C++の機能は行き過ぎ(やりすぎ)、と思う人達が、
CとC++のちゃんぽんをbetterCと呼称している。
188:デフォルトの名無しさん
17/07/23 21:17:33.70 fNGuiY3b.net
>>175
関数オブジェクトとラムダ式
189:デフォルトの名無しさん
17/07/23 21:25:32.16 yjtelfLq.net
>>176
あ、もしかしてそれ以前のことか?
それなら、Objective-CとC++の対比で使われ、以下wikiの通りだ。
> Objective-CはCを拡張してオブジェクト指向を可能にしたというよりは、
> Cで書かれたオブジェクト指向システムを制御しやすいようにマクロ的な拡張を施した言語である。
> したがって、「better C」に進んだC++とは異なり、「C & Object System」という考え方であり、
> ある意味2つの言語が混在した状態にある。
> URLリンク(ja.wikipedia.org)
ただし、Objective-Cはかなり前から実質的に死亡していたので、
最近「betterC」って言われているのは「CとC++のちゃんぽん」のはず。
要するに「いいとこ取り」をしようとしているのがbetterC。
C++の流儀で全部書け、というのがC++。
うるせえC++なんて全部ゴミだ、というのがC。
190:デフォルトの名無しさん
17/07/23 21:34:26.02 hUTftRXy.net
>>178
今のC++は、かつてのC++の暴走に対する反省でできているぞ
void func() throw(std::bad_exception); みたいな馬鹿げた話が
void func() noexcept(false); で済むとか
std::bind1stだのstd::bind2ndで3rdや4thがないなんて馬鹿げた話が
std::bindだけで済むだけでなくstd::mem_funとstd::mem_fun_tもクビ
char* port = (char*)0x40044000; みたいな二度手間も
auto port = (char*)0x40044000; で済む
191:デフォルトの名無しさん
17/07/23 22:02:06.01 qzsJDNze.net
C++普及始めはベターCって言うとC++使いこなせなくてC++でもC文法を良く使うって意味だったみたいなんだが、今はオブジェクト指向も浸透して、その長所短所も洗い出されて来たからいいとこ取りって意味って理解。
でも、今も昔も両者が混在してるんだと思う。
192:デフォルトの名無しさん
17/07/23 22:04:03.65 yjtelfLq.net
>>181
上2つはそれでも暴走中だとは思うがな。
GC無いと関数型は辛くね?
例外は俺は積極的には使ってないのでよく分からない。
下1つは、俺はC的記述、
> char* port = (char*)0x40044000;
の方が好きだな。
キャスト無しで書かせてくれとは思うが、型は左辺側に書きたい。
それとは別に、autoの価値も認める。リフレクションとかでマジで死ねる。(VC++/CLI)
だけと他言語と揃えてvarにしろよとは思うよ。なぜauto?
193:デフォルトの名無しさん
17/07/23 23:15:19.12 Tqr2YDDV.net
Cじゃなくて全くの別物を「ベターC」と謀って何をしたいんだ?
194:片山博文MZ ◆T6xkBnTXz7B0
17/07/23 23:29:44.60 Y7iSLLwh.net
>>183
昔、autoというキーワードがあったが、あまり使われなかった。そこで新しいキーワードを作るよりも、
使われていないキーワードを再利用した方がいいと判断された、らしい。
195:デフォルトの名無しさん
17/07/23 23:30:25.51 Tqr2YDDV.net
registerもそのうち使い回される
196:片山博文MZ ◆T6xkBnTXz7B0
17/07/23 23:35:53.82 Y7iSLLwh.net
キーワードが増えると、キーワードと同じ変数名や関数名はコンパイルできなくなるという問題がある。
197:デフォルトの名無しさん
17/07/23 23:53:29.52 hUTftRXy.net
>>183
さあ? 俺はGCがないことにストレスを感じたことがない
あんなもんいらねえ、つーか却って迷惑
機械という奴隷は完全に支配したいんで
198:デフォルトの名無しさん
17/07/23 23:58:37.14 yjtelfLq.net
>>185,187
> 記憶クラス指定子としての auto の使用が非常に少ないとの調査結果などから、当該用途は直ちに廃止となった。
> URLリンク(cpprefjp.github.io)
> storage class "auto" (>>164)
K&Rも確認して、なるほど状況は分かった。autoはまあ許せる範囲か。
しかしこれ、autoとregisterがあったということは、
元々のコンセプトのデフォはもっと遅い外部メモリかよ。(コアメモリとか?)
199:デフォルトの名無しさん
17/07/24 00:18:45.69 gGHXalJd.net
>>189
autoは記憶クラスのデフォルト
省略可能で、むしろつける理由がなかったのでだれもつかわなかった
registerは変数をレジスタに置いたほうがいいというコンパイラへのヒント
しかし、コンパイラの改良が進みコンパイラに任せたほうが良くなった
人間による指定は不要なばかりか、むしろ最適化の邪魔になるのでコンパイラは無視するようになった
200:デフォルトの名無しさん
17/07/24 00:28:47.24 gGHXalJd.net
betterCは明確な定義はないだろうけど、
URLリンク(www.kijineko.co.jp)
で言われてるのが大体の認識なんじゃない?
(ライブラリの内部だけとかではなく)クラスとかを使うならそれはもうC++でしょ
メモリ管理とかvtableの仕様とかもしっかり確認する必要があるので適当にクラスを使うのはおすすめしない
201:デフォルトの名無しさん
17/07/24 01:07:47.78 8vEBfSZH.net
>>188
君はおそらくbetterC派だよな?(ただしほぼC++の)
ちなみにどういう組み合わせで使ってる?
GC言語と非GC言語ではそもそも組み方が違う。これは全く>>156の指摘どおりで、
しかもその後3匹馬鹿が現れて(159-161)彼の言い分が証明されてしまったw
さて関数型だが、どれくらい使っている?
俺はマトモには関数型をやってはいないが、それでも分かる範囲で言うと、
関数型言語はGC+型なし(型推論)が多い。
これに対しC++で関数型的アプローチを取ると、
型が爆発してtemplateで書くにしても大変でウザい。マジでvarくれよ、になる。
そして決定的に異なるのは資源のライフタイム管理で、GC言語はこれをやらない。
C++は一応自分でやることになっているのだが、
上記の通り、他関数型言語はGC前提なので組み方が異なっており、本来は参考にならない。
そしてC++のラムダはスタック方式に強引に載せている、なんとも中途半端なものだ。
これは全く他関数型言語のスタイルにはフィットしない。
だからC++で関数型アプローチをする現実路線としては、
C++をGC言語側に寄せる手法、つまり、
・ラムダは完全に関数オブジェクト扱いで、クロージャ変数は主にヒープ上
・スマポ、RAII徹底
という、いわゆる今のC++erが目指しているものに近くないと辛いはず。
ほぼC++寄りのbetterCというべきか。
君のスタイルはこれで合ってるか?合ってたらGCイラネってのも納得だ。
合ってなければ、どの組み合わせで使っているのか教えて欲しい。参考にする。
202:デフォルトの名無しさん
17/07/24 01:33:19.39 8vEBfSZH.net
>>190
autoがデフォか。なるほど了解だ。
>>191
> クラスとかを使うならそれはもうC++でしょ
> メモリ管理とかvtableの仕様とかもしっかり確認する必要があるので
ここはちょっと微妙。
まずvtableはプログラミングモデルとしては見えないので知っておく必然性はない。
(もちろん知っておいたほうがいい)
次にメモリ管理だが、C++に関してはclassとstructがほぼ同一なので、
C的に自前classをnewして自分でdeleteするという使い方も出来る。(A)
そうではなくて、デストラクタとかやりだすとややこしくなってくるが、(B)
最終的なC++erの目標、コンテナ等にも問題なく載るように、となると、
ムーブコンストラクタ等のC++的お作法を全て実装しておかないといけない。(C)
俺は(A)ならC、(B)ならbetterC、(C)ならC++と呼ぶね。
多分CとC++のコンセプトの根本的な違いは、
Cは厳密に「書いてないことはやらない」なのに対し、
C++は「出来る限り全自動を目指す」だと思う。
だから、「どこまで自動化しようとしているか」で測ればよいと思う。
203:デフォルトの名無しさん
17/07/24 02:16:26.89 gGHXalJd.net
>>193
うーん、その定義のbetterCは誰向けなんだ
初心者はC++の仕様(fwriteをvtableのあるクラスに使っちゃったり、newしたのをfreeしたりみたいな)にはまるだろうし
中級者はどこまでがbetterCなのかで混乱しそう(参照は?とかスマートポインタは?とかstringは?とか)
上級者はbetterにすることなく快適にCかC++で満足してそう
クラスとかデストラクタだけ使うみたいな方針で書かれてるソフトって何があるの?
204:デフォルトの名無しさん
17/07/24 02:58:28.33 xutwb2BM.net
ベターperlのruby使おうぜとか言いだしそうだな アホか
205:デフォルトの名無しさん
17/07/24 02:59:30.11 RBhDn3mI.net
基本Cで行きたいけど、クロージャが作れないことだけはどうしようもないのでそこだけC++って考えるんだけど、上級C使いはクロージャいらんのだろうか?
206:デフォルトの名無しさん
17/07/24 04:31:31.88 rJB0TWtS.net
いらない
207:デフォルトの名無しさん
17/07/24 05:34:01.73 L3SJIM9i.net
>>192
あ? 俺はバリバリC++使いだよ
ベターCをやっている認識は全くない
GCの話に型推論が出てくるのは悪いが意味わからん
varが欲しいんならtemplateは関係ない(脇役にすぎない)し
typeidやvoid*で特注品を作ればいい(COMとかみたいに)
ラムダ式もGCには関係ない(脇役にすぎない)し
ステートレスラムダみたいにスタックを使わないのまである
クロージャ変数はヒープ上って何だ?
auto closure{[&]{}};
auto heap{std::make_shared<decltype(closure)>()};
みたいなことすんのか?
ちょっと変態すぎて俺はついていけないなあ
俺はスマポ使うが生ポも普通に使う
状況で使い分けだ
RAIIつまりunwindingはGCとは全く無関係
RAIIだとかpImplだとかは一応知ってるが
そういのの原理主義にとらわれて
自分の頭で考えるのをやめたらいかんと思っている
208:デフォルトの名無しさん
17/07/24 07:34:15.05 UuUAOyUA.net
RAII は便利なんだがなぁ‥
209:デフォルトの名無しさん
17/07/24 10:04:09.53 UK7ErBJ5.net
>>189
URLリンク(zdnet2.cbsistatic.com)
水銀メモリ程度だろ
210:デフォルトの名無しさん
17/07/24 11:30:39.90 xutwb2BM.net
>>189
今だってレジスタに比べればメモリは十分に遅い
キャッシュや最適化技術の進化で通常の利用では考慮する必要性が薄いだけ
211:デフォルトの名無しさん
17/07/24 20:11:23.35 Gl5wYMgk.net
>>200
うわかっけぇ~~~~!!
212:デフォルトの名無しさん
17/07/24 23:14:38.57 8vEBfSZH.net
>>194
俺的には「C++へのかぶれ具合」でC/betterC/C++を判断しようとしてる。
もちろんclassだけではなく、他の機能でも同様に判断して、
どれが一番近いか(どう表現すると一番誤解が少ないか)という話だ。
classはC->C++時におそらく最初に使用する機能であり、
classを使った時点でC++ならbetterCってほぼなくなるよ。
文法でしか判断出来ない馬鹿も最近は多いけど、本質は組み方でしょ。
> クラスとかデストラクタだけ使うみたいな方針で書かれてるソフトって何があるの?
知らんよ。
では逆に聞くが、作者やその他大勢がbetterCだと認識している有名OSSってあるのか?
あるのなら、みんなでそれを見に行けば終わる話だ。
なお俺はこれも知らんよ。
V8のコードがC++流じゃないって言っている奴はいるが、俺は詳細確認してないし。
URLリンク(steps.dodgson.org)
213:デフォルトの名無しさん
17/07/24 23:15:12.97 8vEBfSZH.net
>>198
全面マニュアル派か。まあそういう使い方も出来るわな。
俺は嫌いではないよ。
というかC派からは割と賛同されるだろうね。C++派からは異端視されるだろうが。
> クロージャ変数はヒープ上って何だ?
ステートレスとか、キャプチャがなければどうでもいいし、
或いは糖衣とか、ローカル関数っぽく「その場で」使うのなら全く問題ないが、
一般の関数型と同様に可搬的に使おうとすると、生存期間はスタックとは独立にする必要があり、
スタック上の変数を参照キャプチャするのはまずい。
結果、クロージャ内変数の実体はスタック上ではなくヒープに置かれることになる。
これをそう表現した。関数オブジェクトは常にこうだろ。
> RAIIつまりunwindingはGCとは全く無関係
ユーザ側には無関係だが、システム側は密接な関係がある。
GCを効率化する場合、参照カウントというのは一つの代表的手段で、
この場合、ランタイム上で同じことをやるからだ。
だから「全面RAII+shared_ptr」ってのはよく出来たGCと実行効率は同じになる。
だったら最初からGC言語使えよC++erはアホなのか?ってのが俺の感覚だ。
効率ガーとか言いながら完全な二度手間してるのはテメーらだよ、ってこと。
ただし君はこれには該当しない。生ポも普通に使う派だからだ。
まあここら辺の「どうとでも書ける」という懐の広さもC++の魅力ではあるのだろうけども。
本来は君のような全面マニュアル派が正統C++派でもおかしくないんだが。
そういうコンセプトの言語ではあるから。
ただ最近おかしくなっている(気がする)のはやっぱり意識高い系の暴走なのかな?
214:デフォルトの名無しさん
17/07/24 23:54:33.43 gGHXalJd.net
>>203
betterCの定義をしてる機関があるわけじゃないから人それぞれの定義で良いとは思う
俺の認識だとbetterCはC言語をC++モードでコンパイルする程度でもbetterCだと思ってる
#include <stdio.h>
int main(void){
int a = 1000000;
char *b = a;
}
Cだと(昔の寡黙なコンパイラは)そのまま通過。 C++だとエラーで停止。
今は警告出してくれるからこういう意味で使う理由はなくなったんだけどね
(ちなみに、VSで適当にプロジェクト作ると.cppファイルができてC++モードでコンパイルされる)
>classを使った時点でC++ならbetterCってほぼなくなるよ。
betterCってどういう意味合いにせよ現代だと初心者や趣味用で、もうほぼ存在しないってイメージだな
215:デフォルトの名無しさん
17/07/25 00:58:02.32 4zQ1WqHr.net
void sendMessage(const char *message) {
char c;
for (const char * p = message ; c = *p; p++)
SPI.transfer(c);
}
このようなメソッドを実行する場合、他の単語のアドレスと繋がってバグが出る恐れはありますか?
--例--
const char *cd = "CD";
sendMessage("pen");
アドレス 文字
1000000 p
1000001 e
1000002 n
1000003 C
1000004 D
216:デフォルトの名無しさん
17/07/25 06:46:20.75 Ayn2XuQ7.net
>>206
普通こうなるやろ
アドレス 文字
1000000 p
1000001 e
1000002 n
1000003 \0
1000004 C
1000005 D
1000006 \0
217:デフォルトの名無しさん
17/07/25 07:58:05.16 HU3ZW3Qs.net
>>204
全面マニュアル派って何だ?
> スタック上の変数を参照キャプチャするのはまずい
え? え??
自動記憶域期間の変数以外の何をキャプチャするんだ?
クロージャ内変数がヒープ?? いったい何を言っている?
struct closure{
int& reference_to_capture;
closure(int* capture) : reference_to_capture(*capture) { }
void operator()() {
int internal_variable_of_closure;
}
};
こうなってるだけだぜ? どこにヒープが出てくるんだ?
218:デフォルトの名無しさん
17/07/25 07:58:22.10 HU3ZW3Qs.net
>>204
> システム側は密接な関係がある。
関係ねえって
some_class obj1;
jmp_buf jb1;
if(setjmp(jb1) == 0) {
obj1.construct(jb1);
some_class obj2;
jmp_buf jb2;
if(setjmp(jb2) == 0) {
obj2.construct(jb2);
obj2.destruct();
}
obj1.destruct();
}
こうなってるだけだぜ? どこにヒープが出てくるんだ?
> 最近おかしくなっている
C++11以後は正気に戻る努力をしてるぞ
219:デフォルトの名無しさん
17/07/25 08:31:48.45 M07WjxQ9.net
知ったかクンの自己弁護ショーがはじまるよ
220:デフォルトの名無しさん
17/07/25 16:02:02.91 fB9o/YjK.net
全面マニュアル派って何だろう。
悪魔的<>全面マニュアル派 みたいなニュアンスなんだろうか。
あんまり聞いたことない言葉だな
221:デフォルトの名無しさん
17/07/25 17:10:25.77 AkzbrYPu.net
<> ダイヤモンド演算子が出たぞ
222:デフォルトの名無しさん
17/07/25 17:24:31.31 HU3ZW3Qs.net
<>を何と読むかで、C++寄りかBASIC寄りかわかるな
223:デフォルトの名無しさん
17/07/25 20:09:07.38 MNEF+D/W.net
残念、perl でした!
224:デフォルトの名無しさん
17/07/25 21:09:32.97 4zQ1WqHr.net
>>207
回答ありがとうございます
そのような仕組みになっているとは知りませんでした!
詳しく調べてみようと思います
225:デフォルトの名無しさん
17/07/26 15:57:11.34 rrdsxIH3.net
age
226:デフォルトの名無しさん
17/07/27 03:13:21.18 2TFMLUhu.net
>>206
ない。ダブルクォーテーションで括った場合は最後に \0 入るから。
227:片山博文MZ ◆T6xkBnTXz7B0
17/07/27 03:15:50.47 vaTNWP9F.net
>>217
char s[3] = "123";
のときは'\0'が入らない。
228:デフォルトの名無しさん
17/07/27 04:24:15.48 LmGEOgfS.net
領域破壊で配列の直後のエリアに入ることは入る
229:デフォルトの名無しさん
17/07/27 07:29:22.91 P1js1uXh.net
>>219
宣言時の初期化では入らんよ
230:デフォルトの名無しさん
17/07/27 13:22:08.96 HCdXe105.net
>>219
実名晒せよ、その下痢糞コンパイラ
231:デフォルトの名無しさん
17/07/27 18:39:00.21 ZSUs8tWw.net
素朴な質問で悪いが、C言語ってなんで多くが挫折すんの? JavaやC#なら、派遣でも生き延びていくのに・・・
232:片山博文MZ ◆T6xkBnTXz7B0
17/07/27 19:09:17.24 LWV2Yf86.net
Cは、ポインターとかマクロとか落とし穴が多いんだよね。文字列を扱うのも難しいし。しかもセキュリティ上の欠陥がある。
233:デフォルトの名無しさん
17/07/27 19:15:04.97 F0lzbPxl.net
Cにセキュリティ上の欠陥?
使い方の問題でしょ?
234:デフォルトの名無しさん
17/07/27 19:16:27.05 F0lzbPxl.net
大昔に出来た低級言語なんだから、
多少の事は我慢
235:デフォルトの名無しさん
17/07/27 19:17:38.76 /VCkXAgy.net
Cは環境依存が激しくて、何やるにもめんどくさいからだと思うな。
コピペプログラマが生きていけない。
236:デフォルトの名無しさん
17/07/27 19:24:01.58 pZs9Jdf1.net
ポインタとかもだけど、リストの使い方は知ってても作り方知らない子とか多そうだぬ。
237:デフォルトの名無しさん
17/07/27 19:25:18.20 F0lzbPxl.net
何のリスト?
初期化リスト?
238:片山博文MZ ◆T6xkBnTXz7B0
17/07/27 19:26:56.69 LWV2Yf86.net
連結リストだろ、JK。
239:デフォルトの名無しさん
17/07/27 19:41:55.89 F26VGNcc.net
いや連結リストの作り方知らない子はレアだから違うだろJK
240:デフォルトの名無しさん
17/07/27 19:49:40.05 pZs9Jdf1.net
ごめん。
ただの偏見。
JavaやC#はListクラスで連結リスト使えるから、作り方知らない若者多そうって思ってた。
そうかレアか。
安心した。
241:デフォルトの名無しさん
17/07/27 19:50:41.52 tCxrViSf.net
使い方
って書いてあるから
Cの機能にあるリストだと思ったのだが
242:デフォルトの名無しさん
17/07/27 19:52:12.25 tCxrViSf.net
>>227が悪い
243:デフォルトの名無しさん
17/07/27 19:55:40.06 pZs9Jdf1.net
>>232
Cにリストって有ったっけ?
ANSI C止まりだから、最近のは入ってるのかな。
>>233
ホントごめん。
244:デフォルトの名無しさん
17/07/27 19:59:03.32 tCxrViSf.net
だから
初期化リスト?
って書いたんだけど
245:デフォルトの名無しさん
17/07/27 20:11:05.11 pZs9Jdf1.net
初期化リストってなんだろ。。。
あれかな。
int a[] = {1,2,3};
みたいな奴か?
あんなん、数が100とか200になったらループで初期化とかになるから違うかな。
JavaやC#もその辺は変わらなかった気もするけど。
まあいいや。
迷惑かけたみたいだし、ROMるわ。
246:デフォルトの名無しさん
17/07/27 20:28:21.83 DDfF3pSC.net
>>222
C言語は同じことをするのにもいろんな書き方ができる。無駄に難しくも書ける。
247:デフォルトの名無しさん
17/07/27 21:58:49.46 HCdXe105.net
セキュリティ上の欠陥がある。
セキュリティ上の欠陥がある。
セキュリティ上の欠陥がある。
248:デフォルトの名無しさん
17/07/27 22:01:29.56 DDfF3pSC.net
>>238
株式会社メビウス(mob)
スレリンク(infosys板)
249:デフォルトの名無しさん
17/07/27 22:02:42.86 DDfF3pSC.net
>>238
それ、欠陥じゃなくてそこまで理解して使用するものだから。本気で言ってんの?
250:デフォルトの名無しさん
17/07/27 22:09:44.77 HCdXe105.net
リーナス君ならどんな暴言吐いてくだろうかね
251:デフォルトの名無しさん
17/07/27 22:10:30.95 P8zzUyc0.net
リストの「作り方」って書いてあるのに初期化リストを持ってくる奴ってマジで近くにいてほしくないわ
252:デフォルトの名無しさん
17/07/27 22:20:24.47 KBJFSsyK.net
>>241
リーナスくんがメビウスに暴言?
253:片山博文MZ ◆T6xkBnTXz7B0
17/07/27 22:22:40.74 LWV2Yf86.net
拳銃は危ないよなあ。原子炉の制御にC言語を使われたら、それは拳銃のように危ない。
Cを安全に使うには、安全装置とか哲学とか人工知能みたいなものが必要になる。
さもないとどこかの国みたいにハッキングされるだろう。
254:デフォルトの名無しさん
17/07/27 22:31:06.10 KBJFSsyK.net
>>244
原子炉の制御にC使ってるんじゃない?
むしろ、C以外の方が危ない気が。
255:デフォルトの名無しさん
17/07/27 22:34:40.88 pZs9Jdf1.net
>>238
今時の言語の例外処理の相当する部分も自分で書くからねぇ。
安全じゃないと言えばそうだし、元々プロ向け言語って言われてたし。
そこに憧れて火傷する人は昔から多かった。
(自分含む)
256:デフォルトの名無しさん
17/07/27 22:40:41.83 tCxrViSf.net
>>242
日本語読めないアホ
257:片山博文MZ ◆T6xkBnTXz7B0
17/07/27 22:41:49.10 LWV2Yf86.net
あ、「C言語にセキュリティ上の欠陥がある」は、国家機密だからな。絶対に他のヤツに言うなよ。
258:デフォルトの名無しさん
17/07/27 22:42:44.02 tCxrViSf.net
ツマンネ
259:デフォルトの名無しさん
17/07/27 22:43:40.04 HCdXe105.net
何がどう危ないのかわかってないやつが、ふわっと危機感もってるだけだろ
↓これと同じこと
URLリンク(zip.2chan.net)
260:デフォルトの名無しさん
17/07/27 22:52:42.24 9W3wkZQm.net
>>222
JavaやC#の方が簡単だから。
というか常識的に考えて分かるだろ。
世界は一旦Cで統一された。
その後出てきた言語はCの駄目なところを改善している。
それだけ。
261:片山博文MZ ◆T6xkBnTXz7B0
17/07/27 22:56:04.01 LWV2Yf86.net
ダンディ坂野は危険。sprintfの代わりにsnprintf使え。セキュアバージョン(_s)を使え。とか色々あるよな。
262:デフォルトの名無しさん
17/07/27 23:06:09.60 wZCn8yX+.net
(σ・∀・)σゲッツ!!
263:片山博文MZ ◆T6xkBnTXz7B0
17/07/27 23:13:00.42 LWV2Yf86.net
URLリンク(www.ipa.go.jp)
264:片山博文MZ ◆T6xkBnTXz7B0
17/07/27 23:41:43.77 LWV2Yf86.net
標準文字列関数では安全に書けない、安全に書ける人がほとんど居ない。これ、完全にワナですから。
265:デフォルトの名無しさん
17/07/27 23:57:39.95 jhYwQkxC.net
バッファのサイズに収まるように普通書くだろ
そう書けない奴が悪い
266:デフォルトの名無しさん
17/07/28 00:08:15.50 YMdBIxtz.net
>>256
それはその通りだけど、個人が責任を取れる問題じゃないし。
267:デフォルトの名無しさん
2
268:017/07/28(金) 00:14:30.22 ID:QdICXo3Y.net
269:片山博文MZ ◆T6xkBnTXz7B0
17/07/28 00:19:41.65 N/JNnipJ.net
文字列の連結だって安全にやろうとすれば、長さがわからない文字列にstrcatなんて使えないじゃん。
270:デフォルトの名無しさん
17/07/28 00:33:30.49 QdICXo3Y.net
てきとーに char s[1000]; とかやってどんどん strcat()
そして死亡
271:デフォルトの名無しさん
17/07/28 00:47:30.46 KKFlk4xh.net
Cでは適当な奴は死にます
272:デフォルトの名無しさん
17/07/28 02:06:17.70 zRJpQFXf.net
1ビットの変数同士を比較する場合
& ビット演算子
&& 論理演算子
どっち使った方がいいの?
---例---
input mem_ack, cpu_ack
wire mem_ack, cpu_ack
:
:
if (~(mem_ack & cpu_ack))
state <= 2
--------
273:デフォルトの名無しさん
17/07/28 02:08:50.20 uZDKFvFZ.net
>>261
逝きろ
274:デフォルトの名無しさん
17/07/28 06:32:14.27 X5sNiV59.net
>>257
版権が会社にあるコードなら
もちろん会社の責任でテストするが
だから何?
275:デフォルトの名無しさん
17/07/28 06:51:58.94 jwLN5n78.net
>>247
ブーメラン過ぎる w
初期化リストの「作り方」の説明してみな
276:デフォルトの名無しさん
17/07/28 10:25:49.30 X5sNiV59.net
おいVerilog使い、なぜここに来た?
277:デフォルトの名無しさん
17/07/28 10:43:31.58 KAkdfNJb.net
Cスレでは初期化リストは「書く」とか「記述」するものであって「作る」ものじゃ無いな
ツールやマクロで生成したり作ったりする事はあるが、そう言うまれな場合は「マクロで作る」と書くだろう
278:デフォルトの名無しさん
17/07/28 10:54:04.18 g6yGf319.net
>>262>>266
ホントだw
よく見たらC言語じゃなくてVerilogだなwww
279:デフォルトの名無しさん
17/07/28 11:13:16.53 WViVOgsq.net
>>267
じゃあ違うとすると、
C言語のリストって何だ?
って話
280:デフォルトの名無しさん
17/07/28 12:35:43.09 WvgdGCet.net
>>269
だから、データ構造としてのリスト構造しかないでしょって話では?
以下ネバーエンディングストーリー
281:デフォルトの名無しさん
17/07/28 12:42:15.76 WViVOgsq.net
C言語と関係ない
282:デフォルトの名無しさん
17/07/28 13:28:06.90 KAkdfNJb.net
文法上でリストと呼ばれているものは初期化リストの�
283:シにもたくさんあるぞ 一々あげないが、パラメータリストとか
284:デフォルトの名無しさん
17/07/28 15:09:08.59 1Qvc81q6.net
va_listなら頑張れば作れる
285:デフォルトの名無しさん
17/07/28 16:20:09.34 WViVOgsq.net
>>272
で?
286:デフォルトの名無しさん
17/07/28 16:32:13.65 KAkdfNJb.net
ID:tCxrViSfが救いようの無いバカって事だよ
287:デフォルトの名無しさん
17/07/28 18:33:35.00 2hIYBPjn.net
>>269
>>231
288:デフォルトの名無しさん
17/07/28 18:49:21.90 XBSdfIgC.net
連結リストを一から作れるってそんなにいないんじゃないかな
289:デフォルトの名無しさん
17/07/28 18:55:04.96 mbT3OJMo.net
1からの定義というか
0からではないんだよね?というか
まぁそのへんフワフワだけど
学校でプログラミング習ってるやつらは
一回はそれ「作らされてるから」
今でも作れって言われたら作れると思う
290:デフォルトの名無しさん
17/07/28 19:06:21.61 mbT3OJMo.net
あ、今の子はPascalとかCとか習わないのかな…
291:デフォルトの名無しさん
17/07/28 19:09:55.81 qWRZaL/E.net
>>272
で、それらの「作り方」について説明してくれるかな w
292:デフォルトの名無しさん
17/07/28 19:14:48.96 0EVBlpnp.net
脱初心者の登竜門の定番だね
自己参照構造体とポインタを理解していればそれほど難しくはない
293:デフォルトの名無しさん
17/07/28 19:17:50.96 LlfbS2K5.net
えちょっと待ってジェネリックなリストとかじゃなくて、doubleのリストとか、なんか自分で決めた型のリストとかだよね?
初心者向けのCの本で書いた記憶があるんだけど、最近は載ってないの?
294:デフォルトの名無しさん
17/07/28 19:21:50.85 /bI4c4xS.net
苦CとやさしいCには載ってなかったな。
自分もCのアルゴリズム本でリストは覚えたし。
295:デフォルトの名無しさん
17/07/28 19:32:08.21 WViVOgsq.net
ジェネリックなリストとdoubleのリストって
ほとんど差が無いような
296:デフォルトの名無しさん
17/07/28 20:00:04.70 xox6mhpi.net
>>279
やらないよ
297:デフォルトの名無しさん
17/07/28 20:04:12.64 qWRZaL/E.net
>>277
struct List_t {
struct List_t *Previous;
struct List_t *Next;
double Data;
};
のDataの型変えるだけだし
まあいろんな型が必要だとテンプレートが欲しくなるけどマクロでもそこそこ行けるしね
298:デフォルトの名無しさん
17/07/28 20:06:39.62 +MWeEFjB.net
初心者に双方向はまずいですよ。
299:デフォルトの名無しさん
17/07/28 20:06:46.98 SfCHZxYK.net
そこはテンプレートが遅くなる要因だから、性格の違いって事で。
300:デフォルトの名無しさん
17/07/28 20:12:26.13 xox6mhpi.net
>>286
普通,実用に供するのならば,void *Data だね
301:デフォルトの名無しさん
17/07/28 20:21:38.71 SfCHZxYK.net
型検査引っ掛からなくなるんだから、実用なら必要な型でリスト作らんと怖いだろ。
元々かっちり作る用途向けで、そう言うのはどうしてもって時だけ。
302:デフォルトの名無しさん
17/07/28 20:24:27.39 WViVOgsq.net
>>287
片方向でも双方向でも大して変わらないと思うが
303:デフォルトの名無しさん
17/07/28 20:33:05.95 WViVOgsq.net
いずれにしろリストなんて簡単
setになると途端にレベルが上がる
それこそ、
使えても作れない人は多い
304:デフォルトの名無しさん
17/07/28 20:50:39.02 KAkdfNJb.net
>>280
バーカ、それらは「記述」するもので、「作る」ものじゃねーと言ってるだろ
わかんねーのか死ねバカ
305:デフォルトの名無しさん
17/07/28 21:02:23.86 wndodTEE.net
>>289
何でそんな面倒なことをするんだ?
306:デフォルトの名無しさん
17/07/28 21:04:55.04 wndodTEE.net
だからその他のリストをわざわざあげる>>272がバカって話なんだが w
307:デフォルトの名無しさん
17/07/28 21:05:03.15 Mk6h7bQQ.net
つかリストもSetもCでは大して使わないだろ。
308:デフォルトの名無しさん
17/07/28 21:12:41.92 SfCHZxYK.net
LL用のライブラリCで書いたりとかで普通に書くだろが。
309:デフォルトの名無しさん
17/07/28 21:21:31.63 Mk6h7bQQ.net
ならLLで全部やれ。
Cでやるのなら主に高速化なのだから、高速に演算できるようにあらかじめLL言語側で並べ替えるだろ。
310:デフォルトの名無しさん
17/07/28 21:26:15.12 SfCHZxYK.net
リストで並べ替え?
そもそも
311:、その並べ替えも遅いからCで。。。 どこから突っ込んで良いのよ。。。
312:デフォルトの名無しさん
17/07/28 21:27:04.09 wtp1eGJk.net
LLって初耳だわ。
313:デフォルトの名無しさん
17/07/28 21:32:03.07 SfCHZxYK.net
LightwaitLanguageの略で、PythonとかRubyとかの総称。
趣味グラマ含めて、LL知らない奴に初めて会ったわ。
314:デフォルトの名無しさん
17/07/28 21:35:30.75 wtp1eGJk.net
つまりCはHLなわけだな。Heavyな時代になったな。
315:デフォルトの名無しさん
17/07/28 21:43:29.87 0EVBlpnp.net
データ間の関係が直線構造のリストはこれといった使いどころを見つけるのが難しいのはまあ分かる
階層構造のバイナリツリーや網目構造のグラフにまで拡張するといろいろ応用範囲が広がる
316:デフォルトの名無しさん
17/07/28 22:00:00.22 wndodTEE.net
>>298
バカとしか言いようがない w
317:デフォルトの名無しさん
17/07/28 22:02:34.71 wndodTEE.net
>>301
weight な
318:デフォルトの名無しさん
17/07/28 22:09:25.05 wtp1eGJk.net
おれの感覚がズレてるのかと思ったら、英語のwikipはそのままの意味だな。
LL言ってのは日本だけだという。こんなのバズワードでいいよ。
> A lightweight programming language is one that is designed to have very small memory footprint,
> is easy to implement (important when porting a language), and/or has minimalist syntax and features.
319:デフォルトの名無しさん
17/07/28 22:12:46.77 e9WYMOex.net
俺もLL通じるけどなw
320:デフォルトの名無しさん
17/07/28 22:18:36.85 Mk6h7bQQ.net
>>299
エアプ死ね。
> そもそも、その並べ替えも遅いからCで。。。
LL言語側のリスト等の物理配置は公開されてないんだから、これは無理だろ。
仮に公開するにしても当然アクセス用API関数であって、内部構造は隠蔽されるだろ。