C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/
C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf
C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/
前
http://mevius.2ch.net/test/read.cgi/tech/1494508803/
http://www.geocities.jp/c_cpp_cs/about_c/
探検
C言語なら俺に聞け 141 [無断転載禁止]©2ch.net
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん
2017/07/17(月) 21:06:47.63ID:J4JGo3XO2デフォルトの名無しさん
2017/07/17(月) 21:15:16.42ID:bGVplWmj < `∀´>ニダー
2017/07/17(月) 21:41:46.56ID:/QULOYxM
#include < `∀´>
2017/07/17(月) 21:56:04.46ID:PKmAGp8M
2017/07/17(月) 21:57:25.18ID:4pA3RK/K
ちょっと書いてみてよ
2017/07/17(月) 21:58:43.30ID:n17oqQVv
プログラムカウンタをスタックに積まないでコール元に戻れるわけ無いだろ
プログラムの動作原理を知らなさ過ぎる
プログラムの動作原理を知らなさ過ぎる
2017/07/17(月) 22:02:11.80ID:PKmAGp8M
逆に関数内関数じゃないとできない処理ってどんなの?
2017/07/17(月) 22:08:32.43ID:LYlgQVUQ
Python信者がうるさいのでもう一度書いておくと、以下URLの下のほう、
> しかし、16行目にある print func_a(5) を 4行目の def func_a(a): 行よりも上に移動すると、次のようなエラーが返る。
> http://www.isc.meiji.ac.jp/~mizutani/python/recursive_call.html
これはJavaScriptは通るんだよ。
つーか、他言語は多分全部通る。落ちるのはPythonだけ。
お前らPythonしか使って無いからこれが糞だと認識できないんだよ多分。
> しかし、16行目にある print func_a(5) を 4行目の def func_a(a): 行よりも上に移動すると、次のようなエラーが返る。
> http://www.isc.meiji.ac.jp/~mizutani/python/recursive_call.html
これはJavaScriptは通るんだよ。
つーか、他言語は多分全部通る。落ちるのはPythonだけ。
お前らPythonしか使って無いからこれが糞だと認識できないんだよ多分。
2017/07/17(月) 22:16:47.67ID:LYlgQVUQ
前スレ>>995
990にレスが付いているのはヘッダについてか?
それなら俺はGCCに「自動ヘッダ生成器」を組み込んでくれよと思う。
というかCはヘッダで妙なトリック使いすぎてて自動生成できる状況ではないのだとは思うが、
それなら足りない関数だけでも自動で追加してくれよ、と思う。
つっても「後方参照」できるようになれば解決する話で、
マジでこれをいまだに放置している理由はよく分からん。
というか、俺に反論している連中ですらこれについては多分賛成なんだよな?
「後方参照」出来ない方がいいんだ!って理由がある奴っていないだろ。
だからこそ、Pythonが出来ないのがアホすぎて際立つわけでね。
990にレスが付いているのはヘッダについてか?
それなら俺はGCCに「自動ヘッダ生成器」を組み込んでくれよと思う。
というかCはヘッダで妙なトリック使いすぎてて自動生成できる状況ではないのだとは思うが、
それなら足りない関数だけでも自動で追加してくれよ、と思う。
つっても「後方参照」できるようになれば解決する話で、
マジでこれをいまだに放置している理由はよく分からん。
というか、俺に反論している連中ですらこれについては多分賛成なんだよな?
「後方参照」出来ない方がいいんだ!って理由がある奴っていないだろ。
だからこそ、Pythonが出来ないのがアホすぎて際立つわけでね。
2017/07/17(月) 22:25:47.17ID:Dn7+fEGp
前後を理解してないバカは参加するな
ID:LYlgQVUQ お前のことだ
ID:LYlgQVUQ お前のことだ
11デフォルトの名無しさん
2017/07/17(月) 22:28:20.57ID:WpdYiVZf 何でわっちょい無くなったの?
2017/07/17(月) 22:32:47.62ID:LYlgQVUQ
2017/07/17(月) 22:43:11.36ID:Zyqgn8pO
2017/07/17(月) 22:53:34.33ID:PKmAGp8M
2017/07/17(月) 22:53:37.21ID:Zyqgn8pO
>>8
> > しかし、16行目にある print func_a(5) を 4行目の def func_a(a): 行よりも上に移動すると、次のようなエラーが返る。
> > http://www.isc.meiji.ac.jp/~mizutani/python/recursive_call.html
まだやってるのかよ w
他の言語に倣うなら頭に
def main:
print func_a(5)
って書いて最後に
if __name__ == 'main':
main()
書けばいいだけ
> お前らPythonしか使って無いからこれが糞だと認識できないんだよ多分。
お前がPython知らんだけ
> > しかし、16行目にある print func_a(5) を 4行目の def func_a(a): 行よりも上に移動すると、次のようなエラーが返る。
> > http://www.isc.meiji.ac.jp/~mizutani/python/recursive_call.html
まだやってるのかよ w
他の言語に倣うなら頭に
def main:
print func_a(5)
って書いて最後に
if __name__ == 'main':
main()
書けばいいだけ
> お前らPythonしか使って無いからこれが糞だと認識できないんだよ多分。
お前がPython知らんだけ
2017/07/17(月) 22:59:52.61ID:HedtDN7o
x86なら ENTER/LEAVEで実装されているな
出来るっていうならコードで示せよ
出来るっていうならコードで示せよ
2017/07/17(月) 23:01:17.10ID:Zyqgn8pO
>>14
void f( ){
void g( ){
...
}
g();
g();
}
goto 使って同じ処理書いてみろよ
void f( ){
void g( ){
...
}
g();
g();
}
goto 使って同じ処理書いてみろよ
2017/07/17(月) 23:02:18.10ID:vodzC7WI
/ ̄\
| |
\_/
| __
┴´ ``ヽ
/::::::::::|:::::: `ヽ gotoで戻りゃいいんだから!!
/:::\::::::::<● > `ヽ
(( / <●>::::::::::⌒ )
| ⌒(_人__) ノ | |
ヽ )vvノ: / ノノ
ヽ (__ン 人
人 \
/
| |
\_/
| __
┴´ ``ヽ
/::::::::::|:::::: `ヽ gotoで戻りゃいいんだから!!
/:::\::::::::<● > `ヽ
(( / <●>::::::::::⌒ )
| ⌒(_人__) ノ | |
ヽ )vvノ: / ノノ
ヽ (__ン 人
人 \
/
2017/07/17(月) 23:07:04.75ID:LYlgQVUQ
2017/07/17(月) 23:13:04.25ID:PKmAGp8M
>>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");
}
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");
}
2017/07/17(月) 23:18:43.57ID:n17oqQVv
ID:PKmAGp8Mはプログラムの動作原理なーんも分かってない
2017/07/17(月) 23:21:10.09ID:4pA3RK/K
>>15で出来るうちに入らないとかいちゃもんつけたいだけやん
それCで関数の外にprintf書いてコンパイル通らなくて発狂してるようなもんだから
それCで関数の外にprintf書いてコンパイル通らなくて発狂してるようなもんだから
2017/07/17(月) 23:25:27.16ID:4pA3RK/K
いや、こんなこと書いたら揚げ足とってアホ認定されそうだから重ねておくけど、上のレスではコードの見た目の話に話を絞ってある
その範囲では、関数外に書いても通るだけ有難く思うべきである
その範囲では、関数外に書いても通るだけ有難く思うべきである
2017/07/17(月) 23:27:45.16ID:LYlgQVUQ
>>20
まあ俺はそっちの話にあんまり突っ込む気はないんだけどさ、、、
アイデアは理解した。
が、そのラベルの使い方が保障されてるかというと、かなり微妙だと思う。
俺は仕様には詳しく無いからなんともいえないが。
とはいえ、実際はそれで動くケースが大半だとも思う。
まあ俺はそっちの話にあんまり突っ込む気はないんだけどさ、、、
アイデアは理解した。
が、そのラベルの使い方が保障されてるかというと、かなり微妙だと思う。
俺は仕様には詳しく無いからなんともいえないが。
とはいえ、実際はそれで動くケースが大半だとも思う。
2017/07/17(月) 23:29:34.59ID:81nqESXy
2017/07/17(月) 23:35:29.76ID:4pA3RK/K
実用上問題なくてもイチャモンつけたいだけw
2017/07/17(月) 23:51:06.35ID:LYlgQVUQ
>>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以上に読みにくくなるが、それはそういう仕様だ。(馬鹿は死ねという仕様)
Python馬鹿がCスレまで来て思想が全く異なることを理解せずに喚いているから話が通じない。
Pythonは馬鹿用言語だということを自覚しろアホ。
だから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以上に読みにくくなるが、それはそういう仕様だ。(馬鹿は死ねという仕様)
Python馬鹿がCスレまで来て思想が全く異なることを理解せずに喚いているから話が通じない。
Pythonは馬鹿用言語だということを自覚しろアホ。
2017/07/17(月) 23:55:03.58ID:PKmAGp8M
なんか問題あったかい?
ラベルのポインタはGCCとclangは対応してる
標準じゃなく拡張だけどなw
ラベルのポインタはGCCとclangは対応してる
標準じゃなく拡張だけどなw
2017/07/17(月) 23:55:41.84ID:81nqESXy
>>27
で、どんな問題があるの?
で、どんな問題があるの?
2017/07/17(月) 23:57:28.74ID:4pA3RK/K
>>27
まずCスレでPythonの話題持ち出したお前が何言ってんの?w
まずCスレでPythonの話題持ち出したお前が何言ってんの?w
2017/07/18(火) 00:06:20.95ID:zmpO/wkd
>>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で出来ない例持ち出して来てら
これアンチしたいだけじゃん
うわー最初は
viod say_hello(count){
if (--count<0) return;
printf("hello");
say_world(count);
}
void say_world(count){
printf(" world!\n");
say_hello(count);
}
みたいな例を出してたのに、それが出来ると分かるないなやわざわざPythonで出来ない例持ち出して来てら
これアンチしたいだけじゃん
2017/07/18(火) 00:08:33.09ID:tZS7qvye
>>28
いや、ラベルって「そこから下」に対しては保証されてるが、
「そこから上」って保証されてるか?
まあこの言い方では通じないと思うから具体的に書くと、
(A)
label:
(B)
で(B)側にゴミがない=次の命令がすぐ詰まっていてそこにJUMPすれば動作する
ことは保障されていると思う。これは普通の使い方だから。
ただ、上から流れてきたときに、(A)側にパディングされてたりしないか?というのは微妙で、
x86だとイミディエートに十分な長さがあるから問題ないとして、
16bitとか8bitとかの場合、コード領域にイミディエートを積んでいることは普通にあって、
しかも結構適当な場所に吐かれていた記憶が。
だからコンパイラ側に「ここは明らかに通らない」という風に見える場所はかなり危険かと。
ただし既に言っているが、俺は仕様には詳しく無いから、なんともいえないのだが。
いや、ラベルって「そこから下」に対しては保証されてるが、
「そこから上」って保証されてるか?
まあこの言い方では通じないと思うから具体的に書くと、
(A)
label:
(B)
で(B)側にゴミがない=次の命令がすぐ詰まっていてそこにJUMPすれば動作する
ことは保障されていると思う。これは普通の使い方だから。
ただ、上から流れてきたときに、(A)側にパディングされてたりしないか?というのは微妙で、
x86だとイミディエートに十分な長さがあるから問題ないとして、
16bitとか8bitとかの場合、コード領域にイミディエートを積んでいることは普通にあって、
しかも結構適当な場所に吐かれていた記憶が。
だからコンパイラ側に「ここは明らかに通らない」という風に見える場所はかなり危険かと。
ただし既に言っているが、俺は仕様には詳しく無いから、なんともいえないのだが。
2017/07/18(火) 00:20:24.14ID:yhFxnttF
>>32
この場合実行時にジャンプ先のアドレスを代入するのでその手の問題は無いでしょう
https://docs.oracle.com/cd/E19205-01/821-0386/bjabt/index.html
この場合実行時にジャンプ先のアドレスを代入するのでその手の問題は無いでしょう
https://docs.oracle.com/cd/E19205-01/821-0386/bjabt/index.html
2017/07/18(火) 00:21:58.12ID:tZS7qvye
>>29
子関数を下に書いた方が分かりやすいときに、それが出来ないのが問題。
>>31
それは俺の間違いだった。俺が思っていたほどは糞ではないのも事実だ。
ただしやっぱりJavaScriptやCと比べたら糞だよ。
しかしお前らも知っていると思うが、
Pythonの最大の糞ポイントはラムダに式しか書けない事だろ。
つか、糞ポイントがぽこぽこ出せる時点で糞言語なのは確定なんだよマジで。
そしてCやJavaScriptの思想とは対極にあるのがPythonだ。
それを使うのはお前らの自由だが、それをCスレで喚くのはキチガイだ。
C的価値観からするとPythonなんてキチガイ馬鹿用言語だよ。
逆にお前らがPythonスレで
「Cみたいなシートベルトもエアバッグもない車に今更乗れるか!」って
言ってりゃいいんだよ。
というわけでお帰りくださいマジで。
俺は思想的にPythonとは合わないから、自主的に使うことはないと思います。
子関数を下に書いた方が分かりやすいときに、それが出来ないのが問題。
>>31
それは俺の間違いだった。俺が思っていたほどは糞ではないのも事実だ。
ただしやっぱりJavaScriptやCと比べたら糞だよ。
しかしお前らも知っていると思うが、
Pythonの最大の糞ポイントはラムダに式しか書けない事だろ。
つか、糞ポイントがぽこぽこ出せる時点で糞言語なのは確定なんだよマジで。
そしてCやJavaScriptの思想とは対極にあるのがPythonだ。
それを使うのはお前らの自由だが、それをCスレで喚くのはキチガイだ。
C的価値観からするとPythonなんてキチガイ馬鹿用言語だよ。
逆にお前らがPythonスレで
「Cみたいなシートベルトもエアバッグもない車に今更乗れるか!」って
言ってりゃいいんだよ。
というわけでお帰りくださいマジで。
俺は思想的にPythonとは合わないから、自主的に使うことはないと思います。
2017/07/18(火) 00:25:56.65ID:tZS7qvye
2017/07/18(火) 00:30:29.84ID:NDJOFNKG
>>32
コード領域にイミディエイト積んでいるのは当たり前
イミディエイトは即値
アセンブリコードのニーモニックでオペコードに直接データ(値)を指定するのだから
コード領域にしかイミディエイト値は存在し得ない
コード領域にイミディエイト積んでいるのは当たり前
イミディエイトは即値
アセンブリコードのニーモニックでオペコードに直接データ(値)を指定するのだから
コード領域にしかイミディエイト値は存在し得ない
2017/07/18(火) 00:31:52.64ID:zmpO/wkd
38デフォルトの名無しさん
2017/07/18(火) 00:34:45.35ID:/ZeLwNbO >>34
なんか知らんがHaskellみたいな順序に依存しない言語がおまいさんにあってる気がする。
なんか知らんがHaskellみたいな順序に依存しない言語がおまいさんにあってる気がする。
2017/07/18(火) 00:44:21.05ID:tZS7qvye
>>36
いや、オペランドの長さが足りなかった場合、
中途半端なところにデータ領域を確保するCPUもあるって事。
>>38
Haskellは意識高すぎて無理だった。
てかあれ、遅延評価以外目新しくないよな?
そしてその遅延評価はC++にテンプレートでパクられてて笑ったが。
あれでC++のテンプレートの汎用性の高さに驚いたよ。
ちなみに、他言語のすごいコードって知ってるか?見てみたいとは思うから。
例えばCなら、LinuxのカーネルやGit(作者同じ)がそうだし、
C++ならchromeやV8が多分そう(といっても割とCらしいが)
PythonやHaskellって喚いているだけで現物がなくね?
所詮スクリプトで使い捨てコードが多いってことか?
いや、オペランドの長さが足りなかった場合、
中途半端なところにデータ領域を確保するCPUもあるって事。
>>38
Haskellは意識高すぎて無理だった。
てかあれ、遅延評価以外目新しくないよな?
そしてその遅延評価はC++にテンプレートでパクられてて笑ったが。
あれでC++のテンプレートの汎用性の高さに驚いたよ。
ちなみに、他言語のすごいコードって知ってるか?見てみたいとは思うから。
例えばCなら、LinuxのカーネルやGit(作者同じ)がそうだし、
C++ならchromeやV8が多分そう(といっても割とCらしいが)
PythonやHaskellって喚いているだけで現物がなくね?
所詮スクリプトで使い捨てコードが多いってことか?
2017/07/18(火) 00:47:51.04ID:gHxy0snY
2017/07/18(火) 00:55:04.83ID:tZS7qvye
そういやgotoで思い出したが、
マルチレベルbreakはあってもいいと思うけどね。
gotoがあればなあ、ってのは大体このケースだろうし。
オレオレパーサも組めない範囲でもないんだろうけど、
やっぱ誰かががっつりデバッグ済みにしてくれてるのを使いたいよ。
マルチレベルbreakはあってもいいと思うけどね。
gotoがあればなあ、ってのは大体このケースだろうし。
オレオレパーサも組めない範囲でもないんだろうけど、
やっぱ誰かががっつりデバッグ済みにしてくれてるのを使いたいよ。
2017/07/18(火) 01:00:22.85ID:NDJOFNKG
>41
その用途に最も近いのは例外処理のtry-cattch構文だろうな
C言語では使えないけど
その用途に最も近いのは例外処理のtry-cattch構文だろうな
C言語では使えないけど
2017/07/18(火) 01:00:53.59ID:NDJOFNKG
try-catch
2017/07/18(火) 01:03:09.04ID:zmpO/wkd
try-catch遅くなかった?
2017/07/18(火) 01:03:12.76ID:r4nh1nKp
で
そのCスタイル22k行のコードはどういう書き方をしてたから読みやすかったんだ?
そのCスタイル22k行のコードはどういう書き方をしてたから読みやすかったんだ?
2017/07/18(火) 01:06:51.15ID:NDJOFNKG
2017/07/18(火) 01:09:17.66ID:zmpO/wkd
48デフォルトの名無しさん
2017/07/18(火) 01:10:26.49ID:sjXtAWuw setjmp, longjmp はペア
2017/07/18(火) 01:11:57.66ID:tZS7qvye
>>42
いやtry-catchはだいぶ違うぞ。
てかあれはC的エラー処理とは逆を行っている。
ただ最近は非同期が流行りだしてtry-catchでは対応できなくて
値埋め込み≒C的にはなってきてる。
個人的にはtry-catchは要らないなあ。
マルチレベルブレークはまあ、フラグ使って書けはするが、
見た目汚いから何とかならんのか、といったところ。
どっちかというとショートカット論理に使う。
いやtry-catchはだいぶ違うぞ。
てかあれはC的エラー処理とは逆を行っている。
ただ最近は非同期が流行りだしてtry-catchでは対応できなくて
値埋め込み≒C的にはなってきてる。
個人的にはtry-catchは要らないなあ。
マルチレベルブレークはまあ、フラグ使って書けはするが、
見た目汚いから何とかならんのか、といったところ。
どっちかというとショートカット論理に使う。
2017/07/18(火) 01:21:43.38ID:yLpc3eXF
>>34
Pythonがゴミだからなんなの? わざわざCスレでPythonアンチしていい理由にはならないよね
しかもあんな的外れで何も知らないこと丸わかりなアンチ書き込みしたら対象がどんな言語であっても荒れるに決まってるよね?
帰るのは君だよ
Pythonがゴミだからなんなの? わざわざCスレでPythonアンチしていい理由にはならないよね
しかもあんな的外れで何も知らないこと丸わかりなアンチ書き込みしたら対象がどんな言語であっても荒れるに決まってるよね?
帰るのは君だよ
51デフォルトの名無しさん
2017/07/18(火) 01:32:30.51ID:/ZeLwNbO >>39
すごいコードってのが分からんが、Haskellのprintfはコード見れるけど全く分からん。
(Hoogleでprintfで検索してソース覗く)
型推論出来れば普通のprintfにも、フォーマット済の文字列欲しい時はsprintf的にも使える関数なんだが。。。
すごいコードってのが分からんが、Haskellのprintfはコード見れるけど全く分からん。
(Hoogleでprintfで検索してソース覗く)
型推論出来れば普通のprintfにも、フォーマット済の文字列欲しい時はsprintf的にも使える関数なんだが。。。
2017/07/18(火) 02:23:27.20ID:tZS7qvye
>>51
おうサンクス。見てみたがなるほど分からん。
つっても俺はHaskellの文法も覚えてないレベルなんだが。
ただまあ、その仕様なら、確かに短いのかもね。
GNUのprintfって確か400行程度でgotoが20個くらいあるトンデモコードだったはずだが、
(探したけどすぐには出てこなかった)
それよりも仕様は大きいからねえ。
おうサンクス。見てみたがなるほど分からん。
つっても俺はHaskellの文法も覚えてないレベルなんだが。
ただまあ、その仕様なら、確かに短いのかもね。
GNUのprintfって確か400行程度でgotoが20個くらいあるトンデモコードだったはずだが、
(探したけどすぐには出てこなかった)
それよりも仕様は大きいからねえ。
2017/07/18(火) 02:24:26.42ID:tZS7qvye
>>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アプリあったら教えてください。
> すごいコード
これな。
俺が思うに問題はこういう「下位コード」ではなくて、
printfやオブジェクトを呼び出す「中位コード」の書きやすさだと思うんだよ。
関数型の連中と話していて違和感を感じるのはそこで、
奴らは10行のコードを5行にすることに精を出しているが、
10k行のコードを5k行にすることには興味が無いように見える。
実際のアプリを書いていて差が出るのはそこで、
Cはその点、最適なデータ構造を目指す、という方向に特化している。
だから構造体ポインタの塊になってしまうわけでさ。
それをもうちょっと自動的に取り扱おうとするとオブジェクト指向になり、C++になる。
で、そこらへんの「中位コード」のサンプルが無いんだよ。
具体的には10k-数万行を必要とするOSSアプリ。
Cの場合はこれはいくらでもあって、既に書いた通りlinuxやGit等。
C++ならFireFoxでもchromeでも、OSSで開発されているからいくらでも読める。
JavaScriptは最近atomエディタというのが出てきた。まあそれ以前から見放題ではあったが。
これに対して、「Haskell製の有名アプリ(OSS)」ってないよね?
(というか俺が知らないだけではあるが)
関数型の連中はCみたいな手続き型を悪く言うのだけど、それは全て下位コードなんだよ。
そして現実的には、下位コードなんて短く書けても大して意味無いんだよ。
どうせ読まないから。(名前がprintfな時点で読み飛ばし決定だし)
ただ、短く書けること自体はやはりすごくて、ポテンシャルがあるのは認めるが、
それが本当に使い物になるのか?については俺はちょっと疑問なんだ。
だから実際に動いているものを見て、どうなのか確認したいわけでさ。
というわけでHaskell製の有名OSSアプリあったら教えてください。
2017/07/18(火) 02:49:55.27ID:FK0nGZqt
>>27
LLで関数をオブジェクト扱いするような言語だと宣言前の関数を呼び出せるの相性悪いんだよね
一応確認して見た(シェルスクリプトみたいな特殊なものは無視)
Ruby→呼べない
perl→呼べない
lua→呼べない
PHP→呼べる(ただし、条件分岐内などの文脈で宣言されていない関数のみ)
JavaScriptl→呼べる(関数宣言「文」のみ)
JavaScriptの「巻き上げる」っていう仕様は結局わかりにくくて、ECMAScript以外で採用してる言語はないはず
LLで関数をオブジェクト扱いするような言語だと宣言前の関数を呼び出せるの相性悪いんだよね
一応確認して見た(シェルスクリプトみたいな特殊なものは無視)
Ruby→呼べない
perl→呼べない
lua→呼べない
PHP→呼べる(ただし、条件分岐内などの文脈で宣言されていない関数のみ)
JavaScriptl→呼べる(関数宣言「文」のみ)
JavaScriptの「巻き上げる」っていう仕様は結局わかりにくくて、ECMAScript以外で採用してる言語はないはず
2017/07/18(火) 03:10:01.00ID:FK0nGZqt
>>53
Pandocは現状かなり知名度あるんじゃないかな
https://github.com/jgm/pandoc
適当にググったらMoongiftのHaskellタグのやつそこそこあった
http://www.moongift.jp/tag/haskell
Pythonに関しては現物を見たことないの常識的にやばいと思うが・・・
機械学習とか数値処理とかの学術系はpython無双だし、Ansibleやyumみたいな管理系統、GUIソフトですらお前Python通って時がちらほら
Googleも社内標準言語にPython入ってて、Githubにもいくつか公開されてるな
Pandocは現状かなり知名度あるんじゃないかな
https://github.com/jgm/pandoc
適当にググったらMoongiftのHaskellタグのやつそこそこあった
http://www.moongift.jp/tag/haskell
Pythonに関しては現物を見たことないの常識的にやばいと思うが・・・
機械学習とか数値処理とかの学術系はpython無双だし、Ansibleやyumみたいな管理系統、GUIソフトですらお前Python通って時がちらほら
Googleも社内標準言語にPython入ってて、Githubにもいくつか公開されてるな
2017/07/18(火) 05:04:08.81ID:a2LOcSSt
>>20
それ再起呼び出しに対応できないことぐらいは理解してるよね?
それ再起呼び出しに対応できないことぐらいは理解してるよね?
2017/07/18(火) 05:45:17.46ID:yhFxnttF
>>56
そもそも、Cでは大抵別の関数に切り出すからそんな心配いらんよ
そもそも、Cでは大抵別の関数に切り出すからそんな心配いらんよ
2017/07/18(火) 08:27:43.78ID:qfl2Yypx
2017/07/18(火) 08:41:06.12ID:NDJOFNKG
別の関数として切り出しているから再起が出来るということだろ
無名関数の場合は再起には工夫が必要
>>20は無名関数とすら呼べない代物ではあるが…
https://ja.wikipedia.org/wiki/%E7%84%A1%E5%90%8D%E5%86%8D%E5%B8%B0
無名関数の場合は再起には工夫が必要
>>20は無名関数とすら呼べない代物ではあるが…
https://ja.wikipedia.org/wiki/%E7%84%A1%E5%90%8D%E5%86%8D%E5%B8%B0
2017/07/18(火) 08:58:56.41ID:yhFxnttF
心配性だねえ
再帰な
再帰な
61デフォルトの名無しさん
2017/07/18(火) 10:00:20.99ID:9AYHL0AJ >> https://mevius.2ch.net/test/read.cgi/tech/1494508803/990
> しかしヘッダファイルを用意するなんて完全に二度手間だし、
失笑
仕様と実装に分けて管理することが何の二度手間なんだよボケ
APIだとかインターフェイスだとかみんなそうだろうが
> コンパイラが自動的にやれよマジで、と思ったことは無いのか?
あああるよ
内製でサクッと作れてしまうほど簡単なことだからなおまえには簡単じゃないかも知れんがw
> 面倒ならなしでよし、
そうなってるだろうが、まさか知らんのか?
> その場合はコンパイラが勝手に探してくる、
これがおまえの言う「自動化」か
ワードやエクセルが「自動で」いらんことしやがるようなのがコンパイラにもついていて欲しいのかw
俺は反対、ライブラリをバージョン管理してるときなど断りもなく最新だか旧版だかとやられたら殺意がわく
> お前みたいに疑問を持ってない奴
疑問は持つぜ
おまえみたいに間違った正義を説くアホは見逃してねえだろ
> しかしヘッダファイルを用意するなんて完全に二度手間だし、
失笑
仕様と実装に分けて管理することが何の二度手間なんだよボケ
APIだとかインターフェイスだとかみんなそうだろうが
> コンパイラが自動的にやれよマジで、と思ったことは無いのか?
あああるよ
内製でサクッと作れてしまうほど簡単なことだからなおまえには簡単じゃないかも知れんがw
> 面倒ならなしでよし、
そうなってるだろうが、まさか知らんのか?
> その場合はコンパイラが勝手に探してくる、
これがおまえの言う「自動化」か
ワードやエクセルが「自動で」いらんことしやがるようなのがコンパイラにもついていて欲しいのかw
俺は反対、ライブラリをバージョン管理してるときなど断りもなく最新だか旧版だかとやられたら殺意がわく
> お前みたいに疑問を持ってない奴
疑問は持つぜ
おまえみたいに間違った正義を説くアホは見逃してねえだろ
2017/07/18(火) 11:46:36.57ID:Oj2nYHmM
CL /Zg じゃあかんのけ?
2017/07/18(火) 12:41:25.17ID:gVG2yFi+
>>59
無名関数の話なんて誰もしてないから無駄に絡んでこないでくれ
無名関数の話なんて誰もしてないから無駄に絡んでこないでくれ
64デフォルトの名無しさん
2017/07/18(火) 12:41:58.87ID:IlqGlOEF まだ続いてたのか……
仕様に不満があるのは理解できた。同意できるかどうかはともかく。
そろそろ、「不満があるから何をしてるのか」という話を聞きたいな。
仕様に不満があるのは理解できた。同意できるかどうかはともかく。
そろそろ、「不満があるから何をしてるのか」という話を聞きたいな。
2017/07/18(火) 14:49:00.45ID:D0vI4DI2
そもそも個人的にPythonをプログラムと呼ぶのに違和感ある
Pythonはスクリプトだろ
Pythonはスクリプトだろ
66デフォルトの名無しさん
2017/07/18(火) 15:27:18.14ID:P4sGRRLT お願いします。どうしても、課題ができません。どなたかわかる方いませんか?
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
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
67デフォルトの名無しさん
2017/07/18(火) 15:27:59.32ID:P4sGRRLT #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");
}
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");
}
68デフォルトの名無しさん
2017/07/18(火) 15:28:25.02ID:P4sGRRLT 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;
}
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;
}
69デフォルトの名無しさん
2017/07/18(火) 18:43:44.87ID:/pPGIQYg Makefileの書き方で質問なんだけど
all: hoge piyo fuga
みたいな行があるとして、 依存ファイルを変数みたいに使いたいんだけど
どう書いたらいいの? いちいち
HOGE := hoge piyo fuga
all: $(HOGE)
みたいに書かないとだめなの?
all: hoge piyo fuga
みたいな行があるとして、 依存ファイルを変数みたいに使いたいんだけど
どう書いたらいいの? いちいち
HOGE := hoge piyo fuga
all: $(HOGE)
みたいに書かないとだめなの?
70デフォルトの名無しさん
2017/07/18(火) 20:34:14.13ID:Cdvgr3b82017/07/18(火) 21:58:43.01ID:zbCywyZZ
2017/07/18(火) 22:05:43.42ID:zbCywyZZ
>>69
変数みたいにつかって何したいかわからんな。
makefileってそういうものだとしか、言えない。
依存関係は依存するファイルをコンパイラが出力してくれるから、それをincludeするなんてのも良くある。
変数みたいにつかって何したいかわからんな。
makefileってそういうものだとしか、言えない。
依存関係は依存するファイルをコンパイラが出力してくれるから、それをincludeするなんてのも良くある。
73デフォルトの名無しさん
2017/07/18(火) 23:26:17.54ID:fPBWIN/L74デフォルトの名無しさん
2017/07/18(火) 23:30:58.21ID:fPBWIN/L >>68
もう一箇所。
> fscanf(fp,"e-mail:%s",&str);
> printf("Eメール:ichiro@foo.bar\n",str);
惜しいな。strに読む所は良い。その後、それを出す所。これだと固定の文字列が出るだけだよね。
もう一箇所。
> fscanf(fp,"e-mail:%s",&str);
> printf("Eメール:ichiro@foo.bar\n",str);
惜しいな。strに読む所は良い。その後、それを出す所。これだと固定の文字列が出るだけだよね。
2017/07/18(火) 23:36:18.53ID:Th9l296P
専門学校一年です
プログラム言語っていくつも必要?応用性ある最強言語一つあればいいんでないの?
プログラム言語っていくつも必要?応用性ある最強言語一つあればいいんでないの?
2017/07/18(火) 23:48:43.24ID:tZS7qvye
>>46,48
なんか実装している奴いるぞ。
http://www.nurs.or.jp/~sug/soft/super/longjmp.htm
http://www.nurs.or.jp/~sug/soft/java/java25.htm
なんか実装している奴いるぞ。
http://www.nurs.or.jp/~sug/soft/super/longjmp.htm
http://www.nurs.or.jp/~sug/soft/java/java25.htm
2017/07/18(火) 23:49:23.68ID:tZS7qvye
>>54
Perlは出来るぞ。
Rubyは出来ないようだが。これは予想外だった。つかMatzはこっち側のはずだが。
luaは出来ないね。LiveDemoで確認した。
http://d.hatena.ne.jp/perlcodesample/20080615/1213501216
https://soudan1.biglobe.ne.jp/qa776599.html
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の思想なら制限しては駄目だ。一貫性がない。
逆にPythonはユーザーごとのばらつきこそが可読性を低下させるという思想だから、
制限するべきだし、実際にそうなっているから問題ない。こちらは一貫性がある。
結果、俺にとってはRubyも糞だと判明しだだけだな。
Perlは出来るぞ。
Rubyは出来ないようだが。これは予想外だった。つかMatzはこっち側のはずだが。
luaは出来ないね。LiveDemoで確認した。
http://d.hatena.ne.jp/perlcodesample/20080615/1213501216
https://soudan1.biglobe.ne.jp/qa776599.html
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の思想なら制限しては駄目だ。一貫性がない。
逆にPythonはユーザーごとのばらつきこそが可読性を低下させるという思想だから、
制限するべきだし、実際にそうなっているから問題ない。こちらは一貫性がある。
結果、俺にとってはRubyも糞だと判明しだだけだな。
2017/07/18(火) 23:50:25.98ID:tZS7qvye
>>55
> 機械学習とか数値処理とかの学術系
あまり詳しくはないが、MLとかは当てにならん。
あれらはループがえぐいだけで中身は大した事はない。
大半が下位コード、1k行か精々3k行程度のはずで、俺なら使い捨てにする。
しかも自分の環境で動けばいいだけのイージーモードだ。
がっつり保守されてる奴を見ないと実用上の向き不向きは分からん。
ウォーターフォールで作ればアホでも綺麗に作れるのは当たり前であって、
問題はそこからの耐性だから。
本来のOOPもそこからのスタートだったろ。
最近のOOPは若干暴走気味で、設計の設計の設計みたいな感じになっている奴も多いが。
で、教えてもらって文句を言うのも悪いんだが、、、
> pandoc
マークアップコンバータは再帰で実装できるからHaskell向きかもしれん。
ただこれもかなり簡単で、しかもどの言語でも実装できる代物でしかない。
要するに再帰とストリング系が強ければいけるから、
LL言語ならどれを使っても問題ないし、苦労もしないだろう。
Haskellを使ったからこそ生きる、というものではないと思う。
Cが使われている現場は、Cでしか書けないから、だ。
それはお世辞にも生産性が高いとはいい難いことの裏返しではあるが、
linuxKernelについてはLinus自身がC++では無理だったと言っているし、
Gitについても同様だ。
> gitのような、効率を第一の目的としたのには、C++の「利点」とやらは大失敗なんだよ。
> 実際のところ、LinuxではC++を試したことがある。1992年のことだった。
> 結果はクソだった。マジで、カーネルコードをC++で書くのは、ド低脳の考えだ。
> https://cpplover.blogspot.jp/2013/05/linus-torvalsc.html
実際Git全盛だし、Linuxについても
「安全なOOPでカーネルを書き直そう!」という話が10年程前には在った筈だが、
今全く聞かないので、完全にポシャったのだろう。
結果的にLinusの意見の正しさを証明している。
> 機械学習とか数値処理とかの学術系
あまり詳しくはないが、MLとかは当てにならん。
あれらはループがえぐいだけで中身は大した事はない。
大半が下位コード、1k行か精々3k行程度のはずで、俺なら使い捨てにする。
しかも自分の環境で動けばいいだけのイージーモードだ。
がっつり保守されてる奴を見ないと実用上の向き不向きは分からん。
ウォーターフォールで作ればアホでも綺麗に作れるのは当たり前であって、
問題はそこからの耐性だから。
本来のOOPもそこからのスタートだったろ。
最近のOOPは若干暴走気味で、設計の設計の設計みたいな感じになっている奴も多いが。
で、教えてもらって文句を言うのも悪いんだが、、、
> pandoc
マークアップコンバータは再帰で実装できるからHaskell向きかもしれん。
ただこれもかなり簡単で、しかもどの言語でも実装できる代物でしかない。
要するに再帰とストリング系が強ければいけるから、
LL言語ならどれを使っても問題ないし、苦労もしないだろう。
Haskellを使ったからこそ生きる、というものではないと思う。
Cが使われている現場は、Cでしか書けないから、だ。
それはお世辞にも生産性が高いとはいい難いことの裏返しではあるが、
linuxKernelについてはLinus自身がC++では無理だったと言っているし、
Gitについても同様だ。
> gitのような、効率を第一の目的としたのには、C++の「利点」とやらは大失敗なんだよ。
> 実際のところ、LinuxではC++を試したことがある。1992年のことだった。
> 結果はクソだった。マジで、カーネルコードをC++で書くのは、ド低脳の考えだ。
> https://cpplover.blogspot.jp/2013/05/linus-torvalsc.html
実際Git全盛だし、Linuxについても
「安全なOOPでカーネルを書き直そう!」という話が10年程前には在った筈だが、
今全く聞かないので、完全にポシャったのだろう。
結果的にLinusの意見の正しさを証明している。
2017/07/18(火) 23:51:25.94ID:tZS7qvye
Haskellの売りは遅延評価だろ?
ならば、遅延評価がビルトインで提供されているからこそこれだけ簡単に実装できる、
そうでない言語ではかなり辛いことになる、というところで戦わなければ意味が無い。
マークアップコンバータは違うし、そこに挙げられている他12種も同様だ。
Linusの言葉を借りるなら、
> (c) 授業でそういう課題を与えられた者
でしかない。他言語を既に十二分に使えるときに、それらアプリでHaskellを選択する理由がない。
遅延評価の利点は、俺が思うに、適当に書いても速いことだ。
具体的には、超大富豪プログラムを動的に貧民プログラムに変身させられる事だ。
だからチャキチャキ書けないと意味が無いのだが、Haskellはお世辞にもそういう感じではないだろ。
だからHaskell使いがあの程度のアプリしか作れない時点で将来性はないよ。
彼らもそれなりに優秀なはずで、仮に俺が学んだとしても、彼ら以上のものを作るのは容易ではない。
それで作れるものがあの程度?そそられねーな、って感じ。
あのラインナップなら今でも他言語で作れるし、多分そんなに苦労もしない。
とはいえこれはサンプルとしては素晴らしい。ありがとう。
保守されているし、俺が確認したい中位コードは大量に含まれているはずだ。
俺自身が他言語で実装できるだろうというのもいい。オレオレ実装と比較できる。
つまり、言語比較という意味ではかなりいい素材だ。
ただそれ以前に俺はHaskellをほぼ読めないので、読むのはずいぶん先になりそうだ。
これについては申し訳ないね。
ならば、遅延評価がビルトインで提供されているからこそこれだけ簡単に実装できる、
そうでない言語ではかなり辛いことになる、というところで戦わなければ意味が無い。
マークアップコンバータは違うし、そこに挙げられている他12種も同様だ。
Linusの言葉を借りるなら、
> (c) 授業でそういう課題を与えられた者
でしかない。他言語を既に十二分に使えるときに、それらアプリでHaskellを選択する理由がない。
遅延評価の利点は、俺が思うに、適当に書いても速いことだ。
具体的には、超大富豪プログラムを動的に貧民プログラムに変身させられる事だ。
だからチャキチャキ書けないと意味が無いのだが、Haskellはお世辞にもそういう感じではないだろ。
だからHaskell使いがあの程度のアプリしか作れない時点で将来性はないよ。
彼らもそれなりに優秀なはずで、仮に俺が学んだとしても、彼ら以上のものを作るのは容易ではない。
それで作れるものがあの程度?そそられねーな、って感じ。
あのラインナップなら今でも他言語で作れるし、多分そんなに苦労もしない。
とはいえこれはサンプルとしては素晴らしい。ありがとう。
保守されているし、俺が確認したい中位コードは大量に含まれているはずだ。
俺自身が他言語で実装できるだろうというのもいい。オレオレ実装と比較できる。
つまり、言語比較という意味ではかなりいい素材だ。
ただそれ以前に俺はHaskellをほぼ読めないので、読むのはずいぶん先になりそうだ。
これについては申し訳ないね。
2017/07/18(火) 23:52:11.26ID:tZS7qvye
> Ansibleやyum
お手軽スクリプトの域を出ないと思う。最悪、シェルスクリプトでも出来る範囲だろ。
C++の現場、たとえばブラウザでは、本当にエグイほど仕様変更が入って、
結果的にソースコードはぼろぼろになっていって、それでも保守している。
だからやっぱりLL言語はLL言語なんだと思うよ。
これだからスクリプターは、、、というのも当たってる。戦場の厳しさの次元が違う。
一通り動かすところまではどの言語を使っても出来る。
その過程で、例えばHaskellの遅延評価のような言語独自のフィーチャーがあり、
それを生かせれば素晴らしい。
しかしPythonにはそもそもそれがない。特に可もなく不可もなく、的な言語だ。
そして問題はそこから先で、
当初想定してなかった仕様変更が入ってきたときどこまで耐えられるかなのだが、
これに関してはPythonは不可も無いのだからそれなりではある。(悪くはない)
(なおJavaScriptはデタラメなパッチで一時しのぎする方法には事欠かないため、
俺はこの点も気に入っている)
エコシステムが云々、というのはおいておいて、
言語自体の能力で言えば、Pythonを積極的に選ぶ理由が一つもない。
とはいえ他言語は色々尖っていることも多いので、消極的にPythonってのもありだとは思うし、
実際そこにポジションしているとも思うが。Javaに近いというか。
両言語ともそれで繁栄しているのだから間違いでもないわけだが。
お手軽スクリプトの域を出ないと思う。最悪、シェルスクリプトでも出来る範囲だろ。
C++の現場、たとえばブラウザでは、本当にエグイほど仕様変更が入って、
結果的にソースコードはぼろぼろになっていって、それでも保守している。
だからやっぱりLL言語はLL言語なんだと思うよ。
これだからスクリプターは、、、というのも当たってる。戦場の厳しさの次元が違う。
一通り動かすところまではどの言語を使っても出来る。
その過程で、例えばHaskellの遅延評価のような言語独自のフィーチャーがあり、
それを生かせれば素晴らしい。
しかしPythonにはそもそもそれがない。特に可もなく不可もなく、的な言語だ。
そして問題はそこから先で、
当初想定してなかった仕様変更が入ってきたときどこまで耐えられるかなのだが、
これに関してはPythonは不可も無いのだからそれなりではある。(悪くはない)
(なおJavaScriptはデタラメなパッチで一時しのぎする方法には事欠かないため、
俺はこの点も気に入っている)
エコシステムが云々、というのはおいておいて、
言語自体の能力で言えば、Pythonを積極的に選ぶ理由が一つもない。
とはいえ他言語は色々尖っていることも多いので、消極的にPythonってのもありだとは思うし、
実際そこにポジションしているとも思うが。Javaに近いというか。
両言語ともそれで繁栄しているのだから間違いでもないわけだが。
2017/07/19(水) 00:28:57.41ID:42DPUduf
>>75
金鎚だけで家が作れるかね?
金鎚だけで家が作れるかね?
2017/07/19(水) 00:53:51.97ID:PZqfvVeo
2017/07/19(水) 01:09:15.68ID:Cm6fsZ7A
Cは大も小もなんでも書けるよ
ただ工数がかかるけど
ただ工数がかかるけど
84デフォルトの名無しさん
2017/07/19(水) 01:28:24.97ID:q7UYRLiM 確かにCはなんでも書ける。
きめ細かくハードウェアに密接するようなのも書ける。
OSやデバイスドライバも書ける。
OSなし環境向けの組み込み用マイコンボードのROMに書くプログラムなんかも書ける。
逆にいうと、きめ細かくしか書けない。それなりのライブラリが用意されてないと作るのが大変。
きめ細かくハードウェアに密接するようなのも書ける。
OSやデバイスドライバも書ける。
OSなし環境向けの組み込み用マイコンボードのROMに書くプログラムなんかも書ける。
逆にいうと、きめ細かくしか書けない。それなりのライブラリが用意されてないと作るのが大変。
2017/07/19(水) 01:36:11.94ID:9e7c5i6Q
つ アセンブリ言語
2017/07/19(水) 03:29:33.92ID:YP+Z6klr
>77
perlのやつは勘違いだった、すまん
>「分かりにくい」というのが理解不能で、単に関数スコープなだけだ。
関数の巻き上げは、ブラウザの種類、バージョン、strict modeの有無の組み合わせで位置と動作が不安定になったりするのはかなりわかりにくいと思う
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Functions_and_function_scope
>Rubyの思想なら制限しては駄目だ。一貫性がない
Rubyは「その場にメソッドを定義する」という機能を持つ文が用意されているだけ
「すべてはオブジェクト」という思想的に一貫してる
その結果、javascriptではできない関数の中身や別ファイル、if文の中とかでもメソッド定義が比較的自然に行える
hoge = □
def hoge
■
end if true
みたいなこともできないと仕様上不自然。
javascriptみたいにifをつけると巻き上げが起こらないみたいにすると、この場合では
ifなし→□
ifあり→■
みたいに非直感的な挙動になって一貫性が失われる。そう考えると、言語全体の仕様の見直しが必要になって・・・
と考えてくと、評価時に定義されるというのはそれはそれで合理的。
perlのやつは勘違いだった、すまん
>「分かりにくい」というのが理解不能で、単に関数スコープなだけだ。
関数の巻き上げは、ブラウザの種類、バージョン、strict modeの有無の組み合わせで位置と動作が不安定になったりするのはかなりわかりにくいと思う
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Functions_and_function_scope
>Rubyの思想なら制限しては駄目だ。一貫性がない
Rubyは「その場にメソッドを定義する」という機能を持つ文が用意されているだけ
「すべてはオブジェクト」という思想的に一貫してる
その結果、javascriptではできない関数の中身や別ファイル、if文の中とかでもメソッド定義が比較的自然に行える
hoge = □
def hoge
■
end if true
みたいなこともできないと仕様上不自然。
javascriptみたいにifをつけると巻き上げが起こらないみたいにすると、この場合では
ifなし→□
ifあり→■
みたいに非直感的な挙動になって一貫性が失われる。そう考えると、言語全体の仕様の見直しが必要になって・・・
と考えてくと、評価時に定義されるというのはそれはそれで合理的。
87デフォルトの名無しさん
2017/07/19(水) 03:52:13.57ID:q7UYRLiM2017/07/19(水) 04:35:20.40ID:YP+Z6klr
>>78-80
Haskellはちょうど具体例を知ってたから上げただけで全然わからないから詳しくはわからんので申し訳ない
人から数学系とHaskellを極めればいろんな界隈で需要があるらしいという噂だけ聞いたことはあるが
他の話は結局何が言いたいのかわからん
PythonはLL言語なんだから「お手軽スクリプト」として使うのは当たり前じゃん
機械学習とかの研究分野は、実装を素早く作って考えた手順を評価してを高速に繰り返すんだからC言語では無理。
それこそgitでも最初期の仕様を考えてるときはperlとか使ってたし
http://gihyo.jp/dev/serial/01/alpha-geek/0040
>消極的にPythonってのもありだとは思うし、実際そこにポジションしているとも思うが
大体の人はそれを理解してるのに突然「Pythonはクソ!使ったことないけどクソ!」ってやつがわいてきてみんな頭の中???
Haskellについてのやつを見ても思うけど、断片的な経験と情報、ネットで見た内容とかを元に理解したと思いこむ癖があるんだろう
個人のソフトはともかく、Googleとかパッケージマネージャとかで積極採用されるからにはそれなりの評価点があるはずなんだから、自分の考えは常に疑って更新したほうがいいぞ
Haskellはちょうど具体例を知ってたから上げただけで全然わからないから詳しくはわからんので申し訳ない
人から数学系とHaskellを極めればいろんな界隈で需要があるらしいという噂だけ聞いたことはあるが
他の話は結局何が言いたいのかわからん
PythonはLL言語なんだから「お手軽スクリプト」として使うのは当たり前じゃん
機械学習とかの研究分野は、実装を素早く作って考えた手順を評価してを高速に繰り返すんだからC言語では無理。
それこそgitでも最初期の仕様を考えてるときはperlとか使ってたし
http://gihyo.jp/dev/serial/01/alpha-geek/0040
>消極的にPythonってのもありだとは思うし、実際そこにポジションしているとも思うが
大体の人はそれを理解してるのに突然「Pythonはクソ!使ったことないけどクソ!」ってやつがわいてきてみんな頭の中???
Haskellについてのやつを見ても思うけど、断片的な経験と情報、ネットで見た内容とかを元に理解したと思いこむ癖があるんだろう
個人のソフトはともかく、Googleとかパッケージマネージャとかで積極採用されるからにはそれなりの評価点があるはずなんだから、自分の考えは常に疑って更新したほうがいいぞ
2017/07/19(水) 04:42:21.33ID:I/2F8nLs
要するに「なんでも書ける」は言い過ぎだということ
C言語がハードウェア寄りの記述が得意な言語であることは確かだけれど
それでも大抵はわざわざインラインアセンブラという抜け道を用意している
その理由はどうやっても書けないこともあるから
C言語がハードウェア寄りの記述が得意な言語であることは確かだけれど
それでも大抵はわざわざインラインアセンブラという抜け道を用意している
その理由はどうやっても書けないこともあるから
2017/07/19(水) 04:43:24.78ID:I/2F8nLs
91デフォルトの名無しさん
2017/07/19(水) 05:21:02.93ID:2gF8BL9h2017/07/19(水) 08:01:13.73ID:/uBE13O5
使ったこともない言語をディスり、同意しない相手は無知だと思っているガイジに汚染されたスレはここですか?
93デフォルトの名無しさん
2017/07/19(水) 08:13:15.18ID:q7UYRLiM94デフォルトの名無しさん
2017/07/19(水) 08:23:52.23ID:4WYjcaP8 >>53
Haskell処理系のGHCがまさにHaskellで書かれてるし、モナディウスっていうゲームはHaskeller界隈じゃ有名。
そもそもHaskellが有名になったのはPerl本家より早くPerl6の実装したのがキッカケ。
それまで知る人はほとんど居なかった。
Haskell処理系のGHCがまさにHaskellで書かれてるし、モナディウスっていうゲームはHaskeller界隈じゃ有名。
そもそもHaskellが有名になったのはPerl本家より早くPerl6の実装したのがキッカケ。
それまで知る人はほとんど居なかった。
2017/07/19(水) 08:29:05.26ID:I/2F8nLs
>>93
その通り
>きめ細かくハードウェアに密接するようなのも書ける。
>OSやデバイスドライバも書ける。
>OSなし環境向けの組み込み用マイコンボードのROMに書くプログラムなんかも書ける。
こういうのは全体からすればほんの少しだよ
その通り
>きめ細かくハードウェアに密接するようなのも書ける。
>OSやデバイスドライバも書ける。
>OSなし環境向けの組み込み用マイコンボードのROMに書くプログラムなんかも書ける。
こういうのは全体からすればほんの少しだよ
2017/07/19(水) 08:39:40.95ID:iAmsiybP
2017/07/19(水) 08:42:04.13ID:PZqfvVeo
98デフォルトの名無しさん
2017/07/19(水) 09:21:43.24ID:NslmVuOC >>72
変数を使いたくない ってことです
変数を使いたくない ってことです
2017/07/19(水) 09:28:45.98ID:rMOwSLhX
>>98
例えばどう書きたいの
例えばどう書きたいの
100デフォルトの名無しさん
2017/07/19(水) 10:08:57.54ID:iAmsiybP >>91
組み込み用コンパイラとかは拡張構文できれいに書けたりするけどね
組み込み用コンパイラとかは拡張構文できれいに書けたりするけどね
101デフォルトの名無しさん
2017/07/19(水) 10:35:07.29ID:Fe8jikVu プラットフォーム依存のレジスタいじったりする必要があるから
綺麗なCってのは難しい
綺麗なCの定義にもよるけど
まぁ関数化するなどして隠蔽化はできるけど
綺麗なCってのは難しい
綺麗なCの定義にもよるけど
まぁ関数化するなどして隠蔽化はできるけど
102デフォルトの名無しさん
2017/07/19(水) 10:41:07.44ID:4WYjcaP8103デフォルトの名無しさん
2017/07/19(水) 10:50:02.60ID:4WYjcaP8 >>100
組み込みはPICアセンブラで遊んだだけだけど、PC向けよりもハードがまだ完成してないと言うか、SoCでCPU(MPU)とメモリは用意するから後は自分で追加してねって感じだし、返って文法としては単純かもね。
結局CPUとしては計算以外じゃポートやメモリに読み書きするだけだし。
ハード作りながら入出力の関数も自作する感じですかね?
組み込みはPICアセンブラで遊んだだけだけど、PC向けよりもハードがまだ完成してないと言うか、SoCでCPU(MPU)とメモリは用意するから後は自分で追加してねって感じだし、返って文法としては単純かもね。
結局CPUとしては計算以外じゃポートやメモリに読み書きするだけだし。
ハード作りながら入出力の関数も自作する感じですかね?
104デフォルトの名無しさん
2017/07/19(水) 11:04:35.78ID:NslmVuOC >>99
HOGE := hoge piyo fuga
all: $(HOGE)
clean:; rm *.o $(HOGE)
みたいなのをたとえば
all: hoge piyo fuga
clean:; rm *.o ★(all)
みたいにすっきり書きたい
HOGE := hoge piyo fuga
all: $(HOGE)
clean:; rm *.o $(HOGE)
みたいなのをたとえば
all: hoge piyo fuga
clean:; rm *.o ★(all)
みたいにすっきり書きたい
105デフォルトの名無しさん
2017/07/19(水) 11:06:41.55ID:PmVzrrzS コンパイルするときにmakeとかcmakeとかありますけど他にもあるのかもしれませんけど
今ならどういうのが定番ですか?
今ならどういうのが定番ですか?
106デフォルトの名無しさん
2017/07/19(水) 11:13:41.95ID:NslmVuOC >>105
makeなんか捨ててninja使おうぜ
makeなんか捨ててninja使おうぜ
107デフォルトの名無しさん
2017/07/19(水) 11:49:17.31ID:HHR/5Ry0 >>104
ターゲットの依存ファイルを再帰的に展開すると言う事になるが、途中で止めたいとかわがまま言いだすだろ .hとか
例えそれが可能になったとしても、依存ファイルは、そのアクションを実行するために必要なので
削除するために作成すると言う極めて頭の悪い状況が発生する
ターゲットの依存ファイルを再帰的に展開すると言う事になるが、途中で止めたいとかわがまま言いだすだろ .hとか
例えそれが可能になったとしても、依存ファイルは、そのアクションを実行するために必要なので
削除するために作成すると言う極めて頭の悪い状況が発生する
108デフォルトの名無しさん
2017/07/19(水) 12:36:53.34ID:BDmDUIr4109デフォルトの名無しさん
2017/07/19(水) 13:37:37.50ID:NslmVuOC >>107-108
無理なら無理であきらめるぜー! センキュー!
無理なら無理であきらめるぜー! センキュー!
110デフォルトの名無しさん
2017/07/19(水) 21:27:36.88ID:WSo7MpMs cleanは、固定的に削除したほうがいいよ。でないとその内ゴミが混ざる。
まぁ、無理矢理やるなら
allに含めるターゲットを処理するときに中間リストへもファイル名を追加しといて、xargsに食わせるのが無難かと。
まぁ、無理矢理やるなら
allに含めるターゲットを処理するときに中間リストへもファイル名を追加しといて、xargsに食わせるのが無難かと。
111デフォルトの名無しさん
2017/07/19(水) 23:08:55.17ID:Cm6fsZ7A 時代はRubyのrake
112デフォルトの名無しさん
2017/07/19(水) 23:40:47.89ID:87ZFTsAE >>86
JavaScriptについては、Webリソース(というか個人ブログが多いが)も間違いが多いから注意した方がいい。
> strict modeの有無の組み合わせ
これが要らん。実際見りゃわかるが、全員 strict mode 使っている。
MDNは準仕様書みたいなものだから、非strict modeについても言及する必要もあるだけ。
> javascriptではできない関数の中身や別ファイル、if文の中とかでもメソッド定義が比較的自然に行える
いや、できるぞ。ただしやる必要もないし、意味もないが。
(strict mode の場合はif文中では禁止)
動的にクラス構成を変える必要があるケースはまずないが、(手抜きパッチを除く)
やる場合はプロパティとして差し込むので、それはただの文だ。どこにでも書ける。
function定義そのものではなく、関数ポインタを差し替える。
というか、ここら辺の流儀は他言語と同じだ。
俺は特に疑問を持ったこともなく、分かりにくいとも思わないが。
JavaScriptについては、Webリソース(というか個人ブログが多いが)も間違いが多いから注意した方がいい。
> strict modeの有無の組み合わせ
これが要らん。実際見りゃわかるが、全員 strict mode 使っている。
MDNは準仕様書みたいなものだから、非strict modeについても言及する必要もあるだけ。
> javascriptではできない関数の中身や別ファイル、if文の中とかでもメソッド定義が比較的自然に行える
いや、できるぞ。ただしやる必要もないし、意味もないが。
(strict mode の場合はif文中では禁止)
動的にクラス構成を変える必要があるケースはまずないが、(手抜きパッチを除く)
やる場合はプロパティとして差し込むので、それはただの文だ。どこにでも書ける。
function定義そのものではなく、関数ポインタを差し替える。
というか、ここら辺の流儀は他言語と同じだ。
俺は特に疑問を持ったこともなく、分かりにくいとも思わないが。
113デフォルトの名無しさん
2017/07/19(水) 23:41:35.90ID:87ZFTsAE > javascriptみたいにifをつけると巻き上げが起こらないみたいにすると
これが違う。(内容自体ではなく、考え方が違う)
プログラミングを暗記で済ませようという馬鹿はJavaScript界隈に多いが、
そうとしか捉えられないのなら、向いて無いから止めた方がいい。(君が上達することはない)
それは「数学は暗記だ!」と言っているようなものだ。
或いはどうにも高校の物理に全く付いていけなかった奴とか。
あれは今にしたら分かるが、抽象思考が出来ない奴には無理だったということだ。
そしてプログラミングではその抽象思考こそが重要であり、逆に、それ以外は大して必要ない。
順に評価されるべきものは順に評価され、(巻き上げなし)、
そうでないものはC的に静的に評価されるだけ。(巻き上げあり)
俺は疑問を感じたことはない。
「巻上げという仕様ガー」とか言い出すから余計に意味不明になるのであって、
そもそも最初から直感的だ。後方参照できるだけでしかない。
JavaScriptはC(正確にはC++)以上に文法が抽象化されているから、暗記には向いてない。
結果的にC++並みのことがC並みの文法で出来るようになっている。俺はここも気に入っている。
それとは別に、君が「全部上から順に評価してくれなきゃヤダ」ならRubyの仕様をマンセーすればいいが、
JavaScriptの仕様はC等コンパイル言語を使ったことがあるやつにとっては非常に直感的だ。
俺にとってはRubyの仕様はウザいだけだね。
これが違う。(内容自体ではなく、考え方が違う)
プログラミングを暗記で済ませようという馬鹿はJavaScript界隈に多いが、
そうとしか捉えられないのなら、向いて無いから止めた方がいい。(君が上達することはない)
それは「数学は暗記だ!」と言っているようなものだ。
或いはどうにも高校の物理に全く付いていけなかった奴とか。
あれは今にしたら分かるが、抽象思考が出来ない奴には無理だったということだ。
そしてプログラミングではその抽象思考こそが重要であり、逆に、それ以外は大して必要ない。
順に評価されるべきものは順に評価され、(巻き上げなし)、
そうでないものはC的に静的に評価されるだけ。(巻き上げあり)
俺は疑問を感じたことはない。
「巻上げという仕様ガー」とか言い出すから余計に意味不明になるのであって、
そもそも最初から直感的だ。後方参照できるだけでしかない。
JavaScriptはC(正確にはC++)以上に文法が抽象化されているから、暗記には向いてない。
結果的にC++並みのことがC並みの文法で出来るようになっている。俺はここも気に入っている。
それとは別に、君が「全部上から順に評価してくれなきゃヤダ」ならRubyの仕様をマンセーすればいいが、
JavaScriptの仕様はC等コンパイル言語を使ったことがあるやつにとっては非常に直感的だ。
俺にとってはRubyの仕様はウザいだけだね。
114デフォルトの名無しさん
2017/07/19(水) 23:42:29.67ID:87ZFTsAE >>88
要するにスクリプト言語はラピッドプロトタイピングには向いているんだよ。
そしてPCの能力が十二分に上がったので、
その遅いコードでも十分実用的だし、問題ないからそのまま使われてる。
俺も、もう低位コードだけCのDLLにして、
中上位コードは全面的にスクリプト言語で行った方がいいと思っている。楽だから。
NumPyはまさにこれでしょ。俺からみてもgoogleの動きは全然不思議じゃない。
ていうか多分、マトモなプログラマならgoogleの動きを不思議に思う奴はいない。
君がそんな言い方をする時点で君は色々分かってないと自白しているようなものなんだが。
> Googleとかパッケージマネージャとかで積極採用されるからにはそれなりの評価点があるはずなんだから
評価点はないね。ビジネス上の観点でしかない。
googleは社内言語を絞ってる。C++/Java/JavaScript/Pythonだ。この中ならPythonだろうさ。
だから、仮にRubyやHaskellがgoogle社内で評価されたとしても、
それらで書かれたツールが出てくることはない。
要するにスクリプト言語はラピッドプロトタイピングには向いているんだよ。
そしてPCの能力が十二分に上がったので、
その遅いコードでも十分実用的だし、問題ないからそのまま使われてる。
俺も、もう低位コードだけCのDLLにして、
中上位コードは全面的にスクリプト言語で行った方がいいと思っている。楽だから。
NumPyはまさにこれでしょ。俺からみてもgoogleの動きは全然不思議じゃない。
ていうか多分、マトモなプログラマならgoogleの動きを不思議に思う奴はいない。
君がそんな言い方をする時点で君は色々分かってないと自白しているようなものなんだが。
> Googleとかパッケージマネージャとかで積極採用されるからにはそれなりの評価点があるはずなんだから
評価点はないね。ビジネス上の観点でしかない。
googleは社内言語を絞ってる。C++/Java/JavaScript/Pythonだ。この中ならPythonだろうさ。
だから、仮にRubyやHaskellがgoogle社内で評価されたとしても、
それらで書かれたツールが出てくることはない。
115デフォルトの名無しさん
2017/07/19(水) 23:43:14.27ID:87ZFTsAE >>94
> GHC
サンクス、そうであったか。これもサンプルとしてはいいね。
> モナディウス
Haskellってexeかよ!やってみた。グラディウスにしては速すぎる、、、左手が辛い、、、
> Perl6
つかそれってどういうことだ?
構文解釈等に関しては、実は圧倒的に単純に実装できたりするのか?
pandocもそっち系だ。俺には遅延評価とは無関係としか思えないのだが。
> GHC
サンクス、そうであったか。これもサンプルとしてはいいね。
> モナディウス
Haskellってexeかよ!やってみた。グラディウスにしては速すぎる、、、左手が辛い、、、
> Perl6
つかそれってどういうことだ?
構文解釈等に関しては、実は圧倒的に単純に実装できたりするのか?
pandocもそっち系だ。俺には遅延評価とは無関係としか思えないのだが。
116デフォルトの名無しさん
2017/07/19(水) 23:50:34.51ID:/uBE13O5 知識のない奴程語りたがる好例
117デフォルトの名無しさん
2017/07/19(水) 23:51:34.81ID:b4rxwY3N C始めるためにVS2017インストして苦C見ようとしてるんだけどどこをどうすればソースを書けるのかちんぷんかんぷん
そもそもCの内容をC++で書けるのか怪しい
スレチかもしれないけど助けて詳しい人
そもそもCの内容をC++で書けるのか怪しい
スレチかもしれないけど助けて詳しい人
118デフォルトの名無しさん
2017/07/19(水) 23:52:22.89ID:D2iudQ65 な、長ぇ…
119デフォルトの名無しさん
2017/07/19(水) 23:55:40.31ID:/uBE13O5 完全な初心者?
120デフォルトの名無しさん
2017/07/20(木) 00:08:04.51ID:hVyvHmVu ラピッドプロトタイピング用に作られたのがスクリプト言語なんだから向いてて当たり前
ハードではFPGAなんかがASIC前のラピッドプロトタイピング用だね
しかし中上位コードしかかけん奴らがプログラマ気取る風潮はいかがなものかと危惧する
Cでの低位コードもスクリプト言語での中上位コードも書けんとな
ハードではFPGAなんかがASIC前のラピッドプロトタイピング用だね
しかし中上位コードしかかけん奴らがプログラマ気取る風潮はいかがなものかと危惧する
Cでの低位コードもスクリプト言語での中上位コードも書けんとな
121片山博文MZ ◆T6xkBnTXz7B0
2017/07/20(木) 00:09:55.72ID:m6IHlIP+ >>117
適当な場所(フォルダ)にプロジェクトファイルを作成します。
プロジェクトにソースファイルを追加します。
ソースファイルにソースを書きます。
ビルドします。
デバッグ実行して、正しく動作するか確認します。
バグがあれば修正します。
リリースビルドして、EXEを作成。
exeを配布します。
適当な場所(フォルダ)にプロジェクトファイルを作成します。
プロジェクトにソースファイルを追加します。
ソースファイルにソースを書きます。
ビルドします。
デバッグ実行して、正しく動作するか確認します。
バグがあれば修正します。
リリースビルドして、EXEを作成。
exeを配布します。
122デフォルトの名無しさん
2017/07/20(木) 00:15:44.40ID:X5om2hjt 任意のエディタでソースを書きます。CL.EXEでコンパイルします。以上
123デフォルトの名無しさん
2017/07/20(木) 00:16:25.56ID:u2xEebDY124デフォルトの名無しさん
2017/07/20(木) 00:32:04.78ID:13Lyjczi125デフォルトの名無しさん
2017/07/20(木) 00:32:44.03ID:AEwXV/7G >>120
上二行は後付。sed->awk->Perl->その他もろもろ、だろ。PLD->FPGAでもあるし。
下二行は時代の要請。
> MITがSICPを教えなくなった理由
> https://cpplover.blogspot.jp/2016/05/mitsicp.html
俺は中上位コードだけでもいいと思うけど、書き捨てばっかやってるのは駄目だと思う。
こういうことをすると保守ではまるのかーがないと、回避する能力が育たない。
上二行は後付。sed->awk->Perl->その他もろもろ、だろ。PLD->FPGAでもあるし。
下二行は時代の要請。
> MITがSICPを教えなくなった理由
> https://cpplover.blogspot.jp/2016/05/mitsicp.html
俺は中上位コードだけでもいいと思うけど、書き捨てばっかやってるのは駄目だと思う。
こういうことをすると保守ではまるのかーがないと、回避する能力が育たない。
126デフォルトの名無しさん
2017/07/20(木) 00:36:40.77ID:lc7WOVge >>115
関数型全般に言えるけど、言語やテーブルゲームの問題解かせたりし易い。
遅延評価はwebアプリでHTMLの長さを気にしないで読み込める無限リスト便利って読んだことあるな。
んなのどの言語でもそんな変わらんとは思うが。
どっちかと言うとIO部分分離してるから自然とMVCとかMVVMな設計になるってのがメリットに感じる。
関数型全般に言えるけど、言語やテーブルゲームの問題解かせたりし易い。
遅延評価はwebアプリでHTMLの長さを気にしないで読み込める無限リスト便利って読んだことあるな。
んなのどの言語でもそんな変わらんとは思うが。
どっちかと言うとIO部分分離してるから自然とMVCとかMVVMな設計になるってのがメリットに感じる。
127デフォルトの名無しさん
2017/07/20(木) 01:40:25.59ID:AEwXV/7G >>126
なるほど言語向きなのは関数型の特性か。
確かにbisonが一体化しているようにも見える。
遅延評価で無限リストがーってのは多分Webライタのデタラメ。
実際、無限リストなんて使おうと思ったことないだろ。
HTMLは多分頭からパースしないと悲惨なことになるだろうし。
(一部曖昧なところがあるらしい)
遅延評価は後払い方式のため、
読み込んだものの、結果的に使わずに捨てたデータが多い場合に負荷が軽くなる。
もちろんオーバーヘッドはあるので、全部使うのなら正格評価の方が軽い。
だから理想的にはどれを使うかきっちり管理して正格評価することだが、
これが面倒な場合は遅延評価にしておけば勝手にそうなる。
ノリとしてはGCと似てる。(管理が面倒なら遅延評価にしとけ)
で、マークアップコンバータとかも、全文書を評価することが分かりきっているのだから、
管理も要らず、普通に考えて正格評価の方が適している。だからあのラインナップは謎だった。
関数型言語の特性だということなら納得だ。
> 自然とMVCとかMVVMな設計になる
これはなあ、、、Cでも苦労するわけでもないので、言語特性ではなく、意識付けの問題かと。
実際にHaskell使おうって奴らはここら辺についても意識高いだろうし、
いい方向に寄与しているとは思うよ。
なるほど言語向きなのは関数型の特性か。
確かにbisonが一体化しているようにも見える。
遅延評価で無限リストがーってのは多分Webライタのデタラメ。
実際、無限リストなんて使おうと思ったことないだろ。
HTMLは多分頭からパースしないと悲惨なことになるだろうし。
(一部曖昧なところがあるらしい)
遅延評価は後払い方式のため、
読み込んだものの、結果的に使わずに捨てたデータが多い場合に負荷が軽くなる。
もちろんオーバーヘッドはあるので、全部使うのなら正格評価の方が軽い。
だから理想的にはどれを使うかきっちり管理して正格評価することだが、
これが面倒な場合は遅延評価にしておけば勝手にそうなる。
ノリとしてはGCと似てる。(管理が面倒なら遅延評価にしとけ)
で、マークアップコンバータとかも、全文書を評価することが分かりきっているのだから、
管理も要らず、普通に考えて正格評価の方が適している。だからあのラインナップは謎だった。
関数型言語の特性だということなら納得だ。
> 自然とMVCとかMVVMな設計になる
これはなあ、、、Cでも苦労するわけでもないので、言語特性ではなく、意識付けの問題かと。
実際にHaskell使おうって奴らはここら辺についても意識高いだろうし、
いい方向に寄与しているとは思うよ。
128デフォルトの名無しさん
2017/07/20(木) 03:16:53.07ID:X0EJcA/q >>112-115
>全員 strict mode 使っている。
新しいソースはね。破壊的変更だから古いソースはstrictじゃない場合も多い。
>俺にとってはRubyの仕様はウザいだけだね。
俺もメインでやってるのは静的言語だけど、JavaScriptもPythonもRubyも関数に関してはうざいと思うことはないな
単純に慣れの問題でお前のRubyやPythonの経験が不足してるだけだと思う
Pythonやる前はインデントって不便だろうって思ってたけどすぐなれたし、使ったこともない言語を適当にディスるのはよくないぞ
>最初から直感的だ、後方参照できるだけでしかない
初心者なら直感の理解でいいかもしれんが、ちゃんと仕様を理解するに越したことはない
undefinedが予約語じゃない、typeofの結果が意味不明みたいにjavascriptも含めどの言語にも直感に反する仕様が存在するし、それを利用したライブラリとかのソース読むときにある程度理解してないと困る
>俺からみてもgoogleの動きは全然不思議じゃない。
ID:LYlgQVUQとかID:tZS7qvyeとは別の人?
「Pythonは馬鹿用言語」「Pythonなんてキチガイ馬鹿用言語」っていう人にそんならGoogleみたいなところも使ってるよって言っただけなんだが
>googleは社内言語を絞ってる。C++/Java/JavaScript/Pythonだ
知識が更新されてないな。現在はC/C++、Java、JavaScript、Python、Go、TypeScriptのはず
>評価点はないね。ビジネス上の観点でしかない。
ビジネス上の観点も大事な評価点でしょ
>全員 strict mode 使っている。
新しいソースはね。破壊的変更だから古いソースはstrictじゃない場合も多い。
>俺にとってはRubyの仕様はウザいだけだね。
俺もメインでやってるのは静的言語だけど、JavaScriptもPythonもRubyも関数に関してはうざいと思うことはないな
単純に慣れの問題でお前のRubyやPythonの経験が不足してるだけだと思う
Pythonやる前はインデントって不便だろうって思ってたけどすぐなれたし、使ったこともない言語を適当にディスるのはよくないぞ
>最初から直感的だ、後方参照できるだけでしかない
初心者なら直感の理解でいいかもしれんが、ちゃんと仕様を理解するに越したことはない
undefinedが予約語じゃない、typeofの結果が意味不明みたいにjavascriptも含めどの言語にも直感に反する仕様が存在するし、それを利用したライブラリとかのソース読むときにある程度理解してないと困る
>俺からみてもgoogleの動きは全然不思議じゃない。
ID:LYlgQVUQとかID:tZS7qvyeとは別の人?
「Pythonは馬鹿用言語」「Pythonなんてキチガイ馬鹿用言語」っていう人にそんならGoogleみたいなところも使ってるよって言っただけなんだが
>googleは社内言語を絞ってる。C++/Java/JavaScript/Pythonだ
知識が更新されてないな。現在はC/C++、Java、JavaScript、Python、Go、TypeScriptのはず
>評価点はないね。ビジネス上の観点でしかない。
ビジネス上の観点も大事な評価点でしょ
129デフォルトの名無しさん
2017/07/20(木) 03:42:11.85ID:X0EJcA/q そもそも「文法が抽象化されている」ってどういうことだろう
javascriptはIE6時代から見てるからかもしれんが、文法からライブラリまで欠陥だらけで、現在の具体的な実装こそが正義な言語というイメージなんだけどな
クラスやプロトタイプチェーンの仕組みとか、thisがどこを指すかとか、for inとオブジェクトや配列がらみの仕様とか直感で完全に理解できる人はいないはず
言語仕様に関しては、C言語も//コメントは使うのに関数先頭以外で変数を宣言できないと思い込んでる人とか結構多いんだよなぁ・・・
javascriptはIE6時代から見てるからかもしれんが、文法からライブラリまで欠陥だらけで、現在の具体的な実装こそが正義な言語というイメージなんだけどな
クラスやプロトタイプチェーンの仕組みとか、thisがどこを指すかとか、for inとオブジェクトや配列がらみの仕様とか直感で完全に理解できる人はいないはず
言語仕様に関しては、C言語も//コメントは使うのに関数先頭以外で変数を宣言できないと思い込んでる人とか結構多いんだよなぁ・・・
130デフォルトの名無しさん
2017/07/20(木) 09:24:07.80ID:VLxfq0H/ 複合文の中で変数を宣言できるのを知らないやつはたまにいるが
printf("aho");
int boke;
これ知らねえやつはいねえだろ
逆に制限のある環境でこれをやってエラー吐かれるアフォがいるくらいで
printf("aho");
int boke;
これ知らねえやつはいねえだろ
逆に制限のある環境でこれをやってエラー吐かれるアフォがいるくらいで
131デフォルトの名無しさん
2017/07/20(木) 09:29:55.18ID:Wske8588 ガイジがスクリプト言語に対する感想を述べる場となったC言語スレ
132デフォルトの名無しさん
2017/07/20(木) 11:37:31.64ID:Gk3qg8E2 for( int i=0; i<10; i++) {
print i;
}
で、「i のスコープは for ブロックの中」って言うけど
ブロックって、中括弧の中だよね?
print i;
}
で、「i のスコープは for ブロックの中」って言うけど
ブロックって、中括弧の中だよね?
133デフォルトの名無しさん
2017/07/20(木) 11:48:22.63ID:VLxfq0H/ i++ が中括弧の外にあるようだが?
134デフォルトの名無しさん
2017/07/20(木) 12:04:35.30ID:Gk3qg8E2 そうそう。
だから、中括弧の外にもう一つ別のスコープがあるんだね。試してみた。
だから、中括弧の外にもう一つ別のスコープがあるんだね。試してみた。
135デフォルトの名無しさん
2017/07/20(木) 13:59:07.50ID:/8Z4pO5Y i のスコープより
> print i;
の方が重大な問題だろ
> print i;
の方が重大な問題だろ
136デフォルトの名無しさん
2017/07/20(木) 14:01:49.38ID:oqUsFpSj 関数呼び出し演算子無しで呼べるとはC言語では無いな
137デフォルトの名無しさん
2017/07/20(木) 14:54:53.75ID:Gk3qg8E2 すまん、最近 Quick BASIC 始めたからつい。
138デフォルトの名無しさん
2017/07/20(木) 15:15:43.25ID:aeaiTPav もうプチコンで開発するわ!
139デフォルトの名無しさん
2017/07/20(木) 15:47:57.27ID:VLxfq0H/ >>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つって、いつそうなったんだ?
ああそうか、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つって、いつそうなったんだ?
140デフォルトの名無しさん
2017/07/20(木) 15:48:59.77ID:VLxfq0H/ 訂正
for ( expressionopt ; expressionopt ; expressionopt ) statement for
( declaration expressionopt ; expressionopt ) statement
って書いてあってびっくりしてる
for ( expressionopt ; expressionopt ; expressionopt ) statement for
( declaration expressionopt ; expressionopt ) statement
って書いてあってびっくりしてる
141デフォルトの名無しさん
2017/07/21(金) 10:48:58.02ID:C+EZcupv unsigned int を uint32 みたいに書くやつ
あれの標準ヘッダができたの C99 から?
あれの標準ヘッダができたの C99 から?
142片山博文MZ ◆T6xkBnTXz7B0
2017/07/21(金) 11:23:14.96ID:ZkpJBjBK uint32_tね。そうだ。
143デフォルトの名無しさん
2017/07/21(金) 23:40:03.14ID:K6oF7/iC144デフォルトの名無しさん
2017/07/22(土) 13:45:26.72ID:jxtKz7JV C11とかC99とか似合わせてチェックしてくれるツールってありませんか?
145デフォルトの名無しさん
2017/07/22(土) 14:09:07.67ID:nEpy0tzd なにを?
146デフォルトの名無しさん
2017/07/22(土) 15:36:12.70ID:uvo/ftbB147デフォルトの名無しさん
2017/07/22(土) 17:15:23.73ID:4ZNVKbnD お隣はもうC11ですってよ!
うちも11にしましょうよ。ボーナスでたんでしょ。
うちも11にしましょうよ。ボーナスでたんでしょ。
148デフォルトの名無しさん
2017/07/22(土) 17:42:54.52ID:TVAxaytW C++を使えないかあるいはあえて使わないポリシーなのでなければ、C++をbetter Cとして使う方が
いろいろ楽だと思うがな。
いろいろ楽だと思うがな。
149デフォルトの名無しさん
2017/07/22(土) 17:56:47.93ID:uvo/ftbB150デフォルトの名無しさん
2017/07/22(土) 18:58:02.33ID:YJU7D9tD 隣のC99は青くみえる
151デフォルトの名無しさん
2017/07/22(土) 19:03:04.98ID:yf/DliCJ 俺はstdint.h相当のヘッダファイルを自作してるけどな。
C89コンパイラだったら自作をincludeするようにしてる。
C89コンパイラだったら自作をincludeするようにしてる。
152デフォルトの名無しさん
2017/07/22(土) 22:05:24.77ID:0HjhMGYw >>148
betterCとしてC++使ってたら今度は「今時生ポインタなんてありえない、unique_ptr使え」と圧力がかかって、どこまでC++の機能使うか悩む
betterCとしてC++使ってたら今度は「今時生ポインタなんてありえない、unique_ptr使え」と圧力がかかって、どこまでC++の機能使うか悩む
153デフォルトの名無しさん
2017/07/22(土) 22:20:17.19ID:XcmtOt3t ベターCとしての使い方は、C++という名のとおり、設計どおりの使い方だ
基本的にCとの共通部分だけ、C++のみの拡張機能は欲しいところだけつまみ食いは、邪道ではない
unique_ptrも例外ではなく、欲しければ使い、いらなければスルー
それでいい、至極真っ当な使い方だ
基本的にCとの共通部分だけ、C++のみの拡張機能は欲しいところだけつまみ食いは、邪道ではない
unique_ptrも例外ではなく、欲しければ使い、いらなければスルー
それでいい、至極真っ当な使い方だ
154デフォルトの名無しさん
2017/07/22(土) 23:32:49.28ID:0HjhMGYw いいこと言うなあ
C with lambdaとして使う踏ん切りがついたわ
C with lambdaとして使う踏ん切りがついたわ
155デフォルトの名無しさん
2017/07/23(日) 00:22:49.43ID:yjtelfLq >>154
それならスクリプト言語の方が手っ取り早いと思うがな。
全部shared_ptrやRAIIならほぼGCだろ、とも思うし。
というかC++erの生ポ嫌いは一体なんなんだ?
元々メモリリーク自体はそんなに苦労しないよな?今時ツールで検出できるみたいだし。
Cで何らかのタスク(演算等)をこなす場合、
構造化プログラミングだから同一関数内での確保&解放が多いし。
(というか、そのように書きたければ大概の場合はできる)
それならスクリプト言語の方が手っ取り早いと思うがな。
全部shared_ptrやRAIIならほぼGCだろ、とも思うし。
というかC++erの生ポ嫌いは一体なんなんだ?
元々メモリリーク自体はそんなに苦労しないよな?今時ツールで検出できるみたいだし。
Cで何らかのタスク(演算等)をこなす場合、
構造化プログラミングだから同一関数内での確保&解放が多いし。
(というか、そのように書きたければ大概の場合はできる)
156デフォルトの名無しさん
2017/07/23(日) 00:32:19.27ID:2YxatxBr157デフォルトの名無しさん
2017/07/23(日) 01:06:53.41ID:yjtelfLq ちょっと補足しておく。
俺が思うに、容量的に問題がないのであれば、
大体の場合はmallocではなくallocaで実装でき、当然、管理する必要もない。
だからCはもうちょっとalloca推奨でもいいとは思うし、
そのためにもうちょっとスタック領域に多めに割り当ててくれとも思う。
(コンパイラがallocaをmalloc+freeに分解し、呼んだ関数の末尾でfreeしてくれてもいい。
そうすれば容量の心配ないallocaが手に入るから。
てかこれやってるコンパイラないんか?誰でも思いつきそうだが)
俺が思うに、容量的に問題がないのであれば、
大体の場合はmallocではなくallocaで実装でき、当然、管理する必要もない。
だからCはもうちょっとalloca推奨でもいいとは思うし、
そのためにもうちょっとスタック領域に多めに割り当ててくれとも思う。
(コンパイラがallocaをmalloc+freeに分解し、呼んだ関数の末尾でfreeしてくれてもいい。
そうすれば容量の心配ないallocaが手に入るから。
てかこれやってるコンパイラないんか?誰でも思いつきそうだが)
158デフォルトの名無しさん
2017/07/23(日) 01:43:34.81ID:Juol04gL んー、イメージ的には、組み込み系が多そうだしcならヒープ使った方がいいきがする。
小メモリで済むのはc最大のアドバンテージだと思うんだ。
小メモリで済むのはc最大のアドバンテージだと思うんだ。
159デフォルトの名無しさん
2017/07/23(日) 02:13:19.95ID:QcJiE5IU >>155
なんでC with lambdaならスクリプト言語の方が手っ取り早いのか全くわからん
なんでC with lambdaならスクリプト言語の方が手っ取り早いのか全くわからん
160デフォルトの名無しさん
2017/07/23(日) 08:51:27.89ID:bC6CfLCk > 構造化プログラミングだから同一関数内での確保&解放が多いし。
このフワフワした一文だけで、今後こいつからは何の情報も得られないのが分かる
このフワフワした一文だけで、今後こいつからは何の情報も得られないのが分かる
161デフォルトの名無しさん
2017/07/23(日) 11:07:58.09ID:EA1ZzpWz162デフォルトの名無しさん
2017/07/23(日) 15:05:48.85ID:Tqr2YDDV >>153
designated initializerが使えないのでワースCだ
designated initializerが使えないのでワースCだ
163デフォルトの名無しさん
2017/07/23(日) 16:32:54.76ID:yjtelfLq >>162
これか。
https://stackoverflow.com/questions/18731707/why-does-c11-not-support-designated-initializer-list-as-c99
つか入れない理由ないし、ClangとVSでは使えるとも書いてあるが、
C++仕様自体は無駄に意識高くて無視しているといったところか。
一部C++がCの完全上位互換ではない部分があると聞いたが、これか。
他にあれば、キーワードだけでも教えてくれれば助かる。
これか。
https://stackoverflow.com/questions/18731707/why-does-c11-not-support-designated-initializer-list-as-c99
つか入れない理由ないし、ClangとVSでは使えるとも書いてあるが、
C++仕様自体は無駄に意識高くて無視しているといったところか。
一部C++がCの完全上位互換ではない部分があると聞いたが、これか。
他にあれば、キーワードだけでも教えてくれれば助かる。
164デフォルトの名無しさん
2017/07/23(日) 16:48:41.41ID:hUTftRXy tentative
restrict
_Imaginal
_Thread_local
_Generic
_Bool
extern const
storage class "auto"
pointer to register
restrict
_Imaginal
_Thread_local
_Generic
_Bool
extern const
storage class "auto"
pointer to register
165デフォルトの名無しさん
2017/07/23(日) 17:18:38.88ID:yjtelfLq >>164
サンクス。感想は以下。
俺には我慢できる範囲だな。
tentative <- 要らん、つか廃止の方がいい
restrict <- ねえのかよ!しかし自動並列化とかしない限り要らん
_Imaginal <- class があるから要らん
_Thread_local <- これはC++にあってもいいと思うが、、、
_Generic <- マクロがらみか?価値は俺にはよく分からん
_Bool <- boolが既に拡張済みだから要らん
extern const <- 個人的にはconst派ではないからいいや
storage class "auto" <- なんだこれ?いわゆる自動変数って全部これだと思うが、、、
pointer to register <- registerそのものが最早要らんし
サンクス。感想は以下。
俺には我慢できる範囲だな。
tentative <- 要らん、つか廃止の方がいい
restrict <- ねえのかよ!しかし自動並列化とかしない限り要らん
_Imaginal <- class があるから要らん
_Thread_local <- これはC++にあってもいいと思うが、、、
_Generic <- マクロがらみか?価値は俺にはよく分からん
_Bool <- boolが既に拡張済みだから要らん
extern const <- 個人的にはconst派ではないからいいや
storage class "auto" <- なんだこれ?いわゆる自動変数って全部これだと思うが、、、
pointer to register <- registerそのものが最早要らんし
166デフォルトの名無しさん
2017/07/23(日) 17:56:02.81ID:Tqr2YDDV167デフォルトの名無しさん
2017/07/23(日) 19:12:51.83ID:yjtelfLq >>166
designated initializerと同じに見えるが違うのか?
前者は初期化、後者はリテラルとして使ったときの呼称か?
http://seclan.dll.jp/dtdiary/1999/dt19991101.htm
http://d.hatena.ne.jp/taiyo/20080412/p1
designated initializerと同じに見えるが違うのか?
前者は初期化、後者はリテラルとして使ったときの呼称か?
http://seclan.dll.jp/dtdiary/1999/dt19991101.htm
http://d.hatena.ne.jp/taiyo/20080412/p1
168デフォルトの名無しさん
2017/07/23(日) 19:28:51.61ID:GpgYjQaH 全く違う
169デフォルトの名無しさん
2017/07/23(日) 19:30:48.75ID:hUTftRXy170デフォルトの名無しさん
2017/07/23(日) 19:38:30.48ID:Tqr2YDDV >>167
ファッションとして「ベターC」と言いたがってた事はよくわかった
ファッションとして「ベターC」と言いたがってた事はよくわかった
171デフォルトの名無しさん
2017/07/23(日) 20:01:31.75ID:1KmUXPg0 「ベターC」を名乗るのになんか条件ってあるのかね?
個人的には、K&Rは時代遅れのC、C89が普通のC、それより改善されているのがベターC、ってな感覚だが。
個人的には、K&Rは時代遅れのC、C89が普通のC、それより改善されているのがベターC、ってな感覚だが。
172デフォルトの名無しさん
2017/07/23(日) 20:09:09.26ID:yjtelfLq173デフォルトの名無しさん
2017/07/23(日) 20:26:36.42ID:hUTftRXy >>171
条件はない
"Cの後置増分"とは、"最初はC"でよいという意味だ
そこから段階的にソフトランディングで移行できることが
C++の売りなので、気まぐれにつまみ食いすることは
実はC++らしい使い方の1つといういことだ
条件はない
"Cの後置増分"とは、"最初はC"でよいという意味だ
そこから段階的にソフトランディングで移行できることが
C++の売りなので、気まぐれにつまみ食いすることは
実はC++らしい使い方の1つといういことだ
174デフォルトの名無しさん
2017/07/23(日) 20:35:47.04ID:GpgYjQaH C99以降の機能を使いだすとC++でビルド通らなくなるし
Cを使わずベターCとしてC++使うなら、C99/C11を知るは必要ないでしょ
Cっぽいものが書ければ十分
Cを使わずベターCとしてC++使うなら、C99/C11を知るは必要ないでしょ
Cっぽいものが書ければ十分
175デフォルトの名無しさん
2017/07/23(日) 20:39:42.68ID:Tqr2YDDV ベターな部分がないのに「ベターC」 w
176デフォルトの名無しさん
2017/07/23(日) 21:05:01.13ID:1KmUXPg0 あぁなるほど、C99が基準だとC++は劣化Cに見えるわけか。
ただ、一般には「ベターC」という言い方がされたのはC++に対してだと思うがなぁ。
ただ、一般には「ベターC」という言い方がされたのはC++に対してだと思うがなぁ。
177デフォルトの名無しさん
2017/07/23(日) 21:06:32.74ID:hUTftRXy ヒント: 煽り耐性
178デフォルトの名無しさん
2017/07/23(日) 21:14:20.95ID:yjtelfLq179デフォルトの名無しさん
2017/07/23(日) 21:17:33.70ID:fNGuiY3b >>175
関数オブジェクトとラムダ式
関数オブジェクトとラムダ式
180デフォルトの名無しさん
2017/07/23(日) 21:25:32.16ID:yjtelfLq >>176
あ、もしかしてそれ以前のことか?
それなら、Objective-CとC++の対比で使われ、以下wikiの通りだ。
> Objective-CはCを拡張してオブジェクト指向を可能にしたというよりは、
> Cで書かれたオブジェクト指向システムを制御しやすいようにマクロ的な拡張を施した言語である。
> したがって、「better C」に進んだC++とは異なり、「C & Object System」という考え方であり、
> ある意味2つの言語が混在した状態にある。
> https://ja.wikipedia.org/wiki/Objective-C
ただし、Objective-Cはかなり前から実質的に死亡していたので、
最近「betterC」って言われているのは「CとC++のちゃんぽん」のはず。
要するに「いいとこ取り」をしようとしているのがbetterC。
C++の流儀で全部書け、というのがC++。
うるせえC++なんて全部ゴミだ、というのがC。
あ、もしかしてそれ以前のことか?
それなら、Objective-CとC++の対比で使われ、以下wikiの通りだ。
> Objective-CはCを拡張してオブジェクト指向を可能にしたというよりは、
> Cで書かれたオブジェクト指向システムを制御しやすいようにマクロ的な拡張を施した言語である。
> したがって、「better C」に進んだC++とは異なり、「C & Object System」という考え方であり、
> ある意味2つの言語が混在した状態にある。
> https://ja.wikipedia.org/wiki/Objective-C
ただし、Objective-Cはかなり前から実質的に死亡していたので、
最近「betterC」って言われているのは「CとC++のちゃんぽん」のはず。
要するに「いいとこ取り」をしようとしているのがbetterC。
C++の流儀で全部書け、というのがC++。
うるせえC++なんて全部ゴミだ、というのがC。
181デフォルトの名無しさん
2017/07/23(日) 21:34:26.02ID:hUTftRXy >>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; で済む
今の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; で済む
182デフォルトの名無しさん
2017/07/23(日) 22:02:06.01ID:qzsJDNze C++普及始めはベターCって言うとC++使いこなせなくてC++でもC文法を良く使うって意味だったみたいなんだが、今はオブジェクト指向も浸透して、その長所短所も洗い出されて来たからいいとこ取りって意味って理解。
でも、今も昔も両者が混在してるんだと思う。
でも、今も昔も両者が混在してるんだと思う。
183デフォルトの名無しさん
2017/07/23(日) 22:04:03.65ID:yjtelfLq >>181
上2つはそれでも暴走中だとは思うがな。
GC無いと関数型は辛くね?
例外は俺は積極的には使ってないのでよく分からない。
下1つは、俺はC的記述、
> char* port = (char*)0x40044000;
の方が好きだな。
キャスト無しで書かせてくれとは思うが、型は左辺側に書きたい。
それとは別に、autoの価値も認める。リフレクションとかでマジで死ねる。(VC++/CLI)
だけと他言語と揃えてvarにしろよとは思うよ。なぜauto?
上2つはそれでも暴走中だとは思うがな。
GC無いと関数型は辛くね?
例外は俺は積極的には使ってないのでよく分からない。
下1つは、俺はC的記述、
> char* port = (char*)0x40044000;
の方が好きだな。
キャスト無しで書かせてくれとは思うが、型は左辺側に書きたい。
それとは別に、autoの価値も認める。リフレクションとかでマジで死ねる。(VC++/CLI)
だけと他言語と揃えてvarにしろよとは思うよ。なぜauto?
184デフォルトの名無しさん
2017/07/23(日) 23:15:19.12ID:Tqr2YDDV Cじゃなくて全くの別物を「ベターC」と謀って何をしたいんだ?
185片山博文MZ ◆T6xkBnTXz7B0
2017/07/23(日) 23:29:44.60ID:Y7iSLLwh186デフォルトの名無しさん
2017/07/23(日) 23:30:25.51ID:Tqr2YDDV registerもそのうち使い回される
187片山博文MZ ◆T6xkBnTXz7B0
2017/07/23(日) 23:35:53.82ID:Y7iSLLwh キーワードが増えると、キーワードと同じ変数名や関数名はコンパイルできなくなるという問題がある。
188デフォルトの名無しさん
2017/07/23(日) 23:53:29.52ID:hUTftRXy189デフォルトの名無しさん
2017/07/23(日) 23:58:37.14ID:yjtelfLq >>185,187
> 記憶クラス指定子としての auto の使用が非常に少ないとの調査結果などから、当該用途は直ちに廃止となった。
> https://cpprefjp.github.io/lang/cpp11/auto.html
> storage class "auto" (>>164)
K&Rも確認して、なるほど状況は分かった。autoはまあ許せる範囲か。
しかしこれ、autoとregisterがあったということは、
元々のコンセプトのデフォはもっと遅い外部メモリかよ。(コアメモリとか?)
> 記憶クラス指定子としての auto の使用が非常に少ないとの調査結果などから、当該用途は直ちに廃止となった。
> https://cpprefjp.github.io/lang/cpp11/auto.html
> storage class "auto" (>>164)
K&Rも確認して、なるほど状況は分かった。autoはまあ許せる範囲か。
しかしこれ、autoとregisterがあったということは、
元々のコンセプトのデフォはもっと遅い外部メモリかよ。(コアメモリとか?)
190デフォルトの名無しさん
2017/07/24(月) 00:18:45.69ID:gGHXalJd >>189
autoは記憶クラスのデフォルト
省略可能で、むしろつける理由がなかったのでだれもつかわなかった
registerは変数をレジスタに置いたほうがいいというコンパイラへのヒント
しかし、コンパイラの改良が進みコンパイラに任せたほうが良くなった
人間による指定は不要なばかりか、むしろ最適化の邪魔になるのでコンパイラは無視するようになった
autoは記憶クラスのデフォルト
省略可能で、むしろつける理由がなかったのでだれもつかわなかった
registerは変数をレジスタに置いたほうがいいというコンパイラへのヒント
しかし、コンパイラの改良が進みコンパイラに任せたほうが良くなった
人間による指定は不要なばかりか、むしろ最適化の邪魔になるのでコンパイラは無視するようになった
191デフォルトの名無しさん
2017/07/24(月) 00:28:47.24ID:gGHXalJd betterCは明確な定義はないだろうけど、
http://www.kijineko.co.jp/tech/betterc/1
で言われてるのが大体の認識なんじゃない?
(ライブラリの内部だけとかではなく)クラスとかを使うならそれはもうC++でしょ
メモリ管理とかvtableの仕様とかもしっかり確認する必要があるので適当にクラスを使うのはおすすめしない
http://www.kijineko.co.jp/tech/betterc/1
で言われてるのが大体の認識なんじゃない?
(ライブラリの内部だけとかではなく)クラスとかを使うならそれはもうC++でしょ
メモリ管理とかvtableの仕様とかもしっかり確認する必要があるので適当にクラスを使うのはおすすめしない
192デフォルトの名無しさん
2017/07/24(月) 01:07:47.78ID:8vEBfSZH >>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イラネってのも納得だ。
合ってなければ、どの組み合わせで使っているのか教えて欲しい。参考にする。
君はおそらく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イラネってのも納得だ。
合ってなければ、どの組み合わせで使っているのか教えて欲しい。参考にする。
193デフォルトの名無しさん
2017/07/24(月) 01:33:19.39ID:8vEBfSZH >>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++は「出来る限り全自動を目指す」だと思う。
だから、「どこまで自動化しようとしているか」で測ればよいと思う。
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++は「出来る限り全自動を目指す」だと思う。
だから、「どこまで自動化しようとしているか」で測ればよいと思う。
194デフォルトの名無しさん
2017/07/24(月) 02:16:26.89ID:gGHXalJd >>193
うーん、その定義のbetterCは誰向けなんだ
初心者はC++の仕様(fwriteをvtableのあるクラスに使っちゃったり、newしたのをfreeしたりみたいな)にはまるだろうし
中級者はどこまでがbetterCなのかで混乱しそう(参照は?とかスマートポインタは?とかstringは?とか)
上級者はbetterにすることなく快適にCかC++で満足してそう
クラスとかデストラクタだけ使うみたいな方針で書かれてるソフトって何があるの?
うーん、その定義のbetterCは誰向けなんだ
初心者はC++の仕様(fwriteをvtableのあるクラスに使っちゃったり、newしたのをfreeしたりみたいな)にはまるだろうし
中級者はどこまでがbetterCなのかで混乱しそう(参照は?とかスマートポインタは?とかstringは?とか)
上級者はbetterにすることなく快適にCかC++で満足してそう
クラスとかデストラクタだけ使うみたいな方針で書かれてるソフトって何があるの?
195デフォルトの名無しさん
2017/07/24(月) 02:58:28.33ID:xutwb2BM ベターperlのruby使おうぜとか言いだしそうだな アホか
196デフォルトの名無しさん
2017/07/24(月) 02:59:30.11ID:RBhDn3mI 基本Cで行きたいけど、クロージャが作れないことだけはどうしようもないのでそこだけC++って考えるんだけど、上級C使いはクロージャいらんのだろうか?
197デフォルトの名無しさん
2017/07/24(月) 04:31:31.88ID:rJB0TWtS いらない
198デフォルトの名無しさん
2017/07/24(月) 05:34:01.73ID:L3SJIM9i >>192
あ? 俺はバリバリC++使いだよ
ベターCをやっている認識は全くない
GCの話に型推論が出てくるのは悪いが意味わからん
varが欲しいんならtemplateは関係ない(脇役にすぎない)し
typeidやvoid*で特注品を作ればいい(COMとかみたいに)
ラムダ式もGCには関係ない(脇役にすぎない)し
ステートレスラムダみたいにスタックを使わないのまである
クロージャ変数はヒープ上って何だ?
auto closure{[&]{}};
auto heap{std::make_shared<decltype(closure)>()};
みたいなことすんのか?
ちょっと変態すぎて俺はついていけないなあ
俺はスマポ使うが生ポも普通に使う
状況で使い分けだ
RAIIつまりunwindingはGCとは全く無関係
RAIIだとかpImplだとかは一応知ってるが
そういのの原理主義にとらわれて
自分の頭で考えるのをやめたらいかんと思っている
あ? 俺はバリバリC++使いだよ
ベターCをやっている認識は全くない
GCの話に型推論が出てくるのは悪いが意味わからん
varが欲しいんならtemplateは関係ない(脇役にすぎない)し
typeidやvoid*で特注品を作ればいい(COMとかみたいに)
ラムダ式もGCには関係ない(脇役にすぎない)し
ステートレスラムダみたいにスタックを使わないのまである
クロージャ変数はヒープ上って何だ?
auto closure{[&]{}};
auto heap{std::make_shared<decltype(closure)>()};
みたいなことすんのか?
ちょっと変態すぎて俺はついていけないなあ
俺はスマポ使うが生ポも普通に使う
状況で使い分けだ
RAIIつまりunwindingはGCとは全く無関係
RAIIだとかpImplだとかは一応知ってるが
そういのの原理主義にとらわれて
自分の頭で考えるのをやめたらいかんと思っている
199デフォルトの名無しさん
2017/07/24(月) 07:34:15.05ID:UuUAOyUA RAII は便利なんだがなぁ‥
200デフォルトの名無しさん
2017/07/24(月) 10:04:09.53ID:UK7ErBJ5 >>189
ttp://zdnet2.cbsistatic.com/hub/i/r/2015/12/01/5e3590e7-725a-4d77-97cf-a64768d759a1/resize/1170x878/501ecb90884df8d47e13f80dffc6b0a7/42-53033264.jpg
水銀メモリ程度だろ
ttp://zdnet2.cbsistatic.com/hub/i/r/2015/12/01/5e3590e7-725a-4d77-97cf-a64768d759a1/resize/1170x878/501ecb90884df8d47e13f80dffc6b0a7/42-53033264.jpg
水銀メモリ程度だろ
201デフォルトの名無しさん
2017/07/24(月) 11:30:39.90ID:xutwb2BM202デフォルトの名無しさん
2017/07/24(月) 20:11:23.35ID:Gl5wYMgk >>200
うわかっけぇ〜〜〜〜!!
うわかっけぇ〜〜〜〜!!
203デフォルトの名無しさん
2017/07/24(月) 23:14:38.57ID:8vEBfSZH >>194
俺的には「C++へのかぶれ具合」でC/betterC/C++を判断しようとしてる。
もちろんclassだけではなく、他の機能でも同様に判断して、
どれが一番近いか(どう表現すると一番誤解が少ないか)という話だ。
classはC->C++時におそらく最初に使用する機能であり、
classを使った時点でC++ならbetterCってほぼなくなるよ。
文法でしか判断出来ない馬鹿も最近は多いけど、本質は組み方でしょ。
> クラスとかデストラクタだけ使うみたいな方針で書かれてるソフトって何があるの?
知らんよ。
では逆に聞くが、作者やその他大勢がbetterCだと認識している有名OSSってあるのか?
あるのなら、みんなでそれを見に行けば終わる話だ。
なお俺はこれも知らんよ。
V8のコードがC++流じゃないって言っている奴はいるが、俺は詳細確認してないし。
http://steps.dodgson.org/bn/2008/09/07/
俺的には「C++へのかぶれ具合」でC/betterC/C++を判断しようとしてる。
もちろんclassだけではなく、他の機能でも同様に判断して、
どれが一番近いか(どう表現すると一番誤解が少ないか)という話だ。
classはC->C++時におそらく最初に使用する機能であり、
classを使った時点でC++ならbetterCってほぼなくなるよ。
文法でしか判断出来ない馬鹿も最近は多いけど、本質は組み方でしょ。
> クラスとかデストラクタだけ使うみたいな方針で書かれてるソフトって何があるの?
知らんよ。
では逆に聞くが、作者やその他大勢がbetterCだと認識している有名OSSってあるのか?
あるのなら、みんなでそれを見に行けば終わる話だ。
なお俺はこれも知らんよ。
V8のコードがC++流じゃないって言っている奴はいるが、俺は詳細確認してないし。
http://steps.dodgson.org/bn/2008/09/07/
204デフォルトの名無しさん
2017/07/24(月) 23:15:12.97ID:8vEBfSZH >>198
全面マニュアル派か。まあそういう使い方も出来るわな。
俺は嫌いではないよ。
というかC派からは割と賛同されるだろうね。C++派からは異端視されるだろうが。
> クロージャ変数はヒープ上って何だ?
ステートレスとか、キャプチャがなければどうでもいいし、
或いは糖衣とか、ローカル関数っぽく「その場で」使うのなら全く問題ないが、
一般の関数型と同様に可搬的に使おうとすると、生存期間はスタックとは独立にする必要があり、
スタック上の変数を参照キャプチャするのはまずい。
結果、クロージャ内変数の実体はスタック上ではなくヒープに置かれることになる。
これをそう表現した。関数オブジェクトは常にこうだろ。
> RAIIつまりunwindingはGCとは全く無関係
ユーザ側には無関係だが、システム側は密接な関係がある。
GCを効率化する場合、参照カウントというのは一つの代表的手段で、
この場合、ランタイム上で同じことをやるからだ。
だから「全面RAII+shared_ptr」ってのはよく出来たGCと実行効率は同じになる。
だったら最初からGC言語使えよC++erはアホなのか?ってのが俺の感覚だ。
効率ガーとか言いながら完全な二度手間してるのはテメーらだよ、ってこと。
ただし君はこれには該当しない。生ポも普通に使う派だからだ。
まあここら辺の「どうとでも書ける」という懐の広さもC++の魅力ではあるのだろうけども。
本来は君のような全面マニュアル派が正統C++派でもおかしくないんだが。
そういうコンセプトの言語ではあるから。
ただ最近おかしくなっている(気がする)のはやっぱり意識高い系の暴走なのかな?
全面マニュアル派か。まあそういう使い方も出来るわな。
俺は嫌いではないよ。
というかC派からは割と賛同されるだろうね。C++派からは異端視されるだろうが。
> クロージャ変数はヒープ上って何だ?
ステートレスとか、キャプチャがなければどうでもいいし、
或いは糖衣とか、ローカル関数っぽく「その場で」使うのなら全く問題ないが、
一般の関数型と同様に可搬的に使おうとすると、生存期間はスタックとは独立にする必要があり、
スタック上の変数を参照キャプチャするのはまずい。
結果、クロージャ内変数の実体はスタック上ではなくヒープに置かれることになる。
これをそう表現した。関数オブジェクトは常にこうだろ。
> RAIIつまりunwindingはGCとは全く無関係
ユーザ側には無関係だが、システム側は密接な関係がある。
GCを効率化する場合、参照カウントというのは一つの代表的手段で、
この場合、ランタイム上で同じことをやるからだ。
だから「全面RAII+shared_ptr」ってのはよく出来たGCと実行効率は同じになる。
だったら最初からGC言語使えよC++erはアホなのか?ってのが俺の感覚だ。
効率ガーとか言いながら完全な二度手間してるのはテメーらだよ、ってこと。
ただし君はこれには該当しない。生ポも普通に使う派だからだ。
まあここら辺の「どうとでも書ける」という懐の広さもC++の魅力ではあるのだろうけども。
本来は君のような全面マニュアル派が正統C++派でもおかしくないんだが。
そういうコンセプトの言語ではあるから。
ただ最近おかしくなっている(気がする)のはやっぱり意識高い系の暴走なのかな?
205デフォルトの名無しさん
2017/07/24(月) 23:54:33.43ID:gGHXalJd >>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ってどういう意味合いにせよ現代だと初心者や趣味用で、もうほぼ存在しないってイメージだな
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ってどういう意味合いにせよ現代だと初心者や趣味用で、もうほぼ存在しないってイメージだな
206デフォルトの名無しさん
2017/07/25(火) 00:58:02.32ID:4zQ1WqHr 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
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
207デフォルトの名無しさん
2017/07/25(火) 06:46:20.75ID:Ayn2XuQ7208デフォルトの名無しさん
2017/07/25(火) 07:58:05.16ID:HU3ZW3Qs >>204
全面マニュアル派って何だ?
> スタック上の変数を参照キャプチャするのはまずい
え? え??
自動記憶域期間の変数以外の何をキャプチャするんだ?
クロージャ内変数がヒープ?? いったい何を言っている?
struct closure{
int& reference_to_capture;
closure(int* capture) : reference_to_capture(*capture) { }
void operator()() {
int internal_variable_of_closure;
}
};
こうなってるだけだぜ? どこにヒープが出てくるんだ?
全面マニュアル派って何だ?
> スタック上の変数を参照キャプチャするのはまずい
え? え??
自動記憶域期間の変数以外の何をキャプチャするんだ?
クロージャ内変数がヒープ?? いったい何を言っている?
struct closure{
int& reference_to_capture;
closure(int* capture) : reference_to_capture(*capture) { }
void operator()() {
int internal_variable_of_closure;
}
};
こうなってるだけだぜ? どこにヒープが出てくるんだ?
209デフォルトの名無しさん
2017/07/25(火) 07:58:22.10ID:HU3ZW3Qs >>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以後は正気に戻る努力をしてるぞ
> システム側は密接な関係がある。
関係ねえって
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以後は正気に戻る努力をしてるぞ
210デフォルトの名無しさん
2017/07/25(火) 08:31:48.45ID:M07WjxQ9 知ったかクンの自己弁護ショーがはじまるよ
211デフォルトの名無しさん
2017/07/25(火) 16:02:02.91ID:fB9o/YjK 全面マニュアル派って何だろう。
悪魔的<>全面マニュアル派 みたいなニュアンスなんだろうか。
あんまり聞いたことない言葉だな
悪魔的<>全面マニュアル派 みたいなニュアンスなんだろうか。
あんまり聞いたことない言葉だな
212デフォルトの名無しさん
2017/07/25(火) 17:10:25.77ID:AkzbrYPu <> ダイヤモンド演算子が出たぞ
213デフォルトの名無しさん
2017/07/25(火) 17:24:31.31ID:HU3ZW3Qs <>を何と読むかで、C++寄りかBASIC寄りかわかるな
214デフォルトの名無しさん
2017/07/25(火) 20:09:07.38ID:MNEF+D/W 残念、perl でした!
215デフォルトの名無しさん
2017/07/25(火) 21:09:32.97ID:4zQ1WqHr216デフォルトの名無しさん
2017/07/26(水) 15:57:11.34ID:rrdsxIH3 age
217デフォルトの名無しさん
2017/07/27(木) 03:13:21.18ID:2TFMLUhu >>206
ない。ダブルクォーテーションで括った場合は最後に \0 入るから。
ない。ダブルクォーテーションで括った場合は最後に \0 入るから。
218片山博文MZ ◆T6xkBnTXz7B0
2017/07/27(木) 03:15:50.47ID:vaTNWP9F219デフォルトの名無しさん
2017/07/27(木) 04:24:15.48ID:LmGEOgfS 領域破壊で配列の直後のエリアに入ることは入る
220デフォルトの名無しさん
2017/07/27(木) 07:29:22.91ID:P1js1uXh >>219
宣言時の初期化では入らんよ
宣言時の初期化では入らんよ
221デフォルトの名無しさん
2017/07/27(木) 13:22:08.96ID:HCdXe105 >>219
実名晒せよ、その下痢糞コンパイラ
実名晒せよ、その下痢糞コンパイラ
222デフォルトの名無しさん
2017/07/27(木) 18:39:00.21ID:ZSUs8tWw 素朴な質問で悪いが、C言語ってなんで多くが挫折すんの? JavaやC#なら、派遣でも生き延びていくのに・・・
223片山博文MZ ◆T6xkBnTXz7B0
2017/07/27(木) 19:09:17.24ID:LWV2Yf86 Cは、ポインターとかマクロとか落とし穴が多いんだよね。文字列を扱うのも難しいし。しかもセキュリティ上の欠陥がある。
224デフォルトの名無しさん
2017/07/27(木) 19:15:04.97ID:F0lzbPxl Cにセキュリティ上の欠陥?
使い方の問題でしょ?
使い方の問題でしょ?
225デフォルトの名無しさん
2017/07/27(木) 19:16:27.05ID:F0lzbPxl 大昔に出来た低級言語なんだから、
多少の事は我慢
多少の事は我慢
226デフォルトの名無しさん
2017/07/27(木) 19:17:38.76ID:/VCkXAgy Cは環境依存が激しくて、何やるにもめんどくさいからだと思うな。
コピペプログラマが生きていけない。
コピペプログラマが生きていけない。
227デフォルトの名無しさん
2017/07/27(木) 19:24:01.58ID:pZs9Jdf1 ポインタとかもだけど、リストの使い方は知ってても作り方知らない子とか多そうだぬ。
228デフォルトの名無しさん
2017/07/27(木) 19:25:18.20ID:F0lzbPxl 何のリスト?
初期化リスト?
初期化リスト?
229片山博文MZ ◆T6xkBnTXz7B0
2017/07/27(木) 19:26:56.69ID:LWV2Yf86 連結リストだろ、JK。
230デフォルトの名無しさん
2017/07/27(木) 19:41:55.89ID:F26VGNcc いや連結リストの作り方知らない子はレアだから違うだろJK
231デフォルトの名無しさん
2017/07/27(木) 19:49:40.05ID:pZs9Jdf1 ごめん。
ただの偏見。
JavaやC#はListクラスで連結リスト使えるから、作り方知らない若者多そうって思ってた。
そうかレアか。
安心した。
ただの偏見。
JavaやC#はListクラスで連結リスト使えるから、作り方知らない若者多そうって思ってた。
そうかレアか。
安心した。
232デフォルトの名無しさん
2017/07/27(木) 19:50:41.52ID:tCxrViSf 使い方
って書いてあるから
Cの機能にあるリストだと思ったのだが
って書いてあるから
Cの機能にあるリストだと思ったのだが
233デフォルトの名無しさん
2017/07/27(木) 19:52:12.25ID:tCxrViSf >>227が悪い
234デフォルトの名無しさん
2017/07/27(木) 19:55:40.06ID:pZs9Jdf1235デフォルトの名無しさん
2017/07/27(木) 19:59:03.32ID:tCxrViSf だから
初期化リスト?
って書いたんだけど
初期化リスト?
って書いたんだけど
236デフォルトの名無しさん
2017/07/27(木) 20:11:05.11ID:pZs9Jdf1 初期化リストってなんだろ。。。
あれかな。
int a[] = {1,2,3};
みたいな奴か?
あんなん、数が100とか200になったらループで初期化とかになるから違うかな。
JavaやC#もその辺は変わらなかった気もするけど。
まあいいや。
迷惑かけたみたいだし、ROMるわ。
あれかな。
int a[] = {1,2,3};
みたいな奴か?
あんなん、数が100とか200になったらループで初期化とかになるから違うかな。
JavaやC#もその辺は変わらなかった気もするけど。
まあいいや。
迷惑かけたみたいだし、ROMるわ。
237デフォルトの名無しさん
2017/07/27(木) 20:28:21.83ID:DDfF3pSC >>222
C言語は同じことをするのにもいろんな書き方ができる。無駄に難しくも書ける。
C言語は同じことをするのにもいろんな書き方ができる。無駄に難しくも書ける。
238デフォルトの名無しさん
2017/07/27(木) 21:58:49.46ID:HCdXe105 セキュリティ上の欠陥がある。
セキュリティ上の欠陥がある。
セキュリティ上の欠陥がある。
セキュリティ上の欠陥がある。
セキュリティ上の欠陥がある。
239デフォルトの名無しさん
2017/07/27(木) 22:01:29.56ID:DDfF3pSC240デフォルトの名無しさん
2017/07/27(木) 22:02:42.86ID:DDfF3pSC >>238
それ、欠陥じゃなくてそこまで理解して使用するものだから。本気で言ってんの?
それ、欠陥じゃなくてそこまで理解して使用するものだから。本気で言ってんの?
241デフォルトの名無しさん
2017/07/27(木) 22:09:44.77ID:HCdXe105 リーナス君ならどんな暴言吐いてくだろうかね
242デフォルトの名無しさん
2017/07/27(木) 22:10:30.95ID:P8zzUyc0 リストの「作り方」って書いてあるのに初期化リストを持ってくる奴ってマジで近くにいてほしくないわ
243デフォルトの名無しさん
2017/07/27(木) 22:20:24.47ID:KBJFSsyK >>241
リーナスくんがメビウスに暴言?
リーナスくんがメビウスに暴言?
244片山博文MZ ◆T6xkBnTXz7B0
2017/07/27(木) 22:22:40.74ID:LWV2Yf86 拳銃は危ないよなあ。原子炉の制御にC言語を使われたら、それは拳銃のように危ない。
Cを安全に使うには、安全装置とか哲学とか人工知能みたいなものが必要になる。
さもないとどこかの国みたいにハッキングされるだろう。
Cを安全に使うには、安全装置とか哲学とか人工知能みたいなものが必要になる。
さもないとどこかの国みたいにハッキングされるだろう。
245デフォルトの名無しさん
2017/07/27(木) 22:31:06.10ID:KBJFSsyK246デフォルトの名無しさん
2017/07/27(木) 22:34:40.88ID:pZs9Jdf1247デフォルトの名無しさん
2017/07/27(木) 22:40:41.83ID:tCxrViSf >>242
日本語読めないアホ
日本語読めないアホ
248片山博文MZ ◆T6xkBnTXz7B0
2017/07/27(木) 22:41:49.10ID:LWV2Yf86 あ、「C言語にセキュリティ上の欠陥がある」は、国家機密だからな。絶対に他のヤツに言うなよ。
249デフォルトの名無しさん
2017/07/27(木) 22:42:44.02ID:tCxrViSf ツマンネ
250デフォルトの名無しさん
2017/07/27(木) 22:43:40.04ID:HCdXe105251デフォルトの名無しさん
2017/07/27(木) 22:52:42.24ID:9W3wkZQm252片山博文MZ ◆T6xkBnTXz7B0
2017/07/27(木) 22:56:04.01ID:LWV2Yf86 ダンディ坂野は危険。sprintfの代わりにsnprintf使え。セキュアバージョン(_s)を使え。とか色々あるよな。
253デフォルトの名無しさん
2017/07/27(木) 23:06:09.60ID:wZCn8yX+ (σ・∀・)σゲッツ!!
254片山博文MZ ◆T6xkBnTXz7B0
2017/07/27(木) 23:13:00.42ID:LWV2Yf86255片山博文MZ ◆T6xkBnTXz7B0
2017/07/27(木) 23:41:43.77ID:LWV2Yf86 標準文字列関数では安全に書けない、安全に書ける人がほとんど居ない。これ、完全にワナですから。
256デフォルトの名無しさん
2017/07/27(木) 23:57:39.95ID:jhYwQkxC バッファのサイズに収まるように普通書くだろ
そう書けない奴が悪い
そう書けない奴が悪い
257デフォルトの名無しさん
2017/07/28(金) 00:08:15.50ID:YMdBIxtz >>256
それはその通りだけど、個人が責任を取れる問題じゃないし。
それはその通りだけど、個人が責任を取れる問題じゃないし。
258デフォルトの名無しさん
2017/07/28(金) 00:14:30.22ID:QdICXo3Y >>218
そうだった。Cだとエラーにならんな。C++だとエラー。
そうだった。Cだとエラーにならんな。C++だとエラー。
259片山博文MZ ◆T6xkBnTXz7B0
2017/07/28(金) 00:19:41.65ID:N/JNnipJ 文字列の連結だって安全にやろうとすれば、長さがわからない文字列にstrcatなんて使えないじゃん。
260デフォルトの名無しさん
2017/07/28(金) 00:33:30.49ID:QdICXo3Y てきとーに char s[1000]; とかやってどんどん strcat()
そして死亡
そして死亡
261デフォルトの名無しさん
2017/07/28(金) 00:47:30.46ID:KKFlk4xh Cでは適当な奴は死にます
262デフォルトの名無しさん
2017/07/28(金) 02:06:17.70ID:zRJpQFXf 1ビットの変数同士を比較する場合
& ビット演算子
&& 論理演算子
どっち使った方がいいの?
---例---
input mem_ack, cpu_ack
wire mem_ack, cpu_ack
:
:
if (~(mem_ack & cpu_ack))
state <= 2
--------
& ビット演算子
&& 論理演算子
どっち使った方がいいの?
---例---
input mem_ack, cpu_ack
wire mem_ack, cpu_ack
:
:
if (~(mem_ack & cpu_ack))
state <= 2
--------
263デフォルトの名無しさん
2017/07/28(金) 02:08:50.20ID:uZDKFvFZ264デフォルトの名無しさん
2017/07/28(金) 06:32:14.27ID:X5sNiV59265デフォルトの名無しさん
2017/07/28(金) 06:51:58.94ID:jwLN5n78266デフォルトの名無しさん
2017/07/28(金) 10:25:49.30ID:X5sNiV59 おいVerilog使い、なぜここに来た?
267デフォルトの名無しさん
2017/07/28(金) 10:43:31.58ID:KAkdfNJb Cスレでは初期化リストは「書く」とか「記述」するものであって「作る」ものじゃ無いな
ツールやマクロで生成したり作ったりする事はあるが、そう言うまれな場合は「マクロで作る」と書くだろう
ツールやマクロで生成したり作ったりする事はあるが、そう言うまれな場合は「マクロで作る」と書くだろう
268デフォルトの名無しさん
2017/07/28(金) 10:54:04.18ID:g6yGf319269デフォルトの名無しさん
2017/07/28(金) 11:13:16.53ID:WViVOgsq270デフォルトの名無しさん
2017/07/28(金) 12:35:43.09ID:WvgdGCet271デフォルトの名無しさん
2017/07/28(金) 12:42:15.76ID:WViVOgsq C言語と関係ない
272デフォルトの名無しさん
2017/07/28(金) 13:28:06.90ID:KAkdfNJb 文法上でリストと呼ばれているものは初期化リストの他にもたくさんあるぞ
一々あげないが、パラメータリストとか
一々あげないが、パラメータリストとか
273デフォルトの名無しさん
2017/07/28(金) 15:09:08.59ID:1Qvc81q6 va_listなら頑張れば作れる
274デフォルトの名無しさん
2017/07/28(金) 16:20:09.34ID:WViVOgsq >>272
で?
で?
275デフォルトの名無しさん
2017/07/28(金) 16:32:13.65ID:KAkdfNJb ID:tCxrViSfが救いようの無いバカって事だよ
277デフォルトの名無しさん
2017/07/28(金) 18:49:21.90ID:XBSdfIgC 連結リストを一から作れるってそんなにいないんじゃないかな
278デフォルトの名無しさん
2017/07/28(金) 18:55:04.96ID:mbT3OJMo 1からの定義というか
0からではないんだよね?というか
まぁそのへんフワフワだけど
学校でプログラミング習ってるやつらは
一回はそれ「作らされてるから」
今でも作れって言われたら作れると思う
0からではないんだよね?というか
まぁそのへんフワフワだけど
学校でプログラミング習ってるやつらは
一回はそれ「作らされてるから」
今でも作れって言われたら作れると思う
279デフォルトの名無しさん
2017/07/28(金) 19:06:21.61ID:mbT3OJMo あ、今の子はPascalとかCとか習わないのかな…
280デフォルトの名無しさん
2017/07/28(金) 19:09:55.81ID:qWRZaL/E >>272
で、それらの「作り方」について説明してくれるかな w
で、それらの「作り方」について説明してくれるかな w
281デフォルトの名無しさん
2017/07/28(金) 19:14:48.96ID:0EVBlpnp 脱初心者の登竜門の定番だね
自己参照構造体とポインタを理解していればそれほど難しくはない
自己参照構造体とポインタを理解していればそれほど難しくはない
282デフォルトの名無しさん
2017/07/28(金) 19:17:50.96ID:LlfbS2K5 えちょっと待ってジェネリックなリストとかじゃなくて、doubleのリストとか、なんか自分で決めた型のリストとかだよね?
初心者向けのCの本で書いた記憶があるんだけど、最近は載ってないの?
初心者向けのCの本で書いた記憶があるんだけど、最近は載ってないの?
283デフォルトの名無しさん
2017/07/28(金) 19:21:50.85ID:/bI4c4xS 苦CとやさしいCには載ってなかったな。
自分もCのアルゴリズム本でリストは覚えたし。
自分もCのアルゴリズム本でリストは覚えたし。
284デフォルトの名無しさん
2017/07/28(金) 19:32:08.21ID:WViVOgsq ジェネリックなリストとdoubleのリストって
ほとんど差が無いような
ほとんど差が無いような
285デフォルトの名無しさん
2017/07/28(金) 20:00:04.70ID:xox6mhpi >>279
やらないよ
やらないよ
286デフォルトの名無しさん
2017/07/28(金) 20:04:12.64ID:qWRZaL/E >>277
struct List_t {
struct List_t *Previous;
struct List_t *Next;
double Data;
};
のDataの型変えるだけだし
まあいろんな型が必要だとテンプレートが欲しくなるけどマクロでもそこそこ行けるしね
struct List_t {
struct List_t *Previous;
struct List_t *Next;
double Data;
};
のDataの型変えるだけだし
まあいろんな型が必要だとテンプレートが欲しくなるけどマクロでもそこそこ行けるしね
287デフォルトの名無しさん
2017/07/28(金) 20:06:39.62ID:+MWeEFjB 初心者に双方向はまずいですよ。
288デフォルトの名無しさん
2017/07/28(金) 20:06:46.98ID:SfCHZxYK そこはテンプレートが遅くなる要因だから、性格の違いって事で。
289デフォルトの名無しさん
2017/07/28(金) 20:12:26.13ID:xox6mhpi >>286
普通,実用に供するのならば,void *Data だね
普通,実用に供するのならば,void *Data だね
290デフォルトの名無しさん
2017/07/28(金) 20:21:38.71ID:SfCHZxYK 型検査引っ掛からなくなるんだから、実用なら必要な型でリスト作らんと怖いだろ。
元々かっちり作る用途向けで、そう言うのはどうしてもって時だけ。
元々かっちり作る用途向けで、そう言うのはどうしてもって時だけ。
291デフォルトの名無しさん
2017/07/28(金) 20:24:27.39ID:WViVOgsq >>287
片方向でも双方向でも大して変わらないと思うが
片方向でも双方向でも大して変わらないと思うが
292デフォルトの名無しさん
2017/07/28(金) 20:33:05.95ID:WViVOgsq いずれにしろリストなんて簡単
setになると途端にレベルが上がる
それこそ、
使えても作れない人は多い
setになると途端にレベルが上がる
それこそ、
使えても作れない人は多い
293デフォルトの名無しさん
2017/07/28(金) 20:50:39.02ID:KAkdfNJb294デフォルトの名無しさん
2017/07/28(金) 21:02:23.86ID:wndodTEE >>289
何でそんな面倒なことをするんだ?
何でそんな面倒なことをするんだ?
295デフォルトの名無しさん
2017/07/28(金) 21:04:55.04ID:wndodTEE だからその他のリストをわざわざあげる>>272がバカって話なんだが w
296デフォルトの名無しさん
2017/07/28(金) 21:05:03.15ID:Mk6h7bQQ つかリストもSetもCでは大して使わないだろ。
297デフォルトの名無しさん
2017/07/28(金) 21:12:41.92ID:SfCHZxYK LL用のライブラリCで書いたりとかで普通に書くだろが。
298デフォルトの名無しさん
2017/07/28(金) 21:21:31.63ID:Mk6h7bQQ ならLLで全部やれ。
Cでやるのなら主に高速化なのだから、高速に演算できるようにあらかじめLL言語側で並べ替えるだろ。
Cでやるのなら主に高速化なのだから、高速に演算できるようにあらかじめLL言語側で並べ替えるだろ。
299デフォルトの名無しさん
2017/07/28(金) 21:26:15.12ID:SfCHZxYK リストで並べ替え?
そもそも、その並べ替えも遅いからCで。。。
どこから突っ込んで良いのよ。。。
そもそも、その並べ替えも遅いからCで。。。
どこから突っ込んで良いのよ。。。
300デフォルトの名無しさん
2017/07/28(金) 21:27:04.09ID:wtp1eGJk LLって初耳だわ。
301デフォルトの名無しさん
2017/07/28(金) 21:32:03.07ID:SfCHZxYK LightwaitLanguageの略で、PythonとかRubyとかの総称。
趣味グラマ含めて、LL知らない奴に初めて会ったわ。
趣味グラマ含めて、LL知らない奴に初めて会ったわ。
302デフォルトの名無しさん
2017/07/28(金) 21:35:30.75ID:wtp1eGJk つまりCはHLなわけだな。Heavyな時代になったな。
303デフォルトの名無しさん
2017/07/28(金) 21:43:29.87ID:0EVBlpnp データ間の関係が直線構造のリストはこれといった使いどころを見つけるのが難しいのはまあ分かる
階層構造のバイナリツリーや網目構造のグラフにまで拡張するといろいろ応用範囲が広がる
階層構造のバイナリツリーや網目構造のグラフにまで拡張するといろいろ応用範囲が広がる
304デフォルトの名無しさん
2017/07/28(金) 22:00:00.22ID:wndodTEE >>298
バカとしか言いようがない w
バカとしか言いようがない w
305デフォルトの名無しさん
2017/07/28(金) 22:02:34.71ID:wndodTEE >>301
weight な
weight な
306デフォルトの名無しさん
2017/07/28(金) 22:09:25.05ID:wtp1eGJk おれの感覚がズレてるのかと思ったら、英語の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.
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.
307デフォルトの名無しさん
2017/07/28(金) 22:12:46.77ID:e9WYMOex 俺もLL通じるけどなw
308デフォルトの名無しさん
2017/07/28(金) 22:18:36.85ID:Mk6h7bQQ >>299
エアプ死ね。
> そもそも、その並べ替えも遅いからCで。。。
LL言語側のリスト等の物理配置は公開されてないんだから、これは無理だろ。
仮に公開するにしても当然アクセス用API関数であって、内部構造は隠蔽されるだろ。
エアプ死ね。
> そもそも、その並べ替えも遅いからCで。。。
LL言語側のリスト等の物理配置は公開されてないんだから、これは無理だろ。
仮に公開するにしても当然アクセス用API関数であって、内部構造は隠蔽されるだろ。
309デフォルトの名無しさん
2017/07/28(金) 22:23:43.64ID:wndodTEE ここは日本なのに海外wikipedia持ってくるとか相当ずれてると思う
310デフォルトの名無しさん
2017/07/28(金) 22:28:08.90ID:wndodTEE >>308
恥の上塗りかよ w
たいていのLL言語はオープンソースでCとかとのインターフェースが整備されてたり内部構造のドキュメントあるぞ
でないとライブラリとか書けないし
とりあえずpythonの例な
https://docs.python.jp/3/extending/extending.html
恥の上塗りかよ w
たいていのLL言語はオープンソースでCとかとのインターフェースが整備されてたり内部構造のドキュメントあるぞ
でないとライブラリとか書けないし
とりあえずpythonの例な
https://docs.python.jp/3/extending/extending.html
311デフォルトの名無しさん
2017/07/28(金) 22:53:05.56ID:Mk6h7bQQ >>310
> 拡張モジュールをサポートするため、Python API (Application Programmer’s Interface) では
> 一連の関数、マクロおよび変数を提供していて、
> Python ランタイムシステムのほとんどの側面へのアクセス手段を提供しています。
> Python API は、ヘッダ "Python.h" をインクルードして C ソースに取り込みます。
お前は日本語が読めないということが分かった。
それで、お前はいつ>>286みたいな記述が必要なんだ?
普通はPyxxxを使ってPython側から読み出して、
C側の演算高速化用フォーマット(通常はただの配列)に最初から変換するんだよ。
お前はC側でもリストを実装してPythonと同じ事をするアホのようだが。
> 拡張モジュールをサポートするため、Python API (Application Programmer’s Interface) では
> 一連の関数、マクロおよび変数を提供していて、
> Python ランタイムシステムのほとんどの側面へのアクセス手段を提供しています。
> Python API は、ヘッダ "Python.h" をインクルードして C ソースに取り込みます。
お前は日本語が読めないということが分かった。
それで、お前はいつ>>286みたいな記述が必要なんだ?
普通はPyxxxを使ってPython側から読み出して、
C側の演算高速化用フォーマット(通常はただの配列)に最初から変換するんだよ。
お前はC側でもリストを実装してPythonと同じ事をするアホのようだが。
312デフォルトの名無しさん
2017/07/28(金) 22:57:00.44ID:DfUcDVfp またパイソンの話してんのか
313デフォルトの名無しさん
2017/07/28(金) 22:59:57.49ID:wtp1eGJk >>309
本気で言ってるのか?日本語ドキュメントなんて限られてるから技術者はググるときは英語だろう。
しかもwikipの日本語のIT用語の項目なんてほとんどないぞ。日本はIT後進国だから。中国語のほうが充実してる。
その中にあってLLだけば日本語版だけが異常に充実してるという。
まぁ、日本語でググったけどLL言ってるのはWEB2.0、クラウド、AI言ってる輩だね。
C言語使わない、使えない輩だからおれには接点はないわ。どっちがズレてるかよく考えてほしいね。
本気で言ってるのか?日本語ドキュメントなんて限られてるから技術者はググるときは英語だろう。
しかもwikipの日本語のIT用語の項目なんてほとんどないぞ。日本はIT後進国だから。中国語のほうが充実してる。
その中にあってLLだけば日本語版だけが異常に充実してるという。
まぁ、日本語でググったけどLL言ってるのはWEB2.0、クラウド、AI言ってる輩だね。
C言語使わない、使えない輩だからおれには接点はないわ。どっちがズレてるかよく考えてほしいね。
314デフォルトの名無しさん
2017/07/28(金) 23:05:09.92ID:wndodTEE とりあえずお前は「無知でごめんなさい」から始めようか w
> LL言語側のリスト等の物理配置は公開されてないんだから、これは無理だろ。
> 仮に公開するにしても当然アクセス用API関数であって、内部構造は隠蔽されるだろ
> LL言語側のリスト等の物理配置は公開されてないんだから、これは無理だろ。
> 仮に公開するにしても当然アクセス用API関数であって、内部構造は隠蔽されるだろ
315デフォルトの名無しさん
2017/07/28(金) 23:07:08.97ID:kYloII+J316デフォルトの名無しさん
2017/07/28(金) 23:11:29.26ID:Mk6h7bQQ317デフォルトの名無しさん
2017/07/28(金) 23:13:42.45ID:kYloII+J >>316
隠蔽の意味も理解してない奴に言われてもなぁ w
隠蔽の意味も理解してない奴に言われてもなぁ w
318デフォルトの名無しさん
2017/07/28(金) 23:16:01.92ID:d5LZ2kks スレチ
319デフォルトの名無しさん
2017/07/28(金) 23:20:19.95ID:wtp1eGJk >>315
そうなんだよ。聞いてくれよ。怒り心頭だよ。
日本語のwikipのLLの内容はマジで恥ずかしい。こんなアホ議論してるのは世界で日本だけ。
> この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。
> この節には独自研究が含まれているおそれがあります。
> 日本独自の用語・分類への批判
> 比較対象がないことへの批判
> 誤解を招く用語であるという批判
なんだこれ。こんな完全なバズワードを偉そうにLLすら知らないのかって言われたんだよ。
こんな用語使ってる輩の脳がLightWeightなのに。
そうなんだよ。聞いてくれよ。怒り心頭だよ。
日本語のwikipのLLの内容はマジで恥ずかしい。こんなアホ議論してるのは世界で日本だけ。
> この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。
> この節には独自研究が含まれているおそれがあります。
> 日本独自の用語・分類への批判
> 比較対象がないことへの批判
> 誤解を招く用語であるという批判
なんだこれ。こんな完全なバズワードを偉そうにLLすら知らないのかって言われたんだよ。
こんな用語使ってる輩の脳がLightWeightなのに。
320デフォルトの名無しさん
2017/07/28(金) 23:26:08.74ID:Mk6h7bQQ321デフォルトの名無しさん
2017/07/28(金) 23:32:35.71ID:e9WYMOex 仮にバズワードとしてもわざわざ2chで知らないアピールせずに黙ってググれば馬鹿にされることもなかったろうに
322デフォルトの名無しさん
2017/07/28(金) 23:42:53.57ID:wtp1eGJk 確かにLL知らないで馬鹿にされた。だが今はもう違う。おれが馬鹿にする番。
LLなどという日本限定バズワードを使う胡散臭い輩がC言語スレで能書き垂れてんじゃねーよ、
英語もできんLightWeigt脳の低スキル技術者どもが。
LLなどという日本限定バズワードを使う胡散臭い輩がC言語スレで能書き垂れてんじゃねーよ、
英語もできんLightWeigt脳の低スキル技術者どもが。
323デフォルトの名無しさん
2017/07/28(金) 23:58:33.49ID:Mk6h7bQQ >>322
「LL(言語)」ってのは通じる言葉だ。だから使う事自体は悪くない。
(正確にはLL言語だと「言語」が被るのだが、俺は「言語」付けた方が通じやすいと思う)
ただし通じる界隈は違っていて、LL言語と纏めて呼ばれるのは通常、
Perl/Python/Ruby/JavaScript等だから、ここら辺のユーザーなら確実に通じる。
実際、Perl/Python/Rubyなんて使用範囲もできることも同じで、区別する必要ないだろ。
だから纏めてLL言語と呼ばれるし、彼らもそれに慣れている。
C/C++/Java/C#等はこれらとは全く違うため、
この界隈では「LL言語」という言葉が使われることは少ない。
それだけ。
「LL(言語)」ってのは通じる言葉だ。だから使う事自体は悪くない。
(正確にはLL言語だと「言語」が被るのだが、俺は「言語」付けた方が通じやすいと思う)
ただし通じる界隈は違っていて、LL言語と纏めて呼ばれるのは通常、
Perl/Python/Ruby/JavaScript等だから、ここら辺のユーザーなら確実に通じる。
実際、Perl/Python/Rubyなんて使用範囲もできることも同じで、区別する必要ないだろ。
だから纏めてLL言語と呼ばれるし、彼らもそれに慣れている。
C/C++/Java/C#等はこれらとは全く違うため、
この界隈では「LL言語」という言葉が使われることは少ない。
それだけ。
324デフォルトの名無しさん
2017/07/29(土) 00:02:27.03ID:gp3BUyJn スクリプト系言語でいいだろ。昔からそう言ってる。
325デフォルトの名無しさん
2017/07/29(土) 00:07:34.47ID:VkCqDRe3 lol
326デフォルトの名無しさん
2017/07/29(土) 00:16:53.64ID:vlC06Wfm (lol)
こうすると顔文字のようだ。
こうすると顔文字のようだ。
327デフォルトの名無しさん
2017/07/29(土) 00:22:54.09ID:gxbujSGs >>324
いやそれはちょっと違う。日本語版Wikiはちょっと広めに取りすぎている。
https://ja.wikipedia.org/wiki/%E8%BB%BD%E9%87%8F%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E
実際のところ、俺の感覚では、以下だ。
Perl/Python/Ruby/JavaScript <-100%LL言語に含まれる
PHP/Lua <- LL言語に含める奴もいる。割合は50%位か?
AWK/bash <- LL言語に入れる奴はいない。これらはスクリプト言語と呼ばれる。
旧来の「スクリプト言語」はフルセットの機能を持っていなかった。
ところがPerl以降はプログラミング言語としても遜色なくなってきている。
とはいえC++やJavaとは明らかに違う。
ということでこれらを呼ぶために生まれた言葉が「LL言語」だ。(と思う)
よく分からなければ「Perl/Python/Ruby/JavaScript/その他」の理解で問題ない。
いやそれはちょっと違う。日本語版Wikiはちょっと広めに取りすぎている。
https://ja.wikipedia.org/wiki/%E8%BB%BD%E9%87%8F%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E
実際のところ、俺の感覚では、以下だ。
Perl/Python/Ruby/JavaScript <-100%LL言語に含まれる
PHP/Lua <- LL言語に含める奴もいる。割合は50%位か?
AWK/bash <- LL言語に入れる奴はいない。これらはスクリプト言語と呼ばれる。
旧来の「スクリプト言語」はフルセットの機能を持っていなかった。
ところがPerl以降はプログラミング言語としても遜色なくなってきている。
とはいえC++やJavaとは明らかに違う。
ということでこれらを呼ぶために生まれた言葉が「LL言語」だ。(と思う)
よく分からなければ「Perl/Python/Ruby/JavaScript/その他」の理解で問題ない。
328デフォルトの名無しさん
2017/07/29(土) 00:27:01.78ID:E9tUO4Ko LLという日本語だと思えば別に恥ずかしくないだろうに。
329デフォルトの名無しさん
2017/07/29(土) 00:29:11.14ID:vlC06Wfm これからは BASIC
10 PRINT "ぷ"
10 PRINT "ぷ"
330デフォルトの名無しさん
2017/07/29(土) 00:31:57.73ID:gp3BUyJn C#だろうとJavaだろうとFotranだろうと多くのライブラリはC、C++で書かれてる。
スクリプト系言語に限定して議論する理由は?
スクリプト系言語に限定して議論する理由は?
331デフォルトの名無しさん
2017/07/29(土) 00:33:28.06ID:YB2Y7dkJ >>327
Basicはどの辺に分類されるの?
Basicはどの辺に分類されるの?
332デフォルトの名無しさん
2017/07/29(土) 00:36:55.90ID:YB2Y7dkJ bashがスクリプト言語になるなら、Emacsもそうなるかな
333デフォルトの名無しさん
2017/07/29(土) 00:37:55.49ID:dTbBo9oQ で、結局リスト実装出来ない雑魚はおんのか?
334デフォルトの名無しさん
2017/07/29(土) 00:48:16.16ID:gxbujSGs >>330
何が言いたいのか分からんが、エスパーするとこれで答えになるか?
LL言語 ⊂ (君の言う超広義の)スクリプト言語
C#/Java/FortranをLL言語と呼ぶ奴はいない。
つか、知らない言語の話なんてしないんだし、
自分の知っている言語のどれがLL言語と呼ばれるかフラグ立てておけば済む話だぞ。
出現頻度だけで言えば、LL言語≒Perl/Python/Ruby/JavaScriptでいい。
何が言いたいのか分からんが、エスパーするとこれで答えになるか?
LL言語 ⊂ (君の言う超広義の)スクリプト言語
C#/Java/FortranをLL言語と呼ぶ奴はいない。
つか、知らない言語の話なんてしないんだし、
自分の知っている言語のどれがLL言語と呼ばれるかフラグ立てておけば済む話だぞ。
出現頻度だけで言えば、LL言語≒Perl/Python/Ruby/JavaScriptでいい。
335デフォルトの名無しさん
2017/07/29(土) 01:53:34.44ID:YB2Y7dkJ LL言語という物の中身は分かりましたが
そのように分類する事で、
得るものがあるようには感じませんでした
そのように分類する事で、
得るものがあるようには感じませんでした
336デフォルトの名無しさん
2017/07/29(土) 04:02:19.23ID:F0OdFQYT >>294
ソートが楽になるだろう?
ソートが楽になるだろう?
337デフォルトの名無しさん
2017/07/29(土) 04:04:40.21ID:TpFswTs0338デフォルトの名無しさん
2017/07/29(土) 05:24:03.96ID:sjwibnJ3 既存のCのコードをUnicode対応に書き直したいんだけど、
char を wchar_t に置換したり、文字列リテラルにプレフィックス付けてくれたり、
関数を wchar.h 版にしてくれる便利なツールは無いですか?
もしくは予約毎と文字列リテラルだけを対象にしたいので、
パースして品詞情報を出してくれるスクリプトなんかあれば改造するかも。
char を wchar_t に置換したり、文字列リテラルにプレフィックス付けてくれたり、
関数を wchar.h 版にしてくれる便利なツールは無いですか?
もしくは予約毎と文字列リテラルだけを対象にしたいので、
パースして品詞情報を出してくれるスクリプトなんかあれば改造するかも。
339デフォルトの名無しさん
2017/07/29(土) 05:31:19.12ID:u24XiLoF >>336
double とか int でもそう思ってるなら単なるアホだぞ
double とか int でもそう思ってるなら単なるアホだぞ
340デフォルトの名無しさん
2017/07/29(土) 05:34:46.32ID:u24XiLoF341デフォルトの名無しさん
2017/07/29(土) 05:39:01.00ID:u24XiLoF >>335
まあLL知らなかったアホが悔し紛れにマウンティングしようとして自爆してるだけだから w
まあLL知らなかったアホが悔し紛れにマウンティングしようとして自爆してるだけだから w
342デフォルトの名無しさん
2017/07/29(土) 05:47:56.72ID:vlC06Wfm >>338
そういうツール作ればいいじゃん。
そういうツール作ればいいじゃん。
343デフォルトの名無しさん
2017/07/29(土) 07:17:17.25ID:N+YJafLA344デフォルトの名無しさん
2017/07/29(土) 07:28:56.29ID:N+YJafLA345デフォルトの名無しさん
2017/07/29(土) 07:55:34.60ID:TpFswTs0346デフォルトの名無しさん
2017/07/29(土) 08:00:46.31ID:ULoSSJ2b >>339
くさるほど連結リストを作るのに、いちいち特定の型に対応させてられないよ
くさるほど連結リストを作るのに、いちいち特定の型に対応させてられないよ
347デフォルトの名無しさん
2017/07/29(土) 08:04:41.41ID:N+YJafLA >>345
で結局何のリストなの?
で結局何のリストなの?
348デフォルトの名無しさん
2017/07/29(土) 08:09:17.20ID:N+YJafLA349デフォルトの名無しさん
2017/07/29(土) 08:10:22.22ID:N+YJafLA 皮肉に対してトンチンカンな指摘をしてるアホが
一人いるみたいだけど
一人いるみたいだけど
350デフォルトの名無しさん
2017/07/29(土) 08:11:51.02ID:N+YJafLA >>346
腐るほど連結リストを作るプログラムって何だ?
腐るほど連結リストを作るプログラムって何だ?
351デフォルトの名無しさん
2017/07/29(土) 08:15:35.54ID:zJVnUUbX352デフォルトの名無しさん
2017/07/29(土) 08:17:38.69ID:zJVnUUbX353デフォルトの名無しさん
2017/07/29(土) 08:25:35.65ID:N+YJafLA354デフォルトの名無しさん
2017/07/29(土) 08:25:56.47ID:ULoSSJ2b >>352
連結リストの型ごとにアルゴリズムを生成するの?それこそミスの元じゃない?
連結リストの型ごとにアルゴリズムを生成するの?それこそミスの元じゃない?
355デフォルトの名無しさん
2017/07/29(土) 08:26:55.49ID:ULoSSJ2b356デフォルトの名無しさん
2017/07/29(土) 08:29:08.33ID:N+YJafLA357デフォルトの名無しさん
2017/07/29(土) 08:31:19.71ID:ULoSSJ2b 連結リストの中に連結リストとか自由にやりたいのだったら void *data 一択だよ
358デフォルトの名無しさん
2017/07/29(土) 08:31:57.23ID:N+YJafLA 構造体名と型をdefineしてからインクルード
359デフォルトの名無しさん
2017/07/29(土) 08:33:04.08ID:zJVnUUbX >>354
> まあいろんな型が必要だとテンプレートが欲しくなるけど
マクロでもそこそこ行けるしね
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
> まあいろんな型が必要だとテンプレートが欲しくなるけど
マクロでもそこそこ行けるしね
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
360デフォルトの名無しさん
2017/07/29(土) 08:35:18.93ID:ULoSSJ2b どっちが書きやすいか試せば一発だが‥これは二分木でも一緒
誰か三重の連結リストなり二分木なりを自分のやりかたで書いてくれないか?
誰か三重の連結リストなり二分木なりを自分のやりかたで書いてくれないか?
361デフォルトの名無しさん
2017/07/29(土) 08:36:09.59ID:N+YJafLA リストのノードとは別にメモリ確保が必要なら、パフォーマンスにも影響するし
362デフォルトの名無しさん
2017/07/29(土) 08:40:17.35ID:N+YJafLA 腐るほど使うなら使いやすくないと
メモリ確保、解放を自分でやれ?
あり得ない
メモリ確保、解放を自分でやれ?
あり得ない
363デフォルトの名無しさん
2017/07/29(土) 08:41:10.70ID:ULoSSJ2b >>362
それはCの基本だよ、お前さんC++に慣れきっているんじゃない?
それはCの基本だよ、お前さんC++に慣れきっているんじゃない?
364タグもいるかな
2017/07/29(土) 08:41:31.77ID:zJVnUUbX >>357
せっかくの静的型付を安易に捨てるのはバカにありがちな行動
struct List_t {
struct List_t *Previous;
struct List_t *Next;
union {
struct List_t *Child;
double Double;
} Data;
};
せっかくの静的型付を安易に捨てるのはバカにありがちな行動
struct List_t {
struct List_t *Previous;
struct List_t *Next;
union {
struct List_t *Child;
double Double;
} Data;
};
365デフォルトの名無しさん
2017/07/29(土) 08:44:54.55ID:N+YJafLA366デフォルトの名無しさん
2017/07/29(土) 08:52:21.05ID:ULoSSJ2b367デフォルトの名無しさん
2017/07/29(土) 08:53:25.58ID:ULoSSJ2b368デフォルトの名無しさん
2017/07/29(土) 08:54:11.31ID:TpFswTs0 > そこそこ行けるしね
と書くとアンダーラインになるのか?
と書くとアンダーラインになるのか?
369デフォルトの名無しさん
2017/07/29(土) 08:55:16.84ID:TpFswTs0 マクロでもそこそこ行けるしね
そこそこ行けるしね
行けるしね
そこそこ行けるしね
行けるしね
370デフォルトの名無しさん
2017/07/29(土) 09:20:46.96ID:zJVnUUbX >>366
続きってなんだよ w
2分木なら双方向リストと同じだぞ w
struct List_t {
struct List_t *Left;
struct List_t *Right;
double Data;
};
続きってなんだよ w
2分木なら双方向リストと同じだぞ w
struct List_t {
struct List_t *Left;
struct List_t *Right;
double Data;
};
371デフォルトの名無しさん
2017/07/29(土) 09:21:39.47ID:zJVnUUbX >>368
アンダーライン w
アンダーライン w
372デフォルトの名無しさん
2017/07/29(土) 09:28:06.03ID:14mINgXT ん?
二分木なら3個とつながってるから、
普通3個リンクを張る
二分木なら3個とつながってるから、
普通3個リンクを張る
373デフォルトの名無しさん
2017/07/29(土) 09:29:28.03ID:dTbBo9oQ374デフォルトの名無しさん
2017/07/29(土) 09:29:42.67ID:14mINgXT あと、色情報も普通はつける
375デフォルトの名無しさん
2017/07/29(土) 09:43:22.80ID:N+YJafLA376デフォルトの名無しさん
2017/07/29(土) 09:43:31.26ID:zJVnUUbX377デフォルトの名無しさん
2017/07/29(土) 09:45:52.74ID:zJVnUUbX378デフォルトの名無しさん
2017/07/29(土) 09:49:09.48ID:zJVnUUbX379デフォルトの名無しさん
2017/07/29(土) 09:54:12.77ID:N+YJafLA ポインタを進めたり戻したりする必要がなければ
親にリンクを張らなくてもいいけどさ
std::setと同等なものをイメージしたけど、
まったく違うものが突然出てきたわけね
親にリンクを張らなくてもいいけどさ
std::setと同等なものをイメージしたけど、
まったく違うものが突然出てきたわけね
380デフォルトの名無しさん
2017/07/29(土) 09:59:21.62ID:N+YJafLA381デフォルトの名無しさん
2017/07/29(土) 09:59:54.86ID:N+YJafLA おれの読解力が無さすぎるのか、
説明がなさすぎるのか、
説明がなさすぎるのか、
382デフォルトの名無しさん
2017/07/29(土) 10:08:25.24ID:RY+TGg1x383デフォルトの名無しさん
2017/07/29(土) 10:11:31.61ID:dTbBo9oQ >>377
それいうならリストの中身void*にするのもそこまで安易な選択ってわけでもあるまいに
それいうならリストの中身void*にするのもそこまで安易な選択ってわけでもあるまいに
384デフォルトの名無しさん
2017/07/29(土) 10:14:10.31ID:gxbujSGs385デフォルトの名無しさん
2017/07/29(土) 10:17:23.70ID:N+YJafLA386デフォルトの名無しさん
2017/07/29(土) 10:20:56.53ID:N+YJafLA >>370で二分木の話が出た
もっと上ではsetの話が出ている
もっと上ではsetの話が出ている
387デフォルトの名無しさん
2017/07/29(土) 10:22:31.80ID:N+YJafLA388デフォルトの名無しさん
2017/07/29(土) 10:26:44.77ID:N+YJafLA まあいずれにしろ、>>289 は無いな
389デフォルトの名無しさん
2017/07/29(土) 10:31:03.43ID:zJVnUUbX >>383
ソート使うのにmalloc/freeは要らんだろ
ソート使うのにmalloc/freeは要らんだろ
390デフォルトの名無しさん
2017/07/29(土) 10:35:15.55ID:dTbBo9oQ >>389
リストなんてどうせmalloc/free使って運用するし別によくね?
リストなんてどうせmalloc/free使って運用するし別によくね?
391デフォルトの名無しさん
2017/07/29(土) 10:36:49.65ID:gxbujSGs392デフォルトの名無しさん
2017/07/29(土) 10:37:38.60ID:zJVnUUbX393デフォルトの名無しさん
2017/07/29(土) 10:37:49.78ID:N+YJafLA394デフォルトの名無しさん
2017/07/29(土) 10:39:22.96ID:N+YJafLA >>392
なんだ、結局おれ以外も会話が通じてないんじゃん
なんだ、結局おれ以外も会話が通じてないんじゃん
395デフォルトの名無しさん
2017/07/29(土) 10:40:24.22ID:zJVnUUbX >>390
まあお前がいいと思うならそうすればいいんじゃね?
まあお前がいいと思うならそうすればいいんじゃね?
396デフォルトの名無しさん
2017/07/29(土) 10:41:41.06ID:N+YJafLA397デフォルトの名無しさん
2017/07/29(土) 10:42:46.56ID:N+YJafLA398デフォルトの名無しさん
2017/07/29(土) 10:47:50.62ID:N+YJafLA399デフォルトの名無しさん
2017/07/29(土) 10:48:39.76ID:N+YJafLA 「普通は」とか書くと反論がくるのかな
「多くは」くらいにしておくか
「多くは」くらいにしておくか
400デフォルトの名無しさん
2017/07/29(土) 10:58:06.68ID:N+YJafLA401デフォルトの名無しさん
2017/07/29(土) 11:00:17.42ID:gxbujSGs >>392
> ノードに値とリストのどちらかを入れられるリストと言う要件だと思ったが?
いや、そう明示されているわけではないよな?
次に、それが要件だったとして、或いは汎用化するために void* だろってのが皆の意見だ。
ここについては俺はいちいちキャストがウザいからデータはめ込み派(君と同じ)だが。
> ノードに値とリストのどちらかを入れられるリストと言う要件だと思ったが?
いや、そう明示されているわけではないよな?
次に、それが要件だったとして、或いは汎用化するために void* だろってのが皆の意見だ。
ここについては俺はいちいちキャストがウザいからデータはめ込み派(君と同じ)だが。
402デフォルトの名無しさん
2017/07/29(土) 11:09:28.10ID:VkCqDRe3 Cばかり使っていると頭がこんなんなっちゃいます。
403デフォルトの名無しさん
2017/07/29(土) 11:11:38.53ID:N+YJafLA void* の問題はキャストもそうだけど
外部でメモリを管理する必要があるってところが大きいかと
多重リストだろうがunionだろうが
マクロでどうにでもなるんで
わざわざ不便な作りにする必要は無いかと
外部でメモリを管理する必要があるってところが大きいかと
多重リストだろうがunionだろうが
マクロでどうにでもなるんで
わざわざ不便な作りにする必要は無いかと
404デフォルトの名無しさん
2017/07/29(土) 11:13:16.21ID:N+YJafLA405デフォルトの名無しさん
2017/07/29(土) 11:14:41.46ID:eThbJX9n (単方向)リストは先頭から終端の方向へ順にポインタを辿る、逆方向のポインタは無くても可(逆方向があるのは双方向リスト)
二分木は根から葉の方向へ再帰でポインタを辿る、親方向のポインタは無くても可(むしろ無いのが普通)
二分木は根から葉の方向へ再帰でポインタを辿る、親方向のポインタは無くても可(むしろ無いのが普通)
406デフォルトの名無しさん
2017/07/29(土) 11:16:39.02ID:gxbujSGs407デフォルトの名無しさん
2017/07/29(土) 11:16:58.24ID:N+YJafLA Cってパフォーマンスを落としてまで汎用化するような使い方ってあまりしないしね
基本組み込み用
リストも片方向で済むなら片方向にするし、
そもそもリスト構造自体頻繁に使うようなものじゃない
基本組み込み用
リストも片方向で済むなら片方向にするし、
そもそもリスト構造自体頻繁に使うようなものじゃない
408デフォルトの名無しさん
2017/07/29(土) 11:18:34.04ID:N+YJafLA だから、
Cで挫折する理由が「リスト」とかいう主張、
まったくチンプンカンプンで
Cで挫折する理由が「リスト」とかいう主張、
まったくチンプンカンプンで
409デフォルトの名無しさん
2017/07/29(土) 11:19:32.62ID:zJVnUUbX >>401
> いや、そう明示されているわけではないよな?
で、君は
> 連結リストの中に連結リストとか自由にやりたい
をどう解釈してマクロでやるって言ってるの?
> 次に、それが要件だったとして、或いは汎用化するために void* だろってのが皆の意見だ。
皆の意見? w
> いや、そう明示されているわけではないよな?
で、君は
> 連結リストの中に連結リストとか自由にやりたい
をどう解釈してマクロでやるって言ってるの?
> 次に、それが要件だったとして、或いは汎用化するために void* だろってのが皆の意見だ。
皆の意見? w
410デフォルトの名無しさん
2017/07/29(土) 11:21:33.18ID:N+YJafLA >>406
要件次第で変わるのに「同じ」と言ってしまう
要件次第で変わるのに「同じ」と言ってしまう
411デフォルトの名無しさん
2017/07/29(土) 11:23:02.49ID:N+YJafLA412デフォルトの名無しさん
2017/07/29(土) 11:26:20.62ID:gxbujSGs >>409
俺なら型ごとにstructを用意、つまりテンプレートと同じことをする、ということ。
ただしvoid*にしろって言う意見も分かるし、C的にはそれもありだと思うぞ。
ここら辺は好みの範囲だとは思うが。
俺なら型ごとにstructを用意、つまりテンプレートと同じことをする、ということ。
ただしvoid*にしろって言う意見も分かるし、C的にはそれもありだと思うぞ。
ここら辺は好みの範囲だとは思うが。
413デフォルトの名無しさん
2017/07/29(土) 11:30:42.93ID:N+YJafLA >>405
無いのが普通って
世の中を知らなすぎる
汎用のコンテナとしての2分木で
そういう実装な例があるなら
示していただけると
出来れば有名どころで
親がないと、ポインタを一個進めるのもコストがかかる
挿入した時に左右のバランスを保つのにもコストがかかる
もちろん、そういう処理がいらない
コンテナとして使わないような
特殊用途の2分木ならいくらでもあるだろうけど
今はコンテナの話だよね
無いのが普通って
世の中を知らなすぎる
汎用のコンテナとしての2分木で
そういう実装な例があるなら
示していただけると
出来れば有名どころで
親がないと、ポインタを一個進めるのもコストがかかる
挿入した時に左右のバランスを保つのにもコストがかかる
もちろん、そういう処理がいらない
コンテナとして使わないような
特殊用途の2分木ならいくらでもあるだろうけど
今はコンテナの話だよね
414デフォルトの名無しさん
2017/07/29(土) 11:30:53.18ID:zJVnUUbX415デフォルトの名無しさん
2017/07/29(土) 11:32:58.28ID:N+YJafLA 例えばstd::setの実装はすべて親へのリンクがある
416デフォルトの名無しさん
2017/07/29(土) 11:36:13.86ID:gxbujSGs >>414
インラインマクロでゴリゴリに対応するのではなくて、
structの宣言部分をマクロ化して、
MyList(MyListDouble, double)
MyList(MyListInt, int)
で量産する、ということ。つまりテンプレートだろこれは。
インラインマクロでゴリゴリに対応するのではなくて、
structの宣言部分をマクロ化して、
MyList(MyListDouble, double)
MyList(MyListInt, int)
で量産する、ということ。つまりテンプレートだろこれは。
417デフォルトの名無しさん
2017/07/29(土) 11:44:36.57ID:N+YJafLA コードサイズが大きい時は、
名前と型をdefineしてからinclude
とか良くやる
defineやincludeは上のMyListみたいなマクロで
名前と型をdefineしてからinclude
とか良くやる
defineやincludeは上のMyListみたいなマクロで
418デフォルトの名無しさん
2017/07/29(土) 11:59:50.67ID:ODSH1Ehs419デフォルトの名無しさん
2017/07/29(土) 12:00:47.71ID:EGnuLLJd いつからコンテナの話になったんや
420デフォルトの名無しさん
2017/07/29(土) 12:09:46.80ID:14mINgXT >>418
型ならなんでも良い
型ならなんでも良い
421デフォルトの名無しさん
2017/07/29(土) 12:10:50.91ID:14mINgXT >>419
最初からずっと
最初からずっと
422デフォルトの名無しさん
2017/07/29(土) 12:13:39.65ID:14mINgXT ていうか
コンテナじゃない2分木はあるけど、
コンテナじゃないリストなんて無いだろ
初期化リストか?
コンテナじゃない2分木はあるけど、
コンテナじゃないリストなんて無いだろ
初期化リストか?
423デフォルトの名無しさん
2017/07/29(土) 12:22:33.90ID:EGnuLLJd コンテナの定義に詳しくないんだけど、Lispのリストはコンテナなん?
424デフォルトの名無しさん
2017/07/29(土) 12:24:27.13ID:vlC06Wfm このスレは1000までリストの話で埋まりそうだね。物凄いスピードで。
425デフォルトの名無しさん
2017/07/29(土) 12:35:38.98ID:gxbujSGs426デフォルトの名無しさん
2017/07/29(土) 12:48:00.97ID:TYuY3Yui >>420
単にunion使わずに(メモリー気にせずに)struct使うって話?
単にunion使わずに(メモリー気にせずに)struct使うって話?
427デフォルトの名無しさん
2017/07/29(土) 12:51:34.43ID:QBDV3ETd あんなあおまいら・・
これ、コレクションをライブラリとして持てという
あるいはそれをどう作るかという話なんだわ
例をあげれば、AppleのCFMutableArray
Win32ならなんだ?
これ、コレクションをライブラリとして持てという
あるいはそれをどう作るかという話なんだわ
例をあげれば、AppleのCFMutableArray
Win32ならなんだ?
428デフォルトの名無しさん
2017/07/29(土) 13:02:32.44ID:14mINgXT >>426
型ごとに作るってこと
型ごとに作るってこと
429デフォルトの名無しさん
2017/07/29(土) 13:09:06.48ID:TYuY3Yui430デフォルトの名無しさん
2017/07/29(土) 13:09:40.87ID:14mINgXT MyList(MyListDouble, double)
MyList(MyListMyListDouble, MyListDouble)
MyList(MyListMyListDouble, MyListDouble)
431デフォルトの名無しさん
2017/07/29(土) 13:11:30.55ID:gxbujSGs >>427
C的には、
> コレクションをライブラリとして持て
いらんわ
> あるいはそれをどう作るか
必要なら自分で作るし苦労もしない
だと思うぞ。もちろんC++使ってもいいし、今更だろ。
ただそれ以前に、現実として、動的キー(辞書)が必要な用途はあまりないだろ。
Cの担当範囲なら、ほぼ全ての場合で構造体(静的キー)と配列で間に合う。(鶏と卵ではあるが)
もちろんこれら含めて汎用化したほうが楽だが、その分遅いのがLL言語な訳で。
C的には、
> コレクションをライブラリとして持て
いらんわ
> あるいはそれをどう作るか
必要なら自分で作るし苦労もしない
だと思うぞ。もちろんC++使ってもいいし、今更だろ。
ただそれ以前に、現実として、動的キー(辞書)が必要な用途はあまりないだろ。
Cの担当範囲なら、ほぼ全ての場合で構造体(静的キー)と配列で間に合う。(鶏と卵ではあるが)
もちろんこれら含めて汎用化したほうが楽だが、その分遅いのがLL言語な訳で。
432デフォルトの名無しさん
2017/07/29(土) 13:17:05.76ID:QBDV3ETd >>431
まあC++使えば済む話でもあるからな
まあC++使えば済む話でもあるからな
433デフォルトの名無しさん
2017/07/29(土) 13:27:26.48ID:gxbujSGs >>429
> unionになんかトラウマでもあるのか?
いやお前少しは他言語もやれよ。
unionは他言語では廃止されている。理由はいろいろまずいから。
ググれば出て来るからやってみ。
まあそれ以前に君はunionの使い方を間違っている。
あれは、リード/ライトで型が違うときに使うものであって、
型違いだがサイズが同じだから突っ込む、という為の物ではない。
というか後者ならvoid*で受けていちいちキャストするというのが正しい。
しかしこれだと型チェックできなくなるからテンプレートにしろというのがC++だ。
> unionになんかトラウマでもあるのか?
いやお前少しは他言語もやれよ。
unionは他言語では廃止されている。理由はいろいろまずいから。
ググれば出て来るからやってみ。
まあそれ以前に君はunionの使い方を間違っている。
あれは、リード/ライトで型が違うときに使うものであって、
型違いだがサイズが同じだから突っ込む、という為の物ではない。
というか後者ならvoid*で受けていちいちキャストするというのが正しい。
しかしこれだと型チェックできなくなるからテンプレートにしろというのがC++だ。
434デフォルトの名無しさん
2017/07/29(土) 13:29:31.36ID:N+YJafLA 形別 > union > void*
こうだな
もちろんサイズにもよるが
こうだな
もちろんサイズにもよるが
435デフォルトの名無しさん
2017/07/29(土) 13:30:38.44ID:N+YJafLA >>433
goto嫌いと同じにおいが
goto嫌いと同じにおいが
436デフォルトの名無しさん
2017/07/29(土) 13:32:15.53ID:N+YJafLA 何度も書くけど、
外でメモリ確保解放強制はあり得ない
外でメモリ確保解放強制はあり得ない
437デフォルトの名無しさん
2017/07/29(土) 13:33:45.21ID:N+YJafLA >>433
サイズが同じ?
サイズが同じ?
438デフォルトの名無しさん
2017/07/29(土) 13:34:53.52ID:N+YJafLA unionの使い方は1つじゃないよ
439デフォルトの名無しさん
2017/07/29(土) 13:41:10.88ID:gxbujSGs >>432
Cは大前提としてそれがあるんだよ。
不満があればC++で大体事足り、それがbetterCだ。(俺の認識では)
つまり、リストが欲しいけど自分で作るのは面倒、だったらここだけC++使うか、って場合。
Cは大前提としてそれがあるんだよ。
不満があればC++で大体事足り、それがbetterCだ。(俺の認識では)
つまり、リストが欲しいけど自分で作るのは面倒、だったらここだけC++使うか、って場合。
440デフォルトの名無しさん
2017/07/29(土) 13:53:49.23ID:E5EEKRTu >>433
> あれは、リード/ライトで型が違うときに使うものであって、
> 型違いだがサイズが同じだから突っ込む、という為の物ではない。
まあ確かにお前はunion使わない方がいいわ w
一応言っておくけど読み書きで型が違ったら値は保証されないよ
> あれは、リード/ライトで型が違うときに使うものであって、
> 型違いだがサイズが同じだから突っ込む、という為の物ではない。
まあ確かにお前はunion使わない方がいいわ w
一応言っておくけど読み書きで型が違ったら値は保証されないよ
441デフォルトの名無しさん
2017/07/29(土) 13:54:39.36ID:YB2Y7dkJ union なくなると XEvent 困るだろう
442デフォルトの名無しさん
2017/07/29(土) 14:04:10.84ID:uK1pt60X unionて、メモリを節約できるのとそのメンバが同時に使われないってことがわかりやすいくらいだよな。
>>364もべつにunion使わなくてもいいわけだし。
>>364もべつにunion使わなくてもいいわけだし。
443デフォルトの名無しさん
2017/07/29(土) 14:11:28.22ID:gp3BUyJn バズワード使うだけあってレベル低すぎる。>>433
444デフォルトの名無しさん
2017/07/29(土) 14:20:45.06ID:gxbujSGs445デフォルトの名無しさん
2017/07/29(土) 14:21:28.04ID:ULoSSJ2b union を使ったら見通しよく書けるのか?そうなのか?不思議な気分だ
よかったらサンプルコードを書いてほしい
よかったらサンプルコードを書いてほしい
446デフォルトの名無しさん
2017/07/29(土) 14:51:40.09ID:E5EEKRTu447デフォルトの名無しさん
2017/07/29(土) 14:58:48.36ID:E5EEKRTu448デフォルトの名無しさん
2017/07/29(土) 15:15:38.90ID:ULoSSJ2b >>447
それだけではわからないよ、実際に union の Child や Double の値を設定するところを見たいものだ
個人的にはうまくいかないと思っている
たぶんマクロを使うことになるし、マクロを使うんだったら共用体なんか使わないほうがよかった、という結果になりそう
それだけではわからないよ、実際に union の Child や Double の値を設定するところを見たいものだ
個人的にはうまくいかないと思っている
たぶんマクロを使うことになるし、マクロを使うんだったら共用体なんか使わないほうがよかった、という結果になりそう
449デフォルトの名無しさん
2017/07/29(土) 15:26:51.26ID:14mINgXT 何がわからないかわからない
450デフォルトの名無しさん
2017/07/29(土) 15:35:05.11ID:14mINgXT unionは、
普通に同時使用しないメンバに対して使われることもあるが
実際に使う環境を把握した上で
同じアドレスに対して複数のアクセス方法を
用いる場合にも良く使われる
一番あるのが、レジスタの定義
チップメーカーなどがヘッダとして提供したりする
ビットフィールドアクセスやワードアクセスなど、
複数のアクセス方法を使えるようにするため
あとは複数の型へのポインタをunionで定義したり
普通に同時使用しないメンバに対して使われることもあるが
実際に使う環境を把握した上で
同じアドレスに対して複数のアクセス方法を
用いる場合にも良く使われる
一番あるのが、レジスタの定義
チップメーカーなどがヘッダとして提供したりする
ビットフィールドアクセスやワードアクセスなど、
複数のアクセス方法を使えるようにするため
あとは複数の型へのポインタをunionで定義したり
451デフォルトの名無しさん
2017/07/29(土) 15:36:30.30ID:14mINgXT >>364は環境に依存しない、
普通の排他メンバの使い方
普通の排他メンバの使い方
452デフォルトの名無しさん
2017/07/29(土) 15:41:58.78ID:14mINgXT メモリをケチる為のunionは
時代とともに使う頻度は減っているが
複数のアクセス方法の為のunionは普通に使われる
もちろん環境依存コード
例えばWindows APIのLARGE_INTEGERも
この使い方のunion
時代とともに使う頻度は減っているが
複数のアクセス方法の為のunionは普通に使われる
もちろん環境依存コード
例えばWindows APIのLARGE_INTEGERも
この使い方のunion
453デフォルトの名無しさん
2017/07/29(土) 15:46:20.38ID:gp3BUyJn アセンブラじゃ共用が当たり前。だからCにある。それだけ。
x86のレジスタはまんま共用体。ワイヤー数、バス幅に制限があるんだから共用して当たり前。
本来、ハードの仕様を実装するためのもの。
x86のレジスタはまんま共用体。ワイヤー数、バス幅に制限があるんだから共用して当たり前。
本来、ハードの仕様を実装するためのもの。
454デフォルトの名無しさん
2017/07/29(土) 16:09:53.11ID:N+YJafLA なんか違う
455デフォルトの名無しさん
2017/07/29(土) 16:11:44.21ID:gxbujSGs >>449
まず大前提としてコードを再利用する仮定だ。
ベタにコピペした場合は関係ない。
>>364のunionは今なら継承で実装されることが多いはずだ。
当然Dataはテンプレート化され、
Previous,Nextへの書き込みは基底クラス、Dataへの書き込みは派生クラスに配置される。
これがC++的解決。
unionだと一見何でも書けるように見えるが、
実際は派生型を手動で扱っているのと同等なので、
共通書き込みルーチンを用意できない。これが>>448の言う、
> 個人的にはうまくいかないと思っている
で、俺もそう思う。
マクロを強引に使えば出来るかもしれんが、それなら上記C++的解決の方がマシ。
>>452
> メモリをケチる為のunionは
> 時代とともに使う頻度は減っているが
これって>>364の使い方、ということでいいのか?
それならC++的に言えば、
糞だからクラステンプレートと継承で対応できるようにして廃止した、というところだろう。
> 複数のアクセス方法の為のunionは普通に使われる
多分これ以外のunionは必要ない。
そして俺はこれについてはリート/ライトで型が違っても値が保証されていると認識している。
(一応言っておくが同じ値が読めるという意味ではない。《>>446の馬鹿は多分この勘違い》
プログラマから見て値が確定的、という意味だ。)
仕様に詳しい奴がいればよろしく。
まず大前提としてコードを再利用する仮定だ。
ベタにコピペした場合は関係ない。
>>364のunionは今なら継承で実装されることが多いはずだ。
当然Dataはテンプレート化され、
Previous,Nextへの書き込みは基底クラス、Dataへの書き込みは派生クラスに配置される。
これがC++的解決。
unionだと一見何でも書けるように見えるが、
実際は派生型を手動で扱っているのと同等なので、
共通書き込みルーチンを用意できない。これが>>448の言う、
> 個人的にはうまくいかないと思っている
で、俺もそう思う。
マクロを強引に使えば出来るかもしれんが、それなら上記C++的解決の方がマシ。
>>452
> メモリをケチる為のunionは
> 時代とともに使う頻度は減っているが
これって>>364の使い方、ということでいいのか?
それならC++的に言えば、
糞だからクラステンプレートと継承で対応できるようにして廃止した、というところだろう。
> 複数のアクセス方法の為のunionは普通に使われる
多分これ以外のunionは必要ない。
そして俺はこれについてはリート/ライトで型が違っても値が保証されていると認識している。
(一応言っておくが同じ値が読めるという意味ではない。《>>446の馬鹿は多分この勘違い》
プログラマから見て値が確定的、という意味だ。)
仕様に詳しい奴がいればよろしく。
456デフォルトの名無しさん
2017/07/29(土) 16:26:09.19ID:mj0H/MXI 初期化リストの話は終わったのか?
457デフォルトの名無しさん
2017/07/29(土) 16:38:11.08ID:Y1dtbxTh >>456
今union、次extern
今union、次extern
458デフォルトの名無しさん
2017/07/29(土) 16:51:08.52ID:ULoSSJ2b459デフォルトの名無しさん
2017/07/29(土) 17:00:18.71ID:ULoSSJ2b >>449 全部がわからない:−)
>>364 の方針で >>357 を書いてくれる人はいないものか
ちょっと想像がつかないんだ
void *data 派であるけれどもマクロの方はわかる、工藤智行氏の書籍にてさんざんやっていたからね https://www.amazon.co.jp/dp/4774100544/
>>364 の方針で >>357 を書いてくれる人はいないものか
ちょっと想像がつかないんだ
void *data 派であるけれどもマクロの方はわかる、工藤智行氏の書籍にてさんざんやっていたからね https://www.amazon.co.jp/dp/4774100544/
460デフォルトの名無しさん
2017/07/29(土) 17:05:21.12ID:zJVnUUbX >>455
よく知らないなら黙ってりゃいいのに w
よく知らないなら黙ってりゃいいのに w
461デフォルトの名無しさん
2017/07/29(土) 17:05:34.42ID:EGnuLLJd 共用体なんて使うとしたら、sdl_eventと同じように、enumとセットだろ〜?
462デフォルトの名無しさん
2017/07/29(土) 17:29:39.44ID:Xv3aO8mX トリコロシ
463デフォルトの名無しさん
2017/07/29(土) 17:35:09.29ID:CXR2+t0L COBOLだとレベル番号で同じことが出来るね
464デフォルトの名無しさん
2017/07/29(土) 17:35:29.83ID:zJVnUUbX465デフォルトの名無しさん
2017/07/29(土) 17:37:42.13ID:14mINgXT466デフォルトの名無しさん
2017/07/29(土) 17:41:42.52ID:gxbujSGs467デフォルトの名無しさん
2017/07/29(土) 17:45:12.94ID:gp3BUyJn JavaもC#もハナからOSやドライバを書く気ない。もちろんPascalで書く馬鹿もない。頓珍漢。ナンセンス。
468デフォルトの名無しさん
2017/07/29(土) 17:45:49.99ID:eThbJX9n #include <stdio.h>
typedef union {
unsigned char byte;
struct {
char bit0:1;
char bit1:1;
char bit2:1;
char bit3:1;
char bit4:1;
char bit5:1;
char bit6:1;
char bit7:1;
} bit;
} SFR;
int main(void) {
SFR sfr;
sfr.byte = 0x00; // All Clear
sfr.bit.bit7 = 1; // bit7 set
printf("%x", sfr); // sfr = 0x80
return 0;
}
typedef union {
unsigned char byte;
struct {
char bit0:1;
char bit1:1;
char bit2:1;
char bit3:1;
char bit4:1;
char bit5:1;
char bit6:1;
char bit7:1;
} bit;
} SFR;
int main(void) {
SFR sfr;
sfr.byte = 0x00; // All Clear
sfr.bit.bit7 = 1; // bit7 set
printf("%x", sfr); // sfr = 0x80
return 0;
}
469デフォルトの名無しさん
2017/07/29(土) 17:50:31.58ID:14mINgXT charが符号無しの環境?
470デフォルトの名無しさん
2017/07/29(土) 17:55:22.53ID:gxbujSGs >>467
JavaOSェ、、、
ただまあ、ハードが見えるレベルをC以外の言語で書くのは狂気の沙汰なのは同意する。
とはいえ、旧来のイベントオブジェクトがunionで出来ているのは、
・それがCの時代だったから
・古いから
であって、便利だからではない。
実際、新しいAPIは全部継承で実装されてるだろ。そういうことだよ。
JavaOSェ、、、
ただまあ、ハードが見えるレベルをC以外の言語で書くのは狂気の沙汰なのは同意する。
とはいえ、旧来のイベントオブジェクトがunionで出来ているのは、
・それがCの時代だったから
・古いから
であって、便利だからではない。
実際、新しいAPIは全部継承で実装されてるだろ。そういうことだよ。
471デフォルトの名無しさん
2017/07/29(土) 17:58:59.45ID:zJVnUUbX >>466
> C#も共用体は廃止済み。
何でこんな知識量でドヤれるんだろう? w
http://smdn.jp/programming/netfx/struct/1_structlayout_fieldoffset/#FieldOffsetAttribute
> C#も共用体は廃止済み。
何でこんな知識量でドヤれるんだろう? w
http://smdn.jp/programming/netfx/struct/1_structlayout_fieldoffset/#FieldOffsetAttribute
472デフォルトの名無しさん
2017/07/29(土) 18:01:14.53ID:14mINgXT 強要隊に親を殺された?
473デフォルトの名無しさん
2017/07/29(土) 18:01:47.45ID:gxbujSGs474デフォルトの名無しさん
2017/07/29(土) 18:04:09.87ID:14mINgXT 実際に共用体はいろいろで使われているわけで
475デフォルトの名無しさん
2017/07/29(土) 18:08:03.01ID:FQLMCr49 争いは同じレベルの者同士でしかうんたらかんたら
476デフォルトの名無しさん
2017/07/29(土) 18:10:06.13ID:vlC06Wfm union 使っても
いいじゃないか
C言語だもの
いいじゃないか
C言語だもの
477デフォルトの名無しさん
2017/07/29(土) 18:10:09.26ID:zJVnUUbX >>473
お前の糞職場は知らんけどMSはレガシー用なんて言ってないぞ
恥の上塗りかっこ悪 w
https://msdn.microsoft.com/en-us/library/system.runtime.interopservices.fieldoffsetattribute(v=vs.110).aspx
お前の糞職場は知らんけどMSはレガシー用なんて言ってないぞ
恥の上塗りかっこ悪 w
https://msdn.microsoft.com/en-us/library/system.runtime.interopservices.fieldoffsetattribute(v=vs.110).aspx
478デフォルトの名無しさん
2017/07/29(土) 18:17:23.76ID:gxbujSGs479デフォルトの名無しさん
2017/07/29(土) 18:26:02.72ID:eThbJX9n C言語での組込み開発では共用体は普通に使われてる
>>468で示唆したような特殊機能レジスタの多重定義などが代表例
>>468で示唆したような特殊機能レジスタの多重定義などが代表例
480デフォルトの名無しさん
2017/07/29(土) 18:26:39.61ID:vlC06Wfm レガC
481デフォルトの名無しさん
2017/07/29(土) 18:27:18.82ID:14mINgXT482デフォルトの名無しさん
2017/07/29(土) 18:27:46.17ID:vlC06Wfm483デフォルトの名無しさん
2017/07/29(土) 18:28:35.21ID:14mINgXT >>479
charにunsignedが無いのが気になってるわけだが
charにunsignedが無いのが気になってるわけだが
484デフォルトの名無しさん
2017/07/29(土) 18:29:51.58ID:zJVnUUbX485デフォルトの名無しさん
2017/07/29(土) 18:30:55.63ID:gxbujSGs486デフォルトの名無しさん
2017/07/29(土) 18:32:39.97ID:eThbJX9n487デフォルトの名無しさん
2017/07/29(土) 18:33:12.58ID:vlC06Wfm >>481
そうそう。わかってて使うなら gogo もありだ。
ていうかC言語だと使わないと変な書き方になってかえって読み辛くなることあるな。
try catch みたいな例外処理が書けないから。複数個所でエラーが出る可能性が
ある場合に処理を飛び越えて先に進ませる方法が for(;;) ブロックの中で break
使うぐらいしかなかったりして、ループでないのに for (;;) 使うぐらいなら goto 使った
方がまだ分かり易い。
そうそう。わかってて使うなら gogo もありだ。
ていうかC言語だと使わないと変な書き方になってかえって読み辛くなることあるな。
try catch みたいな例外処理が書けないから。複数個所でエラーが出る可能性が
ある場合に処理を飛び越えて先に進ませる方法が for(;;) ブロックの中で break
使うぐらいしかなかったりして、ループでないのに for (;;) 使うぐらいなら goto 使った
方がまだ分かり易い。
488デフォルトの名無しさん
2017/07/29(土) 18:34:01.67ID:14mINgXT char, unsigned char, signed char
この辺は規格がいまいち
文字をunsignedにしなかったのもいまいち
あとは演算子の優先順位にも不満がある
ビット演算が弱すぎる
代入が = / 比較が ==
なのもいまいち
いろんな歴史的な理由があるんだろうけど
この辺は規格がいまいち
文字をunsignedにしなかったのもいまいち
あとは演算子の優先順位にも不満がある
ビット演算が弱すぎる
代入が = / 比較が ==
なのもいまいち
いろんな歴史的な理由があるんだろうけど
489デフォルトの名無しさん
2017/07/29(土) 18:34:26.21ID:zJVnUUbX >>481
> 使いどころでは使えって話
まあそういうことだね
環境も目的も制約も様々だから絶対unionでないとダメとかunionはレガシーしか使っちゃダメとか言う奴はたいていちょっとアレな人なんだと思う
まあ引っ込みつかなくなっちゃったんだろうね
> 使いどころでは使えって話
まあそういうことだね
環境も目的も制約も様々だから絶対unionでないとダメとかunionはレガシーしか使っちゃダメとか言う奴はたいていちょっとアレな人なんだと思う
まあ引っ込みつかなくなっちゃったんだろうね
490デフォルトの名無しさん
2017/07/29(土) 18:35:03.24ID:14mINgXT491デフォルトの名無しさん
2017/07/29(土) 18:36:30.47ID:14mINgXT gogo
MP3関連のツールか?
MP3関連のツールか?
492デフォルトの名無しさん
2017/07/29(土) 18:54:34.75ID:F0OdFQYT493デフォルトの名無しさん
2017/07/29(土) 19:02:45.32ID:A0tSwWs4 バークレーソケットのソケットアドレス等で使わされてる感じだけど
自分から積極的に union を記述することは少ないな
自分から積極的に union を記述することは少ないな
494デフォルトの名無しさん
2017/07/29(土) 19:18:41.24ID:gxbujSGs495デフォルトの名無しさん
2017/07/29(土) 19:43:57.40ID:zJVnUUbX 反論できなくなってエアプとか w
分かりやすすぎるだろ
分かりやすすぎるだろ
496デフォルトの名無しさん
2017/07/29(土) 20:48:24.50ID:vlC06Wfm エアプってなに?
497デフォルトの名無しさん
2017/07/29(土) 21:21:36.23ID:VkCqDRe3 エアプレーン
498デフォルトの名無しさん
2017/07/29(土) 21:34:56.85ID:vlC06Wfm エアーおならプ
499デフォルトの名無しさん
2017/07/29(土) 21:53:33.37ID:qAu/jA2x >>468
ANSI C 規格への Microsoft 拡張機能を使用すると、ビット フィールドに対して char および long 型 (Signed と unsigned の両方) が許されます。
ANSI C 規格への Microsoft 拡張機能を使用すると、ビット フィールドに対して char および long 型 (Signed と unsigned の両方) が許されます。
500デフォルトの名無しさん
2017/07/29(土) 23:41:43.43ID:KxGqyxM3 知らない書き方だと思ったら、MSのCコンパイラの独自仕様なのか
どうやらそのビットフィールドをchar境界に制約するものみたいだけど、
こういう書き方だとビットフィールドの幅に見えて気持ち悪い
どうやらそのビットフィールドをchar境界に制約するものみたいだけど、
こういう書き方だとビットフィールドの幅に見えて気持ち悪い
501デフォルトの名無しさん
2017/07/29(土) 23:46:26.91ID:14mINgXT マイクロソフト以外でも結構良くある
型指定可能なコンパイラ
enumの型指定とかも
型指定可能なコンパイラ
enumの型指定とかも
502デフォルトの名無しさん
2017/07/29(土) 23:49:52.99ID:14mINgXT signedとunsignedはビットフィールドでも意味がある
1bitでsignedだと、符号ビットしか存在しない
値でいうと 0と-1
1bitでsignedだと、符号ビットしか存在しない
値でいうと 0と-1
503デフォルトの名無しさん
2017/07/29(土) 23:50:32.30ID:14mINgXT >>486の「どうでもいい」の意味が不明
504デフォルトの名無しさん
2017/07/30(日) 00:02:03.96ID:1+DcPeTw 1bitで表現できるのは0か1しかないのでは?
意味的には-1だろうが値としては1以外に表現する方法がない
意味的には-1だろうが値としては1以外に表現する方法がない
505デフォルトの名無しさん
2017/07/30(日) 00:25:20.56ID:FGe2lUf3 sizeof(int)==4とすると
468のsizeof(SFR)==1だが
468のcharをintに変えると sizef(SFR)==4 になる
(略)
アクセス違反でbitfieldが使えん可能性あり
468のsizeof(SFR)==1だが
468のcharをintに変えると sizef(SFR)==4 になる
(略)
アクセス違反でbitfieldが使えん可能性あり
506デフォルトの名無しさん
2017/07/30(日) 02:07:11.27ID:LfAaUMEW >>504
問題になるのは保存時じゃなくて読み出し時
問題になるのは保存時じゃなくて読み出し時
507デフォルトの名無しさん
2017/07/30(日) 02:36:29.18ID:FQwxQ4LP 初学者なんだが教えて欲しい
状況:作ったプログラムが思うように動かないから途中の値をprintfで出力して検証中
コードの内容を大雑把に書くと
A[1] = 12
・・・
for( j = x - 1; j >= 0 ,--j ) (jは最初1)
・・・
if ( j != 0 )
printf( "a1=%d, j=%d\n", A[j], j )
if
・・・
else
if
printf( "a2=%d, j=%d\n", A[j], j )
・・・
みたいな処理をさせると出力結果が
a1=12, j=1
a2=0, j=1
階層が深くなると値が変わるんだが、何が原因かわかる人いる?
状況:作ったプログラムが思うように動かないから途中の値をprintfで出力して検証中
コードの内容を大雑把に書くと
A[1] = 12
・・・
for( j = x - 1; j >= 0 ,--j ) (jは最初1)
・・・
if ( j != 0 )
printf( "a1=%d, j=%d\n", A[j], j )
if
・・・
else
if
printf( "a2=%d, j=%d\n", A[j], j )
・・・
みたいな処理をさせると出力結果が
a1=12, j=1
a2=0, j=1
階層が深くなると値が変わるんだが、何が原因かわかる人いる?
508デフォルトの名無しさん
2017/07/30(日) 02:41:51.54ID:pLyoXQEm 原因はバグ。これ以上は再現するソースコードがないと分からない
509デフォルトの名無しさん
2017/07/30(日) 02:45:37.97ID:LfAaUMEW 変な状態が発生する状態を保ったまま
処理を削っていく
削っていって発生しなくなったら
その削ったところに何かヒントがあるかも
1レスに収まる範囲になったらここにすべてアップ
処理を削っていく
削っていって発生しなくなったら
その削ったところに何かヒントがあるかも
1レスに収まる範囲になったらここにすべてアップ
510デフォルトの名無しさん
2017/07/30(日) 03:02:39.88ID:FQwxQ4LP そんなに簡単にバグるものかと思って聞いてみたけど、汚ねえプログラムを添削してもらうのも申し訳ないからそういうものだと納得するよ、thx
511デフォルトの名無しさん
2017/07/30(日) 03:29:48.70ID:KxWScrhl >そんなに簡単にバグるものかと思って聞いてみたけど
次はコンパイラのバグとか言い出して大騒ぎして
そのうち人間のいい加減さに絶望する
普段から人間がどれだけ間違えてるか思い知るがいい
次はコンパイラのバグとか言い出して大騒ぎして
そのうち人間のいい加減さに絶望する
普段から人間がどれだけ間違えてるか思い知るがいい
512デフォルトの名無しさん
2017/07/30(日) 04:54:25.66ID:0PJrZm1n >>507
初心者がやりそうな間違い。
1. 配列の A の要素数が足りない。
2. A を int *A; 等と宣言しておきながらメモリ確保していない。
3. メモリ確保しているがバイト数が足りない。
4. if 文を多重に使っているが階層を誤解している。
5. 自分で変数や配列の内容を書き換えている事に気付いていない。
4は例えば if (...) ...; if (...) ...; else ...; のようになっている場合に if (...) { ...; if (...) ...; else ...; } となると勘違いしている場合。
実際は if (...) { ...; } if (...) { ...; } else { ...; } になって最初の if と次の if は別物。
インデントがおかしいと騙される。しかしCコンパイラはインデントなど見ていない。
初心者がやりそうな間違い。
1. 配列の A の要素数が足りない。
2. A を int *A; 等と宣言しておきながらメモリ確保していない。
3. メモリ確保しているがバイト数が足りない。
4. if 文を多重に使っているが階層を誤解している。
5. 自分で変数や配列の内容を書き換えている事に気付いていない。
4は例えば if (...) ...; if (...) ...; else ...; のようになっている場合に if (...) { ...; if (...) ...; else ...; } となると勘違いしている場合。
実際は if (...) { ...; } if (...) { ...; } else { ...; } になって最初の if と次の if は別物。
インデントがおかしいと騙される。しかしCコンパイラはインデントなど見ていない。
513デフォルトの名無しさん
2017/07/30(日) 04:59:02.25ID:9ZftmVJd --j 最近は前置が流行ってるのか?
514デフォルトの名無しさん
2017/07/30(日) 05:07:33.79ID:7dS2HrxN じゃあ俺のあてずっぽうの勘だと主たる原因はフォントサイズが小さすぎること
メインの原因はA[i]が紛れ込んでいること
メインの原因はA[i]が紛れ込んでいること
515デフォルトの名無しさん
2017/07/30(日) 05:21:48.22ID:0PJrZm1n516デフォルトの名無しさん
2017/07/30(日) 05:50:22.55ID:3UqYvyNk517デフォルトの名無しさん
2017/07/30(日) 06:32:09.81ID:bW/sP0k9518デフォルトの名無しさん
2017/07/30(日) 06:41:47.40ID:9ZftmVJd オーバロードした++やイテレータは前置と後置で速度が違うのか。後置使うやつがいなくなるじゃないか。
C++は欠陥品だな。++Cって名前にしろよ。
C++は欠陥品だな。++Cって名前にしろよ。
519デフォルトの名無しさん
2017/07/30(日) 07:03:49.82ID:1+DcPeTw520デフォルトの名無しさん
2017/07/30(日) 07:39:01.94ID:bW/sP0k9521デフォルトの名無しさん
2017/07/30(日) 07:40:09.47ID:9ZftmVJd オートインクリメントってなんだ?
z80や6809にそんなのあったか?
z80や6809にそんなのあったか?
522デフォルトの名無しさん
2017/07/30(日) 07:42:23.87ID:9ZftmVJd なんだ、ブロック転送のことか。
523デフォルトの名無しさん
2017/07/30(日) 08:18:53.67ID:1+DcPeTw Z80と6809でスタックポインタを弄るときのPUSH/POPでポインタの増減が前置後置逆になってたはず
524デフォルトの名無しさん
2017/07/30(日) 08:36:50.77ID:1+DcPeTw 少し調べてみたらやはり逆っぽい
C言語風に表現すれば
6809のPUSHは前置 *--SP、POPは後置 *SP++
Z80のPUSHは後置 *SP--、POPは前置 *++SP
C言語風に表現すれば
6809のPUSHは前置 *--SP、POPは後置 *SP++
Z80のPUSHは後置 *SP--、POPは前置 *++SP
525デフォルトの名無しさん
2017/07/30(日) 09:05:35.12ID:bW/sP0k9 スタックポインタを意識してCのコードに--rとか書かねえよ
526デフォルトの名無しさん
2017/07/30(日) 13:04:06.19ID:0PJrZm1n ま、そういうのは最近のコンパイラなら最適化で跡形もなく消えちゃう事もあるので普通は考えても意味ないと思う。
527デフォルトの名無しさん
2017/07/30(日) 13:29:40.49ID:bW/sP0k9 そういう問題じゃねえんだよ
話についてこれないならROMってろ
話についてこれないならROMってろ
528デフォルトの名無しさん
2017/07/30(日) 14:11:56.37ID:W8z6HKGT C言語始めるためにいろんなサイトを転々としてVScodeとかVS2017とかをインストールしてみたんだけど訳がわからん
サイトに沿って設定とかしたけどどうすればいいかわからなくてどうしょうもない
Javaも少しやっててメモ帳に書いてたんだがあれくらい簡単じゃないのか
つまりどうしたいかというと
助けてくださいお願いします
サイトに沿って設定とかしたけどどうすればいいかわからなくてどうしょうもない
Javaも少しやっててメモ帳に書いてたんだがあれくらい簡単じゃないのか
つまりどうしたいかというと
助けてくださいお願いします
529デフォルトの名無しさん
2017/07/30(日) 14:31:49.48ID:0PJrZm1n >>528
Linux インストールしちゃえよ
Linux インストールしちゃえよ
530デフォルトの名無しさん
2017/07/30(日) 14:47:05.86ID:bW/sP0k9531デフォルトの名無しさん
2017/07/30(日) 14:48:46.05ID:1+DcPeTw >>528
とりあえずプロジェクトを新規作成して、テンプレートからWin32コンソールアプリケーションを選択、オプションで空のプロジェクトをチェックする
その後、ソースファイルに新しい項目を追加してC++ファイルを選択
この時デフォルトではC++(*.cpp)が選択されるので、気になるなら拡張子を*.cに変更すればC言語のソースが記述できる
とりあえずプロジェクトを新規作成して、テンプレートからWin32コンソールアプリケーションを選択、オプションで空のプロジェクトをチェックする
その後、ソースファイルに新しい項目を追加してC++ファイルを選択
この時デフォルトではC++(*.cpp)が選択されるので、気になるなら拡張子を*.cに変更すればC言語のソースが記述できる
532デフォルトの名無しさん
2017/07/30(日) 15:22:25.39ID:W8z6HKGT >>530
【Java】ゲームプログラミング超入門: http://www.youtube.com/playlist?list=PLJ86MSrhnFKVQPf-E8y0FZKv7uzR4L4Dt
この動画の人にずっとついていってやってた
Part32くらいで少し飽きて一二週間離してて久しぶりにやったら結果が違っててよくわからなくなって別のやつやろうとしてた
【Java】ゲームプログラミング超入門: http://www.youtube.com/playlist?list=PLJ86MSrhnFKVQPf-E8y0FZKv7uzR4L4Dt
この動画の人にずっとついていってやってた
Part32くらいで少し飽きて一二週間離してて久しぶりにやったら結果が違っててよくわからなくなって別のやつやろうとしてた
533デフォルトの名無しさん
2017/07/30(日) 16:31:40.47ID:FGe2lUf3 A[j]のjの型は size_t か?
534デフォルトの名無しさん
2017/07/30(日) 17:51:36.41ID:AatiOL5G 有名な土方プログラマーの、T Umezawa の動画だろw
Java, C# を、テキストエディタで書いて、端末でコンパイルする
Java, C# を、テキストエディタで書いて、端末でコンパイルする
535デフォルトの名無しさん
2017/07/30(日) 18:00:05.83ID:2PlgEyLl >>533
配列のサイズの範囲内ならなんでもいい
配列のサイズの範囲内ならなんでもいい
536デフォルトの名無しさん
2017/07/30(日) 20:43:35.11ID:OOsADo1S >>528
gcc入れろ。
gcc入れろ。
537デフォルトの名無しさん
2017/07/30(日) 22:04:46.57ID:7dPqlOSS tcc オススメ
538デフォルトの名無しさん
2017/07/30(日) 22:18:32.51ID:pLyoXQEm >>528
自分の場合はcygwinでgcc使ってる。インストール楽だし
自分の場合はcygwinでgcc使ってる。インストール楽だし
539デフォルトの名無しさん
2017/07/30(日) 23:12:47.40ID:W8z6HKGT540デフォルトの名無しさん
2017/07/31(月) 00:11:52.08ID:M3mLjUUM clコマンド使えばいいんじゃねえのか
IDEの機能なんて初心者は1%も使えない
普通のエディタでも初心者だと5〜10%くらいの機能しか使えない
IDEの機能なんて初心者は1%も使えない
普通のエディタでも初心者だと5〜10%くらいの機能しか使えない
541デフォルトの名無しさん
2017/07/31(月) 05:37:23.56ID:VZjnFU9V >>539
普通のコマンドプロンプト出して、↓のバッチファイルを実行するとclが使えるようになる。
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"
cl your_program.cpp /EHsc
普通のコマンドプロンプト出して、↓のバッチファイルを実行するとclが使えるようになる。
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"
cl your_program.cpp /EHsc
542デフォルトの名無しさん
2017/07/31(月) 08:29:21.54ID:XaGlTjBV543デフォルトの名無しさん
2017/07/31(月) 08:29:31.01ID:XaGlTjBV544デフォルトの名無しさん
2017/07/31(月) 08:29:39.14ID:XaGlTjBV545kadesu
2017/07/31(月) 10:32:48.65ID:RVdenN8P Selenium WebDriverでHTTP refererを設定する方法をご教授下さい。
chromeを使用しています。
■やりたい事
http://referer.com/ → http://target.com/
■実装イメージ
options->AddArgument("--referer=http://referer.com/");
driver->Navigate()->GoToUrl("http://target.com/");
■環境
Win7 64bit
visual studio
Chrome driver
chromeを使用しています。
■やりたい事
http://referer.com/ → http://target.com/
■実装イメージ
options->AddArgument("--referer=http://referer.com/");
driver->Navigate()->GoToUrl("http://target.com/");
■環境
Win7 64bit
visual studio
Chrome driver
546デフォルトの名無しさん
2017/07/31(月) 10:37:24.99ID:yrizDXBC547デフォルトの名無しさん
2017/07/31(月) 18:53:16.57ID:Y/tHh3+o >>539
別にVSでも良いけど、差し当たっては新規作成とビルド->実行くらいは覚えんと。
(デジタルネイティブって言葉はどこ行ったんだろう。。。30代の自分が子供の頃でも迷った記憶は無いのに)
新規だけど、何も無いところから初めたい。
新規作成で空の何とか選べば意図通りに行きそう?とか、直感が働くのがデジタルネイティブの筈なんだが。
最初はcppファイルでCの勉強とかでも良いと思う。
むしろその方が型にうるさいから好都合だし。
別にVSでも良いけど、差し当たっては新規作成とビルド->実行くらいは覚えんと。
(デジタルネイティブって言葉はどこ行ったんだろう。。。30代の自分が子供の頃でも迷った記憶は無いのに)
新規だけど、何も無いところから初めたい。
新規作成で空の何とか選べば意図通りに行きそう?とか、直感が働くのがデジタルネイティブの筈なんだが。
最初はcppファイルでCの勉強とかでも良いと思う。
むしろその方が型にうるさいから好都合だし。
548デフォルトの名無しさん
2017/07/31(月) 21:16:14.24ID:v4rHNYrD リアルなプログラミングネイティブなのはベーマガ世代だけだよ。
549デフォルトの名無しさん
2017/07/31(月) 21:53:07.86ID:VZjnFU9V トラ技世代はどうなるんだよ
550デフォルトの名無しさん
2017/07/31(月) 22:05:43.56ID:v4rHNYrD ネイティブになるには小中学生時代に大量のコードを読む必要があるから。
その頃からトラ技読んでたらリアルデジタルネイティブになれるだろうな。
おれは回路はスラスラ読めない、書けない。このコンデンサは何用で〜とか考えないと無理。
母国語と同じ感覚、ネイティブになるには高校からじゃ遅すぎるよ。
その頃からトラ技読んでたらリアルデジタルネイティブになれるだろうな。
おれは回路はスラスラ読めない、書けない。このコンデンサは何用で〜とか考えないと無理。
母国語と同じ感覚、ネイティブになるには高校からじゃ遅すぎるよ。
551デフォルトの名無しさん
2017/07/31(月) 22:05:52.73ID:KcGONOHk Z80とメモリとPIOの回路図から始まるんですかい
552デフォルトの名無しさん
2017/07/31(月) 22:12:45.15ID:VZjnFU9V553デフォルトの名無しさん
2017/07/31(月) 22:18:29.43ID:h/AGTSOY バックアップ活用テクニック
554デフォルトの名無しさん
2017/07/31(月) 22:24:57.05ID:7wcG+43N 紙テープみて、「ここバグだよ」ってぼそっと言う人
555デフォルトの名無しさん
2017/07/31(月) 22:29:30.63ID:nnrvrhsw 学生の頃はZ80や6809のアセンブリを手書きしてハンドアセンブルしてたなあ
>>523で書き込んだスタックの構造の違いに気付いたのもその頃
>>523で書き込んだスタックの構造の違いに気付いたのもその頃
556デフォルトの名無しさん
2017/07/31(月) 23:15:45.49ID:MZt0w9cd Cマガ復活させればここの難民は少しは救われるかな
557デフォルトの名無しさん
2017/08/01(火) 05:31:22.97ID:o6jic4cS CJJ かDDJでも良いけど
558デフォルトの名無しさん
2017/08/01(火) 06:09:11.07ID:CJO4kzTH ざべ
559デフォルトの名無しさん
2017/08/01(火) 06:45:19.65ID:bsIAKS/0 ハード指向なら トラ技
ソフト指向なら Interface
最近はかなり曖昧になってきてるけど…
ソフト指向なら Interface
最近はかなり曖昧になってきてるけど…
560デフォルトの名無しさん
2017/08/01(火) 14:13:56.93ID:dby33sg7 >> 557-558
それなんですか?
それなんですか?
561デフォルトの名無しさん
2017/08/01(火) 14:36:29.29ID:CJO4kzTH ざべ=THE BASIC 技術評論社
元々は名のとおりBASICの雑誌だったが
いつしかオタッキーなPC雑誌へと変貌していった
http://ikura.2ch.net/test/read.cgi/i4004/1010850340/
元々は名のとおりBASICの雑誌だったが
いつしかオタッキーなPC雑誌へと変貌していった
http://ikura.2ch.net/test/read.cgi/i4004/1010850340/
562デフォルトの名無しさん
2017/08/01(火) 16:13:23.83ID:8vfI5Dp4563デフォルトの名無しさん
2017/08/01(火) 22:24:59.83ID:DyBYTlGz 547だけど、ごめん。。。
変なおっさん呼び込んじゃったね。。。
変なおっさん呼び込んじゃったね。。。
564デフォルトの名無しさん
2017/08/01(火) 22:38:50.29ID:vXOO0+4J ここは同窓会みたいなものだから
昔話が大好きなんだよ
昔話が大好きなんだよ
565デフォルトの名無しさん
2017/08/01(火) 22:54:03.38ID:6pzqaY7a 実装の話にバズワードぶっこんでくるガキはすっこんでろ。
566デフォルトの名無しさん
2017/08/02(水) 07:28:23.46ID:mfenbxuD >>565
何をバズワードと思ったの?
何をバズワードと思ったの?
567デフォルトの名無しさん
2017/08/02(水) 09:02:58.28ID:ytmpxP9x >>566
同窓会
同窓会
568デフォルトの名無しさん
2017/08/02(水) 09:17:35.26ID:a1RMIIdL なんの実装の話だっけ?
569デフォルトの名無しさん
2017/08/02(水) 10:49:51.86ID:nZqt0zvZ Facebook
570デフォルトの名無しさん
2017/08/02(水) 23:13:24.31ID:pW5qBrxf Dr. 弩ブス Journal
571デフォルトの名無しさん
2017/08/03(木) 02:45:12.28ID:CXemL7CS x^2+y^2=5をみたすx、yを求めたいんだけどどんなプログラムがええのかな
572デフォルトの名無しさん
2017/08/03(木) 02:45:35.24ID:CXemL7CS ミス
x^2+y^2=25をみたす自然数x、yを求めたいんだ
x^2+y^2=25をみたす自然数x、yを求めたいんだ
573デフォルトの名無しさん
2017/08/03(木) 03:13:34.90ID:2Hqooo+i #include <stdio.h>
int main(void) {
int x, y;
for (x = 1; x <= 5; x++) { /* 与式の右辺が25なのでxの値は高々sqrt(25)=5、xの定義域は5以下 */
for (y = 1; y <= 5; y++) { /* 同じくyの定義域は5以下 */
if (x * x + y * y == 25) printf("x=%d y=%d\n", x, y); /* 求める解は x=3 y=4 または x=4 y=3 */
}
}
return 0;
}
int main(void) {
int x, y;
for (x = 1; x <= 5; x++) { /* 与式の右辺が25なのでxの値は高々sqrt(25)=5、xの定義域は5以下 */
for (y = 1; y <= 5; y++) { /* 同じくyの定義域は5以下 */
if (x * x + y * y == 25) printf("x=%d y=%d\n", x, y); /* 求める解は x=3 y=4 または x=4 y=3 */
}
}
return 0;
}
574デフォルトの名無しさん
2017/08/03(木) 06:50:15.59ID:84Bc5dj3 数学的には {3, 4}, {4, 3} なんてことはわかってるんだからそのまま表示するプログラムでもいい
なるべく応用が効くようなコードにしたいなら
>>573は色々と突っ込みどころが
sqrt(25)は手計算じゃなくてコードで示そう
素直にsqrtを使っても良いし、
x * x < 25
y * y < 25
という条件でもいい
計算オーダー的に二重ループもない
25がちょっと大きくなっただけで計算量がヤバイ
int y = (int)sqrt(25-x*x+.5);
としてから条件を満たすか調べると計算オーダーが減る
なるべく応用が効くようなコードにしたいなら
>>573は色々と突っ込みどころが
sqrt(25)は手計算じゃなくてコードで示そう
素直にsqrtを使っても良いし、
x * x < 25
y * y < 25
という条件でもいい
計算オーダー的に二重ループもない
25がちょっと大きくなっただけで計算量がヤバイ
int y = (int)sqrt(25-x*x+.5);
としてから条件を満たすか調べると計算オーダーが減る
575デフォルトの名無しさん
2017/08/03(木) 07:04:57.35ID:HZxS4C1U You Ain't Gonna Need It
576デフォルトの名無しさん
2017/08/03(木) 07:08:22.87ID:7weo7Xpr Keep it simple, stupid
577デフォルトの名無しさん
2017/08/03(木) 07:35:44.75ID:84Bc5dj3 だからこれで良いって言ってるだろ
#include <stdio.h>
int main(void) {
printf("x=4 y=3\n");
printf("x=3 y=4\n");
return 0;
}
#include <stdio.h>
int main(void) {
printf("x=4 y=3\n");
printf("x=3 y=4\n");
return 0;
}
578デフォルトの名無しさん
2017/08/03(木) 07:41:51.07ID:84Bc5dj3 あ、日本語が読めないのね
Perdon!
Perdon!
579デフォルトの名無しさん
2017/08/03(木) 07:54:23.54ID:FkeiaVGn 公開オナニーは宿題スレでやれ
580デフォルトの名無しさん
2017/08/03(木) 07:56:39.62ID:2Hqooo+i581デフォルトの名無しさん
2017/08/03(木) 08:25:09.96ID:3OMIPeoe 単なる課題だろう
ただ、発展形としてはいろいろ考えられる
ペル方程式 - Wikipedia
ttps://ja.wikipedia.org/wiki/%E3%83%9A%E3%83%AB%E6%96%B9%E7%A8%8B%E5%BC%8F
ベル数 - Wikipedia
ttps://ja.wikipedia.org/wiki/%E3%83%99%E3%83%AB%E6%95%B0
カタラン数 - Wikipedia
ttps://ja.wikipedia.org/wiki/%E3%82%AB%E3%82%BF%E3%83%A9%E3%83%B3%E6%95%B0
ただ、発展形としてはいろいろ考えられる
ペル方程式 - Wikipedia
ttps://ja.wikipedia.org/wiki/%E3%83%9A%E3%83%AB%E6%96%B9%E7%A8%8B%E5%BC%8F
ベル数 - Wikipedia
ttps://ja.wikipedia.org/wiki/%E3%83%99%E3%83%AB%E6%95%B0
カタラン数 - Wikipedia
ttps://ja.wikipedia.org/wiki/%E3%82%AB%E3%82%BF%E3%83%A9%E3%83%B3%E6%95%B0
582572
2017/08/03(木) 09:02:23.62ID:i8hgiPVK うおおおおおおおおお答えてくれた人ありがとう
適当にスレ検索してここにたどり着いたけどスレチだったようだ ほんとにごめん 100万年ROMるわ
適当にスレ検索してここにたどり着いたけどスレチだったようだ ほんとにごめん 100万年ROMるわ
583デフォルトの名無しさん
2017/08/03(木) 09:18:16.02ID:DNJcAlnm >>574
例えば、50になるとヤバいか?
例えば、50になるとヤバいか?
584デフォルトの名無しさん
2017/08/04(金) 23:42:56.37ID:RX2ZdH5Q ガチ初心者の僕にポインタの使い道を教えてください
585デフォルトの名無しさん
2017/08/04(金) 23:49:56.22ID:E/blHrew 配列と添え字でやりくりできてるうちは必要性がないぐらい
586デフォルトの名無しさん
2017/08/05(土) 00:07:03.35ID:cTKQoLNW 広大なメモリー空間の海を自由に泳ぎ回りたい時
587デフォルトの名無しさん
2017/08/05(土) 00:54:39.37ID:Xh3Z77YL [s]scanfしたいとき
588デフォルトの名無しさん
2017/08/05(土) 01:53:38.85ID:hIPGEPA7 ポインタは演算コストが安いから重宝する
589デフォルトの名無しさん
2017/08/05(土) 02:13:08.60ID:ZBBOV18T ポインタの演算コストって普通の整数演算と違うの?
590デフォルトの名無しさん
2017/08/05(土) 02:22:37.47ID:AmDvMFkm ポインタに+1したら1増えるのかよ?デバッガで値見てみ。
591デフォルトの名無しさん
2017/08/05(土) 05:11:53.62ID:dUt+j3iS592デフォルトの名無しさん
2017/08/05(土) 05:22:24.07ID:6vPjJVmL 使ってるから何?
593デフォルトの名無しさん
2017/08/05(土) 05:53:46.66ID:AmDvMFkm ポインタの使い道を答えたら逆ギレするガチ初心者。
おそらくポインタを勘違いしてるからキレてんだろうな。
おそらくポインタを勘違いしてるからキレてんだろうな。
594デフォルトの名無しさん
2017/08/05(土) 09:33:54.76ID:FQO/+BoZ >590
char *で実験する様子が(ry
char *で実験する様子が(ry
595デフォルトの名無しさん
2017/08/05(土) 09:44:09.47ID:B4rhQgJR596デフォルトの名無しさん
2017/08/05(土) 09:59:39.56ID:dUt+j3iS >>595
おまえも仮引数と実引数を区別しろ
おまえも仮引数と実引数を区別しろ
597デフォルトの名無しさん
2017/08/05(土) 10:02:18.44ID:xVRX2iSI void * に1を足す記述がエラーも警告も無しでコンパイル通ってしかも何事もなく1足されてたのを発見した時は驚いた。
gccってそういう仕様だったんだね。
gccってそういう仕様だったんだね。
598デフォルトの名無しさん
2017/08/05(土) 11:10:13.55ID:gO/VMD2L 仮引数
実引数
何用語?
実引数
何用語?
599デフォルトの名無しさん
2017/08/05(土) 11:13:38.50ID:hIPGEPA7 いくらなんでも流石にそれぐらいは自分で調べて欲しいレベル
600デフォルトの名無しさん
2017/08/05(土) 11:15:51.54ID:B4rhQgJR601デフォルトの名無しさん
2017/08/05(土) 11:24:58.14ID:tl2KBfJf 仮引数と実引数はC用語じゃねえの?
602デフォルトの名無しさん
2017/08/05(土) 11:32:07.13ID:jiOahgu4 仮引数と実引数はJIS X3010にも定義されている用語
仮引数はparameter、実引数はargument
ただ>>596が何を言いたいのかはよく分からん
要するに仮引数はプロトタイプ宣言などで仮に与える引数(型さえ明確なら何でもいい)のことで
実引数は式の中で実際に使われる引数(関数で実際に利用するので名前は重要)のこと
仮引数はparameter、実引数はargument
ただ>>596が何を言いたいのかはよく分からん
要するに仮引数はプロトタイプ宣言などで仮に与える引数(型さえ明確なら何でもいい)のことで
実引数は式の中で実際に使われる引数(関数で実際に利用するので名前は重要)のこと
603デフォルトの名無しさん
2017/08/05(土) 11:34:21.17ID:hIPGEPA7604デフォルトの名無しさん
2017/08/05(土) 11:35:58.99ID:B4rhQgJR ああ、argumentとparameterをJISはそう訳してるのか
それはすまん
それはすまん
605デフォルトの名無しさん
2017/08/05(土) 11:37:18.40ID:B4rhQgJR606デフォルトの名無しさん
2017/08/05(土) 11:40:54.82ID:B4rhQgJR なんか、昔はポインタと配列の区別を知らない筆者の書いた入門書で障害児が量産されたと聞いたが
その中の一人かな
その中の一人かな
607デフォルトの名無しさん
2017/08/05(土) 11:41:33.20ID:hIPGEPA7 知っていますよ
608デフォルトの名無しさん
2017/08/05(土) 11:50:23.17ID:B4rhQgJR609デフォルトの名無しさん
2017/08/05(土) 11:54:45.67ID:AmDvMFkm RO領域って何?
610デフォルトの名無しさん
2017/08/05(土) 11:59:40.46ID:hIPGEPA7611デフォルトの名無しさん
2017/08/05(土) 12:03:38.04ID:hIPGEPA7612デフォルトの名無しさん
2017/08/05(土) 12:32:48.74ID:B4rhQgJR >>610
文字列リテラル即ち配列
配列とポインタは異なるもの
∴ それを同じとするのは謎言語
> 後学までにご指摘頂けるとありがたいです。
ROなんて決まってねーし
即値で表現できない(struct foo){1,2,3}なんてのはアドレス欲しかったら&で取らなきゃいけねーし
何もかにもがデタラメ
文字列リテラル即ち配列
配列とポインタは異なるもの
∴ それを同じとするのは謎言語
> 後学までにご指摘頂けるとありがたいです。
ROなんて決まってねーし
即値で表現できない(struct foo){1,2,3}なんてのはアドレス欲しかったら&で取らなきゃいけねーし
何もかにもがデタラメ
613デフォルトの名無しさん
2017/08/05(土) 12:38:11.97ID:GxOZ02Sj なんかニワカ臭
614デフォルトの名無しさん
2017/08/05(土) 12:38:15.34ID:AmDvMFkm 処理系も指定せず意味不明杉。どっかで頓珍漢な呼出規約の説明してた人と同一人物じゃないのか。
615デフォルトの名無しさん
2017/08/05(土) 13:12:31.66ID:hIPGEPA7 >>612
>それを同じとするのは謎言語
Cの文字列はcharの配列
それはリテラルでも変わりませんよ?
それ自体が謎というならもうCは無理でしょう
>ROなんて決まってねーし
特殊なリンカでない限り大抵のリンカは定数はROに配置しますよ?
>即値で表現できない(struct foo){1,2,3}なんてのはアドレス欲しかったら&で取らなきゃいけねーし
即値とリテラルが区別出来ていないのでは?
リテラルだろうとメモリ上に配置されたものはアドレスが振られています
>何もかにもがデタラメ
私には貴方がなにも知らないようにしか見えません
>それを同じとするのは謎言語
Cの文字列はcharの配列
それはリテラルでも変わりませんよ?
それ自体が謎というならもうCは無理でしょう
>ROなんて決まってねーし
特殊なリンカでない限り大抵のリンカは定数はROに配置しますよ?
>即値で表現できない(struct foo){1,2,3}なんてのはアドレス欲しかったら&で取らなきゃいけねーし
即値とリテラルが区別出来ていないのでは?
リテラルだろうとメモリ上に配置されたものはアドレスが振られています
>何もかにもがデタラメ
私には貴方がなにも知らないようにしか見えません
616デフォルトの名無しさん
2017/08/05(土) 13:19:25.82ID:LM2wNYVN617デフォルトの名無しさん
2017/08/05(土) 13:20:36.17ID:239At3Tg 604 デフォルトの名無しさん[sage] 2017/08/05(土) 11:35:58.99 ID:B4rhQgJR
ああ、argumentとparameterをJISはそう訳してるのか
それはすまん
だっさ最低限の日本語も知らずに日本の2chに書き込むなよ
ああ、argumentとparameterをJISはそう訳してるのか
それはすまん
だっさ最低限の日本語も知らずに日本の2chに書き込むなよ
618デフォルトの名無しさん
2017/08/05(土) 13:21:53.41ID:hIPGEPA7619デフォルトの名無しさん
2017/08/05(土) 13:26:16.29ID:3YqA5kDS もしかして配列とポインタの区別すらついてないのか
620デフォルトの名無しさん
2017/08/05(土) 15:28:27.35ID:AkDeKfTH Cだと実際区別ないよね
長々と罵りあってるのに具体的な説明がひとつも出てなくてわろた
長々と罵りあってるのに具体的な説明がひとつも出てなくてわろた
621デフォルトの名無しさん
2017/08/05(土) 15:41:07.75ID:B4rhQgJR622デフォルトの名無しさん
2017/08/05(土) 15:43:44.88ID:B4rhQgJR >>620
無知を自慢しなくても良いから
無知を自慢しなくても良いから
623デフォルトの名無しさん
2017/08/05(土) 16:11:57.11ID:uXlFBIBD シンタックスシュガーですよ。
6809 のアドレッシングモードが懐かしい
リテラルと即値の区別は 6809 を触っておればわかるよね
6809 搭載のPCIボードを誰か作ってくれないかな
リテラルと即値の区別は 6809 を触っておればわかるよね
6809 搭載のPCIボードを誰か作ってくれないかな
625デフォルトの名無しさん
2017/08/05(土) 17:47:19.45ID:dV9p14Wx char *pointer;
char array[1];
・・・・・・
pointer++; /* OK */
array++; /* error */
char array[1];
・・・・・・
pointer++; /* OK */
array++; /* error */
626デフォルトの名無しさん
2017/08/05(土) 17:51:18.49ID:xVRX2iSI >>620
こういうのあるよね。
char s1[] = "a";
char *s2 = "b";
これ、s2には後から他の文字列を指すポインタの代入ができるがs1にはできない。
s2はポインタを入れる変数に対する名前になっているがs1は文字列定数の先頭を
指すラベルにしかなっていない。
それとこんなのもある。
char s3[3][100];
char *s4[3];
s4は3要素のchar*だが、s3は違う。char で 100 要素の配列が3要素ある。
配列の配列なので実は typedef char c100t[100]; c100t s3[3]; みたいに書いたのと同じだ。
新しい型が密かに作られている。なので違うのだがアクセスする時に s3[x][y] も s4[x][y] も
できたりして見た目が同じになる。
多分初心者はこれにハマることがあると思う。特に関数の引数をs3のように書いてしまい、
それでs4を引き渡そうとした時とか、あるいはその逆の時とかね。(そして昔のコンパイラは
警告も出さずに通ってしまい動かしてからバグに悩むと)。
こういうのあるよね。
char s1[] = "a";
char *s2 = "b";
これ、s2には後から他の文字列を指すポインタの代入ができるがs1にはできない。
s2はポインタを入れる変数に対する名前になっているがs1は文字列定数の先頭を
指すラベルにしかなっていない。
それとこんなのもある。
char s3[3][100];
char *s4[3];
s4は3要素のchar*だが、s3は違う。char で 100 要素の配列が3要素ある。
配列の配列なので実は typedef char c100t[100]; c100t s3[3]; みたいに書いたのと同じだ。
新しい型が密かに作られている。なので違うのだがアクセスする時に s3[x][y] も s4[x][y] も
できたりして見た目が同じになる。
多分初心者はこれにハマることがあると思う。特に関数の引数をs3のように書いてしまい、
それでs4を引き渡そうとした時とか、あるいはその逆の時とかね。(そして昔のコンパイラは
警告も出さずに通ってしまい動かしてからバグに悩むと)。
627デフォルトの名無しさん
2017/08/05(土) 18:08:09.16ID:PFeVLmXg cで一番難しいのは、constだと思う。
間違えてても、動いちゃうからなー
なくても困らないけれど、厳密に宣言しようとおもうと慣れが必要。
char ** とか
間違えてても、動いちゃうからなー
なくても困らないけれど、厳密に宣言しようとおもうと慣れが必要。
char ** とか
628デフォルトの名無しさん
2017/08/05(土) 18:10:24.82ID:PFeVLmXg あっ、あと二次元配列とかは、関数の引数に指定しようとするとはまるね。
629デフォルトの名無しさん
2017/08/05(土) 19:34:33.25ID:vX9Ad9Pg "constは左に掛かる"
char const **s; // charを修飾
char * const *s; // char *を修飾
char ** const s; // char **を修飾
と書けば何も迷うことはない
char const **s; // charを修飾
char * const *s; // char *を修飾
char ** const s; // char **を修飾
と書けば何も迷うことはない
631デフォルトの名無しさん
2017/08/05(土) 19:39:51.34ID:vX9Ad9Pg632デフォルトの名無しさん
2017/08/06(日) 00:10:43.00ID:+MX/dj54 >>630
「では」 がconst
「では」 がconst
633デフォルトの名無しさん
2017/08/06(日) 00:11:43.92ID:ljqAECQw forkで子プロセスを複数生成した際に、子プロセス間で変数を共有、または子プロセスから他の子プロセス(親は同一)の変数にアクセスする方法って有りませんか?
共有メモリ以外でお願いします
共有メモリ以外でお願いします
634デフォルトの名無しさん
2017/08/06(日) 00:18:14.02ID:+MX/dj54 ファイル経由
635デフォルトの名無しさん
2017/08/06(日) 00:42:21.39ID:LLgtDDDS pipe
636デフォルトの名無しさん
2017/08/06(日) 07:47:08.77ID:D2MwPYUj 大喜利をやれということなのかな
637デフォルトの名無しさん
2017/08/06(日) 07:49:51.80ID:UjkuucW3 ptrace
638デフォルトの名無しさん
2017/08/06(日) 10:57:12.05ID:3gNA0Uyl >>633
内部的には共有メモリと同じなんだろうけどmmapなんかどうだ?
内部的には共有メモリと同じなんだろうけどmmapなんかどうだ?
639633
2017/08/06(日) 12:30:30.67ID:QIgcqg1l すみません自決しました
640デフォルトの名無しさん
2017/08/06(日) 13:28:03.88ID:fp1GLRR7 書き込めると言うことは自決は失敗か
641デフォルトの名無しさん
2017/08/06(日) 14:15:03.73ID:fAxfwMN0 自動で書き込むスクリプト作ったんじゃろ
642デフォルトの名無しさん
2017/08/06(日) 14:32:55.81ID:/dqOVGNE 多倍長演算って10000進法でやってる?
それとも2^n進法?
それとも2^n進法?
643デフォルトの名無しさん
2017/08/06(日) 14:33:22.10ID:nazawjTw644デフォルトの名無しさん
2017/08/06(日) 14:36:56.91ID:nazawjTw >>642
32bit マシンでも 2^32 進数なんて使ってないが...
32bit マシンでも 2^32 進数なんて使ってないが...
645デフォルトの名無しさん
2017/08/06(日) 15:27:01.03ID:3gNA0Uyl646デフォルトの名無しさん
2017/08/06(日) 15:42:53.54ID:LLgtDDDS UNIX SOCKET
647デフォルトの名無しさん
2017/08/06(日) 15:58:13.64ID:pnlX0fdh >>645
どっちにしてもスルーするのが正解
どっちにしてもスルーするのが正解
649デフォルトの名無しさん
2017/08/06(日) 16:31:30.70ID:ThMEkv3I650デフォルトの名無しさん
2017/08/06(日) 16:47:17.37ID:r2XWWSNC651デフォルトの名無しさん
2017/08/06(日) 16:48:57.70ID:r2XWWSNC ポインタを教えてくださいと言ってる初心者に配列使って見せて
「これがポインタだっ どやっ」
笑うしかないな
「これがポインタだっ どやっ」
笑うしかないな
652デフォルトの名無しさん
2017/08/06(日) 16:52:58.17ID:4cVoKrwP やっぱりポインタの勉強するには柴田ぼーよー先生のポインタの本がいいんでしょうか?
653デフォルトの名無しさん
2017/08/06(日) 16:56:06.63ID:r2XWWSNC ID:dUt+j3iSにどんな本使ったか聞いて、それは避けるべきだと思うよ
654デフォルトの名無しさん
2017/08/06(日) 17:02:15.95ID:jhhg/GBw こいつらの反論が反論になっていないな
C分かっていればそのコードが
ポインタ渡しになっていることは直ぐに分かるんだけどね
まぁスルーが得策だよ
ID:dUt+j3iSはID:r2XWWSNCに構ってはいけない
C分かっていればそのコードが
ポインタ渡しになっていることは直ぐに分かるんだけどね
まぁスルーが得策だよ
ID:dUt+j3iSはID:r2XWWSNCに構ってはいけない
655デフォルトの名無しさん
2017/08/06(日) 17:23:37.54ID:OSHq4q+H 問題はそこではなくて、ポインタの話からいきなり仮引数だの実引数だのとかの話に飛躍したことだと思うのだがな
まあだいたい想像は出来る
何故だか初心者本でよく見られる間違いとして、関数の呼び出し側の引数が実引数、関数の受け取り側の引数が仮引数、という説明をそのまま受け入れていたのだろうな
言語によってはその通りかも知れんが、少なくともC言語のJIS X 3010の解釈とは異なっている
まあだいたい想像は出来る
何故だか初心者本でよく見られる間違いとして、関数の呼び出し側の引数が実引数、関数の受け取り側の引数が仮引数、という説明をそのまま受け入れていたのだろうな
言語によってはその通りかも知れんが、少なくともC言語のJIS X 3010の解釈とは異なっている
656デフォルトの名無しさん
2017/08/06(日) 17:28:55.73ID:r2XWWSNC658デフォルトの名無しさん
2017/08/06(日) 17:37:29.70ID:MVEPApHK C言語でもその解釈で全然問題無いと思うけどな俺は
どっちにしてもID:r2XWWSNCはど素人のくせに
質問の仕方も知らない無礼な奴と言う事には間違いはないだろう
どっちにしてもID:r2XWWSNCはど素人のくせに
質問の仕方も知らない無礼な奴と言う事には間違いはないだろう
659デフォルトの名無しさん
2017/08/06(日) 17:44:53.62ID:OSHq4q+H660デフォルトの名無しさん
2017/08/06(日) 17:54:58.87ID:r2XWWSNC >>657
おメーには聞いてねーよ 障害児
おメーには聞いてねーよ 障害児
661デフォルトの名無しさん
2017/08/06(日) 18:16:39.32ID:ThMEkv3I662デフォルトの名無しさん
2017/08/06(日) 19:45:26.91ID:r2XWWSNC663デフォルトの名無しさん
2017/08/06(日) 19:52:07.02ID:OFkcQ32C664デフォルトの名無しさん
2017/08/06(日) 19:55:39.33ID:zQpO4a2U そういやシンタックスシュガーと言えば、昔々こんなのが動いたのを初めて見た時は驚いたな。
https://paiza.io/projects/XOWJRDaMZQIIu9cF5Ex1Ug
本当にポインタ計算してるだけという。
https://paiza.io/projects/XOWJRDaMZQIIu9cF5Ex1Ug
本当にポインタ計算してるだけという。
665デフォルトの名無しさん
2017/08/06(日) 20:53:33.24ID:r2XWWSNC >>659
ガイジには読み取れなかったようだ
> When an array name appears as an argument to a function, the location
of the beginning of the array"s passed;
良い時代になったもんだ 歴史的資料がきちんと公開されている
ガイジには読み取れなかったようだ
> When an array name appears as an argument to a function, the location
of the beginning of the array"s passed;
良い時代になったもんだ 歴史的資料がきちんと公開されている
666デフォルトの名無しさん
2017/08/06(日) 21:33:36.77ID:r2XWWSNC 誤読される可能性があるので追記
>>659
ガイジのID:ThMEkv3Iには読み取れなかったようだ
> When an array name appears as an argument to a function, the location
of the beginning of the array"s passed;
良い時代になったもんだ 歴史的資料がきちんと公開されている
>>659
ガイジのID:ThMEkv3Iには読み取れなかったようだ
> When an array name appears as an argument to a function, the location
of the beginning of the array"s passed;
良い時代になったもんだ 歴史的資料がきちんと公開されている
667デフォルトの名無しさん
2017/08/06(日) 21:39:44.09ID:r2XWWSNC668デフォルトの名無しさん
2017/08/06(日) 22:38:49.98ID:fAxfwMN0 When an array name appears as an argument to a function, the location
of the beginning of the array"s passed;
「配列の名前が関数の実引数として現れた時、その配列の先頭ポインタが渡される」でいい?
of the beginning of the array"s passed;
「配列の名前が関数の実引数として現れた時、その配列の先頭ポインタが渡される」でいい?
669デフォルトの名無しさん
2017/08/06(日) 22:53:31.79ID:r2XWWSNC どこにポインタなんて書いてあるんだ 見えないものが見えちゃうって精神科受診した方が良いぞ
670デフォルトの名無しさん
2017/08/06(日) 22:57:19.94ID:fAxfwMN0 じゃあ君ならlocationはどう訳す?
671デフォルトの名無しさん
2017/08/06(日) 23:15:47.82ID:jhhg/GBw ポインタ渡しが謎用語らしい
コイツはもう覚える気すらないよ
つーかただのバカ
スルー推薦
コイツはもう覚える気すらないよ
つーかただのバカ
スルー推薦
672デフォルトの名無しさん
2017/08/06(日) 23:17:56.61ID:r2XWWSNC 位置
そもそも
> A pointer is a variable that contains the address of another variable.
と言う定義を理解してないのか?
障害児製造機な入門書が存在らしいな
お前は何という本を初学時に使った?
そもそも
> A pointer is a variable that contains the address of another variable.
と言う定義を理解してないのか?
障害児製造機な入門書が存在らしいな
お前は何という本を初学時に使った?
673デフォルトの名無しさん
2017/08/06(日) 23:20:53.44ID:UjkuucW3 一応言っとくけど、文字列リテラルを関数に渡す場合の説明は5.5章だぞ
674デフォルトの名無しさん
2017/08/06(日) 23:22:53.35ID:r2XWWSNC >>671
ガイジ用語か qiitaでいっぱいヒットするわ w
ガイジ用語か qiitaでいっぱいヒットするわ w
675デフォルトの名無しさん
2017/08/06(日) 23:25:55.10ID:fAxfwMN0 >>672
直訳すると、「ポインタとは他の変数の位置を内包した変数である」。
"location of the beginning of the array"、直訳すると「配列の先頭の位置」はポインタ以外の何物だっていうのか教えてくれる?
ちなみに俺の初学本は「C言語によるプログラミング」第二版
直訳すると、「ポインタとは他の変数の位置を内包した変数である」。
"location of the beginning of the array"、直訳すると「配列の先頭の位置」はポインタ以外の何物だっていうのか教えてくれる?
ちなみに俺の初学本は「C言語によるプログラミング」第二版
676デフォルトの名無しさん
2017/08/06(日) 23:25:56.83ID:AvyyeWcb 他人をガイジ呼ばわりしてるけど自分が1番ガイジだったってオチやね
677デフォルトの名無しさん
2017/08/06(日) 23:38:53.59ID:fp1GLRR7 メモリ上の位置を表す「アドレス」と、それを格納する変数である「ポインタ」を混同してるから議論が噛み合わないのでは?
678デフォルトの名無しさん
2017/08/06(日) 23:45:57.68ID:r2XWWSNC >>675
ガイジか?
ポインタとは他の変数のアドレスを内包した変数である
としか書いてないのに、書かれてない「位置」がなぜ出てくる
まあ、それには目をつぶって
「内包した変数」が重要
Cの変数とは型を持ち、値を格納できるもの
アドレスとポインタ(=変数)を混同しないように
あと10年くらい修行することだ
ガイジか?
ポインタとは他の変数のアドレスを内包した変数である
としか書いてないのに、書かれてない「位置」がなぜ出てくる
まあ、それには目をつぶって
「内包した変数」が重要
Cの変数とは型を持ち、値を格納できるもの
アドレスとポインタ(=変数)を混同しないように
あと10年くらい修行することだ
679デフォルトの名無しさん
2017/08/06(日) 23:45:58.32ID:fAxfwMN0 いうほど混同しているだろうか?
680デフォルトの名無しさん
2017/08/06(日) 23:54:22.39ID:fAxfwMN0681デフォルトの名無しさん
2017/08/06(日) 23:55:35.62ID:jhhg/GBw コイツはまともな社会生活できてるのか
日常会話が成立出来ていないのではないか
日常会話が成立出来ていないのではないか
682デフォルトの名無しさん
2017/08/07(月) 00:00:10.79ID:Uo4tfgNR683デフォルトの名無しさん
2017/08/07(月) 00:02:00.78ID:bwSM+rxU 論点を三行でまとめて
684デフォルトの名無しさん
2017/08/07(月) 00:07:08.67ID:r7C/NYo5 >>682
いわゆるって言ったのにそれでもダメか。
void foo(int a[8])と宣言された関数を別の関数内で
int a[8];
void foo(a)
と呼び出す時、それはポインタが渡されているのではなく配列の先頭アドレスがコピーされていると言いたいの?
いわゆるって言ったのにそれでもダメか。
void foo(int a[8])と宣言された関数を別の関数内で
int a[8];
void foo(a)
と呼び出す時、それはポインタが渡されているのではなく配列の先頭アドレスがコピーされていると言いたいの?
685デフォルトの名無しさん
2017/08/07(月) 00:09:51.87ID:uOfJK7yi 「ポインタ」って用語は結構仕様書中でも不安定だから、実はあまり気にしてもしょうがなかったりするんだよね
http://www.kijineko.co.jp/node/498
http://www.kijineko.co.jp/node/498
686デフォルトの名無しさん
2017/08/07(月) 00:11:41.88ID:g8RW1Chx >>684
foo(a) の 「a」って何?
foo(a) の 「a」って何?
687デフォルトの名無しさん
2017/08/07(月) 00:13:35.75ID:r7C/NYo5 >>686
その上にint a[8];って書いたんだけど、なんか文法ミスってたかいな?
その上にint a[8];って書いたんだけど、なんか文法ミスってたかいな?
688デフォルトの名無しさん
2017/08/07(月) 00:13:38.80ID:5EiEWIq+ このガイジ早く死刑にしろ
絶対何か障害持ってるだろ
何か起こしてからじゃ遅いぞ
絶対何か障害持ってるだろ
何か起こしてからじゃ遅いぞ
689デフォルトの名無しさん
2017/08/07(月) 00:16:29.93ID:DdwwpY1/ なるほど。やたらガイジ連呼してる奴が頭おかしいわけだな。
690デフォルトの名無しさん
2017/08/07(月) 00:21:20.30ID:Uo4tfgNR >>684
渡されるのはポインタ変数の値(アドレス)、それをfooがポインタ変数として受け取る
渡されるのはポインタ変数の値(アドレス)、それをfooがポインタ変数として受け取る
691デフォルトの名無しさん
2017/08/07(月) 00:24:46.95ID:DdwwpY1/ ポインタの使い道を聞いてるのに、なにみんなで必死にポインタの解説してんだ?
Javaとかポインタない言語があるんだからポインタはなくてもいいだろという主旨だろう。
Javaとかポインタない言語があるんだからポインタはなくてもいいだろという主旨だろう。
692デフォルトの名無しさん
2017/08/07(月) 00:25:52.66ID:Uo4tfgNR ガイジ用語「ポインタ渡し」を編み出したID:jhhg/GBwは今日はID:5EiEWIq+か
693デフォルトの名無しさん
2017/08/07(月) 00:33:24.20ID:r7C/NYo5694デフォルトの名無しさん
2017/08/07(月) 00:38:54.27ID:YE/9ro9h 引数を変数だと考えるからおかしなことになる
引数は値であって変数ではない、渡しているのは値であって変数ではない
C言語には値渡ししか存在しない、他の言語で言う参照渡しに相当するようなものは存在しない
ましてやポインタ渡しに至っては全く意味不明
渡しているのはアドレスであってポインタを渡しているのではない
引数は値であって変数ではない、渡しているのは値であって変数ではない
C言語には値渡ししか存在しない、他の言語で言う参照渡しに相当するようなものは存在しない
ましてやポインタ渡しに至っては全く意味不明
渡しているのはアドレスであってポインタを渡しているのではない
695デフォルトの名無しさん
2017/08/07(月) 00:43:09.37ID:CdxYgk48 ポインタ渡されww
696デフォルトの名無しさん
2017/08/07(月) 00:46:39.34ID:r7C/NYo5 じゃあ「アドレス渡し」ならいいわけ?
697デフォルトの名無しさん
2017/08/07(月) 00:48:53.93ID:tmW9+jq1 定義至上主義者とは一般的な会話が成り立たないことがよくわかる
698デフォルトの名無しさん
2017/08/07(月) 00:51:00.39ID:r7C/NYo5 定義至上主義なら最初から「アドレス渡しと呼べ」と言えばいいだけだから、ただ文句つけたかっただけだと思うよ
699デフォルトの名無しさん
2017/08/07(月) 01:02:22.98ID:L++MnVlz 定義至上主義者はID:r7C/NYo5のことだと思うが
「ポインタ渡し」だの「アドレス渡し」だの言葉の定義に拘ってるようにしか見えん
「ポインタ渡し」だの「アドレス渡し」だの言葉の定義に拘ってるようにしか見えん
700デフォルトの名無しさん
2017/08/07(月) 01:04:50.56ID:uOfJK7yi701デフォルトの名無しさん
2017/08/07(月) 01:06:41.28ID:Uo4tfgNR >>693
printfに対する知識がなければ、アドレスを渡しているところまでしかわからない
printfに対する知識がなければ、アドレスを渡しているところまでしかわからない
702デフォルトの名無しさん
2017/08/07(月) 01:08:08.23ID:tmW9+jq1 この流れでそう思える読解力は凄い
言葉の定義で頓珍漢な噛みつき方したのは
ID:Uo4tfgNRとID:YE/9ro9hだろ
言葉の定義で頓珍漢な噛みつき方したのは
ID:Uo4tfgNRとID:YE/9ro9hだろ
703デフォルトの名無しさん
2017/08/07(月) 01:10:17.31ID:r7C/NYo5 >>701
そんなことで人のことをガイジガイジ連呼していたの?
そんなことで人のことをガイジガイジ連呼していたの?
704片山博文MZ ◆T6xkBnTXz7B0
2017/08/07(月) 01:11:58.49ID:ITzYZ/9b 人工知能は人間らしい解釈ができないから仕方ない。
705デフォルトの名無しさん
2017/08/07(月) 01:14:42.90ID:tmW9+jq1 これチューリングテストの実験場だったのか
見抜けなかったわ〜w
見抜けなかったわ〜w
706デフォルトの名無しさん
2017/08/07(月) 01:15:35.04ID:DdwwpY1/ だからさぁ。使い道を聞かれてんだよ、使い方じゃねーんだよ。さっさと答えてやれよ。
javaやpascalはポインタ使わなくてもプログラム書けるのにCにポインタが必要になる使い方をよ。
もしかしておまえら入門書読んで理解したつもりなだけで、ポインタが何か分ってないんだろ?
javaやpascalはポインタ使わなくてもプログラム書けるのにCにポインタが必要になる使い方をよ。
もしかしておまえら入門書読んで理解したつもりなだけで、ポインタが何か分ってないんだろ?
707デフォルトの名無しさん
2017/08/07(月) 01:18:08.93ID:r7C/NYo5 >>706
俺はガイジ連呼厨の意図が知りたかっただけだし、そこまで偉そうに言うなら君が答えてあげなよ
俺はガイジ連呼厨の意図が知りたかっただけだし、そこまで偉そうに言うなら君が答えてあげなよ
708デフォルトの名無しさん
2017/08/07(月) 01:19:37.44ID:Uo4tfgNR >>703
お前をガイジと呼んだのは、書かれていない単語が見えてたからだと説明したはずだが
お前をガイジと呼んだのは、書かれていない単語が見えてたからだと説明したはずだが
709片山博文MZ ◆T6xkBnTXz7B0
2017/08/07(月) 01:21:33.94ID:ITzYZ/9b そこ、放送禁止用語も知らない一般人、オンエアしちゃダメ。
710デフォルトの名無しさん
2017/08/07(月) 01:26:39.77ID:r7C/NYo5 >>708
俺以外に対してだよ
俺以外に対してだよ
711デフォルトの名無しさん
2017/08/07(月) 01:35:13.99ID:DdwwpY1/ 結局、javaやpascalはポインタ使わなくてもプログラム書けるのに
Cにポインタが必要になる使い道、理由は誰も分らないのかよ。
ガッカリだぜ。なにがC言語なら俺に聞けだよ。
Cにポインタが必要になる使い道、理由は誰も分らないのかよ。
ガッカリだぜ。なにがC言語なら俺に聞けだよ。
712片山博文MZ ◆T6xkBnTXz7B0
2017/08/07(月) 01:35:26.77ID:ITzYZ/9b ┌────────┐
│ │
│ /■~\ │
│ (´∀`∩) │
│ (つ 丿 │
│ ( ヽノ │
│ し(_) │
│ │
│Now Onigiring...│
│ │
│ 暫くおにぎりで │
│ お待ちください │
└────────┘
│ │
│ /■~\ │
│ (´∀`∩) │
│ (つ 丿 │
│ ( ヽノ │
│ し(_) │
│ │
│Now Onigiring...│
│ │
│ 暫くおにぎりで │
│ お待ちください │
└────────┘
713片山博文MZ ◆T6xkBnTXz7B0
2017/08/07(月) 01:38:45.36ID:ITzYZ/9b714デフォルトの名無しさん
2017/08/07(月) 01:41:43.94ID:Uo4tfgNR >>703
> printf("Hello, C world!\n"); これがポインタだっ どやっ
十分にガイジ
「ポインタ渡し」のガイジ事か?
> こいつらの反論が反論になっていないな
> C分かっていればそのコードが
> ポインタ渡しになっていることは直ぐに分かるんだけどね
printfの知識が無ければわからない
「渡され」を「渡し」と呼ぶ
十分にガイジ
> printf("Hello, C world!\n"); これがポインタだっ どやっ
十分にガイジ
「ポインタ渡し」のガイジ事か?
> こいつらの反論が反論になっていないな
> C分かっていればそのコードが
> ポインタ渡しになっていることは直ぐに分かるんだけどね
printfの知識が無ければわからない
「渡され」を「渡し」と呼ぶ
十分にガイジ
715片山博文MZ ◆T6xkBnTXz7B0
2017/08/07(月) 01:44:12.93ID:ITzYZ/9b 生で全国放送なんで、影響力強いっす。学校でイジメの真似事されると困ります。ですから、放送コードに違反した発言は極力慎むように頼みます。
716デフォルトの名無しさん
2017/08/07(月) 01:48:52.14ID:r7C/NYo5 >>714
最初のは確かに渡されだけどポインタじゃない?一応間違ってはないんじゃない? 最初にそのレスした時相手のprintfの知識とか考えてなかっただろうし。
それに「ポインタ渡し」は慣用語として定着してしまっている側面もあるからその用語を使っただけでガイジ認定は早いよ
ある程度の慣用語は意図を汲んだ上で、間違ってると思うなら的確に指摘しないとコミュニケーション成立しなくてどっちがガイジかわからなくなっちゃう
最初のは確かに渡されだけどポインタじゃない?一応間違ってはないんじゃない? 最初にそのレスした時相手のprintfの知識とか考えてなかっただろうし。
それに「ポインタ渡し」は慣用語として定着してしまっている側面もあるからその用語を使っただけでガイジ認定は早いよ
ある程度の慣用語は意図を汲んだ上で、間違ってると思うなら的確に指摘しないとコミュニケーション成立しなくてどっちがガイジかわからなくなっちゃう
717デフォルトの名無しさん
2017/08/07(月) 01:50:24.62ID:Amcgn4Bl >>711
ポインタという仕組みを1つ導入することでアドレスを直接操作することができるからかな
参照だとアドレスを操作できない
他の言語はアドレスを逆に操作させないことで安全性を保つというスタンスだけど
C/C++は安全でない代わりにアドレスを直接操作する事ができるというスタンス
あとはメモリ操作のコスト削減があげられると思う
for(i = 0; i < MAX; i++){
dest[i] = src[i];
}
とやるよりも
src_p = src;
dest_p = dest;
dest_end_p = dest + MAX;
while (dest_p < dest_end_p) {
*dest_p++ = src_p++;
}
とやるほうがコストが軽い
ポインタという仕組みを1つ導入することでアドレスを直接操作することができるからかな
参照だとアドレスを操作できない
他の言語はアドレスを逆に操作させないことで安全性を保つというスタンスだけど
C/C++は安全でない代わりにアドレスを直接操作する事ができるというスタンス
あとはメモリ操作のコスト削減があげられると思う
for(i = 0; i < MAX; i++){
dest[i] = src[i];
}
とやるよりも
src_p = src;
dest_p = dest;
dest_end_p = dest + MAX;
while (dest_p < dest_end_p) {
*dest_p++ = src_p++;
}
とやるほうがコストが軽い
718片山博文MZ ◆T6xkBnTXz7B0
2017/08/07(月) 01:50:56.10ID:ITzYZ/9b 動物園の檻の中で「あいつはオラウータン」「こいつはゴリラ」とかぼやいてる飼育員。
719デフォルトの名無しさん
2017/08/07(月) 01:55:31.83ID:Amcgn4Bl 脱字訂正
誤:*dest_p++ = src_p++;
正:*dest_p++ = *src_p++;
誤:*dest_p++ = src_p++;
正:*dest_p++ = *src_p++;
720デフォルトの名無しさん
2017/08/07(月) 02:04:29.54ID:Uo4tfgNR >>716
やっぱり見えないものを見てるガイジか?
> printf("Hello, C world!\n");
これのどこに
> A pointer is a variable that contains the address of another variable.
が現れているんだ?
確実に配列とポインタの区別がついてないガイジだろ
やっぱり見えないものを見てるガイジか?
> printf("Hello, C world!\n");
これのどこに
> A pointer is a variable that contains the address of another variable.
が現れているんだ?
確実に配列とポインタの区別がついてないガイジだろ
721デフォルトの名無しさん
2017/08/07(月) 02:11:29.62ID:r7C/NYo5722片山博文MZ ◆T6xkBnTXz7B0
2017/08/07(月) 02:12:45.69ID:ITzYZ/9b 引数は変数の一種と見なすのも一理あるだろう。仮引数も変数と見なしても実用上は問題ない。
それとも仮引数は変数ではないと言い張りたいのか?
それとも仮引数は変数ではないと言い張りたいのか?
723片山博文MZ ◆T6xkBnTXz7B0
2017/08/07(月) 02:16:49.89ID:ITzYZ/9b 我々は実用性を重視するが、理論上では仮引数はポインターではないかもしれない。君のような理論家ではそれは重要かもしれないが。
724デフォルトの名無しさん
2017/08/07(月) 02:19:54.41ID:Uo4tfgNR725デフォルトの名無しさん
2017/08/07(月) 02:30:03.96ID:r7C/NYo5 >>724
とりあえず、もしfortranから呼んでるならなら_printfじゃない?
さっきから言われた側の知識に言及していらっしゃるけど、それこそ一般に言うとprintfって言ったら普通はstdio.hのものを指すし、言われた側もまさかfortranとは思わないよ
そんな病的な状況を例に出さないといけない時点でおかしい噛みつき方してるってわかるもんだと思うけどなあ
とりあえず、もしfortranから呼んでるならなら_printfじゃない?
さっきから言われた側の知識に言及していらっしゃるけど、それこそ一般に言うとprintfって言ったら普通はstdio.hのものを指すし、言われた側もまさかfortranとは思わないよ
そんな病的な状況を例に出さないといけない時点でおかしい噛みつき方してるってわかるもんだと思うけどなあ
727片山博文MZ ◆T6xkBnTXz7B0
2017/08/07(月) 02:36:12.54ID:ITzYZ/9b printfの仮引数がポインター型だから、printf内部とprintfの型情報でポインターを使っているといっても間違いではない。
728片山博文MZ ◆T6xkBnTXz7B0
2017/08/07(月) 02:41:35.68ID:ITzYZ/9b 頭でっかちの理論家が、間違いを含む古い書籍を読んで、一字一句正しいと思い込んでいるのは最悪な状況だ。
729デフォルトの名無しさん
2017/08/07(月) 02:46:48.50ID:Uo4tfgNR >>722
「この一文」と限定したんだから、それ以外の知識は不要で、これだけでポインタを使ってるという事だな
「この一文」と限定したんだから、それ以外の知識は不要で、これだけでポインタを使ってるという事だな
730デフォルトの名無しさん
2017/08/07(月) 02:48:03.30ID:Uo4tfgNR731デフォルトの名無しさん
2017/08/07(月) 02:48:13.58ID:YE/9ro9h732片山博文MZ ◆T6xkBnTXz7B0
2017/08/07(月) 02:55:53.68ID:ITzYZ/9b >>730
一文の意味論を考えると、やはりその仮引数はポインターだという結論になる。
一文の意味論を考えると、やはりその仮引数はポインターだという結論になる。
733片山博文MZ ◆T6xkBnTXz7B0
2017/08/07(月) 02:59:45.50ID:ITzYZ/9b そのうちprintfがマクロだとか言い出す
734片山博文MZ ◆T6xkBnTXz7B0
2017/08/07(月) 03:15:03.46ID:ITzYZ/9b 教育上は、引数は関数に渡せる変数だと指導する方が分かりやすい。ただ、コンパイラーや言語を考えるとき、理論上では問題がある。
735片山博文MZ ◆T6xkBnTXz7B0
2017/08/07(月) 03:21:11.00ID:ITzYZ/9b 実際、仮引数は、変数と同じように型を持ち、変数と同じように値を代入したり、値を取り出したりできる。
これを変数ではないとするのは直感に反する。だから教育上の配慮から、理論以外では、仮引数は変数だと見なしてよい。
これを変数ではないとするのは直感に反する。だから教育上の配慮から、理論以外では、仮引数は変数だと見なしてよい。
736デフォルトの名無しさん
2017/08/07(月) 03:22:46.64ID:Uo4tfgNR738片山博文MZ ◆T6xkBnTXz7B0
2017/08/07(月) 03:30:44.55ID:ITzYZ/9b739片山博文MZ ◆T6xkBnTXz7B0
2017/08/07(月) 03:40:03.33ID:ITzYZ/9b 猿、猿、猿。さて猿は何匹? いいえ、これはただの文字。本当の猿ではありません。
printf("あほ"); さて、これはどんな処理でしょう。いいえ、この文はただの
テキスト。フォートランかもしれないし、
バイナリーではないから、本当の処理ではありません。
printf? 別に意味なんてありません。この一文に意味なんてありません。
こいつらは形而上学を知らないのか。
printf("あほ"); さて、これはどんな処理でしょう。いいえ、この文はただの
テキスト。フォートランかもしれないし、
バイナリーではないから、本当の処理ではありません。
printf? 別に意味なんてありません。この一文に意味なんてありません。
こいつらは形而上学を知らないのか。
740片山博文MZ ◆T6xkBnTXz7B0
2017/08/07(月) 03:48:46.08ID:ITzYZ/9b 形而上言語では、一文とその意味は同一視するものだ。
そこで君が提示したprintf("なんちゃら");も意味があると仮定する。
これはprintf関数に"なんちゃら"という文字列データのアドレスを渡すものと解釈される。
よってこのprintfの最初の仮引数はポインター型だ。もし、ポインター型でなければ、形而上の意味が不定になり、
君が提示したことはC言語的には無意味だ、
という意味になる。馬鹿げてるよ。
そこで君が提示したprintf("なんちゃら");も意味があると仮定する。
これはprintf関数に"なんちゃら"という文字列データのアドレスを渡すものと解釈される。
よってこのprintfの最初の仮引数はポインター型だ。もし、ポインター型でなければ、形而上の意味が不定になり、
君が提示したことはC言語的には無意味だ、
という意味になる。馬鹿げてるよ。
741片山博文MZ ◆T6xkBnTXz7B0
2017/08/07(月) 04:01:49.30ID:ITzYZ/9b ∧_∧ 半端者はみっくみくにしてやんよ
( ・ω・)=つ≡つ
(っ ≡つ=つ
/ ) ババババ
( / ̄∪
( ・ω・)=つ≡つ
(っ ≡つ=つ
/ ) ババババ
( / ̄∪
742デフォルトの名無しさん
2017/08/07(月) 04:23:54.04ID:Uo4tfgNR743デフォルトの名無しさん
2017/08/07(月) 04:32:31.96ID:5iW9wRlr 月曜の朝っぱらから元気だな
とレス辿ったら昨日からずっとやってたのか
とレス辿ったら昨日からずっとやってたのか
744片山博文MZ ◆T6xkBnTXz7B0
2017/08/07(月) 04:34:25.12ID:ITzYZ/9b >>742
敢えてprintfの型に触れず誤魔化してるようにしか見えないが。printfの型が決まってなければ、明らかにコンパイルできない文だ。
敢えてprintfの型に触れず誤魔化してるようにしか見えないが。printfの型が決まってなければ、明らかにコンパイルできない文だ。
745片山博文MZ ◆T6xkBnTXz7B0
2017/08/07(月) 04:49:23.24ID:ITzYZ/9b ∧_∧ 半端なヤツはみっくみくにしてやんよ
( ・ω・)=つ≡つ
(っ ≡つ=つ
/ ) ババババ
( / ̄∪
( ・ω・)=つ≡つ
(っ ≡つ=つ
/ ) ババババ
( / ̄∪
746片山博文MZ ◆T6xkBnTXz7B0
2017/08/07(月) 04:55:23.95ID:ITzYZ/9b 「戻り値」はダメとか言ったらキリがない。
言葉の世界は多数決で決まる。
時代錯誤な正義を振りかざすな。
言葉の世界は多数決で決まる。
時代錯誤な正義を振りかざすな。
747片山博文MZ ◆T6xkBnTXz7B0
2017/08/07(月) 05:16:25.45ID:ITzYZ/9b const char a[1] = "";
const char *p = "";
assert(sizeof(a) == 1);
assert(sizeof(p) == sizeof(void *));
a++; // Error
p++; // OK
const char *p = "";
assert(sizeof(a) == 1);
assert(sizeof(p) == sizeof(void *));
a++; // Error
p++; // OK
748片山博文MZ ◆T6xkBnTXz7B0
2017/08/07(月) 05:33:55.94ID:ITzYZ/9b 我が国は教育上の配慮を生徒よりも先回りして先回りして考えているから、教育水準をここまで
高めることが出来たんだ。教育上の配慮がないなら、答えを砂漠の中から探させることになってしまうぞ。
お前は天才だからいいが、エリートじゃない一般人は教育上の配慮を行った教材じゃないと生き残れない。
高めることが出来たんだ。教育上の配慮がないなら、答えを砂漠の中から探させることになってしまうぞ。
お前は天才だからいいが、エリートじゃない一般人は教育上の配慮を行った教材じゃないと生き残れない。
749デフォルトの名無しさん
2017/08/07(月) 06:44:33.33ID:qWjEOBrh750デフォルトの名無しさん
2017/08/07(月) 06:52:48.38ID:bZKJxmgb >>672
これどこの定義か知らんけど(変数じゃなくて)関数へのポインタって言うのもあるよね?
これどこの定義か知らんけど(変数じゃなくて)関数へのポインタって言うのもあるよね?
751片山博文MZ ◆T6xkBnTXz7B0
2017/08/07(月) 07:37:27.89ID:ITzYZ/9b ┌─┐??
|も.|??
|う |??
│来│??
│ね│??
│え .|??
│よ .|??
バカ ゴルァ │ !!.│??
└─┤ プンプン??
ヽ(`Д´)ノ ヽ(`Д´)ノ (`Д´)ノ ( `Д)??
| ̄ ̄ ̄|─| ̄ ̄ ̄|─| ̄ ̄ ̄|─□( ヽ┐U??
〜 〜  ̄◎ ̄ . ̄◎ ̄  ̄◎ ̄ ◎−>┘◎
|も.|??
|う |??
│来│??
│ね│??
│え .|??
│よ .|??
バカ ゴルァ │ !!.│??
└─┤ プンプン??
ヽ(`Д´)ノ ヽ(`Д´)ノ (`Д´)ノ ( `Д)??
| ̄ ̄ ̄|─| ̄ ̄ ̄|─| ̄ ̄ ̄|─□( ヽ┐U??
〜 〜  ̄◎ ̄ . ̄◎ ̄  ̄◎ ̄ ◎−>┘◎
752デフォルトの名無しさん
2017/08/07(月) 07:48:24.65ID:xW9C/CpC753デフォルトの名無しさん
2017/08/07(月) 08:38:13.41ID:oeQKd2lB あいや〜
昔 -traditional でgccでコンパイルして
動かせた化石ソースが、
今はもう -traditional使えないんで
コンパイル出来ない、動かせないアルよ。
昔 -traditional でgccでコンパイルして
動かせた化石ソースが、
今はもう -traditional使えないんで
コンパイル出来ない、動かせないアルよ。
754デフォルトの名無しさん
2017/08/07(月) 09:14:12.38ID:dOHD//zn >>752
仮引数かいてなくて どっちがどっちじゃ! と迷う qsort
qsort(void*, size_t , size_t , int (*)(const void*,const void*)):
仮引数かいてなくて どっちがどっちじゃ! と迷う qsort
qsort(void*, size_t , size_t , int (*)(const void*,const void*)):
755デフォルトの名無しさん
2017/08/07(月) 09:25:07.14ID:Uo4tfgNR756デフォルトの名無しさん
2017/08/07(月) 09:27:48.56ID:Uo4tfgNR >>754
仮引数もガイジ認定したい用語だ
原文ではparameter
実引数をあらわすargumentはactual argumentまたはactual parameterとも呼ばれる
実仮引数 w まさにガイジ用語
仮引数もガイジ認定したい用語だ
原文ではparameter
実引数をあらわすargumentはactual argumentまたはactual parameterとも呼ばれる
実仮引数 w まさにガイジ用語
757デフォルトの名無しさん
2017/08/07(月) 09:29:25.08ID:dOHD//zn >>756
漢字にすると面倒な言葉だね・・・ たまに何だっけ?ってなることがある
漢字にすると面倒な言葉だね・・・ たまに何だっけ?ってなることがある
758デフォルトの名無しさん
2017/08/07(月) 09:30:00.41ID:r4dv7rmY 化石ソース
#include<stdio.h>
int function(a, b, c)
int a;
int b;
int c;
{
return a*b + c;
}
int main(void){
printf("%d\n", function(5, 4, 10));
return 0;
}
#include<stdio.h>
int function(a, b, c)
int a;
int b;
int c;
{
return a*b + c;
}
int main(void){
printf("%d\n", function(5, 4, 10));
return 0;
}
759デフォルトの名無しさん
2017/08/07(月) 09:30:57.72ID:xW9C/CpC760デフォルトの名無しさん
2017/08/07(月) 09:35:47.75ID:dOHD//zn 数使ってるなら、そのうち覚えるけど、そうでもないのはいちいち調べるのに手間だし
最近のは プロトタイプをポップアップ表示したりする環境もあるし ね
最近のは プロトタイプをポップアップ表示したりする環境もあるし ね
761デフォルトの名無しさん
2017/08/07(月) 10:58:51.07ID:oP4SeJHR 英語圏のガイジはどんな用語擬きの英語使うか気になる
762デフォルトの名無しさん
2017/08/07(月) 12:44:52.49ID:bZKJxmgb >>755
お前が調べて持ってこいよ w
お前が調べて持ってこいよ w
763デフォルトの名無しさん
2017/08/07(月) 14:01:38.84ID:Uo4tfgNR >>744
ウソついてゴメンなさいはしないのか?
ウソついてゴメンなさいはしないのか?
764デフォルトの名無しさん
2017/08/07(月) 14:02:13.15ID:Uo4tfgNR >>762
見つけられないなら、お前の戯言
見つけられないなら、お前の戯言
765デフォルトの名無しさん
2017/08/07(月) 14:21:07.21ID:Oq7cYNKv JavaにポインタがなくてCにポインタがあるのはという話が出ているが
データのあるアドレスの扱いをポインタで実現したかそうでないかということだと思われる
Javaではint[]型のような参照型の変数にはアドレスが入っている
他例えばJavaScriptではNumber, Booleanのようなラッパークラスがint*などに似た役割を果たす
データのあるアドレスの扱いをポインタで実現したかそうでないかということだと思われる
Javaではint[]型のような参照型の変数にはアドレスが入っている
他例えばJavaScriptではNumber, Booleanのようなラッパークラスがint*などに似た役割を果たす
766デフォルトの名無しさん
2017/08/07(月) 14:23:34.73ID:Oq7cYNKv int*というよりはint *constか
767デフォルトの名無しさん
2017/08/07(月) 14:27:21.13ID:Jd+yR0yr char*ってなんなの?
char型の配列の先頭のアドレスを入れる配列って事?
つまりchar* a = {"hello","hoge","bread"};
こう?
char型の配列の先頭のアドレスを入れる配列って事?
つまりchar* a = {"hello","hoge","bread"};
こう?
768デフォルトの名無しさん
2017/08/07(月) 14:36:26.52ID:Oq7cYNKv charは256種類の値をとる型でありそれを使って'A'とか文字1つを表す
char型の配列はcharを一列に並べることによってUTF-8ヌル終端文字列を表す
その先頭のアドレスはchar*型なのでC言語ではchar*が文字列型になる
文字列の配列が欲しければ(char*)*つまりchar**
char型の配列はcharを一列に並べることによってUTF-8ヌル終端文字列を表す
その先頭のアドレスはchar*型なのでC言語ではchar*が文字列型になる
文字列の配列が欲しければ(char*)*つまりchar**
769デフォルトの名無しさん
2017/08/07(月) 14:44:29.34ID:Cf79G+d9770デフォルトの名無しさん
2017/08/07(月) 15:36:39.87ID:YE/9ro9h771デフォルトの名無しさん
2017/08/07(月) 15:53:42.35ID:fj1hwtp7 >>770
うーん
char とchar*ってやっぱり違うのか?
charが配列でchar*は2次元配列みたいなものなのかな?
char**は3次元配列でchar***(以下略
char a[][] これは2次元配列
char *a[] これも2次元配列
char **a これも2次元配列
って事なのかな?
うーん
char とchar*ってやっぱり違うのか?
charが配列でchar*は2次元配列みたいなものなのかな?
char**は3次元配列でchar***(以下略
char a[][] これは2次元配列
char *a[] これも2次元配列
char **a これも2次元配列
って事なのかな?
772デフォルトの名無しさん
2017/08/07(月) 16:34:16.06ID:YE/9ro9h773デフォルトの名無しさん
2017/08/07(月) 16:35:01.20ID:bZKJxmgb774デフォルトの名無しさん
2017/08/07(月) 16:54:50.74ID:Uo4tfgNR >>773
「(変数じゃなくて)関数へのポインタ」があると主張している、お前が一次ソースもってこい
「(変数じゃなくて)関数へのポインタ」があると主張している、お前が一次ソースもってこい
775デフォルトの名無しさん
2017/08/07(月) 18:33:10.56ID:OgCRmlag776デフォルトの名無しさん
2017/08/07(月) 18:56:35.36ID:DdwwpY1/ >>765
全然ポインタが何か分ってねぇ。cだって配列あるじゃねーか。
全然ポインタが何か分ってねぇ。cだって配列あるじゃねーか。
777デフォルトの名無しさん
2017/08/07(月) 19:43:35.00ID:r7C/NYo5 >>774
横からだけどこれでいいか?
K&R第2版Chapter 5より
The use of comp in the line
if ((*comp)(v[i], v[left]) < 0)
is consistent with the declaration: comp is a pointer to a function, *comp is the function, and
(*comp)(v[i], v[left])
is the call to it.
横からだけどこれでいいか?
K&R第2版Chapter 5より
The use of comp in the line
if ((*comp)(v[i], v[left]) < 0)
is consistent with the declaration: comp is a pointer to a function, *comp is the function, and
(*comp)(v[i], v[left])
is the call to it.
778デフォルトの名無しさん
2017/08/07(月) 19:53:25.65ID:g8RW1Chx ポインタが変数ではない別の何かだと言うのは、始めて聞きました
779デフォルトの名無しさん
2017/08/07(月) 19:56:00.52ID:r7C/NYo5780デフォルトの名無しさん
2017/08/07(月) 20:00:14.61ID:YE/9ro9h 関数のポインタの配列
http://codepad.org/GP2rFL5Z
http://codepad.org/GP2rFL5Z
781デフォルトの名無しさん
2017/08/07(月) 20:31:35.85ID:OgCRmlag782デフォルトの名無しさん
2017/08/07(月) 20:59:10.29ID:yPIvhEga 論点が何なのかさっぱりわからん
783デフォルトの名無しさん
2017/08/07(月) 21:02:26.86ID:OgCRmlag 論点はポインタの使い途wwwwwwwww
784デフォルトの名無しさん
2017/08/07(月) 21:04:00.81ID:DdwwpY1/ > ポインタは、アドレスを意味する値
酷いな。小学生かよ。
酷いな。小学生かよ。
785デフォルトの名無しさん
2017/08/07(月) 21:07:10.64ID:g8RW1Chx ポインタが変数なのか変数でないのか、結論は出ましたか?
786デフォルトの名無しさん
2017/08/07(月) 21:22:08.65ID:4hdYUdtg >>778
理解力無さすぎだろ...
理解力無さすぎだろ...
787デフォルトの名無しさん
2017/08/07(月) 21:23:07.98ID:OgCRmlag788デフォルトの名無しさん
2017/08/07(月) 21:24:03.98ID:0SF3W3/o (void *)0 は何になるんで
789デフォルトの名無しさん
2017/08/07(月) 21:26:45.04ID:yPIvhEga 議論をするなら自分の主張くらいはっきり書けよ
790デフォルトの名無しさん
2017/08/07(月) 21:29:47.13ID:OgCRmlag >>788
ポインタ
ポインタ
791デフォルトの名無しさん
2017/08/07(月) 21:31:15.86ID:DdwwpY1/ 一つ言えることは、幼稚園児 ID:OgCRmlag がオレオレ定義したポインタ
> ポインタは、アドレスを意味する値
を誰も支持することはないだろうということ。
> ポインタは、アドレスを意味する値
を誰も支持することはないだろうということ。
792デフォルトの名無しさん
2017/08/07(月) 21:33:48.90ID:DdwwpY1/ ID:OgCRmlag一人頓珍漢なこと言ってるだけあって、他は言ってること同じということか。
こいつ一人スルーすれば議論するようなことは何もない。
こいつ一人スルーすれば議論するようなことは何もない。
793デフォルトの名無しさん
2017/08/07(月) 21:34:30.59ID:yPIvhEga 支持じゃなくて規格書を根拠としないと
794デフォルトの名無しさん
2017/08/07(月) 21:39:11.76ID:OgCRmlag795デフォルトの名無しさん
2017/08/07(月) 21:42:00.46ID:yPIvhEga おれが?
冗談でしょ
冗談でしょ
796デフォルトの名無しさん
2017/08/07(月) 21:44:02.82ID:DdwwpY1/ そもそも質問者は定義を聞いているんじゃない。使い道を聞いているんだ。
printf()で使う。これで答えのはずだ。
それなのにおまえらは規格書も読まずオレオレ定義を展開しやがって。
printf()で使う。これで答えのはずだ。
それなのにおまえらは規格書も読まずオレオレ定義を展開しやがって。
797デフォルトの名無しさん
2017/08/07(月) 21:45:41.08ID:OgCRmlag 手帳申請しろとまで言っといて
都合が悪くなったら手のひら返ししてるアフォはスルー
都合が悪くなったら手のひら返ししてるアフォはスルー
798デフォルトの名無しさん
2017/08/07(月) 21:46:23.64ID:OgCRmlag まあ、俺じゃねえって言い訳しかできねえだろうなw
799デフォルトの名無しさん
2017/08/07(月) 21:47:16.90ID:e6/ebI1X 何このどんぐりの背比べ…
800片山博文MZ ◆T6xkBnTXz7B0
2017/08/07(月) 21:48:21.28ID:uTywTMsC 2個。
801デフォルトの名無しさん
2017/08/07(月) 21:52:43.06ID:OgCRmlag 751
802デフォルトの名無しさん
2017/08/07(月) 21:53:53.63ID:yPIvhEga アホ二人でスレ汚しか
感心しないな
感心しないな
803デフォルトの名無しさん
2017/08/07(月) 21:55:26.92ID:OgCRmlag やーい直球の罵倒語しか言うことなくなってやんのwwwwwwwww
804デフォルトの名無しさん
2017/08/07(月) 21:55:37.37ID:DdwwpY1/ ID:OgCRmlag ID:yPIvhEga ケンカしてるこの二人をNGにするとすっきり。
805デフォルトの名無しさん
2017/08/07(月) 21:58:53.51ID:yPIvhEga えっ?
おれ?
ただの通りすがりだ
おれ?
ただの通りすがりだ
806片山博文MZ ◆T6xkBnTXz7B0
2017/08/07(月) 21:59:31.43ID:uTywTMsC ※未承認広告※
新 台 入 替 !
新 台 入 替 !
807デフォルトの名無しさん
2017/08/07(月) 21:59:33.21ID:OgCRmlag スルーされてる約1名が相手して貰えている人をクリティカル嫉妬wwww
808デフォルトの名無しさん
2017/08/07(月) 22:01:27.09ID:yPIvhEga >>806
数学得意な人?
数学得意な人?
809デフォルトの名無しさん
2017/08/07(月) 22:03:03.86ID:yPIvhEga ビジービーバー関数はなんでC言語では書けないの?
810デフォルトの名無しさん
2017/08/07(月) 22:06:55.11ID:OgCRmlag んなこたどうでもいい
&演算子が生じる結果は左辺値なのかよ?
6.5.3.2 にはそんなこと書いてねえぞボケこら
&演算子が生じる結果は左辺値なのかよ?
6.5.3.2 にはそんなこと書いてねえぞボケこら
811デフォルトの名無しさん
2017/08/07(月) 22:11:16.54ID:OgCRmlag ゴガギーン
ドッカン
m ドッカン
=====) )) ☆
∧_∧ | | / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( )| |_____ ∧_∧ < おらっ!出てこいID:DdwwpY1/
「 ⌒ ̄ | | || (´Д` ) \___________
| /  ̄ | |/ 「 \
| | | | || || /\\
| | | | | へ//| | | |
| | | ロ|ロ |/,へ \| | | |
| ∧ | | | |/ \ / ( )
| | | |〈 | | | |
/ / / / | / | 〈| | |
/ / / / | | || | |
/ / / / =-----=-------- | |
ドッカン
m ドッカン
=====) )) ☆
∧_∧ | | / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( )| |_____ ∧_∧ < おらっ!出てこいID:DdwwpY1/
「 ⌒ ̄ | | || (´Д` ) \___________
| /  ̄ | |/ 「 \
| | | | || || /\\
| | | | | へ//| | | |
| | | ロ|ロ |/,へ \| | | |
| ∧ | | | |/ \ / ( )
| | | |〈 | | | |
/ / / / | / | 〈| | |
/ / / / | | || | |
/ / / / =-----=-------- | |
813片山博文MZ ◆T6xkBnTXz7B0
2017/08/07(月) 22:29:15.82ID:uTywTMsC ※未承認広告※
パチパチしませんか?
パチパチしませんか?
814デフォルトの名無しさん
2017/08/07(月) 22:33:57.24ID:yPIvhEga なんでWikipedia
815デフォルトの名無しさん
2017/08/07(月) 22:34:35.17ID:OgCRmlag 手帳所持者は逃げたかwww
816デフォルトの名無しさん
2017/08/07(月) 22:37:08.08ID:yPIvhEga >>812
何言語なら書けますか?
何言語なら書けますか?
817片山博文MZ ◆T6xkBnTXz7B0
2017/08/07(月) 22:40:09.74ID:uTywTMsC >>816
現状、どんな言語でも駄目。量子コンピュータで計算の概念が再定義される位のことが起こらないと無理。
現状、どんな言語でも駄目。量子コンピュータで計算の概念が再定義される位のことが起こらないと無理。
818デフォルトの名無しさん
2017/08/07(月) 22:50:03.04ID:yPIvhEga ありがとうございます
あなたのレベルが大体わかりました
あなたのレベルが大体わかりました
819片山博文MZ ◆T6xkBnTXz7B0
2017/08/07(月) 22:59:26.14ID:uTywTMsC おそらく、量子コンピュータや生物コンピュータでも計算不能だろう。
820デフォルトの名無しさん
2017/08/07(月) 23:09:18.43ID:nw7xsMvr だからこんなキチガイはスルーしろと言ったのに…
ただのキチガイなんだから
ただのキチガイなんだから
821片山博文MZ ◆T6xkBnTXz7B0
2017/08/07(月) 23:16:17.80ID:uTywTMsC ハムスターをリモコンで操作したい。
822デフォルトの名無しさん
2017/08/07(月) 23:33:23.62ID:yPIvhEga 女の子をリモコンで操作したい
823デフォルトの名無しさん
2017/08/08(火) 00:41:25.03ID:eouAXJYK >>777
どう見てもcompは変数なんだが
どう見てもcompは変数なんだが
824デフォルトの名無しさん
2017/08/08(火) 00:45:20.16ID:eouAXJYK825デフォルトの名無しさん
2017/08/08(火) 00:49:28.21ID:eP5zQIOv いつまでやっているんだ
826デフォルトの名無しさん
2017/08/08(火) 00:57:11.00ID:MZyamSKY827デフォルトの名無しさん
2017/08/08(火) 01:47:17.25ID:uStlgM0t828デフォルトの名無しさん
2017/08/08(火) 01:57:36.64ID:t5Eof3Jx >>823
compそのものは変数だけど、関数を指しているポインタでしょ?
ID:Uo4tfgNRが関数へのポインタが存在しないって主張していらっしゃるようだから示しただけだよ
>>774の「(変数じゃなくて)関数へのポインタ」
の「変数じゃなくて」は「ポインタが変数でない」と言っているのでなくはなく「ポインタの指す先が変数でなく関数」と言っていると思うんだけど違うかいな?
A pointer is a variable that contains the address of another variable. の最初のvariableじゃなくてanother variable の方ってことね
compそのものは変数だけど、関数を指しているポインタでしょ?
ID:Uo4tfgNRが関数へのポインタが存在しないって主張していらっしゃるようだから示しただけだよ
>>774の「(変数じゃなくて)関数へのポインタ」
の「変数じゃなくて」は「ポインタが変数でない」と言っているのでなくはなく「ポインタの指す先が変数でなく関数」と言っていると思うんだけど違うかいな?
A pointer is a variable that contains the address of another variable. の最初のvariableじゃなくてanother variable の方ってことね
829デフォルトの名無しさん
2017/08/08(火) 01:58:16.25ID:geODKJHF (変数でない)関数へのポインタが存在するかどうかだ
じゃないの?
じゃないの?
830デフォルトの名無しさん
2017/08/08(火) 02:01:15.50ID:O87Z3HpH831デフォルトの名無しさん
2017/08/08(火) 02:05:22.89ID:yYsi1PP7 typedef void (*INTVEC)(void);
(INTVEC)0;
(INTVEC)0;
832デフォルトの名無しさん
2017/08/08(火) 02:08:26.75ID:t5Eof3Jx >>829
(変数でない)は関数かポインタかどっちにかかっていると思う? 俺は関数だと思う
(変数でない)は関数かポインタかどっちにかかっていると思う? 俺は関数だと思う
833デフォルトの名無しさん
2017/08/08(火) 02:10:43.85ID:geODKJHF 関数は変数じゃないと言うのは理解出来るけど
関数へのポインタが変数じゃないと考えている人がいるようなので
関数へのポインタが変数じゃないと考えている人がいるようなので
834デフォルトの名無しさん
2017/08/08(火) 02:20:03.78ID:uStlgM0t 少なくともID:bZKJxmgbは違うと思うよ
835デフォルトの名無しさん
2017/08/08(火) 02:26:48.57ID:O87Z3HpH836デフォルトの名無しさん
2017/08/08(火) 02:27:16.73ID:geODKJHF 違うなら良いんです
ポインタは変数じゃないと結論が出るかどうかを楽しみにしているだけなので
ポインタは変数じゃないと結論が出るかどうかを楽しみにしているだけなので
837デフォルトの名無しさん
2017/08/08(火) 03:43:17.45ID:eouAXJYK838デフォルトの名無しさん
2017/08/08(火) 04:07:36.23ID:geODKJHF 変数へのポインタが存在するかどうかは、議論になってないと思いました
839デフォルトの名無しさん
2017/08/08(火) 04:10:20.00ID:geODKJHF 議論になっているのは、
「ポインタは変数ではない」あるいは
「ポインタには変数で無いものが存在する」ってことかな?
どちらにしても、何か違和感を感じざるを得ません
「ポインタは変数ではない」あるいは
「ポインタには変数で無いものが存在する」ってことかな?
どちらにしても、何か違和感を感じざるを得ません
840デフォルトの名無しさん
2017/08/08(火) 05:31:31.11ID:fn/KDcW/ ポインタという言葉が、ポインタ型かポインタ変数かどちらのことを意味しているのかは文脈次第
関数へのポインタ云々の主張はポインタ型のことを言っているし、ポインタは変数云々の主張はポインタ変数のことを言っている
両者を混同して議論しているから混乱する
JIS X 3010
ポインタ型(pointer type)は,被参照型(referenced type)と呼ぶ関数型,オブジェクト型又は不完全型から派生することができる。
ポインタ型は,被参照型の実体を参照するための値をもつオブジェクトを表す。被参照型Tから派生されるポインタ型は,“Tへのポインタ”と呼ぶ。
被参照型からポインタ型を構成することを“ポインタ型派生”と呼ぶ。
例)
関数型
被参照型 : void func(void), int func(int)
ポインタ型 : void (*func)(void), int (*func)(int)
オブジェクト型
被参照型 : int, double, array[]
ポインタ型 : int*, double*, array
不完全型
被参照型 : void
ポインタ型 : void*
関数へのポインタ云々の主張はポインタ型のことを言っているし、ポインタは変数云々の主張はポインタ変数のことを言っている
両者を混同して議論しているから混乱する
JIS X 3010
ポインタ型(pointer type)は,被参照型(referenced type)と呼ぶ関数型,オブジェクト型又は不完全型から派生することができる。
ポインタ型は,被参照型の実体を参照するための値をもつオブジェクトを表す。被参照型Tから派生されるポインタ型は,“Tへのポインタ”と呼ぶ。
被参照型からポインタ型を構成することを“ポインタ型派生”と呼ぶ。
例)
関数型
被参照型 : void func(void), int func(int)
ポインタ型 : void (*func)(void), int (*func)(int)
オブジェクト型
被参照型 : int, double, array[]
ポインタ型 : int*, double*, array
不完全型
被参照型 : void
ポインタ型 : void*
841デフォルトの名無しさん
2017/08/08(火) 06:09:26.13ID:/vaNLRRA >>824
ははは、ほとぼりが冷めるのを待って出てきたか
負 け 犬 め
&演算子が生じる結果は左辺値なのかよ?
6.5.3.2 にはそんなこと書いてねえぞボケこら
そのまま引っ込んでれば逃げられるのに
バカなやつw
ははは、ほとぼりが冷めるのを待って出てきたか
負 け 犬 め
&演算子が生じる結果は左辺値なのかよ?
6.5.3.2 にはそんなこと書いてねえぞボケこら
そのまま引っ込んでれば逃げられるのに
バカなやつw
842デフォルトの名無しさん
2017/08/08(火) 06:57:04.74ID:JTaa5zWQ >>839
お前はC言語の前に日本語勉強しろよ
お前はC言語の前に日本語勉強しろよ
843デフォルトの名無しさん
2017/08/08(火) 07:36:06.14ID:Ya8H5zzs こんなんじゃラチがあかんやろ
厳密な言語仕様規定用のメタランゲージで
Cのポインタ概念説明したれ
そんなん難しすぎて多分読めんけどな…わははは
厳密な言語仕様規定用のメタランゲージで
Cのポインタ概念説明したれ
そんなん難しすぎて多分読めんけどな…わははは
844デフォルトの名無しさん
2017/08/08(火) 07:59:01.02ID:rMIF23m7 ptr+1 は何だ?
845デフォルトの名無しさん
2017/08/08(火) 08:06:53.41ID:GPPLRiD4 そもそもその ptr は何だ?
846デフォルトの名無しさん
2017/08/08(火) 08:14:46.20ID:cPrpCtT/ pgr
847デフォルトの名無しさん
2017/08/08(火) 08:17:18.05ID:rMIF23m7 関数ポインタ以外のポインタ型の変数ならなんでもいいよ
848デフォルトの名無しさん
2017/08/08(火) 08:31:21.70ID:eouAXJYK849336
2017/08/08(火) 08:37:44.58ID:YrE6LFRr しつこい。次レスした方が負けね。
850デフォルトの名無しさん
2017/08/08(火) 08:47:52.68ID:0o9xOItj851デフォルトの名無しさん
2017/08/08(火) 08:49:22.58ID:qTxWRpQR 幼稚な勝ち負け論
852デフォルトの名無しさん
2017/08/08(火) 09:28:08.76ID:eouAXJYK853デフォルトの名無しさん
2017/08/08(火) 09:30:49.19ID:uN6BnjID854デフォルトの名無しさん
2017/08/08(火) 09:34:31.83ID:2fnixEy5 有用な情報としては>>840があって、残りのほとんどは子供の喧嘩とそれをからかっている周囲の茶々だから、スルーしとけばいいよ。
855デフォルトの名無しさん
2017/08/08(火) 09:38:26.73ID:eouAXJYK856IDコロコロ変わるな
2017/08/08(火) 09:39:36.53ID:oLfqgxcT >>852
「それ」って「A pointer is a variable that contains the address of another variable. 」のことか?
そこには文句ないよ。
勝手に「ポインタが変数かどうか」とかいう文脈にすり替えたことには文句があるけどな
「それ」って「A pointer is a variable that contains the address of another variable. 」のことか?
そこには文句ないよ。
勝手に「ポインタが変数かどうか」とかいう文脈にすり替えたことには文句があるけどな
857デフォルトの名無しさん
2017/08/08(火) 09:55:39.20ID:eouAXJYK >>856
ガイジID:OgCRmlagは文句があるようだぞ
ガイジID:OgCRmlagは文句があるようだぞ
858IDコロコロ変わるな
2017/08/08(火) 10:23:08.14ID:oLfqgxcT >>857
そいつの主張は俺もガイジだと思うよ
そいつの主張は俺もガイジだと思うよ
859C言語ますたー《ますたー軍団(常時募集)の長》 ◆oa6k//3vOQ
2017/08/08(火) 16:47:33.39ID:46jc69TQ 質問がある奴はVIPに来れば大体俺がいるよプゲラwww
860デフォルトの名無しさん
2017/08/08(火) 21:02:06.34ID:CWtfXRt7 >>859
そのハンドルでは誰も信用しないだろう
そのハンドルでは誰も信用しないだろう
861デフォルトの名無しさん
2017/08/08(火) 21:06:09.48ID:SUxfydq2 > 7 名前:C言語ますたー《ますたー軍団(常時募集)の長》 ◆oa6k//3vOQ [sage] 投稿日:2017/08/08(火) 17:06:43.43 ID:46jc69TQ [1/3]
> アセンブラを1行ずつ実行するにはとうやってやればいいんだろう?
> エミュレータぐらいしか思いつかないわ
> 11 返信:C言語ますたー《ますたー軍団(常時募集)の長》 ◆oa6k//3vOQ [] 投稿日:2017/08/08(火) 20:06:57.31 ID:46jc69TQ [3/3]
> windowsの場合APIが用意されてるだろ?
> あれ1行ずつの実行って出来なくね?
> CPUの方にデバッグの機能がついているのだろうか…
こいつド素人。
> アセンブラを1行ずつ実行するにはとうやってやればいいんだろう?
> エミュレータぐらいしか思いつかないわ
> 11 返信:C言語ますたー《ますたー軍団(常時募集)の長》 ◆oa6k//3vOQ [] 投稿日:2017/08/08(火) 20:06:57.31 ID:46jc69TQ [3/3]
> windowsの場合APIが用意されてるだろ?
> あれ1行ずつの実行って出来なくね?
> CPUの方にデバッグの機能がついているのだろうか…
こいつド素人。
862アムドクラス (4f6c-czis 110.132.254.159)
2017/08/08(火) 21:50:07.01ID:z5MuZpZP AMDの勝ち
863デフォルトの名無しさん
2017/08/08(火) 21:58:43.88ID:eouAXJYK > printf("Hello, C world!\n"); これがポインタだっ どやっ
よりはまし
よりはまし
865デフォルトの名無しさん
2017/08/08(火) 22:18:43.73ID:O3M4HeCn この場合printf関数の引数は、被参照型 文字列リテラル オブジェクトから派生されたポインタ型のオブジェクト
866デフォルトの名無しさん
2017/08/08(火) 22:19:57.77ID:0hOvAoxM オブジェクトなどという高尚な概念はCにありません
867デフォルトの名無しさん
2017/08/08(火) 22:21:06.28ID:NzfA1f0K Pointer
https://goo.gl/images/8NAARa
https://goo.gl/images/8NAARa
868デフォルトの名無しさん
2017/08/08(火) 22:25:41.34ID:HehkFpa6869デフォルトの名無しさん
2017/08/08(火) 22:35:05.98ID:0hOvAoxM しらん
まぎらわしい言い方してるから自分の頭も混乱するんだ
文字列リテラルからポインタ型が派生するのって変じゃないか
ポインタのほうが汎用的だし逆だろ
まぎらわしい言い方してるから自分の頭も混乱するんだ
文字列リテラルからポインタ型が派生するのって変じゃないか
ポインタのほうが汎用的だし逆だろ
870デフォルトの名無しさん
2017/08/08(火) 22:48:27.60ID:4AThmWF1871デフォルトの名無しさん
2017/08/08(火) 22:54:10.15ID:uStlgM0t い、いやー。object自体は本当にK&Rに書いてあったよ
オブジェクト志向登場以前から使われてきたんじゃないかな?
オブジェクト志向登場以前から使われてきたんじゃないかな?
872片山博文MZ ◆T6xkBnTXz7B0
2017/08/08(火) 22:55:26.67ID:m3/ZcJyF 同音異義語つーやつやな。
873デフォルトの名無しさん
2017/08/08(火) 22:56:20.16ID:0hOvAoxM 派生の意味もちがうんかい
874デフォルトの名無しさん
2017/08/08(火) 23:06:23.25ID:ORaXP+Gp 曜日の頭文字
#include<stdio.h>
int main(void){
int w = 3;
printf("%c\n", "SMTWTFS"[w]);
return 0;
}
#include<stdio.h>
int main(void){
int w = 3;
printf("%c\n", "SMTWTFS"[w]);
return 0;
}
875デフォルトの名無しさん
2017/08/08(火) 23:15:50.51ID:yrQEUEp6 C言語で派生って言ったら型の派生の事だな
少なくとも型変換の意味ではない
配列型の式(文字列リテラル)が型変換されて非左辺値なポインタ型の式になるんだろ
>>866は変換前後ともオブジェクトだって言ってるけど
アドレス付け可能な領域に保存されている保証のないものがオブジェクトなの?
少なくとも型変換の意味ではない
配列型の式(文字列リテラル)が型変換されて非左辺値なポインタ型の式になるんだろ
>>866は変換前後ともオブジェクトだって言ってるけど
アドレス付け可能な領域に保存されている保証のないものがオブジェクトなの?
876デフォルトの名無しさん
2017/08/08(火) 23:16:38.91ID:yrQEUEp6 安価ミスった>>865か
877デフォルトの名無しさん
2017/08/08(火) 23:23:10.94ID:fmd6E2St 何に盛り上がってるのかよくわからんけど
C言語だってオブジェクトはオブジェクトって呼ばれてる。
K&Rにも書かれている。
もちろん普通名詞のオブジェクトね
C言語だってオブジェクトはオブジェクトって呼ばれてる。
K&Rにも書かれている。
もちろん普通名詞のオブジェクトね
878デフォルトの名無しさん
2017/08/08(火) 23:30:11.34ID:O87Z3HpH 張っておくか
>>840から転載
JIS X 3010
ポインタ型(pointer type)は,被参照型(referenced type)と呼ぶ関数型,オブジェクト型又は不完全型から派生することができる。
ポインタ型は,被参照型の実体を参照するための値をもつオブジェクトを表す。被参照型Tから派生されるポインタ型は,“Tへのポインタ”と呼ぶ。
被参照型からポインタ型を構成することを“ポインタ型派生”と呼ぶ。
>>840から転載
JIS X 3010
ポインタ型(pointer type)は,被参照型(referenced type)と呼ぶ関数型,オブジェクト型又は不完全型から派生することができる。
ポインタ型は,被参照型の実体を参照するための値をもつオブジェクトを表す。被参照型Tから派生されるポインタ型は,“Tへのポインタ”と呼ぶ。
被参照型からポインタ型を構成することを“ポインタ型派生”と呼ぶ。
879デフォルトの名無しさん
2017/08/08(火) 23:37:29.99ID:0hOvAoxM 日本語的に派生って言ったら亜種ができることじゃん
double と *double って全然意味ちがうだろ
JavaとかでいったらObjectとRef<Object>ぐらいちがう
アドレスという概念をもちだして、多少関係してる違う型つくってるんじゃないか
JISがまちがってる
double と *double って全然意味ちがうだろ
JavaとかでいったらObjectとRef<Object>ぐらいちがう
アドレスという概念をもちだして、多少関係してる違う型つくってるんじゃないか
JISがまちがってる
880デフォルトの名無しさん
2017/08/08(火) 23:45:35.34ID:yrQEUEp6 JISは間違ってない
構文上、型指定子に*は含まれない
宣言子で*を付けることで被参照型からポインタ型に派生させているのだから、型の派生で合っている
>>865は間違ってる
この場合は派生ではなく型変換
構文上、型指定子に*は含まれない
宣言子で*を付けることで被参照型からポインタ型に派生させているのだから、型の派生で合っている
>>865は間違ってる
この場合は派生ではなく型変換
881デフォルトの名無しさん
2017/08/08(火) 23:56:11.53ID:0hOvAoxM 文字列リテラル オブジェクトはたぶん中身の文字データのことだろう
定義にしたがうと
それへのポインタは文字列リテラルから派生したポインタだからいいんじゃないの
定義にしたがうと
それへのポインタは文字列リテラルから派生したポインタだからいいんじゃないの
882デフォルトの名無しさん
2017/08/09(水) 00:05:11.01ID:bnFISF+U 普通名詞としての派生なら良いんじゃねーの
規格で定義されている派生として言ってるなら間違いってだけ
派生は型に対しての規則であって型を持つ式(オブジェクト)は派生しない、派生型に型変換されるだけ
規格で定義されている派生として言ってるなら間違いってだけ
派生は型に対しての規則であって型を持つ式(オブジェクト)は派生しない、派生型に型変換されるだけ
883デフォルトの名無しさん
2017/08/09(水) 00:14:48.77ID:ckc2uc+D 型変換であろうとポインタ型派生であろうとポインタ型である結果は同じことではないの?
884デフォルトの名無しさん
2017/08/09(水) 00:16:45.80ID:sYRFpLtr 世間に通じない用語を振りかざして些末な定義や言葉尻について無益な議論をしていると
大学時代を思い出してほっこりする
大学時代を思い出してほっこりする
885C言語ますたー《ますたー軍団(常時募集)の長》 ◆oa6k//3vOQ
2017/08/09(水) 00:25:37.15ID:s1XZJ5Nh887C言語ますたー《ますたー軍団(常時募集)の長》 ◆oa6k//3vOQ
2017/08/09(水) 00:30:50.08ID:s1XZJ5Nh >>886
実行中のプロセスにアタッチして、アセンブラ見ながらステップインで解析したいんだけどVSじゃ出来なくない?
実行中のプロセスにアタッチして、アセンブラ見ながらステップインで解析したいんだけどVSじゃ出来なくない?
888デフォルトの名無しさん
2017/08/09(水) 00:31:28.95ID:8y5srZEo 用語オブジェクトについての哲学的な論考や定義そのものがJISには載ってなさそうだな
深く考えずに音写しただけ
だからカタカナの用語になってる
深く考えずに音写しただけ
だからカタカナの用語になってる
889デフォルトの名無しさん
2017/08/09(水) 00:34:53.01ID:7zaXDMDr890片山博文MZ ◆T6xkBnTXz7B0
2017/08/09(水) 00:35:31.88ID:bb8twRCP >>887
バージョンやエディションによって使える機能が違う。気にせず使いたいなら、「買え」
バージョンやエディションによって使える機能が違う。気にせず使いたいなら、「買え」
891C言語ますたー《ますたー軍団(常時募集)の長》 ◆oa6k//3vOQ
2017/08/09(水) 00:37:19.05ID:s1XZJ5Nh894デフォルトの名無しさん
2017/08/09(水) 00:46:00.24ID:7zaXDMDr >>893
あなた様も障害者手帳の申請をする事をお勧めするしだいで御座いまする。
まず、頭脳が残念過ぎまする。
そして、頭脳が残念過ぎまする。
加えて、頭脳が残念過ぎまする。
きっと、高い等級で認定されると愚考致しまする。
敬具
あなた様も障害者手帳の申請をする事をお勧めするしだいで御座いまする。
まず、頭脳が残念過ぎまする。
そして、頭脳が残念過ぎまする。
加えて、頭脳が残念過ぎまする。
きっと、高い等級で認定されると愚考致しまする。
敬具
895C言語ますたー《ますたー軍団(常時募集)の長》 ◆oa6k//3vOQ
2017/08/09(水) 00:46:00.43ID:s1XZJ5Nh ポインタの話題ならアセンブラやった方が早いと思うんだよね
ポインタとして宣言された変数は32bit環境なら4バイト、64bitなら8バイトのメモリが確保されるだけだが、配列の場合、サイズ×添字の分メモリが確保されて、配列名がその先頭アドレスをあらわすってだけなのに
ポインタとして宣言された変数は32bit環境なら4バイト、64bitなら8バイトのメモリが確保されるだけだが、配列の場合、サイズ×添字の分メモリが確保されて、配列名がその先頭アドレスをあらわすってだけなのに
896デフォルトの名無しさん
2017/08/09(水) 00:48:50.01ID:ckc2uc+D897C言語ますたー《ますたー軍団(常時募集)の長》 ◆oa6k//3vOQ
2017/08/09(水) 00:51:21.74ID:s1XZJ5Nh899デフォルトの名無しさん
2017/08/09(水) 01:05:03.10ID:Mt1oO7bk900C言語ますたー《ますたー軍団(常時募集)の長》 ◆oa6k//3vOQ
2017/08/09(水) 01:06:30.01ID:s1XZJ5Nh901片山博文MZ ◆T6xkBnTXz7B0
2017/08/09(水) 01:08:37.25ID:bb8twRCP クラークなら、windbgとかollydbgとか使えば? 汗もでるよ。
902C言語ますたー《ますたー軍団(常時募集)の長》 ◆oa6k//3vOQ
2017/08/09(水) 01:14:59.65ID:s1XZJ5Nh どっちも持ってて試したけどイマイチ…
int 3のブレークポイントがある所でしか止まらないじゃん?
普通に最初からステップインでやれないものか…
だから>861でエミュ上での実行が良いって言ったんだよね
int 3のブレークポイントがある所でしか止まらないじゃん?
普通に最初からステップインでやれないものか…
だから>861でエミュ上での実行が良いって言ったんだよね
903デフォルトの名無しさん
2017/08/09(水) 01:16:05.66ID:7zaXDMDr >>897
出来るよ やり方は片山KUZUが見てるから教えない
出来るよ やり方は片山KUZUが見てるから教えない
904C言語ますたー《ますたー軍団(常時募集)の長》 ◆oa6k//3vOQ
2017/08/09(水) 01:19:35.53ID:s1XZJ5Nh >>903
あっそう(^^;
あっそう(^^;
905C言語ますたー《ますたー軍団(常時募集)の長》 ◆oa6k//3vOQ
2017/08/09(水) 01:35:22.34ID:s1XZJ5Nh どうもフラグレジスタのTrap Flagというのをセットすることでシングルステップ実行が出来るらしい…
とても面倒臭いけども自分でコード書いて頑張りますわ
とても面倒臭いけども自分でコード書いて頑張りますわ
906デフォルトの名無しさん
2017/08/09(水) 04:26:02.60ID:deJRgLks 何も知らないド素人同然なのになんでC言語すまたーとか名乗ってんの?
907デフォルトの名無しさん
2017/08/09(水) 05:25:27.23ID:J9yCSat5 てす
908デフォルトの名無しさん
2017/08/09(水) 06:39:45.89ID:UBBon8Wk 巣股ー?
909デフォルトの名無しさん
2017/08/09(水) 06:40:21.09ID:UBBon8Wk どうせなら入れたい
910デフォルトの名無しさん
2017/08/09(水) 09:13:43.09ID:VQlIa1Fm gdbでstepiってやればできんじゃねえの?ググれば1分で分かりそうだけどw
911C言語ますたー《ますたー軍団(常時募集)の長》 ◆oa6k//3vOQ
2017/08/09(水) 11:32:53.54ID:s1XZJ5Nh912C言語ますたー《ますたー軍団(常時募集)の長》 ◆oa6k//3vOQ
2017/08/09(水) 11:33:36.39ID:s1XZJ5Nh >>906
ますたーって読んでいいぞ
ますたーって読んでいいぞ
913デフォルトの名無しさん
2017/08/09(水) 11:38:08.60ID:deJRgLks Cなのにスマタさん。特権プレイモードってのがあるんですよ。Winの起動オプションをよく見てください。
914デフォルトの名無しさん
2017/08/09(水) 11:38:48.46ID:vlyUfKCW >>911
gccもgdbもWindowsで使える
gccもgdbもWindowsで使える
915C言語ますたー ◆oa6k//3vOQ
2017/08/09(水) 11:41:46.58ID:s1XZJ5Nh916C言語ますたー ◆oa6k//3vOQ
2017/08/09(水) 11:42:09.25ID:s1XZJ5Nh917デフォルトの名無しさん
2017/08/09(水) 11:44:51.11ID:wdbwq19+ cp/m80で使えるgdbはどこ?
918デフォルトの名無しさん
2017/08/09(水) 11:46:56.01ID:deJRgLks どうやらCなのにスマタさんは童貞です。
919C言語ますたー ◆oa6k//3vOQ
2017/08/09(水) 11:57:25.81ID:s1XZJ5Nh ちょっと調べてみたんだがgdbはソースがあって、-gオプションでデバッグ情報を生成したときのみ使えるコマンドじゃん
俺がデバッグしたいのはただの実行可能ファイルなんだ…
俺がデバッグしたいのはただの実行可能ファイルなんだ…
920デフォルトの名無しさん
2017/08/09(水) 12:02:30.41ID:J9yCSat5 >>848
案の定w
もう、とぼける位しかできねえボコボコだもんなおまえ
841に6.5.3.2と書いてあるのがどういう意味か
見当もつかない赤っ恥に気づきもしないからこそ
それでとぼけたつもりになっているんだろう
浅 は か な や つ w
案の定w
もう、とぼける位しかできねえボコボコだもんなおまえ
841に6.5.3.2と書いてあるのがどういう意味か
見当もつかない赤っ恥に気づきもしないからこそ
それでとぼけたつもりになっているんだろう
浅 は か な や つ w
921デフォルトの名無しさん
2017/08/09(水) 12:22:51.13ID:6bCVBseb922C言語ますたー ◆oa6k//3vOQ
2017/08/09(水) 12:37:30.55ID:s1XZJ5Nh923デフォルトの名無しさん
2017/08/09(水) 12:39:16.06ID:LnmC5B+P >>917
それはお前が作るんだよ
それはお前が作るんだよ
924デフォルトの名無しさん
2017/08/09(水) 12:42:14.46ID:J9yCSat5 いるよなー
GNUはハッカーのものだってことを忘れてるやつ
GNUはハッカーのものだってことを忘れてるやつ
925C言語ますたー ◆oa6k//3vOQ
2017/08/09(水) 12:55:30.37ID:s1XZJ5Nh 最初っからステップインで実行したいんだけどシンボルテーブルが無いおかげでブレークポイント作れないからアドレス0x00400AFFにCCを入れて実行開始アドレスを0x00400AFFに書き換えたんだけどローダが読んでくれないみたい…
アドバイスありませんかね
アドバイスありませんかね
926デフォルトの名無しさん
2017/08/09(水) 13:13:43.97ID:FEqENNu4 gdbなら「b *アドレス」でブレーク貼れるでしょ
927C言語ますたー ◆oa6k//3vOQ
2017/08/09(水) 13:31:17.32ID:s1XZJ5Nh >>926
どうもデバッグ情報がないから無理っぽい…?
で、仕方なく開始アドレスにバイナリエディタでCC入れて止めてみたんだけど、デバッグ情報がないせいで’s’コマンドが実行できない
”cannot find bounds of function."って出るんだけど、ググったらデバッグ情報がないとこうなるみたい
gdbじゃexeのシングルステップ実行は無理なんじゃ…
とりあえずネットで調べながら自分でシングルステップ実行するプログラム作ったんだけど、デバッグイベント起こらなくてWaitForDebugEvent関数で止まるwww
どうすりゃデバッグイベント起こせるんだよ
どうもデバッグ情報がないから無理っぽい…?
で、仕方なく開始アドレスにバイナリエディタでCC入れて止めてみたんだけど、デバッグ情報がないせいで’s’コマンドが実行できない
”cannot find bounds of function."って出るんだけど、ググったらデバッグ情報がないとこうなるみたい
gdbじゃexeのシングルステップ実行は無理なんじゃ…
とりあえずネットで調べながら自分でシングルステップ実行するプログラム作ったんだけど、デバッグイベント起こらなくてWaitForDebugEvent関数で止まるwww
どうすりゃデバッグイベント起こせるんだよ
928C言語ますたー ◆oa6k//3vOQ
2017/08/09(水) 14:44:13.23ID:s1XZJ5Nh しょぼいデバッガみたいのは動いたけどシングルステップ実行にならん…
なぜだ
なぜだ
929デフォルトの名無しさん
2017/08/09(水) 15:31:30.38ID:WoeKVDyE なんで実行する必要があるんだ? 逆アセンブルしてソースコードを起こせばいいでしょ。
930C言語ますたー ◆oa6k//3vOQ
2017/08/09(水) 15:43:21.53ID:s1XZJ5Nh >>929
そんな膨大なコードから目的の部分が見つかるわけないでしょ
そんな膨大なコードから目的の部分が見つかるわけないでしょ
931デフォルトの名無しさん
2017/08/09(水) 16:28:28.13ID:7zaXDMDr932デフォルトの名無しさん
2017/08/09(水) 16:37:22.13ID:7zaXDMDr >>920
この、ガイジは全然理解してない事を理解できずにガイジを再生産しようとしたやがる
> printf("Hello, C world!\n"); これがポインタだっ どやっ
これは、ポインタじゃなくてポインタ型
そしてそれは、ポインタと配列を区別出来ないガイジの本質
役所には盆休みはないから、休みのうちに手帳申請しとけよ
この、ガイジは全然理解してない事を理解できずにガイジを再生産しようとしたやがる
> printf("Hello, C world!\n"); これがポインタだっ どやっ
これは、ポインタじゃなくてポインタ型
そしてそれは、ポインタと配列を区別出来ないガイジの本質
役所には盆休みはないから、休みのうちに手帳申請しとけよ
933デフォルトの名無しさん
2017/08/09(水) 16:46:18.30ID:J9yCSat5 > これは、ポインタじゃなくてポインタ型
失笑
「ポインタと配列を区別出来ないガイジの本質」を
そのままお返しだ、さあ受け取れアフォ
失笑
「ポインタと配列を区別出来ないガイジの本質」を
そのままお返しだ、さあ受け取れアフォ
934デフォルトの名無しさん
2017/08/09(水) 16:49:08.32ID:J9yCSat5 こーゆー手合いは、こっちから攻め込まなくても
時間稼ぎしてれば勝手に自爆してくれるから楽だ
時間稼ぎしてれば勝手に自爆してくれるから楽だ
935C言語ますたー ◆oa6k//3vOQ
2017/08/09(水) 16:49:25.49ID:s1XZJ5Nh 機械語のシングルステップ実行に成功した
けどレジスタとか表示させるのにまたプログラム改変しなきゃなんない
面倒臭すぎる
けどレジスタとか表示させるのにまたプログラム改変しなきゃなんない
面倒臭すぎる
936デフォルトの名無しさん
2017/08/09(水) 16:51:48.67ID:zUFk2ZAi 配列も文字列リテラルも式の中の評価はポインタ型だからな
引数として評価されると本質は同じことになる
引数として評価されると本質は同じことになる
937デフォルトの名無しさん
2017/08/09(水) 17:00:02.70ID:J9yCSat5938デフォルトの名無しさん
2017/08/09(水) 17:09:17.76ID:zUFk2ZAi939デフォルトの名無しさん
2017/08/09(水) 17:11:40.05ID:PV13OBMN940デフォルトの名無しさん
2017/08/09(水) 17:17:25.80ID:J9yCSat5 >>938
おまえさんはこう言ったんだぜ
> 配列も文字列リテラルも式の中の評価はポインタ型だからな
sizeofつまりunary-expressionは紛れもなく式の1つだ
よって式の中で文字列リテラルがポインタ型というのは正しくない
おまえさんはこう言ったんだぜ
> 配列も文字列リテラルも式の中の評価はポインタ型だからな
sizeofつまりunary-expressionは紛れもなく式の1つだ
よって式の中で文字列リテラルがポインタ型というのは正しくない
941デフォルトの名無しさん
2017/08/09(水) 17:25:24.78ID:YmDhq+hb942デフォルトの名無しさん
2017/08/09(水) 17:28:25.59ID:PV13OBMN 前置,後置の ++ や -- は式じゃない ってことないし
>>936 は見てる状況を限定しすぎてないかな?
>>936 は見てる状況を限定しすぎてないかな?
943デフォルトの名無しさん
2017/08/09(水) 17:28:34.22ID:J9yCSat5 >>941
ほほー型の評価結果と式の評価結果とな
じゃあこれはどう説明する?
const char* ptr
assert(sizeof ptr == sizeof "string literal"); //abend
ほほー型の評価結果と式の評価結果とな
じゃあこれはどう説明する?
const char* ptr
assert(sizeof ptr == sizeof "string literal"); //abend
944デフォルトの名無しさん
2017/08/09(水) 17:45:41.64ID:YmDhq+hb945デフォルトの名無しさん
2017/08/09(水) 17:49:19.66ID:J9yCSat5946デフォルトの名無しさん
2017/08/09(水) 19:31:37.93ID:7zaXDMDr 今日もガイジID:J9yCSat5は元気だな
947デフォルトの名無しさん
2017/08/09(水) 19:46:02.23ID:J9yCSat5 ん? ガイジの称号はお返ししただろ、ガイジ君
948デフォルトの名無しさん
2017/08/09(水) 20:48:57.04ID:afYQHR9U 個人攻撃抜きでやれば、面白い事言っているんだけどなぁ:-P
949デフォルトの名無しさん
2017/08/09(水) 20:58:23.97ID:+5xcelsT 糞下らん議論でスレを汚すな
950デフォルトの名無しさん
2017/08/09(水) 21:07:56.63ID:8y5srZEo クソ下らんことが141000レスも続いてんだぞ
14万だ
過去スレなんて見た日にゃ目がつぶれてそのまま気絶だ
14万だ
過去スレなんて見た日にゃ目がつぶれてそのまま気絶だ
951デフォルトの名無しさん
2017/08/09(水) 21:09:32.99ID:7zaXDMDr ガイジID:7zaXDMDrは必死になって、
> printf("Hello, C world!\n"); これがポインタだっ どやっ
これを否定するネタを探してきたらしいが
あてにならない(どうとでも取れる)JIS規格票は根拠にならんぞ
> A pointer is a variable that contains the address of another variable.
文字列は変数じゃない
従ってポインタじゃない これは神が決めた事
> printf("Hello, C world!\n"); これがポインタだっ どやっ
これを否定するネタを探してきたらしいが
あてにならない(どうとでも取れる)JIS規格票は根拠にならんぞ
> A pointer is a variable that contains the address of another variable.
文字列は変数じゃない
従ってポインタじゃない これは神が決めた事
952おもろいやんけ!
2017/08/09(水) 21:23:05.53ID:h3UNfnj7 綺麗な自己紹介
953デフォルトの名無しさん
2017/08/09(水) 21:52:53.42ID:NuBALnab954デフォルトの名無しさん
2017/08/09(水) 22:15:20.36ID:aUjAPhEK このスレは必ず絡んでくるやつが居るな
しかも延々とな
レスされて「この野郎!」と思った時には、深呼吸して落ち着こう。
そしてこうつぶやくのだ「相手にするなヨシオ」とな
しかも延々とな
レスされて「この野郎!」と思った時には、深呼吸して落ち着こう。
そしてこうつぶやくのだ「相手にするなヨシオ」とな
955デフォルトの名無しさん
2017/08/09(水) 22:24:18.50ID:J9yCSat5956デフォルトの名無しさん
2017/08/09(水) 22:26:15.56ID:vlyUfKCW ワザとやっているんだろう、たぶん
957デフォルトの名無しさん
2017/08/09(水) 22:28:54.98ID:J9yCSat5 個人攻撃は、俺もそんなことしにきているわけじゃないんだが
喧嘩売ってくる馬鹿がいるとき、場合によるが応戦することもある
俺には9条みたいなふざけた縛りはない、それだけのことだ
技術的なことを言うたびにもれなく失笑させてくれる
民進党のブーメラン屋みたいなマゾ野郎がいるから、
ちょっとSっ気出ちまってるんだよ
喧嘩売ってくる馬鹿がいるとき、場合によるが応戦することもある
俺には9条みたいなふざけた縛りはない、それだけのことだ
技術的なことを言うたびにもれなく失笑させてくれる
民進党のブーメラン屋みたいなマゾ野郎がいるから、
ちょっとSっ気出ちまってるんだよ
958デフォルトの名無しさん
2017/08/09(水) 22:35:40.33ID:vlyUfKCW 2chで正論言っても仕方がないよ
959デフォルトの名無しさん
2017/08/10(木) 00:08:19.99ID:Ahb0l/jg >>955
ガイジだからわからないんだろうけど、JISもISO/IECも「ポインタ」をいろいろな意味で使っている
ガイジ君はその中の都合の良いところだけ読んだだけ
神の定義と違って「ポインタとは〜〜」というのが無いって気付いて無いんだろうな ガイジだから
実は曖昧さを排除した定義があるがそれは、これだ
6.7.6 Declarators
Syntax
pointer:
* type-qualifier-list opt
* type-qualifier-list opt pointer
つまり規格票でいうポインタとは宣言の中にあらわれる「* [const]」の繰り返しだ w
ガイジ君が規格票を拠り所にした瞬間に
> printf("Hello, C world!\n"); これがポインタだっ どやっ
は、やっぱりお笑いだ わかったら明日手帳申請にいくんだぞ ガイジ
ガイジだからわからないんだろうけど、JISもISO/IECも「ポインタ」をいろいろな意味で使っている
ガイジ君はその中の都合の良いところだけ読んだだけ
神の定義と違って「ポインタとは〜〜」というのが無いって気付いて無いんだろうな ガイジだから
実は曖昧さを排除した定義があるがそれは、これだ
6.7.6 Declarators
Syntax
pointer:
* type-qualifier-list opt
* type-qualifier-list opt pointer
つまり規格票でいうポインタとは宣言の中にあらわれる「* [const]」の繰り返しだ w
ガイジ君が規格票を拠り所にした瞬間に
> printf("Hello, C world!\n"); これがポインタだっ どやっ
は、やっぱりお笑いだ わかったら明日手帳申請にいくんだぞ ガイジ
960C言語ますたー ◆oa6k//3vOQ
2017/08/10(木) 00:15:28.54ID:Wh1e+mJZ これただのBNFですやん
定義じゃなくて文法
定義じゃなくて文法
961C言語ますたー ◆oa6k//3vOQ
2017/08/10(木) 00:16:03.76ID:Wh1e+mJZ あ、ごめんなんでもない
アスペかました
アスペかました
962デフォルトの名無しさん
2017/08/10(木) 00:23:27.16ID:ukk4ErN5 うんざりしている人は、ガイジをNGにしよう
963C言語ますたー ◆oa6k//3vOQ
2017/08/10(木) 00:27:01.19ID:Wh1e+mJZ (俺のことじゃないよな…)(´・ω・`)
964デフォルトの名無しさん
2017/08/10(木) 01:00:58.59ID:OxRJE4uH まだやってんのかよ
965デフォルトの名無しさん
2017/08/10(木) 01:23:36.79ID:eLvHxdUn あガガイのガイ
966デフォルトの名無しさん
2017/08/10(木) 01:49:11.94ID:7/H0Fazi fflush(mevius.2ch.net/test/read.cgi/tech/1500293207/);
967デフォルトの名無しさん
2017/08/10(木) 08:25:53.10ID:oM3wka/1968デフォルトの名無しさん
2017/08/10(木) 08:29:30.77ID:l1OSsrCe969デフォルトの名無しさん
2017/08/10(木) 10:25:39.89ID:Ahb0l/jg970デフォルトの名無しさん
2017/08/10(木) 10:35:59.74ID:QIhLvvh/ 【問題】
ポインタとは何か
日本語で二行以内で書きなさい
ポインタとは何か
日本語で二行以内で書きなさい
971デフォルトの名無しさん
2017/08/10(木) 11:16:07.94ID:O+DiuWEO 矢
印
印
972デフォルトの名無しさん
2017/08/10(木) 11:43:42.10ID:Ez0zAyQ5 外人がまっさきに思い浮かべるポインタといえばコレ
http://i.imgur.com/nzuyDvh.jpg
http://i.imgur.com/nzuyDvh.jpg
973C言語ますたー《ますたー軍団(常時募集)の長》 ◆oa6k//3vOQ
2017/08/10(木) 11:44:33.00ID:Wh1e+mJZ メモリ上のアドレスを格納する変数
974デフォルトの名無しさん
2017/08/10(木) 11:48:40.43ID:iih/xgGV > メモリ上のアドレス
低学歴にもほとがあるな。
低学歴にもほとがあるな。
975デフォルトの名無しさん
2017/08/10(木) 11:49:15.42ID:WglIhH8F 具体的に説明せずに煽るから荒れる
976デフォルトの名無しさん
2017/08/10(木) 11:57:50.46ID:O+DiuWEO >>973
よくある実装ではそうだろうけど必ずしもメモリ上のアドレスでなくてもよかったような?
例えば(何か特殊な事情がないとこんな実装はしないだろうけど)ファイルでもいいんだよね。
*p ってやった時にアクセスできればいいだけだから。そういうアクセスになるようにコンパイルされればそう動く。
よくある実装ではそうだろうけど必ずしもメモリ上のアドレスでなくてもよかったような?
例えば(何か特殊な事情がないとこんな実装はしないだろうけど)ファイルでもいいんだよね。
*p ってやった時にアクセスできればいいだけだから。そういうアクセスになるようにコンパイルされればそう動く。
977デフォルトの名無しさん
2017/08/10(木) 12:23:05.86ID:BijEmwXz 【問題】
自己顕示とは何か
日本語で二行以内で書きなさい
自己顕示とは何か
日本語で二行以内で書きなさい
978デフォルトの名無しさん
2017/08/10(木) 12:26:02.90ID:Nr0tZQ0b979C言語ますたー《ますたー軍団(常時募集)の長》 ◆oa6k//3vOQ
2017/08/10(木) 12:45:43.96ID:Wh1e+mJZ980C言語ますたー《ますたー軍団(常時募集)の長》 ◆oa6k//3vOQ
2017/08/10(木) 12:46:01.19ID:Wh1e+mJZ ミスった>>976だった
981デフォルトの名無しさん
2017/08/10(木) 12:59:59.40ID:hk9jSOXL982デフォルトの名無しさん
2017/08/10(木) 14:11:24.78ID:oM3wka/1983デフォルトの名無しさん
2017/08/10(木) 15:54:14.88ID:PuWYnGyf ahoとは何かと言う定義と実装された目前のahoの違い
&でアドレス取ろうとしたら住所不定であったでござるw
&でアドレス取ろうとしたら住所不定であったでござるw
984デフォルトの名無しさん
2017/08/10(木) 16:21:59.47ID:oM3wka/1 それはlvalueを除くvalue of an expressionだね
&969; //erroneous
&969; //erroneous
985デフォルトの名無しさん
2017/08/10(木) 16:51:40.50ID:R5q9oGzu986デフォルトの名無しさん
2017/08/10(木) 16:53:00.40ID:R5q9oGzu 失礼した
茶碗持つね
茶碗持つね
987デフォルトの名無しさん
2017/08/10(木) 18:00:55.34ID:oM3wka/1 char const **s; // **s を修飾
char * const *s; // *s を修飾
char ** const s; // s を修飾
これなら左と右を間違えたで済むが
あの文面はそうじゃない
char * const *s; // *s を修飾
char ** const s; // s を修飾
これなら左と右を間違えたで済むが
あの文面はそうじゃない
988デフォルトの名無しさん
2017/08/10(木) 20:22:14.17ID:hEocmkh5989デフォルトの名無しさん
2017/08/10(木) 20:24:22.06ID:IhVgxvD4 char const * array = xxx
って初期化したあとで
配列とポインタの区別ってつく?
って初期化したあとで
配列とポインタの区別ってつく?
990デフォルトの名無しさん
2017/08/10(木) 20:28:53.63ID:iazj7Dc9 >>982
「ポインタ」はただの単語だ
それに意味を与えることが「定義」
> ポインタとは何かという「定義」と、
> 宣言のうち実体を作る「定義」を混同しているわけね
前者後者で意味を分けるって事はお前が「定義」したって事だ
ガイジのお前がな w
「ポインタ」はただの単語だ
それに意味を与えることが「定義」
> ポインタとは何かという「定義」と、
> 宣言のうち実体を作る「定義」を混同しているわけね
前者後者で意味を分けるって事はお前が「定義」したって事だ
ガイジのお前がな w
991デフォルトの名無しさん
2017/08/10(木) 20:29:20.75ID:sSyWFoa+ >>988
乙
乙
992デフォルトの名無しさん
2017/08/10(木) 20:41:57.65ID:QtKgWI2k >>987
ポインタの型修飾子は左側の*(ポインタ型)への修飾であってるだろ
右側のsを修飾したら識別子への修飾になってしまう
型指定の方のconstは構文規則が違うから、一緒に語ること自体がアレだけど
ポインタの型修飾子は左側の*(ポインタ型)への修飾であってるだろ
右側のsを修飾したら識別子への修飾になってしまう
型指定の方のconstは構文規則が違うから、一緒に語ること自体がアレだけど
993デフォルトの名無しさん
2017/08/10(木) 20:53:06.50ID:pUVptWbb なんで次スレ勝手にワッチョイなってんの?
994デフォルトの名無しさん
2017/08/10(木) 21:01:59.30ID:eLvHxdUn 勝手にガイジ対策草ア!!
995デフォルトの名無しさん
2017/08/10(木) 21:07:33.98ID:LT6YffV+ 恣意的な煽りしている奴がいるからだろう
996デフォルトの名無しさん
2017/08/10(木) 21:10:04.72ID:iazj7Dc9 > printf("Hello, C world!\n"); これがポインタだっ どやっ
やはり、これはガイジが自分で定義した「ポインタ」の説明だったな
やはり、これはガイジが自分で定義した「ポインタ」の説明だったな
997デフォルトの名無しさん
2017/08/10(木) 21:25:49.94ID:dUeZi9GF ワッチョイ無しでスレ立て直せ
998デフォルトの名無しさん
2017/08/10(木) 21:26:48.02ID:eLvHxdUn ガイジ連呼厨対策になるしいいんじゃね?
999C言語ますたー《ますたー軍団(常時募集)の長》 ◆oa6k//3vOQ
2017/08/10(木) 21:37:35.20ID:Wh1e+mJZ 1000欲しいな
1000C言語ますたー《ますたー軍団(常時募集)の長》 ◆oa6k//3vOQ
2017/08/10(木) 21:38:17.92ID:Wh1e+mJZ 俺のものっ
10011001
Over 1000Thread このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 24日 0時間 31分 31秒
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 24日 0時間 31分 31秒
10021002
Over 1000Thread 2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.2ch.net/
▼ 浪人ログインはこちら ▼
https://login.2ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.2ch.net/
▼ 浪人ログインはこちら ▼
https://login.2ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- テレビ朝日 本社から男性が転落し死亡。関連会社社員か 当たった通行人が左肩軽傷 [阿弥陀ヶ峰★]
- 高市首相、トランプ米大統領に「早期に会いたい」 日中関係悪化受け… ★4 [BFU★]
- 【コメ】卸売業者「簡単に安売りできない」「大暴落起きれば大赤字に」 JA「新米の販売進度が近年になく遅い。コメの回転が悪い」 ★5 [Hitzeschleier★]
- 「これいいじゃん!!!」 セブン-イレブンの1620円で買える“1人用クリスマスケーキ”🎂に注目殺到「天才すぎる」 [パンナ・コッタ★]
- 高市早苗首相が天理教系企業に“巨額発注” 総額5000万円 本人は「政治団体の活動に必要な支出」と回答 ★2 [Hitzeschleier★]
- テレビ朝日本社から20~30代の関連会社社員とみられる男性が転落し死亡 六本木けやき坂通りの通行人にはけが人なし [少考さん★]
- 【速報】テレビ朝日本社から20代〜30代の男性が飛び降り自殺して死亡 東京・六本木 [597533159]
- 【高市速報】中国、最後通牒 [308389511]
- お前らダウナー系だよな
- 現役JKのお茶会スレ( ¨̮ )︎︎𖠚ᐝ182
- 【朗報】カニ漁バイト募集!急げ! [834922174]
- 精液がゼリー状で黄ばんでるせいで女と付き合う勇気ない
