[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 10/25 00:04 / Filesize : 306 KB / Number-of Response : 1016
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C言語なら俺に聞け 140



1 名前:デフォルトの名無しさん [2017/05/11(木) 22:20:03.99 ID:cn414UR90.net]
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
codepad.org/

C11
www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf

C99
www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
kikakurui.com/x3/X3010-2003-01.html

C FAQ 日本語訳
www.kouno.jp/home/c_faq/

JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/


echo.2ch.net/test/read.cgi/tech/1487757355/
www.geocities.jp/c_cpp_cs/about_c/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured

910 名前:デフォルトの名無しさん (ドコグロ MM40-OTuW) mailto:sage [2017/07/16(日) 07:28:16.81 ID:xeCnao79M.net]
>>897
> 問題は3で、C++ならdynamic_castのみとして例外を投げればいいのだが、
> Cの場合これは無理なので、
> ・リンター等でキャスト直前にNULLチェックしているかを検出する
> ・明示的キャストをマクロ等でNULLチェックのインライン関数等に置き換える
> 等の対策が必要にはなるが、
そんなアホな対策は要らんわ
キャストまでしてNULL非許容の変数にNULL入れる奴はわかってやってるんだからそのまま入れてくれればいい
それに起因するエラーはプログラマの責任
C言語ってそう言う言語だろ

911 名前:デフォルトの名無しさん (ワッチョイ ce7f-z+eH) mailto:sage [2017/07/16(日) 07:41:24.58 ID:H6W6/XNn0.net]
>>898
>だから . 演算子を適用した結果がポインタならどうするんだ?

. 演算の対象がポインタかそうでないかで分かれるだけで、演算の結果は
それがポインタならポインタとして扱えばいいだけだろ。何か問題あるのか?

912 名前:デフォルトの名無しさん (ドコグロ MM40-OTuW) mailto:sage [2017/07/16(日) 08:14:36.33 ID:xeCnao79M.net]
>>900
なら>>858のケースで値が欲しいときはどうするんだい?
まあ新しい演算子を追加するのか?

913 名前:デフォルトの名無しさん (ワッチョイ c832-MRQN) mailto:sage [2017/07/16(日) 08:28:51.97 ID:MBQ46mKu0.net]
*sp.aで取れるじゃん

914 名前:デフォルトの名無しさん (ワッチョイ ce7f-z+eH) mailto:sage [2017/07/16(日) 08:32:10.19 ID:H6W6/XNn0.net]
>>858で x に入るのはbへのポインタとしか解釈しようがないと思うが、値とはどれのことを言っている?
bの値の1が欲しいなら普通に x = *sp.a; でいいだろ。

915 名前:デフォルトの名無しさん (ドコグロ MM40-OTuW) mailto:sage [2017/07/16(日) 09:37:42.33 ID:xeCnao79M.net]
>>902-903
要するに構造体へのポインタに対する . 演算子は今の -> 演算子と見なせってことね
>>883みたいな奴がいるから念のために確認しただけ
仕様として矛盾はないと思うけど
struct s sl;
struct s *sp;
x = *sl.a;
x = *sp.a;
と統一的に書けるから便利と思うか
x = *sl.a;
x = *sp->a;
とたいして変わらんと思うかは人それぞれだと思う

916 名前:デフォルトの名無しさん (ワッチョイ ce7f-z+eH) mailto:sage [2017/07/16(日) 09:51:29.40 ID:H6W6/XNn0.net]
要するにも何も、>>889でそう書いているんだが。
で、>>898が「念のために確認しただけ」なわけ?

917 名前:デフォルトの名無しさん (ワッチョイ 4ed7-H2gN) mailto:sage [2017/07/16(日) 09:59:26.34 ID:JuGvxIE40.net]
要するに、(*p).m を p.m と書けるということ
つまりデリファレンスの階層を一個省略しようってことで、
格段便利ってわけでもないし、かえってややこしいかもなw

これ、ポインタが何段になっても p.m って書いて整合性取れるかい?

918 名前:デフォルトの名無しさん (ワッチョイ 0123-z+eH) mailto:sage [2017/07/16(日) 10:06:14.91 ID:AkX0kyqa0.net]
>>902-903
だからエアプなんだって。話の通じなさ具合がおかしいだろ。

>>899もそうだ。
> キャストまでしてNULL非許容の変数にNULL入れる奴はわかってやってるんだからそのまま入れてくれればいい
Cの場合はmallocの失敗がNULLになるんだから、これとかありえないだろ。
Cはnullありき、キャストありきで世界が構築されているから、
ヌルポ対策を静的にやりたいのならキャストも含めないと使い物にならない。
しかしエアプだからこれが分からない。マジでウザいから死ね。

> C言語ってそう言う言語だろ
これも違う。
C言語は静的な対策を拒否してない。動的な対策は全面拒否だが。
つっても通じないとは思うが。

>>904
> struct s sl;
> x = *sl.a;
エアプマジ死ねよ

というか、エアプがここに来る意味が俺には分からないのだが。
こいつらどの種のキチガイなの?



919 名前:デフォルトの名無しさん (ドコグロ MM40-OTuW) mailto:sage [2017/07/16(日) 10:11:57.19 ID:xeCnao79M.net]
>>905
だからアホがいるから蒸し返されないように念のための確認してるんだよ
匿名掲示板だから>>890みたいな奴すらいるんだぞ

920 名前:デフォルトの名無しさん (ドコグロ MM40-OTuW) mailto:sage [2017/07/16(日) 10:12:48.56 ID:xeCnao79M.net]
って書いてるそばから現れたわ w

921 名前:デフォルトの名無しさん (ドコグロ MM40-OTuW) mailto:sage [2017/07/16(日) 10:14:08.60 ID:xeCnao79M.net]
>>906
> これ、ポインタが何段になっても p.m って書いて整合性取れるかい?
それは大丈夫だと思う

922 名前:デフォルトの名無しさん (ワッチョイ 4ed7-H2gN) mailto:sage [2017/07/16(日) 10:21:16.17 ID:JuGvxIE40.net]
>>910
俺はまだそこがちょっとひっかかるんだよな
デリファレンスが一個ずれるだけなら意味ないと思うしね
時間ができたら検証してみるよ

923 名前:デフォルトの名無しさん (ワッチョイ 0123-z+eH) mailto:sage [2017/07/16(日) 10:33:31.23 ID:AkX0kyqa0.net]
>>906
> これ、ポインタが何段になっても p.m って書いて整合性取れるかい?
実体になるまでデリファレンスしろ、というだけだから、出来なくはないと思うが。

> 格段便利ってわけでもないし、かえってややこしいかもなw
まあCがほぼ完成しているからな。導入する価値があるか微妙というのは同意。
> Cが見事にこなしていることは、全く"出来るだけシンプルにせよ、
> しかし、それ以上シンプルにするな"をしていることだ。
> そして、そのことがCを素晴らしいものにしている。言語はパワフルでありながら、ほぼ最小である。
> by Linus Torvalds
> https://srad.jp/~taro-nishino/journal/509450/


俺が思うに、Cに必要なのは階層(≒関数内関数)だよ。一部拡張されているようではあるが。
最近別言語だがCスタイルの記述(グローバル+関数、非オブジェクト指向)を読んだことがあって、
22K行のコードだが初見で簡単に目的のコードを探し当てられて、軽く衝撃だった。
Cが読みにくいのは100-500行のファイルで細切れになっているからであって、
あれ、設計者が分かりやすい順にcatしてくれていれば衝撃的に読みやすいことに気づいた。

924 名前:デフォルトの名無しさん (ワッチョイ 0123-z+eH) mailto:sage [2017/07/16(日) 10:47:18.34 ID:AkX0kyqa0.net]
あと、前方宣言必須というのも糞だ。
というか、今だにあれを放置している理由がよく分からない。

あれが無ければトップダウンで記述できるのでさらさら読める。
あれのおかげで下から構築しないといけないので、(include等つかって擬似的に回避できるが)
詳細まで確認する必要が無いときにも読まなくてもいい関数を読まされる事になる。

元々「世界の全てを把握して、絶対神として振舞え」という言語ではあるから、
「読みたくも無い関数を読まされたくねー」オブジェクト指向感性とは合わないが、
今更全てを把握できるほど世界は小さくないし、その必要が無いことも多い。
色々手抜きできる言語があることを知ってしまってからは、もっと手抜きさせてくれよーとは思う。

925 名前: ◆QZaw55cn4c (ワッチョイ 466d-RG79) mailto:sage [2017/07/16(日) 12:56:07.96 ID:G64lD0g30.net]
>>913
前方参照は確かにどうかと思うが、前方参照の制限が解消されたからといって読みやすさが改善するとは思えないね
現状でも底から読んでいけばいいだけなのではないか?
読みやすさは…識別子を日本語で書くのがよさそうだが

926 名前:デフォルトの名無しさん (ワッチョイ d4db-B6bl) mailto:sage [2017/07/16(日) 18:30:50.90 ID:dVrh8pbL0.net]
typedet struct
{
    void ( *reset_func )( void );
    unsigned long initial_stack;
    void ( *divide_by_zero )( void );
    ・・・
}    intvec_t;

#define INTVEC  ( *( intvec_t* )0 )

927 名前:デフォルトの名無しさん (ワッチョイ f146-I8+U) [2017/07/16(日) 21:14:38.36 ID:TI5o59vg0.net]
> 要するに、(*p).m を p.m と書けるということ

これ、できるできない以前に、初心者にきついな。
ルールを覚えるのは楽だけれど、例外事項が増えてくると、結局暗記になっちゃうからなあ。

928 名前:デフォルトの名無しさん (ワッチョイ 7d33-RIgB) [2017/07/16(日) 21:46:19.69 ID:aJG+vjk10.net]
ts



929 名前:デフォルトの名無しさん (ワッチョイ f2ea-S4qQ) mailto:sage [2017/07/16(日) 23:15:41.79 ID:kT8dsikx0.net]
>>913
プロトタイプ宣言というのがあってだね、それを宣言すればトップダウンで書ける。

930 名前:デフォルトの名無しさん (ワッチョイ 8a1c-UU3S) [2017/07/17(月) 03:39:18.28 ID:woO8V6Ze0.net]
>>918
だよな
トップダウンなだけでなく
関数の一覧ができているという点でも
>>913が書いていそうな糞コードのDBL_MAX倍マシ

931 名前:デフォルトの名無しさん (ワッチョイ df23-S4qQ) mailto:sage [2017/07/17(月) 05:22:39.76 ID:6JtF0HSC0.net]
>>918
>>913はそれを知らないで書いてたのか?とするとかなりの初心者ということになるが。

932 名前:デフォルトの名無しさん (ワッチョイ df23-S4qQ) mailto:sage [2017/07/17(月) 05:32:30.17 ID:6JtF0HSC0.net]
まあしかし俺は同じファイル内にあるにも関わらずプロトタイプ宣言入れないと
わかってくれないのが嫌で使われる個所よりも上に書いちゃうけどな。
同じファイル内なんだからわかって欲しいものではある。

そういや PASCAL なんかも前方参照しかなかったような気がするな。
あの当時の言語はこういうの当たり前だったのかな。
PASCALなんかだとわざわざそういう思想で作られたって感じもするが。
Cだと手抜いただけのように見える。w

933 名前:デフォルトの名無しさん (ワッチョイ 8a1c-UU3S) [2017/07/17(月) 06:51:56.93 ID:woO8V6Ze0.net]
うん、Cのバヤイは確信的な手抜きだな

934 名前:デフォルトの名無しさん (ワッチョイ 706f-qBah) mailto:sage [2017/07/17(月) 07:49:13.30 ID:Dn7+fEGp0.net]
ほー PASCALが前方参照しかないとか初めて聞いたわ

ID:kT8dsikx0とID:6JtF0HSC0の次の活躍に期待だな

935 名前:デフォルトの名無しさん (ワッチョイ a76f-xIn+) mailto:sage [2017/07/17(月) 07:57:41.59 ID:HedtDN7o0.net]
何時、前後を覚えるのかな?

936 名前:デフォルトの名無しさん (ワッチョイ 466d-N1Eg) mailto:sage [2017/07/17(月) 08:01:01.05 ID:n9t4u9yj0.net]
>>921
Pascal は LL(1)言語としてつくってあり、ワンパスでパースできる、その意地があるんだね

937 名前:デフォルトの名無しさん (ワッチョイ 4ed7-H2gN) mailto:sage [2017/07/17(月) 08:11:52.63 ID:PKmAGp8M0.net]
Cもワンパスのため前方宣言必須ということのようだが、
一回舐めて拾うだけでいいんだし、今時こだわる必要も無いだろう
ヘッダに出した公開インターフェースは先、モジュール内プライベートはその下がわかりやすいよな

938 名前:デフォルトの名無しさん (ワッチョイ 466d-N1Eg) mailto:sage [2017/07/17(月) 08:13:23.74 ID:n9t4u9yj0.net]
>>926
C はプリプロを除いてもワンパスにはならないと思う



939 名前:デフォルトの名無しさん (ワッチョイ aa11-OTuW) mailto:sage [2017/07/17(月) 08:53:08.22 ID:U2FIHXXv0.net]
>>918
>>913がプロトタイプ宣言知ってるかどうかは知らんけど同じ情報を二ヵ所に書かないといけないのはいかがなものかと思う
言語仕様を決めた当時はI/Oも遅いので高々数回のパースでコンパイルする必要あったからしょうがないとは思うが

>>921
Pascalは1-Passでビルドできるように言語仕様を決めていた
なので当初はモジュールみたいな概念もなかった

940 名前:デフォルトの名無しさん (ワッチョイ 0123-z+eH) mailto:sage [2017/07/17(月) 08:57:46.36 ID:LYlgQVUQ0.net]
>>920
さすがに知っているぞ。
俺は君と同様それはほぼ使わないというだけで。
というか、あの「事前に分かってないと使えない」事は正確には何と言うんだ?
「前方宣言必須」というのはどうも「前方宣言」自体が別の用語らしいのでまずかったようだ。

>>921
Cの場合、1パスコンパイルするためのものだ。
Cは紙テープ時代からある。
Wikiによると10文字/秒らしいので、1KBのファイルなら読み取りに1分40秒かかる。
これで2パスされると死ねるから、1パスでいけるように、
あらかじめ人間が順番を整えとけ(=機械に人間が合わせろ)というものだ。
どう考えても今はそんな時代じゃないだろ。
2パスに変更して「後方参照」(という用語でいいのか?)出来るようにすればいいだけだ。
紙テープの時代なら時代の要請だが、HDDの時代にこれを大事に守る理由は無い。
だから新しい全ての言語はこの制限は無い。必要ないからだ。
(ただしPythonを除く。この点だけでもPythonは糞だと断定できる)

ところがな、>>919みたいな老害は、
できる理由を見つけてきて頑なに現状維持しようとするものだ。
Cの場合は、確かに下から構築していけばプロトタイプ宣言は通常全く使わずに構築できる。
だからそれが作法になってしまってるだろ。
Pythonの場合はおそらくこれ、つまり、下からの構築を強制させるためにあえて採用してないのだと思う。

しかしな、他人のコードを一から読むとき、下から読む必要はなく、上から読んだほうが楽だ。
(正確には中レベルから。一番上のレベルも読む必要ないから)
お前らがそれに気づけてないのだとしたら、お前らはCしか読んでないからだ。
というか俺も最近までそうだったのだが。

941 名前:デフォルトの名無しさん (ワッチョイ 0123-z+eH) mailto:sage [2017/07/17(月) 08:58:08.57 ID:LYlgQVUQ0.net]
既に書いたが、Cの読みにくさは、ファイルが細切れになっていることもある。
これはOOPも別の意味で同罪で、「で、その処理は具体的にはどこに書いてあるんですかね?」は常だ。
だからそんなものだと思っているのだと思う。

ところが最近、後方参照できる言語でCスタイルで書かれているコードを読んで戦慄した。
圧倒的に読みやすいのだ。(OOPよりも)
上からスクロールしていくだけで、読み飛ばしていいか、そうでないか、はっきりと分かった。
ところが肝心のCにはこの類のソースコードは存在しないんだよ。後方参照禁止だから。

後方参照が出来るようになれば、設計者が自由に関数を配置できるようになる。
当然、一番分かりやすいように並べることになる。
今のCにはその自由度が無いんだよ。人間が機械に合わせる仕様だから。
「プロトタイプ宣言」とかいう二度手間をやらないと、最もわかりやすい順に並べられない。
だから今のCソースは基本的に「分かりにくい」。
少なくとも後方参照できればもっとわかりやすくなる方向でしかない。
だからいまだにそれを放置しているのはマジで糞だって事。
老害的には「下から構築しろ」という教育効果を主張するのだろうが、そんなのは要らない。

942 名前:デフォルトの名無しさん (ワッチョイ aa11-OTuW) mailto:sage [2017/07/17(月) 08:59:15.27 ID:U2FIHXXv0.net]
>>927
シングルパスでダメな構文あったっけ?

943 名前:デフォルトの名無しさん (ワッチョイ ce7f-z+eH) mailto:sage [2017/07/17(月) 09:03:20.21 ID:iqtGzeji0.net]
ここで議論している人の 前方宣言 後方参照 の定義が一致しているのか気になる。

944 名前:デフォルトの名無しさん (ワッチョイ aa11-OTuW) mailto:sage [2017/07/17(月) 09:07:49.80 ID:U2FIHXXv0.net]
>>929
> (ただしPythonを除く。この点だけでもPythonは糞だと断定できる)
Python の def が「実行文」であることも知らんのだろうな w

945 名前:デフォルトの名無しさん (ワッチョイ 0123-z+eH) mailto:sage [2017/07/17(月) 09:11:05.59 ID:LYlgQVUQ0.net]
>>932
というか今更その辺の用語は無いんだよ。理由は他言語では必

946 名前:vないから。
「後方参照」も正規表現でしか使われてないし、
しかもあれって「後方」よりも「バッファ」と言え、という類のものであるし。

とりあえず俺の定義は、
前方宣言必須:どうやらこれは俺の誤用だったすまん。「事前に宣言しておかないと使えない」の意で使ってた
後方参照:後で定義されている関数を使うこと
だね。これが適切かは分からんが、Cやってる奴ならあーはいはい程度には通じるとは思う。
[]
[ここ壊れてます]

947 名前:デフォルトの名無しさん (ワッチョイ 0123-z+eH) mailto:sage [2017/07/17(月) 09:14:46.40 ID:LYlgQVUQ0.net]
>>933
知らんね。
つかあれ、そうなのか。だとすると動的に構築するから致し方なし、って奴か。
JavaScriptが糞な点と同じだな。

まあどの道2パスすれば回避できるだけのことを、なぜやらん?ってのはある。
Pythonは聞けば聞くほど糞なので、俺はやってない。

948 名前:デフォルトの名無しさん (ワッチョイ 4ed7-H2gN) mailto:sage [2017/07/17(月) 09:19:12.83 ID:PKmAGp8M0.net]
>>927,931
たとえばgotoのラベルは下でもいいよね
たかだか関数内限定ではあるけど

>>932,934
今話してる文脈は「Cの前方宣言必須について」でいいんじゃないの?



949 名前:デフォルトの名無しさん (ワッチョイ 4ed7-H2gN) mailto:sage [2017/07/17(月) 09:39:52.04 ID:PKmAGp8M0.net]
引数が無い宣言のこと特別に「前方宣言」と言うのか
知らんかったわw
wisdom.sak ura.ne.jp/programming/c/c27.html

950 名前:デフォルトの名無しさん (ワッチョイ aa11-OTuW) mailto:sage [2017/07/17(月) 09:50:00.72 ID:U2FIHXXv0.net]
>>935
知らないなら黙ってりゃいいのに
知ったかはこれだから...

951 名前:デフォルトの名無しさん (ワッチョイ aa11-OTuW) mailto:sage [2017/07/17(月) 09:54:21.13 ID:U2FIHXXv0.net]
>>936
Pascalはラベルに数値が(と言うか数値しか)使えないこととコンパイラを単純にするためにlabel文で宣言が要るけど、コンパイラの実装としては必須じゃないでしょ
goto文の飛び先はラベル見つけた時点で入れればいいだけだし

952 名前:デフォルトの名無しさん (ワッチョイ c832-MRQN) mailto:sage [2017/07/17(月) 10:26:39.93 ID:+Y9zLnEF0.net]
K&Rの時代じゃあるまいし、前方宣言を原型形式でない関数宣言子と捉える奴なんていねーだろ
プロトタイプ宣言とか言い出した>>918は例外として

953 名前:デフォルトの名無しさん (ワッチョイ 0123-z+eH) mailto:sage [2017/07/17(月) 10:42:28.15 ID:LYlgQVUQ0.net]
>>938
お前はPython信者なのか?ならばもう一度言ってやるよ。Pythonはそこも糞だ。

Pythonはdefで関数宣言を行い、それがそのままオブジェクトになる仕様らしい。
つまりそこで暗黙の代入があるから、後方参照できないとの理由だ。まさに糞だ。

JavaScriptの場合は、これらの宣言を分けている。つまり、
function func0(){console.log('func0');} // (A) console.logはCでいうprintf
var func1 = function(){console.log('func1');}; // (B)
ここでfunc0は後方参照できる。つまりスコープに入っていればいつでも使える。
func1は関数ポインタであり、代入以降でしか使えない。
これが妥当な仕様だ。
関数ポインタは再代入可能だから、順に処理する必要があるからだ。

Cの場合、関数ポインタへの代入は自前で行うわけだから、
コンパイラの努力だけで後方参照できないという制限を解除することが出来る。
いまだにやってないのはただの手抜きというよりも確信犯だろうが。

なおJavaScriptでもPythonと同様に関数はオブジェクトになるのだが、
要するに「スコープ内で先に処理して再代入禁止にしておくべきfunction(A)」と
「順に処理するべき関数ポインタ(B)」を明示的に分離して記述できるだけだ。
みたところPythonには(A)しかなさそうなので、技術的に出来ない理由は無い。
この点についてはCも同様に糞だが、時代の要請があったという理由はある。
Pythonは本当に何の意味も無く制限をつけている、ただの糞だ。

954 名前:デフォルトの名無しさん (ワッチョイ aa11-OTuW) mailto:sage [2017/07/17(月) 10:49:45.35 ID:U2FIHXXv0.net]
知ったかが慌ててググって的はずれの長文乙
Python 関数ポインタ
辺りでググる程度の知恵もないのが残念だが w

955 名前:デフォルトの名無しさん (ワッチョイ 0123-z+eH) mailto:sage [2017/07/17(月) 10:50:54.11 ID:LYlgQVUQ0.net]
>>937,940
俺もそれを知らんかった。
そしてそのページでそれを確認し、K&Rみたら確かに「プロトタイプ」となっている。
だからどうやら俺の誤用だった、とした。

ただまあ、その意味での「前方宣言」なんて見たことないんだけどね。

956 名前:デフォルトの名無しさん (スププ Sd94-UFoF) mailto:sage [2017/07/17(月) 10:55:39.50 ID:g3mBUieLd.net]
Pythonはファイルの最後に
if __name__ == 'main':
main()

ってやる関係で、結局実行は最後になるからdefの順番とかで困ることはまずないな
せいぜい関数内関数定義で先に書くか後で書くかくらいか?
一体どんなコード書いてりゃそんなどうでもいいところで引っかかるんだ

957 名前:デフォルトの名無しさん (ワッチョイ 0123-z+eH) mailto:sage [2017/07/17(月) 10:57:04.61 ID:LYlgQVUQ0.net]
>>942
Pythonのdefは941で言う(A)なんだよ。
だから後方参照できない技術的理由は無い、という見解だ。
お前には通じないようだが。

それとは別に(B)の記述はPythonでも出来る。
というかこれが出来ない新しい言語なんて無い(ただしJavaを除く)

958 名前:デフォルトの名無しさん (ワッチョイ aa11-OTuW) mailto:sage [2017/07/17(月) 11:02:44.43 ID:U2FIHXXv0.net]
>>941
> みたところPythonには(A)しかなさそう

>>945
> それとは別に(B)の記述はPythonでも出来る。

バカの上塗り w
そもそも>>944が言うように前方参照の話ですらないのに何を必死になってるんだか



959 名前:デフォルトの名無しさん (ワッチョイ 8a1c-UU3S) [2017/07/17(月) 11:55:17.77 ID:woO8V6Ze0.net]
>>929
あーそう、「ほぼ使わない」のか
チームメイトが(いれば)お気の毒だね

正規表現の「後方参照」はここでの話と全然関係ないぞ
コンパイラにとって初見の識別子があとで宣言されることを
MASMでは前方参照と言っていたが、
Cでは「undeclared identifier: 宣言されていない識別子」
となっているだけだ(もち violation of the syntax)
ちなみにISO/IEC9899には全然違う意味の
「forward declaration: 前方参照」という用語がある

老害を小馬鹿にしたいようだが、脇が甘すぎだぜおまえ

960 名前:デフォルトの名無しさん (ワッチョイ 0123-z+eH) mailto:sage [2017/07/17(月) 12:33:21.67 ID:LYlgQVUQ0.net]
>>947
脇が甘いもなんも、お前も全員が妥当だと思う用語を持って来れないだろ。
だったらお前も俺と同レベルなんだが。
913の時点で「『宣言されていない識別子』は禁止」では何を言っているのか通じないだろ。
(「前方宣言必須」は厳密には間違っているが、C使いには意図は100%通じてるだろ)

というかお前は老害ではなく若いのか?その突っかかり方はガキっぽい。
2chは言葉の定義にやたらこだわる奴が多いが、それはただのクソガキで、
仕事してりゃ分かるはずだが、実は社内方言ってのはものすごく多くて、
社外だと全く通用しないことすら自覚できてない場合が殆どだ。
だからすれ違いを感じたら>>932のように確認するのが常で、
俺はそれを受けて>>934と応じた。
ここら辺は仕事をしたことがあればよく見かける光景ではあるはず。
もちろん方言ではなく共通語を使う努力をすべきなのは言うまでもないが、
問題は方言を使っている奴は方言だと認識してないことなんだよ。

だから俺が方言を使っていれば、お前が正しい共通語を示せばいいだけの話であって、
今現在は(需要が既に無いから)共通語自体が存在しない状態だろ。
それをいちいち勝った負けたされても知らんがな。

で、まあ、話を戻すと、
(俺はPython使いではないから間違っているかもしれんが)
俺の理解では、Pythonは「プロトタイプ宣言が出来ないC」だ。
この理解が正しければ、糞だということで割と賛同を得られると思うが。
>>944は糞を量産していることに気づいてないだけだ。

ただそれとは別に、プロトタイプ宣言は無くても通常は構築可能で、
Cはそれが作法になってるだろ。
例えばファイルの先頭でファイル内全関数をプロトタイプ宣言してるソースなんて見たことないだろ。
(コーディングルールとしてこれをやっている所があってもおかしくないが、誰か知ってるか?)
ただ、Cはこの手間をかければ順序は自由にはなるが、Pythonはそれすら認めてないだろ。
この辺、Pythonは無駄に教育的で実践的ではないんだよ。

961 名前:デフォルトの名無しさん (ワッチョイ a76f-xIn+) mailto:sage [2017/07/17(月) 12:54:14.08 ID:HedtDN7o0.net]
そうそう普通PL/Mだよね

962 名前:デフォルトの名無しさん (スププ Sd94-UFoF) mailto:sage [2017/07/17(月) 13:28:45.97 ID:g3mBUieLd.net]
俺が糞を量産しているというのは穏やかではないな
if __name__ == '__main__'が糞といいたいのか?
ちょっとPythonスレで議論しようよ

963 名前:デフォルトの名無しさん (ワッチョイ f649-I67b) mailto:sage [2017/07/17(月) 13:37:29.75 ID:g+93Yjlh0.net]
夏だな

964 名前:デフォルトの名無しさん (オイコラミネオ MMb6-9jcw) mailto:sage [2017/07/17(月) 14:40:04.91 ID:rKRQ/JsKM.net]
forkで子プロセスから、子プロセスを終了させたあとに親プロセスを終了させる方法無いですかね?

親プロセスはwhile(1)で回していて、子プロセスで入力を受け取るのですが、ある入力が来たときだけ、プログラムを終了(子プロセス親プロセス両方共終了)させたいです

965 名前:デフォルトの名無しさん (ワッチョイ c832-MRQN) mailto:sage [2017/07/17(月) 14:45:33.81 ID:+Y9zLnEF0.net]
親プロセスでwaitpidして子プロセス終了してたら自分も終了すれば良いじゃん

966 名前:デフォルトの名無しさん (オイコラミネオ MMb6-9jcw) mailto:sage [2017/07/17(月) 14:54:49.57 ID:Ns2d2+pxM.net]
>>953
子プロセスは自動で死ぬこともあるんです
だから、子プロセスが自発的に親プロセスを終了させよつとしない限りは親プロセスは行き続けて欲しいです

967 名前:デフォルトの名無しさん (ワッチョイ c832-MRQN) mailto:sage [2017/07/17(月) 14:58:31.67 ID:+Y9zLnEF0.net]
終了ステータス変えるとか、共有メモリで適当なフラグもっとくとか、事前に適当なシグナル送るとか、いくらでもやりようあるだろ

968 名前:デフォルトの名無しさん (ワッチョイ 0123-z+eH) mailto:sage [2017/07/17(月) 15:09:00.52 ID:LYlgQVUQ0.net]
>>950
行かんよ。俺はPythonの文法もろくに知らないし、使う気もないし。
ただ、俺の理解
> Pythonは「プロトタイプ宣言が出来ないC」だ。
が間違っているのなら、指摘してくれよ。
これが間違いでないのなら、このスレの過半数は糞認定すると思うぞ。

上記が正しいとして、君が糞を量産していることを自覚できていないのは、
C専読者と同じで、Cスタイルで「上位から」書かれているコードを見たことがないからだ。
というか俺もつい先日までそうだったんだが。

とりあえず簡単に確認する方法として、循環参照がある。
例えばCなら、以下になる。

viod say_hello(count){
if (--count<0) return;
printf("hello");
say_world(count);
}
void say_world(count){
printf(" world!\n");
say_hello(count);
}

後方参照できるJavaScriptなら、これはベタで書いてそのまま動作する。
Cだとプロトタイプ宣言が必要だが、実体は上記の通りで動作する。
Pythonは余分な方法を使わないとこれが出来ないんだろ?

これとは別に、そもそも循環参照コードなんて書くなというのはあって、
これを教条的に強制しているのがPythonだろ。
下位からの記述を強制されている場合に、上位から読みたければファイル末尾から読め、
でしかないというのも事実だから、そんなに致命的でもないんだが。



969 名前:デフォルトの名無しさん (ドコグロ MM36-OTuW) mailto:sage [2017/07/17(月) 15:25:01.26 ID:iPE66y3WM.net]
>>956
> Pythonは余分な方法を使わないとこれが出来ないんだろ?
普通になにもしなくてもできる
必要なのは>>944のが書いてる
> Pythonはファイルの最後に
> if __name__ == 'main':
> main()
だけ
て言うかPython知らないなららPython云々で語るなよ
アホの戯れ言をいちいち訂正するのが面倒すぎる

970 名前:デフォルトの名無しさん (オイコラミネオ MMb6-9jcw) mailto:sage [2017/07/17(月) 15:29:13.95 ID:I/V/8ZBUM.net]
>>955
ありがとうございます
出来ました

971 名前:デフォルトの名無しさん (ワッチョイ 0123-z+eH) mailto:sage [2017/07/17(月) 15:32:56.88 ID:LYlgQVUQ0.net]
すまん、>>956は間違いのようで、Pythonでも関数間の参照自体は出来るらしい。
> 再帰関数の前方参照
> www.isc.meiji.ac.jp/~mizutani/python/recursive_call.html
だから関数定義を全部先にしてしまえばいいということになる。
それが見易いとは思わないが。

しかしCは関数内関数が無いのでそれ以前だ。
GCC拡張を利用するなら、
関数内関数を全部「頭」に配置しないといけないのがPython、
どこに配置しても自由に呼び出せるのがJavaScriptということになる。
GCCの場合はCと同様プロトタイプ宣言とかも関数内に使えて配置も同様、ということなのかな?

>>957
ああ悪い、こっちも確認した。上記の通り。
というかPythonの話は止めよう。俺はそっちには興味ない。


話を戻すと、俺が思うCに足りないのは「階層」と「後方参照」だ。
これら2つがあれば、今現在細切れになっているファイルを1つに束ね、
一番読みやすい順にソートできる。
お前らがピンと来ないのは、多分俺と同じで、見たことがないからだ。
後方参照できる言語でCスタイルで書かれた大規模コードを一度見れば分かると思うよ。

972 名前:デフォルトの名無しさん (スププ Sd94-UFoF) mailto:sage [2017/07/17(月) 16:45:34.15 ID:g3mBUieLd.net]
俺ってばこんなこんなに何も分かってない奴に「糞コード量産してる」とか言われてたん?
失礼な奴だな本当に

973 名前:デフォルトの名無しさん (ワッチョイ 7e32-vfgv) mailto:sage [2017/07/17(月) 16:53:25.99 ID:OvXGqJkd0.net]
ctagsとか、タグジャンプつかおうな?

上から下にならべてあるから読みやすいですとか、眺めてるだけですと、宣言してるようなものだ。

トレースする気がないべ?

974 名前:デフォルトの名無しさん (ワッチョイ 0123-z+eH) mailto:sage [2017/07/17(月) 17:26:09.82 ID:LYlgQVUQ0.net]
>>960
いや事実だぞ。

君は都合が悪い部分には回答しないようだが、プロトタイプ宣言が無いのは事実だろ。
それは下位関数も含めて全部上側で記述することを強制する。
C言語でプロトタイプ宣言が無い場合に似ている。
ただし関数内から別関数への参照は「動的」に行われるのでCより制約は緩くなるが、
本質的にはあまり変わらない。
そもそも、下位関数なんて名前を見たら実装なんて見ずとも結果が分かるべきものだし、
それがオブジェクト指向の思想だろ。下位関数は読む必要なんてないんだよ。

俺は「『君が無能だから』糞コードを量産している」と言っているわけではない。
Pythonの仕様が糞だから、「Pythonでは糞コードしか書けない」と俺は言っている。
そこを君は勘違いしている。

それはそうと、Pythonのスレ試しに見てみたが、相当酷いな。あれじゃマ板だよ。


>>961
IDEに使って本格的に読めばその辺も含めて改善するのだろうが、
設計者が分かりやすいようにソート済みなのと、
コンパイラに都合がいいようにソート済みなのでは、全然違うんだよ。
そしてCは「ファイル」を階層として使っているのだが、これがもう古い。
タグとか使って一発で飛べるのなら余計に1つのファイルにまとめてあったほうが好都合だろ。
(もっともタグ使えば複数ファイルでも飛べるのだとは思うが)

ただ、俺が求めている階層は関数内関数で十分で、
GCCで採用されているのでいいんだが、アレは何で標準にならないんだ?

975 名前:デフォルトの名無しさん (ワッチョイ c832-MRQN) mailto:sage [2017/07/17(月) 17:45:56.64 ID:+Y9zLnEF0.net]
トランポリンコード必須なGCCの関数内関数が標準に入るわけないだろ

976 名前:デフォルトの名無しさん (ワッチョイ df23-S4qQ) mailto:sage [2017/07/17(月) 17:52:48.13 ID:6JtF0HSC0.net]
>>952
親プロセス while (1) で回してるって、その while (1) の中でやってる処理はなんだ?
wait() してないのか? wait() してるならそれで子プロセス側の exit() のステータス
受け取れるからそれで親側で判別すればいいんじゃない?

てか、これCはCでもUNIX系OS固有の話だよな。ここだとスレチにならんか?

977 名前:デフォルトの名無しさん (ワッチョイ df23-S4qQ) mailto:sage [2017/07/17(月) 17:54:48.33 ID:6JtF0HSC0.net]
あ、もう解決済みだったか。すまん。

978 名前:デフォルトの名無しさん (ワッチョイ c832-MRQN) mailto:sage [2017/07/17(月) 17:54:54.48 ID:+Y9zLnEF0.net]
ならんと思うし、解決済みだぞ



979 名前:デフォルトの名無しさん (ワッチョイ df23-S4qQ) mailto:sage [2017/07/17(月) 18:06:17.25 ID:6JtF0HSC0.net]
>>959
まあそれで見やすくなるだろうから、そういうCを拡張した新しい言語作れば良い。
しかし、問題はC(あるいはそこからちょっとしか拡張されていないような言語)を
人間が直接使う機会はおそらく減り続けることにある。今でもほとんどOSや
デバイスドライバを記述するアセンブラ代わり

980 名前:デフォルトの名無しさん (スププ Sd94-UFoF) mailto:sage [2017/07/17(月) 18:07:19.84 ID:g3mBUieLd.net]
>>962
お前のいうことは完全に間違い。Pythonスレでならちゃんと答えてやる
興味がないならこれ以上その浅はかな知識をひけらかすな

981 名前:デフォルトの名無しさん (ワッチョイ df23-S4qQ) mailto:sage [2017/07/17(月) 18:07:38.79 ID:6JtF0HSC0.net]
あ、ごめん。途中で送信しちゃった。
つづき。


に使われてるしね。

982 名前:デフォルトの名無しさん (ワッチョイ 386f-bO6O) mailto:sage [2017/07/17(月) 18:40:56.88 ID:IbKZMmLs0.net]
関数内関数って要するに高階関数のことだろ
関数型言語または関数型のマルチパラダイムの言語でないと無理だろ

983 名前:デフォルトの名無しさん (ワッチョイ 4ed7-H2gN) mailto:sage [2017/07/17(月) 18:46:26.39 ID:PKmAGp8M0.net]
Objective-Cで全部可能ではある
C言語でもclangならblocks拡張(関数オブジェクト・クロージャ)が使える
関数内関数は単純に制御構造だと捉えれば、C言語でもgoto文で可能でしょう

984 名前:デフォルトの名無しさん (スププ Sd94-UFoF) mailto:sage [2017/07/17(月) 18:54:16.64 ID:g3mBUieLd.net]
Blocks拡張は有能なのは分かってるけど、Clang依存コードになるからちょいとハードル高いよなあ

985 名前:デフォルトの名無しさん (ワッチョイ 8a1c-UU3S) [2017/07/17(月) 18:59:20.24 ID:woO8V6Ze0.net]
>>948
いやコンパイラにとって初見の識別子があとで宣言される
という形になっているコードについて話しているのは
みんなわかってるのに、頓珍漢な言葉遊びに持ち込もうと
している邪魔な奴がおまえだ

> Cはそれが作法になってるだろ
はあ? 聞いたこともねえぜ、寝言は寝てぬかせ
横着しねえでちゃんとプロトタイプ宣言すんだよ
正直たまにサボることがあるのを恥もせずに
それがスタンダードとか居直るおまえの態度が鼻持ちならん

986 名前:デフォルトの名無しさん (ワッチョイ 6e9a-n9U6) mailto:sage [2017/07/17(月) 19:03:14.17 ID:30YqlFLH0.net]
ヘッダにはプロトタイプ宣言を書くだろうに
なんでプロトタイプ宣言をなかったことにしたがるのだろうか?

987 名前:デフォルトの名無しさん (ワッチョイ 4ed7-H2gN) mailto:sage [2017/07/17(月) 19:03:27.54 ID:PKmAGp8M0.net]
>>972
俺も非依存性重視なので、拡張なしの標準的なCでやってるよ
プロトタイプ宣言とクロージャは諦めなきゃならないが
クロージャはコールバック関数のポインタを渡すという伝統的なやり方でできる

988 名前:デフォルトの名無しさん (スププ Sd94-UFoF) mailto:sage [2017/07/17(月) 19:17:54.83 ID:g3mBUieLd.net]
>>975
諦めなきゃならんのか出来るのかどっちだよw
いやblockなしでクロージャ出来るんなら割と真面目に知りたいんだけど



989 名前:デフォルトの名無しさん (ワッチョイ 4ed7-H2gN) mailto:sage [2017/07/17(月) 19:25:58.36 ID:PKmAGp8M0.net]
>>976
いやコールバック関数のポインタ渡しで代替だからw 別に関数書く必要はあるよ
blocksみたいに、同じスコープにコールバックの処理も書けちゃうっていう便利さは無い

環境のキャプチャもしたければ、値のコピーをヒープに確保してコールバック側でfreeとか、
工夫すればできるでしょう

990 名前:デフォルトの名無しさん (スププ Sd94-UFoF) mailto:sage [2017/07/17(月) 19:43:36.29 ID:g3mBUieLd.net]
うーむわかりた。やっぱ別に書いた関数を呼ぶのがせいぜいよなあ
せめて関数オブジェクトがあればなあとたまに思うわ

991 名前:デフォルトの名無しさん (ワッチョイ aa11-OTuW) mailto:sage [2017/07/17(月) 19:45:22.30 ID:U2FIHXXv0.net]
>>959
> というかPythonの話は止めよう。俺はそっちには興味ない。
はあ?
Python言い出したのはお前だぞ w

>>962
> Pythonの仕様が糞だから、「Pythonでは糞コードしか書けない」と俺は言っている。
だから知らないならPythonに触れるなよ
別にPythonサイコーって思ってる訳じゃないけどお前の指摘は全て的はずれすぎる
関数定義の順序に制限なんてない
あとローカル関数についてはJavascriptも似たようなもんだぞ

992 名前:デフォルトの名無しさん (ワッチョイ aa11-OTuW) mailto:sage [2017/07/17(月) 19:47:31.91 ID:U2FIHXXv0.net]
>>970
> 関数内関数って要するに高階関数のことだろ
全然違う

> 関数型言語または関数型のマルチパラダイムの言語でないと無理だろ
Pascalでも使えるのに何を知ったかしてるんだよ w

>>971
> 関数内関数は単純に制御構造だと捉えれば、C言語でもgoto文で可能でしょう
これはさすがにアホすぎる...

993 名前:デフォルトの名無しさん (ワッチョイ 4ed7-H2gN) mailto:sage [2017/07/17(月) 19:59:04.53 ID:PKmAGp8M0.net]
>>980
ちょっと関数内関数ってどういうものを言ってるか説明して
単純に言えば関数内で行ったり来たりするだけじゃないの?

994 名前:デフォルトの名無しさん (ワッチョイ 386f-/Dy+) mailto:sage [2017/07/17(月) 20:24:44.55 ID:IbKZMmLs0.net]
関数の内部で関数を定義するようなイメージじゃないの?
C言語では不可能だけど
void functionA(void) {
 …
 void functionB(void) {
  …
  void functionC(void) {
   …
  }
 }
}

995 名前:デフォルトの名無しさん (ワッチョイ aa11-OTuW) mailto:sage [2017/07/17(月) 20:31:06.71 ID:U2FIHXXv0.net]
>>981
スコープが違うだけで普通の関数と同じだぞ
普通の関数をgotoだけで実装してみてよ

996 名前:デフォルトの名無しさん (ワッチョイ 0123-z+eH) mailto:sage [2017/07/17(月) 21:01:30.74 ID:LYlgQVUQ0.net]
>>963
> トランポリンコード
なんだそりゃ?と思ったらこれか。
d.hatena.ne.jp/yupo5656/20040602/p1

なるほどGCCのは単なる階層ではなく、プチグローバル付きか。
この仕様なら上位階層(ファイル)を記述変更無しで取り込めるが、
これは確かに標準化には微妙だな。俺はGCCの仕様を詳しく知らんかった。すまんね。
しかしこれ、C++のメンバ関数ポインタみたいに、
普通の関数ポインタと相互運用することは諦めてしまっても良かった気もするが、
それだとレガシーとは相性が悪い。微妙なところだね。

997 名前:デフォルトの名無しさん (ワッチョイ 4ed7-H2gN) mailto:sage [2017/07/17(月) 21:03:30.21 ID:PKmAGp8M0.net]
>>983
俺が言ってるのは、Cでは同じようには書けないが同じ処理はできるってことだよ

998 名前:デフォルトの名無しさん (ワッチョイ ce6f-9g51) [2017/07/17(月) 21:07:34.37 ID:J4JGo3XO0.net]


C言語なら俺に聞け 141
mevius.2ch.net/test/read.cgi/tech/1500293207/



999 名前:デフォルトの名無しさん (ワッチョイ d091-z+eH) mailto:sage [2017/07/17(月) 21:16:05.25 ID:dzhRVtEN0.net]
おっつおっつ

1000 名前:デフォルトの名無しさん (ワッチョイ 0123-z+eH) mailto:sage [2017/07/17(月) 21:20:55.01 ID:LYlgQVUQ0.net]
>>967,969
チョイ拡張言語ってのはエコシステムが付いてこず勝手に死ぬ。
Dもだし、Objective-CはAppleに拾ってもらえたけど、もう確実に死ぬ運命だよね。
(あれらはチョイ拡張でもないが)
チョイ拡張だとわざわざCから移行する意味が無いんだよ。
理想的にはやっぱ標準に入ってくれないと辛いわ。

Cが死に行く、って指摘については、俺もそう思っていたのだが、
何度も言っているが最近Cスタイルの他言語コードを見てちょっと考えを改めつつある。
OOPのコードは結構真面目に追いかけないと辛くて、読みやすくはない。
これはCも同様だと思っていたのだが、実はCの読みにくさは「階層」と「後方参照」がないだけで、
(つまりファイルがバラバラで、しかもグダグダな順に書かれているからであって《=プチ難読化済》)
構造的に問題があるわけではなく、それなりに読みやすいことに気づいた。
だからこれらがある言語(Python以外の新しい言語全部)でCスタイル(手続き型)で書かれたコードは
実はかなり読みやすいのだと思う。
(問題は、そういうのにあまり遭遇しないことだが)

だからC自体は廃れるかもしれないけど、Cスタイルは多分廃れない。
そして今のところ手続き型万歳的な言語はCだけだ。
となると、Cに足りない上記、「階層」「後方参照」が入ればCってもう一回来るかも?とも思う。
(つか、namespaceすら入れないって何よ?とは思うよマジで)

>>986


1001 名前:デフォルトの名無しさん (ワッチョイ f2ea-S4qQ) mailto:sage [2017/07/17(月) 21:22:41.43 ID:n17oqQVv0.net]
Pythonがプロトタイプ宣言の必要のないC言語と言ってるバカがいるのはこのスレですか?

1002 名前:デフォルトの名無しさん (ワッチョイ 0123-z+eH) mailto:sage [2017/07/17(月) 21:30:16.49 ID:LYlgQVUQ0.net]
>>973
全部書くのがお前のジャスティスならそうすりゃいいし、
実際そっちが主流かもしれん。

しかしヘッダファイルを用意するなんて完全に二度手間だし、
コンパイラが自動的にやれよマジで、と思ったことは無いのか?
コンパイル時間が気になるのなら、ヘッダファイルを用意しろ、
面倒ならなしでよし、その場合はコンパイラが勝手に探してくる、
その分コンパイル時間はかかるが手間が省ける、って仕様で何も問題ないだろ。
てか他言語は全部そうだし。(Python除く)

俺はあの仕様がいまだに残っており、
また、お前みたいに疑問を持ってない奴がいることがよく分からん。

1003 名前:デフォルトの名無しさん (ワッチョイ 0123-z+eH) mailto:sage [2017/07/17(月) 21:39:14.19 ID:LYlgQVUQ0.net]
>>989
× Pythonがプロトタイプ宣言の必要のない
○ Pythonはプロトタイプ宣言が出来ない
○ JavaScriptはプロトタイプ宣言が必要ない

何度も言っているがこれだけでPythonは糞だと断定できる。
一番わかりやすい順に記述出来ない時点で糞。
ただしPythonってのは元々そういう言語。ユーザの自由を認めていない。

で、俺はマジでPythonに関わるつもり無いからもう止めて。
Python信者が発狂しているし。俺自身Python知らんし。

1004 名前:デフォルトの名無しさん (スプッッ Sd70-Cvl0) mailto:sage [2017/07/17(月) 21:41:38.75 ID:nYhUL1Kkd.net]
最強はアセンブリ言語

1005 名前:デフォルトの名無しさん (ワッチョイ ce7f-z+eH) mailto:sage [2017/07/17(月) 21:43:34.50 ID:iqtGzeji0.net]
一元管理と二重チェック、共存はできないが一概にどちらが優れていると決めつけられる

1006 名前:烽フでもないなぁ。 []
[ここ壊れてます]

1007 名前:デフォルトの名無しさん (ワッチョイ aa11-OTuW) mailto:sage [2017/07/17(月) 21:45:43.44 ID:U2FIHXXv0.net]
>>985
だからgotoでどうやってやるんだよ
戻り番地の意味わかる?

1008 名前:デフォルトの名無しさん (アウアウカー Sa0a-S4qQ) mailto:sage [2017/07/17(月) 21:46:23.02 ID:/QULOYxMa.net]
>>990
いや、何も無理してC使う必要はないんだよ。なんだったら新言語作ればいい。
bison, flex (yacc, lex) があるわけだし。

で、比較的楽に言語を作る方法は、C言語へのコンバータにしてしまうことだ。
そうするとかなり多くの環境で動くものがいきなりできる。
C++も最初の頃はそうだった。



1009 名前:デフォルトの名無しさん (ワッチョイ aa11-OTuW) mailto:sage [2017/07/17(月) 21:49:21.75 ID:U2FIHXXv0.net]
>>991
知らないのに糞とかアホすぎる w

1010 名前:デフォルトの名無しさん (ワッチョイ aa11-OTuW) mailto:sage [2017/07/17(月) 21:49:44.33 ID:U2FIHXXv0.net]
うめ

1011 名前:デフォルトの名無しさん (ワッチョイ aa11-OTuW) mailto:sage [2017/07/17(月) 21:50:16.71 ID:U2FIHXXv0.net]
うめ

1012 名前:デフォルトの名無しさん (ドコグロ MM46-OTuW) mailto:sage [2017/07/17(月) 21:51:40.93 ID:qENq84dkM.net]
>>991
バカは何度指摘してもバカのままなんだな

1013 名前:デフォルトの名無しさん (ワッチョイ f2ea-S4qQ) mailto:sage [2017/07/17(月) 21:51:49.33 ID:n17oqQVv0.net]
>>990
1ソースコードファイル1オブジェクトファイルだからそういう仕様なんだよ

1014 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 66日 23時間 31分 46秒

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






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<306KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef