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


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

C言語なら俺に聞け 141



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

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

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

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

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


mevius.2ch.net/test/read.cgi/tech/1494508803/
www.geocities.jp/c_cpp_cs/about_c/

2 名前:デフォルトの名無しさん [2017/07/17(月) 21:15:16.42 ID:bGVplWmj.net]
< `∀´>ニダー

3 名前:デフォルトの名無しさん mailto:sage [2017/07/17(月) 21:41:46.56 ID:/QULOYxM.net]
#include < `∀´>

4 名前:デフォルトの名無しさん mailto:sage [2017/07/17(月) 21:56:04.46 ID:PKmAGp8M.net]
>>1


>>994
>だからgotoでどうやってやるんだよ
>戻り番地の意味わかる?

できないわけがないってw gotoで飛んでgotoで戻りゃいいんだから
非同期なら別関数にする必要があるが

5 名前:デフォルトの名無しさん mailto:sage [2017/07/17(月) 21:57:25.18 ID:4pA3RK/K.net]
ちょっと書いてみてよ

6 名前:デフォルトの名無しさん mailto:sage [2017/07/17(月) 21:58:43.30 ID:n17oqQVv.net]
プログラムカウンタをスタックに積まないでコール元に戻れるわけ無いだろ
プログラムの動作原理を知らなさ過ぎる

7 名前:デフォルトの名無しさん mailto:sage [2017/07/17(月) 22:02:11.80 ID:PKmAGp8M.net]
逆に関数内関数じゃないとできない処理ってどんなの?

8 名前:デフォルトの名無しさん mailto:sage [2017/07/17(月) 22:08:32.43 ID:LYlgQVUQ.net]
Python信者がうるさいのでもう一度書いておくと、以下URLの下のほう、
> しかし、16行目にある print func_a(5) を 4行目の def func_a(a): 行よりも上に移動すると、次のようなエラーが返る。
> www.isc.meiji.ac.jp/~mizutani/python/recursive_call.html
これはJavaScriptは通るんだよ。
つーか、他言語は多分全部通る。落ちるのはPythonだけ。
お前らPythonしか使って無いからこれが糞だと認識できないんだよ多分。

9 名前:デフォルトの名無しさん mailto:sage [2017/07/17(月) 22:16:47.67 ID:LYlgQVUQ.net]
前スレ>>995
990にレスが付いているのはヘッダについてか?
それなら俺はGCCに「自動ヘッダ生成器」を組み込んでくれよと思う。
というかCはヘッダで妙なトリック使いすぎてて自動生成できる状況ではないのだとは思うが、
それなら足りない関数だけでも自動で追加してくれよ、と思う。

つっても「後方参照」できるようになれば解決する話で、
マジでこれをいまだに放置している理由はよく分からん。
というか、俺に反論している連中ですらこれについては多分賛成なんだよな?
「後方参照」出来ない方がいいんだ!って理由がある奴っていないだろ。
だからこそ、Pythonが出来ないのがアホすぎて際立つわけでね。

10 名前:デフォルトの名無しさん mailto:sage [2017/07/17(月) 22:25:47.17 ID:Dn7+fEGp.net]
前後を理解してないバカは参加するな
ID:LYlgQVUQ お前のことだ



11 名前:デフォルトの名無しさん [2017/07/17(月) 22:28:20.57 ID:WpdYiVZf.net]
何でわっちょい無くなったの?

12 名前:デフォルトの名無しさん mailto:sage [2017/07/17(月) 22:32:47.62 ID:LYlgQVUQ.net]
>>11
お、確かにそうだな。
俺はワッチョイありの新スレが立ったらそっちに動くって事で問題ない。
(つってももうこの話は終わりそうだが)

13 名前:デフォルトの名無しさん mailto:sage [2017/07/17(月) 22:43:11.36 ID:Zyqgn8pO.net]
>>4
> gotoで戻りゃいいんだから
だからどこに戻るんだよ? w

> 非同期なら別関数にする必要があるが
戻り番地も知らん奴が非同期とか笑えるわ

>>7
ないでしょ
ローカル変数でないとできない処理を聞いてるのと同じ

14 名前:デフォルトの名無しさん mailto:sage [2017/07/17(月) 22:53:34.33 ID:PKmAGp8M.net]
>>13
だからできるでしょ
俺は同じようには書けないが同じ処理はできると言ってるの
新たにスタック積む話なんか初めからしてないぞw

15 名前:デフォルトの名無しさん mailto:sage [2017/07/17(月) 22:53:37.21 ID:Zyqgn8pO.net]
>>8
> > しかし、16行目にある print func_a(5) を 4行目の def func_a(a): 行よりも上に移動すると、次のようなエラーが返る。
> > www.isc.meiji.ac.jp/~mizutani/python/recursive_call.html
まだやってるのかよ w
他の言語に倣うなら頭に
def main:
print func_a(5)
って書いて最後に
if __name__ == 'main':
main()
書けばいいだけ

> お前らPythonしか使って無いからこれが糞だと認識できないんだよ多分。
お前がPython知らんだけ

16 名前:デフォルトの名無しさん mailto:sage [2017/07/17(月) 22:59:52.61 ID:HedtDN7o.net]
x86なら ENTER/LEAVEで実装されているな
出来るっていうならコードで示せよ

17 名前:デフォルトの名無しさん mailto:sage [2017/07/17(月) 23:01:17.10 ID:Zyqgn8pO.net]
>>14
void f( ){
 void g( ){
  ...
 }
 g();
 g();
}
goto 使って同じ処理書いてみろよ

18 名前:デフォルトの名無しさん mailto:sage [2017/07/17(月) 23:02:18.10 ID:vodzC7WI.net]
           / ̄\
           |    |
           \_/
             | __
            ┴´   ``ヽ   
          /::::::::::|::::::    `ヽ       gotoで戻りゃいいんだから!!
         /:::\::::::::<● >   `ヽ  
    ((   / <●>::::::::::⌒      )   
        |  ⌒(_人__)       ノ | |  
        ヽ    )vvノ:      / ノノ
          ヽ (__ン       人
         人           \
        /

19 名前:デフォルトの名無しさん mailto:sage [2017/07/17(月) 23:07:04.75 ID:LYlgQVUQ.net]
>>15
だからそれはできるうちに入らないんだよ。
どうにもPython信者には通じないようだが。

20 名前:デフォルトの名無しさん mailto:sage [2017/07/17(月) 23:13:04.25 ID:PKmAGp8M.net]
>>17
void f( ){
void *ret;
goto a;
g:
printf("g¥n");
goto *ret;
a:
printf("a¥n");
ret = &&b;
goto g;
b:
printf("b¥n");
ret = &&c;
goto g;
c:;
printf("c¥n");
}



21 名前:デフォルトの名無しさん mailto:sage [2017/07/17(月) 23:18:43.57 ID:n17oqQVv.net]
ID:PKmAGp8Mはプログラムの動作原理なーんも分かってない

22 名前:デフォルトの名無しさん mailto:sage [2017/07/17(月) 23:21:10.09 ID:4pA3RK/K.net]
>>15で出来るうちに入らないとかいちゃもんつけたいだけやん
それCで関数の外にprintf書いてコンパイル通らなくて発狂してるようなもんだから

23 名前:デフォルトの名無しさん mailto:sage [2017/07/17(月) 23:25:27.16 ID:4pA3RK/K.net]
いや、こんなこと書いたら揚げ足とってアホ認定されそうだから重ねておくけど、上のレスではコードの見た目の話に話を絞ってある
その範囲では、関数外に書いても通るだけ有難く思うべきである

24 名前:デフォルトの名無しさん mailto:sage [2017/07/17(月) 23:27:45.16 ID:LYlgQVUQ.net]
>>20
まあ俺はそっちの話にあんまり突っ込む気はないんだけどさ、、、

アイデアは理解した。
が、そのラベルの使い方が保障されてるかというと、かなり微妙だと思う。
俺は仕様には詳しく無いからなんともいえないが。
とはいえ、実際はそれで動くケースが大半だとも思う。

25 名前:デフォルトの名無しさん mailto:sage [2017/07/17(月) 23:29:34.59 ID:81nqESXy.net]
>>19
さっきからプロトタイプ宣言を書く書かないの話して、中身で使うだけの関数を下に書ければ見やすい的なことを言ってなかった?
その観点から言って、>>15にどんな問題があるの?

26 名前:デフォルトの名無しさん mailto:sage [2017/07/17(月) 23:35:29.76 ID:4pA3RK/K.net]
実用上問題なくてもイチャモンつけたいだけw

27 名前:デフォルトの名無しさん mailto:sage [2017/07/17(月) 23:51:06.35 ID:LYlgQVUQ.net]
>>22-23,25,26
だからPython信者はアホなんだよ。何度も言っている通り、

JavaScriptは以下のコードが動く=後方参照できる
Pythonは以下のコードが動かない=後方参照できない

といっているだけ。マジで分かれよアホ。
以下コードをブラウザ上でF12押してコピペしてみろ。動くから。

(function(){
say_hello();
say_world();
function say_hello(){console.log('hello');}
function say_world(){console.log('world');}
})()

Cはこの順に配置しようとすると《歴史的理由で》プロトタイプ宣言が必要。しかしやれば出来る。
Pythonはこの順に配置することがどうやっても出来ない。だから糞。

CもJavaScriptも設計者の自由を制限しない言語だ。
子関数をどこに配置するのが良いのかは設計者が考え、最適化できる。
これがCやJavaScriptの思想。

対してPythonは設計者の自由を制限し、
設計者ごとに異なる部分が無いことこそが読みやすさだと嘯く。
それはPythonerは馬鹿であると定義しているのと同じ。

だってCでもJavaScriptでも、Pythonと同じ順に配置は出来るのだから、
Pythoner以上の脳みそがあればPythonより読みやすく書くことは出来る。
もちろん馬鹿が書けばPython以上に読みにくくなるが、それ

28 名前:はそういう仕様だ。(馬鹿は死ねという仕様)
Python馬鹿がCスレまで来て思想が全く異なることを理解せずに喚いているから話が通じない。
Pythonは馬鹿用言語だということを自覚しろアホ。
[]
[ここ壊れてます]

29 名前:デフォルトの名無しさん mailto:sage [2017/07/17(月) 23:55:03.58 ID:PKmAGp8M.net]
なんか問題あったかい?
ラベルのポインタはGCCとclangは対応してる
標準じゃなく拡張だけどなw

30 名前:デフォルトの名無しさん mailto:sage [2017/07/17(月) 23:55:41.84 ID:81nqESXy.net]
>>27
で、どんな問題があるの?



31 名前:デフォルトの名無しさん mailto:sage [2017/07/17(月) 23:57:28.74 ID:4pA3RK/K.net]
>>27
まずCスレでPythonの話題持ち出したお前が何言ってんの?w

32 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 00:06:20.95 ID:zmpO/wkd.net]
>>27
うわー最初は
viod say_hello(count){
if (--count<0) return;
printf("hello");
say_world(count);
}
void say_world(count){
printf(" world!\n");
say_hello(count);
}
みたいな例を出してたのに、それが出来ると分かるないなやわざわざPythonで出来ない例持ち出して来てら
これアンチしたいだけじゃん

33 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 00:08:33.09 ID:tZS7qvye.net]
>>28
いや、ラベルって「そこから下」に対しては保証されてるが、
「そこから上」って保証されてるか?
まあこの言い方では通じないと思うから具体的に書くと、

(A)
label:
(B)

で(B)側にゴミがない=次の命令がすぐ詰まっていてそこにJUMPすれば動作する
ことは保障されていると思う。これは普通の使い方だから。
ただ、上から流れてきたときに、(A)側にパディングされてたりしないか?というのは微妙で、
x86だとイミディエートに十分な長さがあるから問題ないとして、
16bitとか8bitとかの場合、コード領域にイミディエートを積んでいることは普通にあって、
しかも結構適当な場所に吐かれていた記憶が。
だからコンパイラ側に「ここは明らかに通らない」という風に見える場所はかなり危険かと。

ただし既に言っているが、俺は仕様には詳しく無いから、なんともいえないのだが。

34 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 00:20:24.14 ID:yhFxnttF.net]
>>32
この場合実行時にジャンプ先のアドレスを代入するのでその手の問題は無いでしょう
https://docs.oracle.com/cd/E19205-01/821-0386/bjabt/index.html

35 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 00:21:58.12 ID:tZS7qvye.net]
>>29
子関数を下に書いた方が分かりやすいときに、それが出来ないのが問題。

>>31
それは俺の間違いだった。俺が思っていたほどは糞ではないのも事実だ。
ただしやっぱりJavaScriptやCと比べたら糞だよ。

しかしお前らも知っていると思うが、
Pythonの最大の糞ポイントはラムダに式しか書けない事だろ。
つか、糞ポイントがぽこぽこ出せる時点で糞言語なのは確定なんだよマジで。
そしてCやJavaScriptの思想とは対極にあるのがPythonだ。
それを使うのはお前らの自由だが、それをCスレで喚くのはキチガイだ。
C的価値観からするとPythonなんてキチガイ馬鹿用言語だよ。
逆にお前らがPythonスレで
「Cみたいなシートベルトもエアバッグもない車に今更乗れるか!」って
言ってりゃいいんだよ。

というわけでお帰りくださいマジで。
俺は思想的にPythonとは合わないから、自主的に使うことはないと思います。

36 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 00:25:56.65 ID:tZS7qvye.net]
>>28,33
ああすまん間違えた。確かに問題ない。普通の使い方だ。
俺が勘違いしてた。

37 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 00:30:29.84 ID:NDJOFNKG.net]
>>32
コード領域にイミディエイト積んでいるのは当たり前
イミディエイトは即値
アセンブリコードのニーモニックでオペコードに直接データ(値)を指定するのだから
コード領域にしかイミディエイト値は存在し得ない

38 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 00:31:52.64 ID:zmpO/wkd.net]
>>34
そもそも最初にCスレにPythonの話題を書き込んだのは君なのに何言ってんの?
こっちはそもそもPythonを擁護してるんじゃなくて君の言っていることの変な部分を指摘してるだけだぞ

39 名前:デフォルトの名無しさん [2017/07/18(火) 00:34:45.35 ID:/ZeLwNbO.net]
>>34
なんか知らんがHaskellみたいな順序に依存しない言語がおまいさんにあってる気がする。

40 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 00:44:21.05 ID:tZS7qvye.net]
>>36
いや、オペランドの長さが足りなかった場合、
中途半端なところにデータ領域を確保するCPUもあるって事。

>>38
Haskellは意識高すぎて無理だった。
てかあれ、遅延評価以外目新しくないよな?
そしてその遅延評価はC++にテンプレートでパクられてて笑ったが。
あれでC++のテンプレートの汎用性の高さに驚いたよ。

ちなみに、他言語のすごいコードって知ってるか?見てみたいとは思うから。
例えばCなら、LinuxのカーネルやGit(作者同じ)がそうだし、
C++ならchromeやV8が多分そう(といっても割とCらしいが)
PythonやHaskellって喚いているだけで現物がなくね?
所詮スクリプトで使い捨てコードが多いってことか?



41 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 00:47:51.04 ID:gHxy0snY.net]
>>39
PythonアンチカスPythonアンチスレに行け
二度とこのスレでPythonの名を出すな

42 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 00:55:04.83 ID:tZS7qvye.net]
そういやgotoで思い出したが、
マルチレベルbreakはあってもいいと思うけどね。
gotoがあればなあ、ってのは大体このケースだろうし。

オレオレパーサも組めない範囲でもないんだろうけど、
やっぱ誰かががっつりデバッグ済みにしてくれてるのを使いたいよ。

43 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 01:00:22.85 ID:NDJOFNKG.net]
>41
その用途に最も近いのは例外処理のtry-cattch構文だろうな
C言語では使えないけど

44 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 01:00:53.59 ID:NDJOFNKG.net]
try-catch

45 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 01:03:09.04 ID:zmpO/wkd.net]
try-catch遅くなかった?

46 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 01:03:12.76 ID:r4nh1nKp.net]

そのCスタイル22k行のコードはどういう書き方をしてたから読みやすかったんだ?

47 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 01:06:51.15 ID:NDJOFNKG.net]
>>44
遅いって一体…
try-catch使える独自拡張とかあったっけ?

48 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 01:09:17.66 ID:zmpO/wkd.net]
>>46
あー、遅かった気がするのはC++の話だわ
まあ例外処理が速い言語なんてないと思うけどさ

49 名前:デフォルトの名無しさん [2017/07/18(火) 01:10:26.49 ID:sjXtAWuw.net]
setjmp, longjmp はペア

50 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 01:11:57.66 ID:tZS7qvye.net]
>>42
いやtry-catchはだいぶ違うぞ。

てかあれはC的エラー処理とは逆を行っている。
ただ最近は非同期が流行りだしてtry-catchでは対応できなくて
値埋め込み≒C的にはなってきてる。
個人的にはtry-catchは要らないなあ。

マルチレベルブレークはまあ、フラグ使って書けはするが、
見た目汚いから何とかならんのか、といったところ。
どっちかというとショートカット論理に使う。



51 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 01:21:43.38 ID:yLpc3eXF.net]
>>34
Pythonがゴミだからなんなの? わざわざCスレでPythonアンチしていい理由にはならないよね
しかもあんな的外れで何も知らないこと丸わかりなアンチ書き込みしたら対象がどんな言語であっても荒れるに決まってるよね?
帰るのは君だよ

52 名前:デフォルトの名無しさん [2017/07/18(火) 01:32:30.51 ID:/ZeLwNbO.net]
>>39
すごいコードってのが分からんが、Haskellのprintfはコード見れるけど全く分からん。
(Hoogleでprintfで検索してソース覗く)

型推論出来れば普通のprintfにも、フォーマット済の文字列欲しい時はsprintf的にも使える関数なんだが。。。

53 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 02:23:27.20 ID:tZS7qvye.net]
>>51
おうサンクス。見てみたがなるほど分からん。
つっても俺はHaskellの文法も覚えてないレベルなんだが。

ただまあ、その仕様なら、確かに短いのかもね。
GNUのprintfって確か400行程度でgotoが20個くらいあるトンデモコードだったはずだが、
(探したけどすぐには出てこなかった)
それよりも仕様は大きいからねえ。

54 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 02:24:26.42 ID:tZS7qvye.net]
>>51
> すごいコード
これな。
俺が思うに問題はこういう「下位コード」ではなくて、
printfやオブジェクトを呼び出す「中位コード」の書きやすさだと思うんだよ。
関数型の連中と話していて違和感を感じるのはそこで、
奴らは10行のコードを5行にすることに精を出しているが、
10k行のコードを5k行にすることには興味が無いように見える。

実際のアプリを書いていて差が出るのはそこで、
Cはその点、最適なデータ構造を目指す、という方向に特化している。
だから構造体ポインタの塊になってしまうわけでさ。
それをもうちょっと自動的に取り扱おうとするとオブジェクト指向になり、C++になる。

で、そこらへんの「中位コード」のサンプルが無いんだよ。
具体的には10k-数万行を必要とするOSSアプリ。
Cの場合はこれはいくらでもあって、既に書いた通りlinuxやGit等。
C++ならFireFoxでもchromeでも、OSSで開発されているからいくらでも読める。
JavaScriptは最近atomエディタというのが出てきた。まあそれ以前から見放題ではあったが。
これに対して、「Haskell製の有名アプリ(OSS)」ってないよね?
(というか俺が知らないだけではあるが)

関数型の連中はCみたいな手続き型を悪く言うのだけど、それは全て下位コードなんだよ。
そして現実的には、下位コードなんて短く書けても大して意味無いんだよ。
どうせ読まないから。(名前がprintfな時点で読み飛ばし決定だし)
ただ、短く書けること自体はやはりすごくて、ポテンシャルがあるのは認めるが、
それが本当に使い物になるのか?については俺はちょっと疑問なんだ。
だから実際に動いているものを見て、どうなのか確認したいわけでさ。

というわけでHaskell製の有名OSSアプリあったら教えてください。

55 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 02:49:55.27 ID:FK0nGZqt.net]
>>27
LLで関数をオブジェクト扱いするような言語だと宣言前の関数を呼び出せるの相性悪いんだよね

一応確認して見た(シェルスクリプトみたいな特殊なものは無視)
Ruby→呼べない
perl→呼べない
lua→呼べない

PHP→呼べる(ただし、条件分岐内などの文脈で宣言されていない関数のみ)
JavaScriptl→呼べる(関数宣言「文」のみ)

JavaScriptの「巻き上げる」っていう仕様は結局わかりにくくて、ECMAScript以外で採用してる言語はないはず

56 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 03:10:01.00 ID:FK0nGZqt.net]
>>53
Pandocは現状かなり知名度あるんじゃないかな
https://github.com/jgm/pandoc

適当にググったらMoongiftのHaskellタグのやつそこそこあった
www.moongift.jp/tag/haskell

Pythonに関しては現物を見たことないの常識的にやばいと思うが・・・
機械学習とか数値処理とかの学術系はpython無双だし、Ansibleやyumみたいな管理系統、GUIソフトですらお前Python通って時がちらほら
Googleも社内標準言語にPython入ってて、Githubにもいくつか公開されてるな

57 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 05:04:08.81 ID:a2LOcSSt.net]
>>20
それ再起呼び出しに対応できないことぐらいは理解してるよね?

58 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 05:45:17.46 ID:yhFxnttF.net]
>>56
そもそも、Cでは大抵別の関数に切り出すからそんな心配いらんよ

59 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 08:27:43.78 ID:qfl2Yypx.net]
>>57
はあ?
ローカル関数でも再起は普通に使うし心配いらんって言われても困るわ
むしろお前の頭の方が心配だよ w

60 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 08:41:06.12 ID:NDJOFNKG.net]
別の関数として切り出しているから再起が出来るということだろ
無名関数の場合は再起には工夫が必要
>>20は無名関数とすら呼べない代物ではあるが…
https://ja.wikipedia.org/wiki/%E7%84%A1%E5%90%8D%E5%86%8D%E5%B8%B0



61 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 08:58:56.41 ID:yhFxnttF.net]
心配性だねえ
再帰な

62 名前:デフォルトの名無しさん [2017/07/18(火) 10:00:20.99 ID:9AYHL0AJ.net]
>> https://mevius.2ch.net/test/read.cgi/tech/1494508803/990

> しかしヘッダファイルを用意するなんて完全に二度手間だし、

失笑
仕様と実装に分けて管理することが何の二度手間なんだよボケ
APIだとかインターフェイスだとかみんなそうだろうが


> コンパイラが自動的にやれよマジで、と思ったことは無いのか?

あああるよ
内製でサクッと作れてしまうほど簡単なことだからなおまえには簡単じゃないかも知れんがw


> 面倒ならなしでよし、

そうなってるだろうが、まさか知らんのか?


> その場合はコンパイラが勝手に探してくる、

これがおまえの言う「自動化」か
ワードやエクセルが「自動で」いらんことしやがるようなのがコンパイラにもついていて欲しいのかw
俺は反対、ライブラリをバージョン管理してるときなど断りもなく最新だか旧版だかとやられたら殺意がわく


> お前みたいに疑問を持ってない奴

疑問は持つぜ
おまえみたいに間違った正義を説くアホは見逃してねえだろ

63 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 11:46:36.57 ID:Oj2nYHmM.net]
CL /Zg じゃあかんのけ?

64 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 12:41:25.17 ID:gVG2yFi+.net]
>>59
無名関数の話なんて誰もしてないから無駄に絡んでこないでくれ

65 名前:デフォルトの名無しさん [2017/07/18(火) 12:41:58.87 ID:IlqGlOEF.net]
まだ続いてたのか……
仕様に不満があるのは理解できた。同意できるかどうかはともかく。
そろそろ、「不満があるから何をしてるのか」という話を聞きたいな。

66 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 14:49:00.45 ID:D0vI4DI2.net]
そもそも個人的にPythonをプログラムと呼ぶのに違和感ある
Pythonはスクリプトだろ

67 名前:デフォルトの名無しさん [2017/07/18(火) 15:27:18.14 ID:P4sGRRLT.net]
お願いします。どうしても、課題ができません。どなたかわかる方いませんか?

text.txtというファイルに以下のような個人情報が保存されているとする。これを読み込み、実行例のように画面に出力するプログラムを作成しなさい。

ヒント: 氏名の読み込みでは"name: %s\n"のような変換仕様を用いると良い。

▼text.txtの内容
name: Ichiro
age: 20
weight: 65.5
e-mail: ichiro@foo.bar
▼実行例
氏名: Ichiro
年齢: 20
体重: 65.5
Eメール: ichiro@foo.bar

68 名前:デフォルトの名無しさん [2017/07/18(火) 15:27:59.32 ID:P4sGRRLT.net]
#include <stdio.h>

int main(void)
{
int x;
double b;
char str[100];

FILE*fp;
fp=fopen("test.txt","r");

if(fp==NULL){
printf("ファイルをオープンできませんでした。\n");
return 1;
}else{
printf("ファイルをオープンしました\n");

}

69 名前:デフォルトの名無しさん [2017/07/18(火) 15:28:25.02 ID:P4sGRRLT.net]
fscanf(fp,"name:%s",&str);
printf("氏名:%s\n",str);
fscanf(fp,"age:%d",&x);
printf("年齢:%d\n",x);
fscanf(fp,"weight:%d",&b);
printf("体重:%.1lf\n",b);
fscanf(fp,"e-mail:%s",&str);
printf("Eメール:ichiro@foo.bar\n",str);

printf ("ファイルを読み込みました\n");
fclose(fp);
printf("ファイルをクローズしました\n");
return 0;


}

70 名前:デフォルトの名無しさん [2017/07/18(火) 18:43:44.87 ID:/pPGIQYg.net]
Makefileの書き方で質問なんだけど

all: hoge piyo fuga

みたいな行があるとして、 依存ファイルを変数みたいに使いたいんだけど
どう書いたらいいの? いちいち

HOGE := hoge piyo fuga
all: $(HOGE)

みたいに書かないとだめなの?



71 名前:デフォルトの名無しさん [2017/07/18(火) 20:34:14.13 ID:Cdvgr3b8.net]
>>69
とりあえず俺は知らないんだけど、参考文献どうぞ。
https://www.oreilly.co.jp/library/4873112699/
無料でpdfダウンロードできる。

72 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 21:58:43.01 ID:zbCywyZZ.net]
>>66
課題なら、>>68で十分なのだろうけど実務で使うときは幅指定必須なので、先生に聞いとけ〜

%100s%*とかね。

73 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 22:05:43.42 ID:zbCywyZZ.net]
>>69
変数みたいにつかって何したいかわからんな。
makefileってそういうものだとしか、言えない。

依存関係は依存するファイルをコンパイラが出力してくれるから、それをincludeするなんてのも良くある。

74 名前:デフォルトの名無しさん [2017/07/18(火) 23:26:17.54 ID:fPBWIN/L.net]
>>68
惜しいな。

> fscanf(fp,"weight:%d",&b);

ヒント: % の後。

75 名前:デフォルトの名無しさん [2017/07/18(火) 23:30:58.21 ID:fPBWIN/L.net]
>>68
もう一箇所。

> fscanf(fp,"e-mail:%s",&str);
> printf("Eメール:ichiro@foo.bar\n",str);

惜しいな。strに読む所は良い。その後、それを出す所。これだと固定の文字列が出るだけだよね。

76 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 23:36:18.53 ID:Th9l296P.net]
専門学校一年です
プログラム言語っていくつも必要?応用性ある最強言語一つあればいいんでないの?

77 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 23:48:43.24 ID:tZS7qvye.net]
>>46,48
なんか実装している奴いるぞ。
www.nurs.or.jp/~sug/soft/super/longjmp.htm
www.nurs.or.jp/~sug/soft/java/java25.htm

78 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 23:49:23.68 ID:tZS7qvye.net]
>>54
Perlは出来るぞ。
Rubyは出来ないようだが。これは予想外だった。つかMatzはこっち側のはずだが。
luaは出来ないね。LiveDemoで確認した。
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の思想なら制限しては駄目だ。一

79 名前:ム性がない。
逆にPythonはユーザーごとのばらつきこそが可読性を低下させるという思想だから、
制限するべきだし、実際にそうなっているから問題ない。こちらは一貫性がある。
結果、俺にとってはRubyも糞だと判明しだだけだな。
[]
[ここ壊れてます]

80 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 23:50:25.98 ID:tZS7qvye.net]
>>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の意見の正しさを証明している。



81 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 23:51:25.94 ID:tZS7qvye.net]
Haskellの売りは遅延評価だろ?
ならば、遅延評価がビルトインで提供されているからこそこれだけ簡単に実装できる、
そうでない言語ではかなり辛いことになる、というところで戦わなければ意味が無い。
マークアップコンバータは違うし、そこに挙げられている他12種も同様だ。
Linusの言葉を借りるなら、
> (c) 授業でそういう課題を与えられた者
でしかない。他言語を既に十二分に使えるときに、それらアプリでHaskellを選択する理由がない。

遅延評価の利点は、俺が思うに、適当に書いても速いことだ。
具体的には、超大富豪プログラムを動的に貧民プログラムに変身させられる事だ。
だからチャキチャキ書けないと意味が無いのだが、Haskellはお世辞にもそういう感じではないだろ。
だからHaskell使いがあの程度のアプリしか作れない時点で将来性はないよ。
彼らもそれなりに優秀なはずで、仮に俺が学んだとしても、彼ら以上のものを作るのは容易ではない。
それで作れるものがあの程度?そそられねーな、って感じ。
あのラインナップなら今でも他言語で作れるし、多分そんなに苦労もしない。

とはいえこれはサンプルとしては素晴らしい。ありがとう。
保守されているし、俺が確認したい中位コードは大量に含まれているはずだ。
俺自身が他言語で実装できるだろうというの

82 名前:烽「い。オレオレ実装と比較できる。
つまり、言語比較という意味ではかなりいい素材だ。
ただそれ以前に俺はHaskellをほぼ読めないので、読むのはずいぶん先になりそうだ。
これについては申し訳ないね。
[]
[ここ壊れてます]

83 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 23:52:11.26 ID:tZS7qvye.net]
> Ansibleやyum
お手軽スクリプトの域を出ないと思う。最悪、シェルスクリプトでも出来る範囲だろ。
C++の現場、たとえばブラウザでは、本当にエグイほど仕様変更が入って、
結果的にソースコードはぼろぼろになっていって、それでも保守している。
だからやっぱりLL言語はLL言語なんだと思うよ。
これだからスクリプターは、、、というのも当たってる。戦場の厳しさの次元が違う。

一通り動かすところまではどの言語を使っても出来る。
その過程で、例えばHaskellの遅延評価のような言語独自のフィーチャーがあり、
それを生かせれば素晴らしい。
しかしPythonにはそもそもそれがない。特に可もなく不可もなく、的な言語だ。
そして問題はそこから先で、
当初想定してなかった仕様変更が入ってきたときどこまで耐えられるかなのだが、
これに関してはPythonは不可も無いのだからそれなりではある。(悪くはない)
(なおJavaScriptはデタラメなパッチで一時しのぎする方法には事欠かないため、
俺はこの点も気に入っている)

エコシステムが云々、というのはおいておいて、
言語自体の能力で言えば、Pythonを積極的に選ぶ理由が一つもない。
とはいえ他言語は色々尖っていることも多いので、消極的にPythonってのもありだとは思うし、
実際そこにポジションしているとも思うが。Javaに近いというか。
両言語ともそれで繁栄しているのだから間違いでもないわけだが。

84 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 00:28:57.41 ID:42DPUduf.net]
>>75
金鎚だけで家が作れるかね?

85 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 00:53:51.97 ID:PZqfvVeo.net]
>>75
そーいう発想は大事
大きいプログラムも小さいプログラムも
スケーラブルに書けるほうが良い!
というのが動機で出来た言語があるにはある

86 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 01:09:15.68 ID:Cm6fsZ7A.net]
Cは大も小もなんでも書けるよ
ただ工数がかかるけど

87 名前:デフォルトの名無しさん [2017/07/19(水) 01:28:24.97 ID:q7UYRLiM.net]
確かにCはなんでも書ける。
きめ細かくハードウェアに密接するようなのも書ける。
OSやデバイスドライバも書ける。
OSなし環境向けの組み込み用マイコンボードのROMに書くプログラムなんかも書ける。

逆にいうと、きめ細かくしか書けない。それなりのライブラリが用意されてないと作るのが大変。

88 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 01:36:11.94 ID:9e7c5i6Q.net]
つ アセンブリ言語

89 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 03:29:33.92 ID:YP+Z6klr.net]
>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あり→■
みたいに非直感的な挙動になって一貫性が失われる。そう考えると、言語全体の仕様の見

90 名前:直しが必要になって・・・
と考えてくと、評価時に定義されるというのはそれはそれで合理的。
[]
[ここ壊れてます]



91 名前:デフォルトの名無しさん [2017/07/19(水) 03:52:13.57 ID:q7UYRLiM.net]
>>85
それの場合CPU毎に覚える必要があって面倒。
C言語コンパイラはだいたいのCPU向けに素早く実装される傾向にあると思うのでアセンブリ言語よりは良いと思う。

92 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 04:35:20.40 ID:YP+Z6klr.net]
>>78-80
Haskellはちょうど具体例を知ってたから上げただけで全然わからないから詳しくはわからんので申し訳ない
人から数学系とHaskellを極めればいろんな界隈で需要があるらしいという噂だけ聞いたことはあるが


他の話は結局何が言いたいのかわからん
PythonはLL言語なんだから「お手軽スクリプト」として使うのは当たり前じゃん
機械学習とかの研究分野は、実装を素早く作って考えた手順を評価してを高速に繰り返すんだからC言語では無理。

それこそgitでも最初期の仕様を考えてるときはperlとか使ってたし
gihyo.jp/dev/serial/01/alpha-geek/0040


>消極的にPythonってのもありだとは思うし、実際そこにポジションしているとも思うが
大体の人はそれを理解してるのに突然「Pythonはクソ!使ったことないけどクソ!」ってやつがわいてきてみんな頭の中???
Haskellについてのやつを見ても思うけど、断片的な経験と情報、ネットで見た内容とかを元に理解したと思いこむ癖があるんだろう
個人のソフトはともかく、Googleとかパッケージマネージャとかで積極採用されるからにはそれなりの評価点があるはずなんだから、自分の考えは常に疑って更新したほうがいいぞ

93 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 04:42:21.33 ID:I/2F8nLs.net]
要するに「なんでも書ける」は言い過ぎだということ
C言語がハードウェア寄りの記述が得意な言語であることは確かだけれど
それでも大抵はわざわざインラインアセンブラという抜け道を用意している
その理由はどうやっても書けないこともあるから

94 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 04:43:24.78 ID:I/2F8nLs.net]
アンカ忘れた
>>89>>87へのレス

95 名前:デフォルトの名無しさん [2017/07/19(水) 05:21:02.93 ID:2gF8BL9h.net]
>>89
割り込み関係みたいに特権命令を使うところは
「きれいなC」だけじゃ絶対書けないな

96 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 08:01:13.73 ID:/uBE13O5.net]
使ったこともない言語をディスり、同意しない相手は無知だと思っているガイジに汚染されたスレはここですか?

97 名前:デフォルトの名無しさん [2017/07/19(水) 08:13:15.18 ID:q7UYRLiM.net]
>>89
ああ。書けないものもあるな。
そうなるとインラインアセンブラで無理矢理埋め込んだりする事になるとは思うが、そういうのは普通は全体からすればほんの少しだよな。

98 名前:デフォルトの名無しさん [2017/07/19(水) 08:23:52.23 ID:4WYjcaP8.net]
>>53
Haskell処理系のGHCがまさにHaskellで書かれてるし、モナディウスっていうゲームはHaskeller界隈じゃ有名。
そもそもHaskellが有名になったのはPerl本家より早くPerl6の実装したのがキッカケ。
それまで知る人はほとんど居なかった。

99 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 08:29:05.26 ID:I/2F8nLs.net]
>>93
その通り

>きめ細かくハードウェアに密接するようなのも書ける。
>OSやデバイスドライバも書ける。
>OSなし環境向けの組み込み用マイコンボードのROMに書くプログラムなんかも書ける。

こういうのは全体からすればほんの少しだよ

100 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 08:39:40.95 ID:iAmsiybP.net]
>>75
そうだよ、みんなわかってないんだよ

PL/1, Ada ...



101 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 08:42:04.13 ID:PZqfvVeo.net]
>>92
そうだよ
こいつにレス返すと終わりが見えないぞ?っていうタイプ
それを無邪気に触っちゃうのがこのスレだよ

みんなさすがに今回ので学習したと思うけどw

102 名前:デフォルトの名無しさん [2017/07/19(水) 09:21:43.24 ID:NslmVuOC.net]
>>72
変数を使いたくない ってことです

103 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 09:28:45.98 ID:rMOwSLhX.net]
>>98
例えばどう書きたいの

104 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 10:08:57.54 ID:iAmsiybP.net]
>>91
組み込み用コンパイラとかは拡張構文できれいに書けたりするけどね

105 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 10:35:07.29 ID:Fe8jikVu.net]
プラットフォーム依存のレジスタいじったりする必要があるから
綺麗なCってのは難しい
綺麗なCの定義にもよるけど
まぁ関数化するなどして隠蔽化はできるけど

106 名前:デフォルトの名無しさん [2017/07/19(水) 10:41:07.44 ID:4WYjcaP8.net]
>>75
誰かが自分には分かりやすく書いた言語が、他人には分かりやすいとは限らない。
で、書ける奴は他人の言語押し付けられるなら自分用言語作っちゃう。
今も増え続けてる。

107 名前:デフォルトの名無しさん [2017/07/19(水) 10:50:02.60 ID:4WYjcaP8.net]
>>100
組み込みはPICアセンブラで遊んだだけだけど、PC向けよりもハードがまだ完成してないと言うか、SoCでCPU(MPU)とメモリは用意するから後は自分で追加してねって感じだし、返って文法としては単純かもね。
結局CPUとしては計算以外じゃポートやメモリに読み書きするだけだし。

ハード作りながら入出力の関数も自作する感じですかね?

108 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 11:04:35.78 ID:NslmVuOC.net]
>>99
HOGE := hoge piyo fuga
all: $(HOGE)
clean:; rm *.o $(HOGE)

みたいなのをたとえば

all: hoge piyo fuga
clean:; rm *.o ★(all)

みたいにすっきり書きたい

109 名前:デフォルトの名無しさん [2017/07/19(水) 11:06:41.55 ID:PmVzrrzS.net]
コンパイルするときにmakeとかcmakeとかありますけど他にもあるのかもしれませんけど
今ならどういうのが定番ですか?

110 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 11:13:41.95 ID:NslmVuOC.net]
>>105
makeなんか捨ててninja使おうぜ



111 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 11:49:17.31 ID:HHR/5Ry0.net]
>>104
ターゲットの依存ファイルを再帰的に展開すると言う事になるが、途中で止めたいとかわがまま言いだすだろ .hとか
例えそれが可能になったとしても、依存ファイルは、そのアクションを実行するために必要なので
削除するために作成すると言う極めて頭の悪い状況が発生する

112 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 12:36:53.34 ID:BDmDUIr4.net]
>>104
うーん正直上の方がわかりやすいと思うけどなあ
とりあえず下みたいなことをする方法は知らんわ。力になれなくてすまんな

113 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 13:37:37.50 ID:NslmVuOC.net]
>>107-108
無理なら無理であきらめるぜー! センキュー!

114 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 21:27:36.88 ID:WSo7MpMs.net]
cleanは、固定的に削除したほうがいいよ。でないとその内ゴミが混ざる。

まぁ、無理矢理やるなら
allに含めるターゲットを処理するときに中間リストへもファイル名を追加しといて、xargsに食わせるのが無難かと。

115 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 23:08:55.17 ID:Cm6fsZ7A.net]
時代はRubyのrake

116 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 23:40:47.89 ID:87ZFTsAE.net]
>>86
JavaScriptについては、Webリソース(というか個人ブログが多いが)も間違いが多いから注意した方がいい。
> strict modeの有無の組み合わせ
これが要らん。実際見りゃわかるが、全員 strict mode 使っている。
MDNは準仕様書みたいなものだから、非strict modeについても言及する必要もあるだけ。

> javascriptではできない関数の中身や別ファイル、if文の中とかでもメソッド定義が比較的自然に行える
いや、できるぞ。ただしやる必要もないし、意味もないが。
(strict mode の場合はif文中では禁止)

動的にクラス構成を変える必要があるケースはまずないが、(手抜きパッチを除く)
やる場合はプロパティとして差し込むので、それはただの文だ。どこにでも書ける。
function定義そのものではなく、関数ポインタを差し替える。
というか、ここら辺の流儀は他言語と同じだ。
俺は特に疑問を持ったこともなく、分かりにくいとも思わないが。

117 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 23:41:35.90 ID:87ZFTsAE.net]
> javascriptみたいにifをつけると巻き上げが起こらないみたいにすると
これが違う。(

118 名前:内容自体ではなく、考え方が違う)
プログラミングを暗記で済ませようという馬鹿はJavaScript界隈に多いが、
そうとしか捉えられないのなら、向いて無いから止めた方がいい。(君が上達することはない)
それは「数学は暗記だ!」と言っているようなものだ。
或いはどうにも高校の物理に全く付いていけなかった奴とか。
あれは今にしたら分かるが、抽象思考が出来ない奴には無理だったということだ。
そしてプログラミングではその抽象思考こそが重要であり、逆に、それ以外は大して必要ない。

順に評価されるべきものは順に評価され、(巻き上げなし)、
そうでないものはC的に静的に評価されるだけ。(巻き上げあり)
俺は疑問を感じたことはない。
「巻上げという仕様ガー」とか言い出すから余計に意味不明になるのであって、
そもそも最初から直感的だ。後方参照できるだけでしかない。
JavaScriptはC(正確にはC++)以上に文法が抽象化されているから、暗記には向いてない。
結果的にC++並みのことがC並みの文法で出来るようになっている。俺はここも気に入っている。

それとは別に、君が「全部上から順に評価してくれなきゃヤダ」ならRubyの仕様をマンセーすればいいが、
JavaScriptの仕様はC等コンパイル言語を使ったことがあるやつにとっては非常に直感的だ。
俺にとってはRubyの仕様はウザいだけだね。
[]
[ここ壊れてます]

119 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 23:42:29.67 ID:87ZFTsAE.net]
>>88
要するにスクリプト言語はラピッドプロトタイピングには向いているんだよ。
そしてPCの能力が十二分に上がったので、
その遅いコードでも十分実用的だし、問題ないからそのまま使われてる。
俺も、もう低位コードだけCのDLLにして、
中上位コードは全面的にスクリプト言語で行った方がいいと思っている。楽だから。
NumPyはまさにこれでしょ。俺からみてもgoogleの動きは全然不思議じゃない。
ていうか多分、マトモなプログラマならgoogleの動きを不思議に思う奴はいない。
君がそんな言い方をする時点で君は色々分かってないと自白しているようなものなんだが。

> Googleとかパッケージマネージャとかで積極採用されるからにはそれなりの評価点があるはずなんだから
評価点はないね。ビジネス上の観点でしかない。
googleは社内言語を絞ってる。C++/Java/JavaScript/Pythonだ。この中ならPythonだろうさ。
だから、仮にRubyやHaskellがgoogle社内で評価されたとしても、
それらで書かれたツールが出てくることはない。

120 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 23:43:14.27 ID:87ZFTsAE.net]
>>94
> GHC
サンクス、そうであったか。これもサンプルとしてはいいね。
> モナディウス
Haskellってexeかよ!やってみた。グラディウスにしては速すぎる、、、左手が辛い、、、

> Perl6
つかそれってどういうことだ?
構文解釈等に関しては、実は圧倒的に単純に実装できたりするのか?
pandocもそっち系だ。俺には遅延評価とは無関係としか思えないのだが。



121 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 23:50:34.51 ID:/uBE13O5.net]
知識のない奴程語りたがる好例

122 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 23:51:34.81 ID:b4rxwY3N.net]
C始めるためにVS2017インストして苦C見ようとしてるんだけどどこをどうすればソースを書けるのかちんぷんかんぷん
そもそもCの内容をC++で書けるのか怪しい
スレチかもしれないけど助けて詳しい人

123 名前:デフォルトの名無しさん [2017/07/19(水) 23:52:22.89 ID:D2iudQ65.net]
な、長ぇ…

124 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 23:55:40.31 ID:/uBE13O5.net]
完全な初心者?

125 名前:デフォルトの名無しさん mailto:sage [2017/07/20(木) 00:08:04.51 ID:hVyvHmVu.net]
ラピッドプロトタイピング用に作られたのがスクリプト言語なんだから向いてて当たり前
ハードではFPGAなんかがASIC前のラピッドプロトタイピング用だね
しかし中上位コードしかかけん奴らがプログラマ気取る風潮はいかがなものかと危惧する
Cでの低位コードもスクリプト言語での中上位コードも書けんとな

126 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2017/07/20(木) 00:09:55.72 ID:m6IHlIP+.net]
>>117


127 名前:適当な場所(フォルダ)にプロジェクトファイルを作成します。
プロジェクトにソースファイルを追加します。
ソースファイルにソースを書きます。
ビルドします。
デバッグ実行して、正しく動作するか確認します。
バグがあれば修正します。
リリースビルドして、EXEを作成。
exeを配布します。
[]
[ここ壊れてます]

128 名前:デフォルトの名無しさん mailto:sage [2017/07/20(木) 00:15:44.40 ID:X5om2hjt.net]
任意のエディタでソースを書きます。CL.EXEでコンパイルします。以上

129 名前:デフォルトの名無しさん mailto:sage [2017/07/20(木) 00:16:25.56 ID:u2xEebDY.net]
>>116
にわかなやつほど語りたがる、ってやつだな
何が動機なんか知らんけど
愚にもつかない長文いっぱい書いちゃう子おるよな
これはもう、定期的に出てくるとすら言っていい現象だけど

>>121みたいな簡潔なレスのほうがよっぽど好感度あるわ

130 名前:デフォルトの名無しさん mailto:sage [2017/07/20(木) 00:32:04.78 ID:13Lyjczi.net]
https://ideone.com/
codepad.org/

こういうサイト利用して、色々試してみたら?



131 名前:デフォルトの名無しさん mailto:sage [2017/07/20(木) 00:32:44.03 ID:AEwXV/7G.net]
>>120
上二行は後付。sed->awk->Perl->その他もろもろ、だろ。PLD->FPGAでもあるし。
下二行は時代の要請。
> MITがSICPを教えなくなった理由
> https://cpplover.blogspot.jp/2016/05/mitsicp.html

俺は中上位コードだけでもいいと思うけど、書き捨てばっかやってるのは駄目だと思う。
こういうことをすると保守ではまるのかーがないと、回避する能力が育たない。

132 名前:デフォルトの名無しさん [2017/07/20(木) 00:36:40.77 ID:lc7WOVge.net]
>>115
関数型全般に言えるけど、言語やテーブルゲームの問題解かせたりし易い。
遅延評価はwebアプリでHTMLの長さを気にしないで読み込める無限リスト便利って読んだことあるな。
んなのどの言語でもそんな変わらんとは思うが。
どっちかと言うとIO部分分離してるから自然とMVCとかMVVMな設計になるってのがメリットに感じる。

133 名前:デフォルトの名無しさん mailto:sage [2017/07/20(木) 01:40:25.59 ID:AEwXV/7G.net]
>>126
なるほど言語向きなのは関数型の特性か。
確かにbisonが一体化しているようにも見える。

遅延評価で無限リストがーってのは多分Webライタのデタラメ。
実際、無限リストなんて使おうと思ったことないだろ。
HTMLは多分頭からパースしないと悲惨なことになるだろうし。
(一部曖昧なところがあるらしい)

遅延評価は後払い方式のため、
読み込んだものの、結果的に使わずに捨てたデータが多い場合に負荷が軽くなる。
もちろんオーバーヘッドはあるので、全部使うのなら正格評価の方が軽い。
だから理想的にはどれを使うかきっちり管理して正格評価することだが、
これが面倒な場合は遅延評価にしておけば勝手にそうなる。
ノリとしてはGCと似てる。(管理が面倒なら遅延評価にしとけ)

で、マークアップコンバータとかも、全文書を評価することが分かりきっているのだから、
管理も要らず、普通に考えて正格評価の方が適している。だからあのラインナップは謎だった。
関数型言語の特性だということなら納得だ。

> 自然とMVCとかMVVMな設計になる
これはなあ、、、Cでも苦労するわけでもないので、言語特性ではなく、意識付けの問題かと。
実際にHaskell使おうって奴らはここら辺についても意識高いだろうし、
いい方向に寄与しているとは思うよ。

134 名前:デフォルトの名無しさん mailto:sage [2017/07/20(木) 03:16:53.07 ID:X0EJcA/q.net]
>>112-115
>全員 strict mode 使っている。
新しいソースはね。破壊的変更だから古いソースはstrictじゃない場合も多い。

>俺にとってはRubyの仕様はウザいだけだね。
俺もメインでやってるのは静的言語だけど、JavaScriptもPythonもRubyも関数に関してはうざいと思うことはないな
単純に慣れの問題でお前のRubyやPythonの経験が不足してるだけだと思う

Pythonやる前はインデントって不便

135 名前:だろうって思ってたけどすぐなれたし、使ったこともない言語を適当にディスるのはよくないぞ

>最初から直感的だ、後方参照できるだけでしかない
初心者なら直感の理解でいいかもしれんが、ちゃんと仕様を理解するに越したことはない
undefinedが予約語じゃない、typeofの結果が意味不明みたいにjavascriptも含めどの言語にも直感に反する仕様が存在するし、それを利用したライブラリとかのソース読むときにある程度理解してないと困る

>俺からみてもgoogleの動きは全然不思議じゃない。
ID:LYlgQVUQとかID:tZS7qvyeとは別の人?
「Pythonは馬鹿用言語」「Pythonなんてキチガイ馬鹿用言語」っていう人にそんならGoogleみたいなところも使ってるよって言っただけなんだが

>googleは社内言語を絞ってる。C++/Java/JavaScript/Pythonだ
知識が更新されてないな。現在はC/C++、Java、JavaScript、Python、Go、TypeScriptのはず

>評価点はないね。ビジネス上の観点でしかない。
ビジネス上の観点も大事な評価点でしょ
[]
[ここ壊れてます]

136 名前:デフォルトの名無しさん mailto:sage [2017/07/20(木) 03:42:11.85 ID:X0EJcA/q.net]
そもそも「文法が抽象化されている」ってどういうことだろう
javascriptはIE6時代から見てるからかもしれんが、文法からライブラリまで欠陥だらけで、現在の具体的な実装こそが正義な言語というイメージなんだけどな
クラスやプロトタイプチェーンの仕組みとか、thisがどこを指すかとか、for inとオブジェクトや配列がらみの仕様とか直感で完全に理解できる人はいないはず

言語仕様に関しては、C言語も//コメントは使うのに関数先頭以外で変数を宣言できないと思い込んでる人とか結構多いんだよなぁ・・・

137 名前:デフォルトの名無しさん [2017/07/20(木) 09:24:07.80 ID:VLxfq0H/.net]
複合文の中で変数を宣言できるのを知らないやつはたまにいるが
printf("aho");
int boke;
これ知らねえやつはいねえだろ
逆に制限のある環境でこれをやってエラー吐かれるアフォがいるくらいで

138 名前:デフォルトの名無しさん mailto:sage [2017/07/20(木) 09:29:55.18 ID:Wske8588.net]
ガイジがスクリプト言語に対する感想を述べる場となったC言語スレ

139 名前:デフォルトの名無しさん mailto:sage [2017/07/20(木) 11:37:31.64 ID:Gk3qg8E2.net]
for( int i=0; i<10; i++) {
print i;
}

で、「i のスコープは for ブロックの中」って言うけど
ブロックって、中括弧の中だよね?

140 名前:デフォルトの名無しさん [2017/07/20(木) 11:48:22.63 ID:VLxfq0H/.net]
i++ が中括弧の外にあるようだが?



141 名前:デフォルトの名無しさん mailto:sage [2017/07/20(木) 12:04:35.30 ID:Gk3qg8E2.net]
そうそう。
だから、中括弧の外にもう一つ別のスコープがあるんだね。試してみた。

142 名前:デフォルトの名無しさん mailto:sage [2017/07/20(木) 13:59:07.50 ID:/8Z4pO5Y.net]
i のスコープより
> print i;
の方が重大な問題だろ

143 名前:デフォルトの名無しさん mailto:sage [2017/07/20(木) 14:01:49.38 ID:oqUsFpSj.net]
関数呼び出し演算子無しで呼べるとはC言語では無いな

144 名前:デフォルトの名無しさん mailto:sage [2017/07/20(木) 14:54:53.75 ID:Gk3qg8E2.net]
すまん、最近 Quick BASIC 始めたからつい。

145 名前:デフォルトの名無しさん mailto:sage [2017/07/20(木) 15:15:43.25 ID:aeaiTPav.net]
もうプチコンで開発するわ!

146 名前:デフォルトの名無しさん [2017/07/20(木) 15:47:57.27 ID:VLxfq0H/.net]
>>134
ああそうか、i++が中括弧の外にあるのに
ブロックの中という説明はおかしいだろうと
言いたかったのか

あんまり関係ないけどISO/IEC9899:2011 6.8.5 Iteration statements を
読んでいたら、
for (expression opt; expression opt; expression opt) statement
って書いてあってびっくりしてる
改行の位置は単なるtypoとしても、それを修正すると
for (declaration expression opt; expression opt) statement
になる
制御式のセミコロンが1つって、いつそうなったんだ?

147 名前:デフォルトの名無しさん [2017/07/20(木) 15:48:59.77 ID:VLxfq0H/.net]
訂正
for ( expressionopt ; expressionopt ; expressionopt ) statement for
( declaration expressionopt ; expressionopt ) statement
って書いてあってびっくりしてる

148 名前:デフォルトの名無しさん [2017/07/21(金) 10:48:58.02.net]
unsigned int を uint32 みたいに書くやつ
あれの標準ヘッダができたの C99 から?

149 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2017/07/21(金) 11:23:14.96.net]
uint32_tね。そうだ。

150 名前:デフォルトの名無しさん mailto:sage [2017/07/21(金) 23:40:03.14 ID:K6o ]
[ここ壊れてます]



151 名前:F7/iC.net mailto: >>141
そう。C99から。stdint.hね
自分もありがたく使わせてもらってる。
というか、もうintとか使わなくなった。
[]
[ここ壊れてます]

152 名前:デフォルトの名無しさん [2017/07/22(土) 13:45:26.72 ID:jxtKz7JV.net]
C11とかC99とか似合わせてチェックしてくれるツールってありませんか?

153 名前:デフォルトの名無しさん mailto:sage [2017/07/22(土) 14:09:07.67 ID:nEpy0tzd.net]
なにを?

154 名前:デフォルトの名無しさん mailto:sage [2017/07/22(土) 15:36:12.70 ID:uvo/ftbB.net]
>>143
サンキューありがとう
stdint.h かー
C99をうちでも標準にすべきかどうか悩むなー

155 名前:デフォルトの名無しさん mailto:sage [2017/07/22(土) 17:15:23.73 ID:4ZNVKbnD.net]
お隣はもうC11ですってよ!
うちも11にしましょうよ。ボーナスでたんでしょ。

156 名前:デフォルトの名無しさん mailto:sage [2017/07/22(土) 17:42:54.52 ID:TVAxaytW.net]
C++を使えないかあるいはあえて使わないポリシーなのでなければ、C++をbetter Cとして使う方が
いろいろ楽だと思うがな。

157 名前:デフォルトの名無しさん mailto:sage [2017/07/22(土) 17:56:47.93 ID:uvo/ftbB.net]
>>147
そうは言うけどなお前・・・
うちはまだローン(C89必須案件)だって残ってるんだぞ

158 名前:デフォルトの名無しさん mailto:sage [2017/07/22(土) 18:58:02.33 ID:YJU7D9tD.net]
隣のC99は青くみえる

159 名前:デフォルトの名無しさん [2017/07/22(土) 19:03:04.98 ID:yf/DliCJ.net]
俺はstdint.h相当のヘッダファイルを自作してるけどな。
C89コンパイラだったら自作をincludeするようにしてる。

160 名前:デフォルトの名無しさん mailto:sage [2017/07/22(土) 22:05:24.77 ID:0HjhMGYw.net]
>>148
betterCとしてC++使ってたら今度は「今時生ポインタなんてありえない、unique_ptr使え」と圧力がかかって、どこまでC++の機能使うか悩む



161 名前:デフォルトの名無しさん [2017/07/22(土) 22:20:17.19 ID:XcmtOt3t.net]
ベターCとしての使い方は、C++という名のとおり、設計どおりの使い方だ
基本的にCとの共通部分だけ、C++のみの拡張機能は欲しいところだけつまみ食いは、邪道ではない
unique_ptrも例外ではなく、欲しければ使い、いらなければスルー
それでいい、至極真っ当な使い方だ

162 名前:デフォルトの名無しさん mailto:sage [2017/07/22(土) 23:32:49.28 ID:0HjhMGYw.net]
いいこと言うなあ
C with lambdaとして使う踏ん切りがついたわ

163 名前:デフォルトの名無しさん mailto:sage [2017/07/23(日) 00:22:49.43 ID:yjtelfLq.net]
>>154
それならスクリプト言語の方が手っ取り早いと思うがな。
全部shared_ptrやRAIIならほぼGCだろ、とも思うし。

というかC++erの生ポ嫌いは一体なんなんだ?
元々メモリリーク自体はそんなに苦労しないよな?今時ツールで検出できるみたいだし。
Cで何らかのタスク(演算等)をこなす場合、
構造化プログラミングだから同一関数内での確保&解放が多いし。
(というか、そのように書きたければ大概の場合はできる)

164 名前:デフォルトの名無しさん mailto:sage [2017/07/23(日) 00:32:19.27 ID:2YxatxBr.net]
>>155
そう
作り方が下手なだけで言語やツールのせいする奴多すぎ
技術屋としてのレベル/精度が低いだけ

165 名前:デフォルトの名無しさん mailto:sage [2017/07/23(日) 01:06:53.41 ID:yjtelfLq.net]
ちょっと補足しておく。

俺が思うに、容量的に問題がないのであれば、
大体の場合はmallocではなくallocaで実装でき、当然、管理する必要もない。
だからCはもうちょっとalloca推奨でもいいとは思うし、
そのためにもうちょっとスタック領域に多めに割り当ててくれとも思う。
(コンパイラがallocaをmalloc+freeに分解し、呼んだ関数の末尾でfreeしてくれてもいい。
そうすれば容量の心配ないallocaが手に入るから。
てかこれやってるコンパイラないんか?誰でも思いつきそうだが)

166 名前:デフォルトの名無しさん mailto:sage [2017/07/23(日) 01:43:34.81 ID:Juol04gL.net]
んー、イメージ的には、組み込み系が多そうだしcならヒープ使った方がいいきがする。

小メモリで済

167 名前:゙のはc最大のアドバンテージだと思うんだ。 []
[ここ壊れてます]

168 名前:デフォルトの名無しさん mailto:sage [2017/07/23(日) 02:13:19.95 ID:QcJiE5IU.net]
>>155
なんでC with lambdaならスクリプト言語の方が手っ取り早いのか全くわからん

169 名前:デフォルトの名無しさん mailto:sage [2017/07/23(日) 08:51:27.89 ID:bC6CfLCk.net]
> 構造化プログラミングだから同一関数内での確保&解放が多いし。

このフワフワした一文だけで、今後こいつからは何の情報も得られないのが分かる

170 名前:デフォルトの名無しさん mailto:sage [2017/07/23(日) 11:07:58.09 ID:EA1ZzpWz.net]
>>155
生でもきちんと管理していれば問題は起きないが
いちいち気にしなければならないことが多いので
もうずっと付けてた方がいいよね という話ですよ



171 名前:デフォルトの名無しさん mailto:sage [2017/07/23(日) 15:05:48.85 ID:Tqr2YDDV.net]
>>153
designated initializerが使えないのでワースCだ

172 名前:デフォルトの名無しさん mailto:sage [2017/07/23(日) 16:32:54.76 ID:yjtelfLq.net]
>>162
これか。
https://stackoverflow.com/questions/18731707/why-does-c11-not-support-designated-initializer-list-as-c99
つか入れない理由ないし、ClangとVSでは使えるとも書いてあるが、
C++仕様自体は無駄に意識高くて無視しているといったところか。

一部C++がCの完全上位互換ではない部分があると聞いたが、これか。
他にあれば、キーワードだけでも教えてくれれば助かる。

173 名前:デフォルトの名無しさん [2017/07/23(日) 16:48:41.41 ID:hUTftRXy.net]
tentative
restrict
_Imaginal
_Thread_local
_Generic
_Bool
extern const
storage class "auto"
pointer to register

174 名前:デフォルトの名無しさん mailto:sage [2017/07/23(日) 17:18:38.88 ID:yjtelfLq.net]
>>164
サンクス。感想は以下。
俺には我慢できる範囲だな。

tentative <- 要らん、つか廃止の方がいい
restrict <- ねえのかよ!しかし自動並列化とかしない限り要らん
_Imaginal <- class があるから要らん
_Thread_local <- これはC++にあってもいいと思うが、、、
_Generic <- マクロがらみか?価値は俺にはよく分からん
_Bool <- boolが既に拡張済みだから要らん
extern const <- 個人的にはconst派ではないからいいや
storage class "auto" <- なんだこれ?いわゆる自動変数って全部これだと思うが、、、
pointer to register <- registerそのものが最早要らんし

175 名前:デフォルトの名無しさん mailto:sage [2017/07/23(日) 17:56:02.81 ID:Tqr2YDDV.net]
>>163
コンパウンドリテラル
(float[2]){1,2}

176 名前:デフォルトの名無しさん mailto:sage [2017/07/23(日) 19:12:51.83 ID:yjtelfLq.net]
>>166
designated initializerと同じに見えるが違うのか?
前者は初期化、後者はリテラルとして使ったときの呼称か?
seclan.dll.jp/dtdiary/1999/dt19991101.htm
d.hatena.ne.jp/taiyo/20080412/p1

177 名前:デフォルトの名無しさん mailto:sage [2017/07/23(日) 19:28:51.61 ID:GpgYjQaH.net]
全く違う

178 名前:デフォルトの名無しさん [2017/07/23(日) 19:30:48.75 ID:hUTftRXy.net]
>>165
tentativeがないくせにテンプレート具現化の統合という
同じベクトルでもっと面倒くさいのがあるわけだが

179 名前:デフォルトの名無しさん mailto:sage [2017/07/23(日) 19:38:30.48 ID:Tqr2YDDV.net]
>>167
ファッションとして「ベターC」と言いたがってた事はよくわかった

180 名前:デフォルトの名無しさん mailto:sage [2017/07/23(日) 20:01:31.75 ID:1KmUXPg0.net]
「ベターC」を名乗るのになんか条件ってあるのかね?
個人的には、K&Rは時代遅れのC、C89が普通のC、それより改善されているのがベターC、ってな感覚だが。



181 名前:デフォルトの名無しさん mailto:sage [2017/07/23(日) 20:09:09.26 ID:yjtelfLq.net]
>>171
俺の理解では、C99がC、
それにC++の機能(class等)をつまみ食いした「ほぼCだけど、、、」がbetterC。

182 名前:デフォルトの名無しさん [2017/07/23(日) 20:26:36.42 ID:hUTftRXy.net]
>>171
条件はない
"Cの後置増分"とは、"最初はC"でよいという意味だ
そこから段階的にソフトランディングで移行できることが
C++の売りなので、気まぐれにつまみ食いすることは
実はC++らしい使い方の1つといういことだ

183 名前:デフォルトの名無しさん mailto:sage [2017/07/23(日) 20:35:47.04 ID:GpgYjQaH.net]
C99以降の機能を使いだすとC++でビルド通らなくなるし
Cを使わずベターCとしてC++使うなら、C99/C11を知るは必要ないでしょ
Cっぽいものが書ければ十分

184 名前:デフォルトの名無しさん mailto:sage [2017/07/23(日) 20:39:42.68 ID:Tqr2YDDV.net]
ベターな部分がないのに「ベターC」 w

185 名前:デフォルトの名無しさん mailto:sage [2017/07/23(日) 21:05:01.13 ID:1KmUXPg0.net]
あぁなるほど、C99が基準だとC++は劣化Cに見えるわけか。
ただ、一般には「ベターC」という言い方がされたのはC++に対してだと思うがなぁ。

186 名前:デフォルトの名無しさん [2017/07/23(日) 21:06:32.74 ID:hUTftRXy.net]
ヒント: 煽り耐性

187 名前:デフォルトの名無しさん mailto:sage [2017/07/23(日) 21:14:20.95 ID:yjtelfLq.net]
>>175
よく分からんが君は生C派なのか?
正直俺はbetterC派とC++派しかもう居ない(生C派は絶滅済み)と思っていたのだが、
昨今のC++の暴走を見てると生C派が健在なのも分からんでもない。Linusもそのようだし。

ただ、classとかtemplateとかは「控えめに使っている限りは」便利だと思うぞ。
C++erは無理に活用しようとしておかしなことになっているが。

>>176
俺の理解では、
Cでは機能が足りないが、C++の機能は行き過ぎ(やりすぎ)、と思う人達が、
CとC++のちゃんぽんをbetterCと呼称している。

188 名前:デフォルトの名無しさん mailto:sage [2017/07/23(日) 21:17:33.70 ID:fNGuiY3b.net]
>>175
関数オブジェクトとラムダ式

189 名前:デフォルトの名無しさん mailto:sage [2017/07/23(日) 21:25:32.16 ID:yjtelfLq.net]
>>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。

190 名前:デフォルトの名無しさん [2017/07/23(日) 21:34:26.02 ID:hUTftRXy.net]
>>178
今のC++は、かつてのC++の暴走に対する反省でできているぞ
void func() throw(std::bad_exception); みたいな馬鹿げた話が
void func() noexcept(false); で済むとか
std::bind1stだのstd::bind2ndで3rdや4thがないなんて馬鹿げた話が
std::bindだけで済むだけでなくstd::mem_funとstd::mem_fun_tもクビ
char* port = (char*)0x40044000; みたいな二度手間も
auto port = (char*)0x40044000; で済む



191 名前:デフォルトの名無しさん [2017/07/23(日) 22:02:06.01 ID:qzsJDNze.net]
C++普及始めはベターCって言うとC++使いこなせなくてC++でもC文法を良く使うって意味だったみたいなんだが、今はオブジェクト指向も浸透して、その長所短所も洗い出されて来たからいいとこ取りって意味って理解。
でも、今も昔も両者が混在してるんだと思う。

192 名前:デフォルトの名無しさん mailto:sage [2017/07/23(日) 22:04:03.65 ID:yjtelfLq.net]
>>181
上2つはそれでも暴走中だとは思うがな。
GC無いと関数型は辛くね?
例外は俺は積極的には使ってないのでよく分からない。

下1つは、俺はC的記述、
> char* port = (char*)0x40044000;
の方が好きだな。
キャスト無しで書かせてくれとは思うが、型は左辺側に書きたい。
それとは別に、autoの価値も認める。リフレクションとかでマジで死ねる。(VC++/CLI)
だけと他言語と揃えてvarにしろよとは思うよ。なぜauto?

193 名前:デフォルトの名無しさん mailto:sage [2017/07/23(日) 23:15:19.12 ID:Tqr2YDDV.net]
Cじゃなくて全くの別物を「ベターC」と謀って何をしたいんだ?

194 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2017/07/23(日) 23:29:44.60 ID:Y7iSLLwh.net]
>>183
昔、autoというキーワードがあったが、あまり使われなかった。そこで新しいキーワードを作るよりも、
使われていないキーワードを再利用した方がいいと判断された、らしい。

195 名前:デフォルトの名無しさん mailto:sage [2017/07/23(日) 23:30:25.51 ID:Tqr2YDDV.net]
registerもそのうち使い回される

196 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2017/07/23(日) 23:35:53.82 ID:Y7iSLLwh.net]
キーワードが増えると、キーワードと同じ変数名や関数名はコンパイルできなくなるという問題がある。

197 名前:デフォルトの名無しさん [2017/07/23(日) 23:53:29.52 ID:hUTftRXy.net]
>>183
さあ? 俺はGCがないことにストレスを感じたことがない
あんなもんいらねえ、つーか却って迷惑
機械という奴隷は完全に支配したいんで

198 名前:デフォルトの名無しさん mailto:sage [2017/07/23(日) 23:58:37.14 ID:yjtelfLq.net]
>>185,187
> 記憶クラス指定子としての auto の使用が非常に少ないとの調査結果などから、当該用途は直ちに廃止となった。
> https://cpprefjp.github.io/lang/cpp11/auto.html
> storage class "auto" (>>164)
K&Rも確認して、なるほど状況は分かった。autoはまあ許せる範囲か。

しかしこれ、autoとregisterがあったということは、
元々のコンセプトのデフォはもっと遅い外部メモリかよ。(コアメモリとか?)

199 名前:デフォルトの名無しさん mailto:sage [2017/07/24(月) 00:18:45.69 ID:gGHXalJd.net]
>>189
autoは記憶クラスのデフォルト
省略可能で、むしろつける理由がなかったのでだれもつかわなかった

registerは変数をレジスタに置いたほうがいいというコンパイラへのヒント
しかし、コンパイラの改良が進みコンパイラに任せたほうが良くなった
人間による指定は不要なばかりか、むしろ最適化の邪魔になるのでコンパイラは無視するようになった

200 名前:デフォルトの名無しさん mailto:sage [2017/07/24(月) 00:28:47.24 ID:gGHXalJd.net]
betterCは明確な定義はないだろうけど、
www.kijineko.co.jp/tech/betterc/1
で言われてるのが大体の認識なんじゃない?

(ライブラリの内部だけとかではなく)クラスとかを使うならそれはもうC++でしょ
メモリ管理とかvtableの仕様とかもしっかり確認する必要があるので適当にクラスを使うのはおすすめしない



201 名前:デフォルトの名無しさん mailto:sage [2017/07/24(月) 01:07:47.78 ID:8vEBfSZH.net]
>>188
君はおそらくbetterC派だよな?(ただしほぼC++の)
ちなみにどういう組み合わせで使ってる?

GC言語と非GC言語ではそもそも組み方が違う。これは全く>>156の指摘どおりで、
しかもその後3匹馬鹿が現れて(159-161)彼の言い分が証明されてしまったw

さて関数型だが、どれくらい使っている?
俺はマトモには関数型をやってはいないが、それでも分かる範囲で言うと、
関数型言語はGC+型なし(型推論)が多い。
これに対しC++で関数型的アプローチを取ると、
型が爆発してtemplateで書くにしても大変でウザい。マジでvarくれよ、になる。
そして決定的に異なるのは資源のライフタイム管理で、GC言語はこれをやらない。
C++は一応自分でやることになっているのだが、
上記の通り、他関数型言語はGC前提なので組み方が異なっており、本来は参考にならない。
そしてC++のラムダはスタック方式に強引に載せている、なんとも中途半端なものだ。
これは全く他関数型言語のスタイルにはフィットしない。

だからC++で関数型アプローチをする現実路線としては、
C++をGC言語側に寄せる手法、つまり、
・ラムダは完全に関数オブジェクト扱いで、クロージャ変数は主にヒープ上
・スマポ、RAII徹底
という、いわゆる今のC++erが目指しているものに近くないと辛いはず。
ほぼC++寄りのbetterCというべきか。

君のスタイルはこれで合ってるか?合ってたらGCイラネってのも納得だ。
合ってなければ、どの組み合わせで使っているのか教えて欲しい。参考にする。

202 名前:デフォルトの名無しさん mailto:sage [2017/07/24(月) 01:33:19.39 ID:8vEBfSZH.net]
>>190
autoがデフォか。なるほど了解だ。

>>191
> クラスとかを使うならそれはもうC++でしょ
> メモリ管理とかvtableの仕様とかもしっかり確認する必要があるので
ここはちょっと微妙。
まずvtableはプログラミングモデルとしては見えないので知っておく必然性はない。
(もちろん知っておいたほうがいい)
次にメモリ管理だが、C++に関してはclassとstructがほぼ同一なので、
C的に自前classをnewして自分でdeleteするという使い方も出来る。(A)
そうではなくて、デストラクタとかやりだすとややこしくなってくるが、(B)
最終的なC++erの目標、コンテナ等にも問題なく載るように、となると、
ムーブコンストラクタ等のC++的お作法を全て実装しておかないといけない。(C)
俺は(A)ならC、(B)ならbetterC、(C)ならC++と呼ぶね。

多分CとC++のコンセプトの根本的な違いは、
Cは厳密に「書いてないことはやらない」なのに対し、
C++は「出来る限り全自動を目指す」だと思う。
だから、「どこまで自動化しようとしているか」で測ればよいと思う。

203 名前:デフォルトの名無しさん mailto:sage [2017/07/24(月) 02:16:26.89 ID:gGHXalJd.net]
>>193
うーん、その定義のbetterCは誰向けなんだ

初心者はC++の仕様(fwriteをvtableのあるクラスに使っちゃったり、newしたのをfreeしたりみたいな)にはまるだろうし
中級者はどこまでがbetterCなのかで混乱しそう(参照は?とかスマートポインタは?とかstringは?とか)
上級者はbetterにすることなく快適にCかC++で満足してそう

クラスとかデストラクタだけ使うみたいな方針で書かれてるソフトって何があるの?

204 名前:デフォルトの名無しさん mailto:sage [2017/07/24(月) 02:58:28.33 ID:xutwb2BM.net]
ベターperlのruby使おうぜとか言いだしそうだな アホか

205 名前:デフォルトの名無しさん mailto:sage [2017/07/24(月) 02:59:30.11 ID:RBhDn3mI.net]
基本Cで行きたいけど、クロージャが作れないことだけはどうしようもないのでそこだけC++って考えるんだけど、上級C使いはクロージャいらんのだろうか?

206 名前:デフォルトの名無しさん mailto:sage [2017/07/24(月) 04:31:31.88 ID:rJB0TWtS.net]
いらない

207 名前:デフォルトの名無しさん [2017/07/24(月) 05:34:01.73 ID:L3SJIM9i.net]
>>192
あ? 俺はバリバリC++使いだよ
ベターCをやっている認識は全くない

GCの話に型推論が出てくるのは悪いが意味わからん
varが欲しいんならtemplateは関係ない(脇役にすぎない)し
typeidやvoid*で特注品を作ればいい(COMとかみたいに)
ラムダ式もGCには関係ない(脇役にすぎない)し
ステートレスラムダみたいにスタックを使わないのまである

クロージャ変数はヒープ上って何だ?
auto closure{[&]{}};
auto heap{std::make_shared<decltype(closure)>()};
みたいなことすんのか?
ちょっと変態すぎて俺はついていけないなあ

俺はスマポ使うが生ポも普通に使う
状況で使い分けだ

RAIIつまりunwindingはGCとは全く無関係

RAIIだとかpImplだとかは一応知ってるが
そういのの原理主義にとらわれて
自分の頭で考えるのをやめたらいかんと思っている

208 名前:デフォルトの名無しさん mailto:sage [2017/07/24(月) 07:34:15.05 ID:UuUAOyUA.net]
RAII は便利なんだがなぁ‥

209 名前:デフォルトの名無しさん mailto:sage [2017/07/24(月) 10:04:09.53 ID:UK7ErBJ5.net]
>>189
ttp://zdnet2.cbsistatic.com/hub/i/r/2015/12/01/5e3590e7-725a-4d77-97cf-a64768d759a1/resize/1170x878/501ecb90884df8d47e13f80dffc6b0a7/42-53033264.jpg
水銀メモリ程度だろ

210 名前:デフォルトの名無しさん mailto:sage [2017/07/24(月) 11:30:39.90 ID:xutwb2BM.net]
>>189
今だってレジスタに比べればメモリは十分に遅い
キャッシュや最適化技術の進化で通常の利用では考慮する必要性が薄いだけ



211 名前:デフォルトの名無しさん mailto:sage [2017/07/24(月) 20:11:23.35 ID:Gl5wYMgk.net]
>>200
うわかっけぇ〜〜〜〜!!

212 名前:デフォルトの名無しさん mailto:sage [2017/07/24(月) 23:14:38.57 ID:8vEBfSZH.net]
>>194
俺的には「C++へのかぶれ具合」でC/betterC/C++を判断しようとしてる。
もちろんclassだけではなく、他の機能でも同様に判断して、
どれが一番近いか(どう表現すると一番誤解が少ないか)という話だ。

classはC->C++時におそらく最初に使用する機能であり、
classを使った時点でC++ならbetterCってほぼなくなるよ。
文法でしか判断出来ない馬鹿も最近は多いけど、本質は組み方でしょ。

> クラスとかデストラクタだけ使うみたいな方針で書かれてるソフトって何があるの?
知らんよ。
では逆に聞くが、作者やその他大勢がbetterCだと認識している有名OSSってあるのか?
あるのなら、みんなでそれを見に行けば終わる話だ。
なお俺はこれも知らんよ。
V8のコードがC++流じゃないって言っている奴はいるが、俺は詳細確認してないし。
steps.dodgson.org/bn/2008/09/07/

213 名前:デフォルトの名無しさん mailto:sage [2017/07/24(月) 23:15:12.97 ID:8vEBfSZH.net]
>>198
全面マニュアル派か。まあそういう使い方も出来るわな。
俺は嫌いではないよ。
というかC派からは割と賛同されるだろうね。C++派からは異端視されるだろうが。

> クロージャ変数はヒープ上って何だ?
ステートレスとか、キャプチャがなければどうでもいいし、
或いは糖衣とか、ローカル関数っぽく「その場で」使うのなら全く問題ないが、
一般の関数型と同様に可搬的に使おうとすると、生存期間はスタックとは独立にする必要があり、
スタック上の変数を参照キャプチャするのはまずい。
結果、クロージャ内変数の実体はスタック上ではなくヒープに置かれることになる。
これをそう表現した。関数オブジェクトは常にこうだろ。

> RAIIつまりunwindingはGCとは全く無関係
ユーザ側には無関係だが、システム側は密接な関係がある。
GCを効率化する場合、参照カウントというのは一つの代表的手段で、
この場合、ランタイム上で同じことをやるからだ。
だから「全面RAII+shared_ptr」ってのはよく出来たGCと実行効率は同じになる。
だったら最初からGC言語使えよC++erはアホなのか?ってのが俺の感覚だ。
効率ガーとか言いながら完全な二度手間してるのはテメーらだよ、ってこと。
ただし君はこれには該当しない。生ポも普通に使う派だからだ。

まあここら辺の「どうとでも書ける」という懐の広さもC++の魅力ではあるのだろうけども。
本来は君のような全面マニュアル派が正統C++派でもおかしくないんだが。
そういうコンセプトの言語ではあるから。
ただ最近おかしくなっている(気がする)のはやっぱり意識高い系の暴走なのかな?

214 名前:デフォルトの名無しさん mailto:sage [2017/07/24(月) 23:54:33.43 ID:gGHXalJd.net]
>>203
betterCの定義をしてる機関があるわけじゃないから人それぞれの定義で良いとは思う
俺の認識だとbetterCはC言語をC++モードでコンパイルする程度でもbetterCだと思ってる

#include <stdio.h>
int main(void){
int a = 1000000;
char *b = a;
}

Cだと(昔の寡黙なコンパイラは)そのまま通過。 C++だとエラーで停止。
今は警告出してくれるからこういう意味で使う理由はなくなったんだけどね
(ちなみに、VSで適当にプロジェクト作ると.cppファイルができてC++モードでコンパイルされる)

>classを使った時点でC++ならbetterCってほぼなくなるよ。
betterCってどういう意味合いにせよ現代だと初心者や趣味用で、もうほぼ存在しないってイメージだな

215 名前:デフォルトの名無しさん mailto:sage [2017/07/25(火) 00:58:02.32 ID:4zQ1WqHr.net]
void sendMessage(const char *message) {
char c;
for (const char * p = message ; c = *p; p++)
SPI.transfer(c);
}

このようなメソッドを実行する場合、他の単語のアドレスと繋がってバグが出る恐れはありますか?

--例--
const char *cd = "CD";
sendMessage("pen");

アドレス 文字
1000000 p
1000001 e
1000002 n
1000003 C
1000004 D

216 名前:デフォルトの名無しさん mailto:sage [2017/07/25(火) 06:46:20.75 ID:Ayn2XuQ7.net]
>>206
普通こうなるやろ

アドレス 文字
1000000 p
1000001 e
1000002 n
1000003 \0
1000004 C
1000005 D
1000006 \0

217 名前:デフォルトの名無しさん [2017/07/25(火) 07:58:05.16 ID:HU3ZW3Qs.net]
>>204
全面マニュアル派って何だ?


> スタック上の変数を参照キャプチャするのはまずい

え? え??
自動記憶域期間の変数以外の何をキャプチャするんだ?
クロージャ内変数がヒープ?? いったい何を言っている?
struct closure{
int& reference_to_capture;
closure(int* capture) : reference_to_capture(*capture) { }
void operator()() {
int internal_variable_of_closure;
}
};
こうなってるだけだぜ? どこにヒープが出てくるんだ?

218 名前:デフォルトの名無しさん [2017/07/25(火) 07:58:22.10 ID:HU3ZW3Qs.net]
>>204

> システム側は密接な関係がある。

関係ねえって
some_class obj1;
jmp_buf jb1;
if(setjmp(jb1) == 0) {
obj1.construct(jb1);
some_class obj2;
jmp_buf jb2;
if(setjmp(jb2) == 0) {
obj2.construct(jb2);
obj2.destruct();
}
obj1.destruct();
}
こうなってるだけだぜ? どこにヒープが出てくるんだ?

> 最近おかしくなっている

C++11以後は正気に戻る努力をしてるぞ

219 名前:デフォルトの名無しさん mailto:sage [2017/07/25(火) 08:31:48.45 ID:M07WjxQ9.net]
知ったかクンの自己弁護ショーがはじまるよ

220 名前:デフォルトの名無しさん [2017/07/25(火) 16:02:02.91 ID:fB9o/YjK.net]
全面マニュアル派って何だろう。
悪魔的<>全面マニュアル派 みたいなニュアンスなんだろうか。

あんまり聞いたことない言葉だな



221 名前:デフォルトの名無しさん mailto:sage [2017/07/25(火) 17:10:25.77 ID:AkzbrYPu.net]
<> ダイヤモンド演算子が出たぞ

222 名前:デフォルトの名無しさん [2017/07/25(火) 17:24:31.31 ID:HU3ZW3Qs.net]
<>を何と読むかで、C++寄りかBASIC寄りかわかるな

223 名前:デフォルトの名無しさん mailto:sage [2017/07/25(火) 20:09:07.38 ID:MNEF+D/W.net]
残念、perl でした!

224 名前:デフォルトの名無しさん mailto:sage [2017/07/25(火) 21:09:32.97 ID:4zQ1WqHr.net]
>>207
回答ありがとうございます
そのような仕組みになっているとは知りませんでした!
詳しく調べてみようと思います

225 名前:デフォルトの名無しさん [2017/07/26(水) 15:57:11.34 ID:rrdsxIH3.net]
age

226 名前:デフォルトの名無しさん [2017/07/27(木) 03:13:21.18 ID:2TFMLUhu.net]
>>206
ない。ダブルクォーテーションで括った場合は最後に \0 入るから。

227 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2017/07/27(木) 03:15:50.47 ID:vaTNWP9F.net]
>>217
char s[3] = "123";
のときは'\0'が入らない。

228 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 04:24:15.48 ID:LmGEOgfS.net]
領域破壊で配列の直後のエリアに入ることは入る

229 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 07:29:22.91 ID:P1js1uXh.net]
>>219
宣言時の初期化では入らんよ

230 名前:デフォルトの名無しさん [2017/07/27(木) 13:22:08.96 ID:HCdXe105.net]
>>219
実名晒せよ、その下痢糞コンパイラ



231 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 18:39:00.21 ID:ZSUs8tWw.net]
素朴な質問で悪いが、C言語ってなんで多くが挫折すんの? JavaやC#なら、派遣でも生き延びていくのに・・・

232 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2017/07/27(木) 19:09:17.24 ID:LWV2Yf86.net]
Cは、ポインターとかマクロとか落とし穴が多いんだよね。文字列を扱うのも難しいし。しかもセキュリティ上の欠陥がある。

233 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 19:15:04.97 ID:F0lzbPxl.net]
Cにセキュリティ上の欠陥?
使い方の問題でしょ?

234 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 19:16:27.05 ID:F0lzbPxl.net]
大昔に出来た低級言語なんだから、
多少の事は我慢

235 名前:デフォルトの名無しさん [2017/07/27(木) 19:17:38.76 ID:/VCkXAgy.net]
Cは環境依存が激しくて、何やるにもめんどくさいからだと思うな。
コピペプログラマが生きていけない。

236 名前:デフォルトの名無しさん [2017/07/27(木) 19:24:01.58 ID:pZs9Jdf1.net]
ポインタとかもだけど、リストの使い方は知ってても作り方知らない子とか多そうだぬ。

237 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 19:25:18.20 ID:F0lzbPxl.net]
何のリスト?
初期化リスト?

238 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2017/07/27(木) 19:26:56.69 ID:LWV2Yf86.net]
連結リストだろ、JK。

239 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 19:41:55.89 ID:F26VGNcc.net]
いや連結リストの作り方知らない子はレアだから違うだろJK

240 名前:デフォルトの名無しさん [2017/07/27(木) 19:49:40.05 ID:pZs9Jdf1.net]
ごめん。
ただの偏見。
JavaやC#はListクラスで連結リスト使えるから、作り方知らない若者多そうって思ってた。
そうかレアか。
安心した。



241 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 19:50:41.52 ID:tCxrViSf.net]
使い方
って書いてあるから
Cの機能にあるリストだと思ったのだが

242 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 19:52:12.25 ID:tCxrViSf.net]
>>227が悪い

243 名前:デフォルトの名無しさん [2017/07/27(木) 19:55:40.06 ID:pZs9Jdf1.net]
>>232
Cにリストって有ったっけ?
ANSI C止まりだから、最近のは入ってるのかな。

>>233
ホントごめん。

244 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 19:59:03.32 ID:tCxrViSf.net]
だから
初期化リスト?
って書いたんだけど

245 名前:デフォルトの名無しさん [2017/07/27(木) 20:11:05.11 ID:pZs9Jdf1.net]
初期化リストってなんだろ。。。

あれかな。

int a[] = {1,2,3};

みたいな奴か?
あんなん、数が100とか200になったらループで初期化とかになるから違うかな。
JavaやC#もその辺は変わらなかった気もするけど。

まあいいや。
迷惑かけたみたいだし、ROMるわ。

246 名前:デフォルトの名無しさん [2017/07/27(木) 20:28:21.83 ID:DDfF3pSC.net]
>>222
C言語は同じことをするのにもいろんな書き方ができる。無駄に難しくも書ける。

247 名前:デフォルトの名無しさん [2017/07/27(木) 21:58:49.46 ID:HCdXe105.net]
セキュリティ上の欠陥がある。
セキュリティ上の欠陥がある。
セキュリティ上の欠陥がある。

248 名前:デフォルトの名無しさん [2017/07/27(木) 22:01:29.56 ID:DDfF3pSC.net]
>>238
株式会社メビウス(mob)
matsuri.2ch.net/test/read.cgi/infosys/1501121465/

249 名前:デフォルトの名無しさん [2017/07/27(木) 22:02:42.86 ID:DDfF3pSC.net]
>>238
それ、欠陥じゃなくてそこまで理解して使用するものだから。本気で言ってんの?

250 名前:デフォルトの名無しさん [2017/07/27(木) 22:09:44.77 ID:HCdXe105.net]
リーナス君ならどんな暴言吐いてくだろうかね



251 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 22:10:30.95 ID:P8zzUyc0.net]
リストの「作り方」って書いてあるのに初期化リストを持ってくる奴ってマジで近くにいてほしくないわ

252 名前:デフォルトの名無しさん [2017/07/27(木) 22:20:24.47 ID:KBJFSsyK.net]
>>241
リーナスくんがメビウスに暴言?

253 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2017/07/27(木) 22:22:40.74 ID:LWV2Yf86.net]
拳銃は危ないよなあ。原子炉の制御にC言語を使われたら、それは拳銃のように危ない。
Cを安全に使うには、安全装置とか哲学とか人工知能みたいなものが必要になる。
さもないとどこかの国みたいにハッキングされるだろう。

254 名前:デフォルトの名無しさん [2017/07/27(木) 22:31:06.10 ID:KBJFSsyK.net]
>>244
原子炉の制御にC使ってるんじゃない?
むしろ、C以外の方が危ない気が。

255 名前:デフォルトの名無しさん [2017/07/27(木) 22:34:40.88 ID:pZs9Jdf1.net]
>>238
今時の言語の例外処理の相当する部分も自分で書くからねぇ。
安全じゃないと言えばそうだし、元々プロ向け言語って言われてたし。
そこに憧れて火傷する人は昔から多かった。
(自分含む)

256 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 22:40:41.83 ID:tCxrViSf.net]
>>242
日本語読めないアホ

257 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2017/07/27(木) 22:41:49.10 ID:LWV2Yf86.net]
あ、「C言語にセキュリティ上の欠陥がある」は、国家機密だからな。絶対に他のヤツに言うなよ。

258 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 22:42:44.02 ID:tCxrViSf.net]
ツマンネ

259 名前:デフォルトの名無しさん [2017/07/27(木) 22:43:40.04 ID:HCdXe105.net]
何がどう危ないのかわかってないやつが、ふわっと危機感もってるだけだろ

↓これと同じこと
zip.2chan.net/6/res/3050541.htm

260 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 22:52:42.24 ID:9W3wkZQm.net]
>>222
JavaやC#の方が簡単だから。

というか常識的に考えて分かるだろ。
世界は一旦Cで統一された。
その後出てきた言語はCの駄目なところを改善している。
それだけ。



261 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2017/07/27(木) 22:56:04.01 ID:LWV2Yf86.net]
ダンディ坂野は危険。sprintfの代わりにsnprintf使え。セキュアバージョン(_s)を使え。とか色々あるよな。

262 名前:デフォルトの名無しさん [2017/07/27(木) 23:06:09.60 ID:wZCn8yX+.net]
(σ・∀・)σゲッツ!!

263 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2017/07/27(木) 23:13:00.42 ID:LWV2Yf86.net]
https://www.ipa.go.jp/security/awareness/vendor/programmingv1/b06_02.html

264 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2017/07/27(木) 23:41:43.77 ID:LWV2Yf86.net]
標準文字列関数では安全に書けない、安全に書ける人がほとんど居ない。これ、完全にワナですから。

265 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 23:57:39.95 ID:jhYwQkxC.net]
バッファのサイズに収まるように普通書くだろ
そう書けない奴が悪い

266 名前:デフォルトの名無しさん [2017/07/28(金) 00:08:15.50 ID:YMdBIxtz.net]
>>256
それはその通りだけど、個人が責任を取れる問題じゃないし。

267 名前:デフォルトの名無しさん [2 ]
[ここ壊れてます]

268 名前:017/07/28(金) 00:14:30.22 ID:QdICXo3Y.net mailto: >>218
そうだった。Cだとエラーにならんな。C++だとエラー。
[]
[ここ壊れてます]

269 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2017/07/28(金) 00:19:41.65 ID:N/JNnipJ.net]
文字列の連結だって安全にやろうとすれば、長さがわからない文字列にstrcatなんて使えないじゃん。

270 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 00:33:30.49 ID:QdICXo3Y.net]
てきとーに char s[1000]; とかやってどんどん strcat()
そして死亡



271 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 00:47:30.46 ID:KKFlk4xh.net]
Cでは適当な奴は死にます

272 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 02:06:17.70 ID:zRJpQFXf.net]
1ビットの変数同士を比較する場合
& ビット演算子
&& 論理演算子
どっち使った方がいいの?

---例---
input mem_ack, cpu_ack
wire mem_ack, cpu_ack




if (~(mem_ack & cpu_ack))
state <= 2
--------

273 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 02:08:50.20 ID:uZDKFvFZ.net]
>>261

逝きろ

274 名前:デフォルトの名無しさん [2017/07/28(金) 06:32:14.27 ID:X5sNiV59.net]
>>257
版権が会社にあるコードなら
もちろん会社の責任でテストするが
だから何?

275 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 06:51:58.94 ID:jwLN5n78.net]
>>247
ブーメラン過ぎる w
初期化リストの「作り方」の説明してみな

276 名前:デフォルトの名無しさん [2017/07/28(金) 10:25:49.30 ID:X5sNiV59.net]
おいVerilog使い、なぜここに来た?

277 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 10:43:31.58 ID:KAkdfNJb.net]
Cスレでは初期化リストは「書く」とか「記述」するものであって「作る」ものじゃ無いな
ツールやマクロで生成したり作ったりする事はあるが、そう言うまれな場合は「マクロで作る」と書くだろう

278 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 10:54:04.18 ID:g6yGf319.net]
>>262>>266
ホントだw
よく見たらC言語じゃなくてVerilogだなwww

279 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 11:13:16.53 ID:WViVOgsq.net]
>>267
じゃあ違うとすると、
C言語のリストって何だ?
って話

280 名前:デフォルトの名無しさん [2017/07/28(金) 12:35:43.09 ID:WvgdGCet.net]
>>269
だから、データ構造としてのリスト構造しかないでしょって話では?
以下ネバーエンディングストーリー



281 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 12:42:15.76 ID:WViVOgsq.net]
C言語と関係ない

282 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 13:28:06.90 ID:KAkdfNJb.net]
文法上でリストと呼ばれているものは初期化リストの

283 名前:シにもたくさんあるぞ
一々あげないが、パラメータリストとか
[]
[ここ壊れてます]

284 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 15:09:08.59 ID:1Qvc81q6.net]
va_listなら頑張れば作れる

285 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 16:20:09.34 ID:WViVOgsq.net]
>>272
で?

286 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 16:32:13.65 ID:KAkdfNJb.net]
ID:tCxrViSfが救いようの無いバカって事だよ

287 名前:デフォルトの名無しさん [2017/07/28(金) 18:33:35.00 ID:2hIYBPjn.net]
>>269
>>231

288 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 18:49:21.90 ID:XBSdfIgC.net]
連結リストを一から作れるってそんなにいないんじゃないかな

289 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 18:55:04.96 ID:mbT3OJMo.net]
1からの定義というか
0からではないんだよね?というか
まぁそのへんフワフワだけど

学校でプログラミング習ってるやつらは
一回はそれ「作らされてるから」
今でも作れって言われたら作れると思う

290 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 19:06:21.61 ID:mbT3OJMo.net]
あ、今の子はPascalとかCとか習わないのかな…



291 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 19:09:55.81 ID:qWRZaL/E.net]
>>272
で、それらの「作り方」について説明してくれるかな w

292 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 19:14:48.96 ID:0EVBlpnp.net]
脱初心者の登竜門の定番だね
自己参照構造体とポインタを理解していればそれほど難しくはない

293 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 19:17:50.96 ID:LlfbS2K5.net]
えちょっと待ってジェネリックなリストとかじゃなくて、doubleのリストとか、なんか自分で決めた型のリストとかだよね?
初心者向けのCの本で書いた記憶があるんだけど、最近は載ってないの?

294 名前:デフォルトの名無しさん [2017/07/28(金) 19:21:50.85 ID:/bI4c4xS.net]
苦CとやさしいCには載ってなかったな。
自分もCのアルゴリズム本でリストは覚えたし。

295 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 19:32:08.21 ID:WViVOgsq.net]
ジェネリックなリストとdoubleのリストって
ほとんど差が無いような

296 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 20:00:04.70 ID:xox6mhpi.net]
>>279
やらないよ

297 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 20:04:12.64 ID:qWRZaL/E.net]
>>277
struct List_t {
struct List_t *Previous;
struct List_t *Next;
double Data;
};
のDataの型変えるだけだし
まあいろんな型が必要だとテンプレートが欲しくなるけどマクロでもそこそこ行けるしね

298 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 20:06:39.62 ID:+MWeEFjB.net]
初心者に双方向はまずいですよ。

299 名前:デフォルトの名無しさん [2017/07/28(金) 20:06:46.98 ID:SfCHZxYK.net]
そこはテンプレートが遅くなる要因だから、性格の違いって事で。

300 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 20:12:26.13 ID:xox6mhpi.net]
>>286
普通,実用に供するのならば,void *Data だね



301 名前:デフォルトの名無しさん [2017/07/28(金) 20:21:38.71 ID:SfCHZxYK.net]
型検査引っ掛からなくなるんだから、実用なら必要な型でリスト作らんと怖いだろ。
元々かっちり作る用途向けで、そう言うのはどうしてもって時だけ。

302 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 20:24:27.39 ID:WViVOgsq.net]
>>287
片方向でも双方向でも大して変わらないと思うが

303 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 20:33:05.95 ID:WViVOgsq.net]
いずれにしろリストなんて簡単
setになると途端にレベルが上がる
それこそ、
使えても作れない人は多い

304 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 20:50:39.02 ID:KAkdfNJb.net]
>>280
バーカ、それらは「記述」するもので、「作る」ものじゃねーと言ってるだろ

わかんねーのか死ねバカ

305 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 21:02:23.86 ID:wndodTEE.net]
>>289
何でそんな面倒なことをするんだ?

306 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 21:04:55.04 ID:wndodTEE.net]
だからその他のリストをわざわざあげる>>272がバカって話なんだが w

307 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 21:05:03.15 ID:Mk6h7bQQ.net]
つかリストもSetもCでは大して使わないだろ。

308 名前:デフォルトの名無しさん [2017/07/28(金) 21:12:41.92 ID:SfCHZxYK.net]
LL用のライブラリCで書いたりとかで普通に書くだろが。

309 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 21:21:31.63 ID:Mk6h7bQQ.net]
ならLLで全部やれ。
Cでやるのなら主に高速化なのだから、高速に演算できるようにあらかじめLL言語側で並べ替えるだろ。

310 名前:デフォルトの名無しさん [2017/07/28(金) 21:26:15.12 ID:SfCHZxYK.net]
リストで並べ替え?
そもそも



311 名前:、その並べ替えも遅いからCで。。。
どこから突っ込んで良いのよ。。。
[]
[ここ壊れてます]

312 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 21:27:04.09 ID:wtp1eGJk.net]
LLって初耳だわ。

313 名前:デフォルトの名無しさん [2017/07/28(金) 21:32:03.07 ID:SfCHZxYK.net]
LightwaitLanguageの略で、PythonとかRubyとかの総称。
趣味グラマ含めて、LL知らない奴に初めて会ったわ。

314 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 21:35:30.75 ID:wtp1eGJk.net]
つまりCはHLなわけだな。Heavyな時代になったな。

315 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 21:43:29.87 ID:0EVBlpnp.net]
データ間の関係が直線構造のリストはこれといった使いどころを見つけるのが難しいのはまあ分かる
階層構造のバイナリツリーや網目構造のグラフにまで拡張するといろいろ応用範囲が広がる

316 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 22:00:00.22 ID:wndodTEE.net]
>>298
バカとしか言いようがない w

317 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 22:02:34.71 ID:wndodTEE.net]
>>301
weight な

318 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 22:09:25.05 ID:wtp1eGJk.net]
おれの感覚がズレてるのかと思ったら、英語のwikipはそのままの意味だな。
LL言ってのは日本だけだという。こんなのバズワードでいいよ。

> A lightweight programming language is one that is designed to have very small memory footprint,
> is easy to implement (important when porting a language), and/or has minimalist syntax and features.

319 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 22:12:46.77 ID:e9WYMOex.net]
俺もLL通じるけどなw

320 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 22:18:36.85 ID:Mk6h7bQQ.net]
>>299
エアプ死ね。

> そもそも、その並べ替えも遅いからCで。。。
LL言語側のリスト等の物理配置は公開されてないんだから、これは無理だろ。
仮に公開するにしても当然アクセス用API関数であって、内部構造は隠蔽されるだろ。



321 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 22:23:43.64 ID:wndodTEE.net]
ここは日本なのに海外wikipedia持ってくるとか相当ずれてると思う

322 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 22:28:08.90 ID:wndodTEE.net]
>>308
恥の上塗りかよ w
たいていのLL言語はオープンソースでCとかとのインターフェースが整備されてたり内部構造のドキュメントあるぞ
でないとライブラリとか書けないし
とりあえずpythonの例な
https://docs.python.jp/3/extending/extending.html

323 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 22:53:05.56 ID:Mk6h7bQQ.net]
>>310
> 拡張モジュールをサポートするため、Python API (Application Programmer’s Interface) では
> 一連の関数、マクロおよび変数を提供していて、
> Python ランタイムシステムのほとんどの側面へのアクセス手段を提供しています。
> Python API は、ヘッダ "Python.h" をインクルードして C ソースに取り込みます。
お前は日本語が読めないということが分かった。

それで、お前はいつ>>286みたいな記述が必要なんだ?
普通はPyxxxを使ってPython側から読み出して、
C側の演算高速化用フォーマット(通常はただの配列)に最初から変換するんだよ。
お前はC側でもリストを実装してPythonと同じ事をするアホのようだが。

324 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 22:57:00.44 ID:DfUcDVfp.net]
またパイソンの話してんのか

325 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 22:59:57.49 ID:wtp1eGJk.net]
>>309
本気で言ってるのか?日本語ドキュメントなんて限られてるから技術者はググるときは英語だろう。
しかもwikipの日本語のIT用語の項目なんてほとんどないぞ。日本はIT後進国だから。中国語のほうが充実してる。
その中にあってLLだけば日本語版だけが異常に充実してるという。
まぁ、日本語でググったけどLL言ってるのはWEB2.0、クラウド、AI言ってる輩だね。
C言語使わない、使えない輩だからおれには接点はないわ。どっちがズレてるかよく考えてほしいね。

326 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 23:05:09.92 ID:wndodTEE.net]
とりあえずお前は「無知でごめんなさい」から始めようか w
> LL言語側のリスト等の物理配置は公開されてないんだから、これは無理だろ。
> 仮に公開するにしても当然アクセス用API関数であって、内部構造は隠蔽されるだろ

327 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 23:07:08.97 ID:kYloII+J.net]
>>313
面倒な奴
よほど恥ずかしかったんだろうな

328 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 23:11:29.26 ID:Mk6h7bQQ.net]
>>314
> 仮に公開するにしても当然アクセス用API関数であって、内部構造は隠蔽されるだろ
お前マジで日本語読めないのな。Python.hってまさにこれなんだが。
日本語読めない奴と議論するのは無理だからもう諦めるが。

>>313
LLって海外でも普通に通じるよ。

329 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 23:13:42.45 ID:kYloII+J.net]
>>316
隠蔽の意味も理解してない奴に言われてもなぁ w

330 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 23:16:01.92 ID:d5LZ2kks.net]
スレチ



331 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 23:20:19.95 ID:wtp1eGJk.net]
>>315
そうなんだよ。聞いてくれよ。怒り心頭だよ。
日本語のwikipのLLの内容はマジで恥ずかしい。こんなアホ議論してるのは世界で日本だけ。

> この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。
> この節には独自研究が含まれているおそれがあります。
> 日本独自の用語・分類への批判
> 比較対象がないことへの批判
> 誤解を招く用語であるという批判

なんだこれ。こんな完全なバズワードを偉そうにLLすら知らないのかって言われたんだよ。

こんな用語使ってる輩の脳がLightWeightなのに。

332 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 23:26:08.74 ID:Mk6h7bQQ.net]
まあ俺が突っ込みたかったのは、

> 連結リストを一から作れるってそんなにいないんじゃないかな (>>277)
これはLL言語(=習得が簡単な言語=馬鹿用言語)ならそうだが、
Cなら作れない奴は殺される。ただしそれ以前に、

> 苦CとやさしいCには載ってなかったな。 (>>283)
のように、そもそもCではリストを使う機会はあまり無い。
だから載ってないのも妥当。

333 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 23:32:35.71 ID:e9WYMOex.net]
仮にバズワードとしてもわざわざ2chで知らないアピールせずに黙ってググれば馬鹿にされることもなかったろうに

334 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 23:42:53.57 ID:wtp1eGJk.net]
確かにLL知らないで馬鹿にされた。だが今はもう違う。おれが馬鹿にする番。

LLなどという日本限定バズワードを使う胡散臭い輩がC言語スレで能書き垂れてんじゃねーよ、
英語もできんLightWeigt脳の低スキル技術者どもが。

335 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 23:58:33.49 ID:Mk6h7bQQ.net]
>>322
「LL(言語)」ってのは通じる言葉だ。だから使う事自体は悪くない。
(正確にはLL言語だと「言語」が被るのだが、俺は「言語」付けた方が通じやすいと思う)

ただし通じる界隈は違っていて、LL言語と纏めて呼ばれるのは通常、
Perl/Python/Ruby/JavaScript等だから、ここら辺のユーザーなら確実に通じる。
実際、Perl/Python/Rubyなんて使用範囲もできることも同じで、区別する必要ないだろ。
だから纏めてLL言語と呼ばれるし、彼らもそれに慣れている。
C/C++/Java/C#等はこれらとは全く違うため、
この界隈では「LL言語」という言葉が使われることは少ない。
それだけ。

336 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 00:02:27.03 ID:gp3BUyJn.net]
スクリプト系言語でいいだろ。昔からそう言ってる。

337 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 00:07:34.47 ID:VkCqDRe3.net]
lol

338 名前:デフォルトの名無しさん [2017/07/29(土) 00:16:53.64 ID:vlC06Wfm.net]
(lol)

こうすると顔文字のようだ。

339 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 00:22:54.09 ID:gxbujSGs.net]
>>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%A

340 名前:A%9E
実際のところ、俺の感覚では、以下だ。
Perl/Python/Ruby/JavaScript <-100%LL言語に含まれる
PHP/Lua <- LL言語に含める奴もいる。割合は50%位か?
AWK/bash <- LL言語に入れる奴はいない。これらはスクリプト言語と呼ばれる。

旧来の「スクリプト言語」はフルセットの機能を持っていなかった。
ところがPerl以降はプログラミング言語としても遜色なくなってきている。
とはいえC++やJavaとは明らかに違う。
ということでこれらを呼ぶために生まれた言葉が「LL言語」だ。(と思う)
よく分からなければ「Perl/Python/Ruby/JavaScript/その他」の理解で問題ない。
[]
[ここ壊れてます]



341 名前:デフォルトの名無しさん [2017/07/29(土) 00:27:01.78 ID:E9tUO4Ko.net]
LLという日本語だと思えば別に恥ずかしくないだろうに。

342 名前:デフォルトの名無しさん [2017/07/29(土) 00:29:11.14 ID:vlC06Wfm.net]
これからは BASIC

10 PRINT "ぷ"

343 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 00:31:57.73 ID:gp3BUyJn.net]
C#だろうとJavaだろうとFotranだろうと多くのライブラリはC、C++で書かれてる。
スクリプト系言語に限定して議論する理由は?

344 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 00:33:28.06 ID:YB2Y7dkJ.net]
>>327
Basicはどの辺に分類されるの?

345 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 00:36:55.90 ID:YB2Y7dkJ.net]
bashがスクリプト言語になるなら、Emacsもそうなるかな

346 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 00:37:55.49 ID:dTbBo9oQ.net]
で、結局リスト実装出来ない雑魚はおんのか?

347 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 00:48:16.16 ID:gxbujSGs.net]
>>330
何が言いたいのか分からんが、エスパーするとこれで答えになるか?

LL言語 ⊂ (君の言う超広義の)スクリプト言語

C#/Java/FortranをLL言語と呼ぶ奴はいない。
つか、知らない言語の話なんてしないんだし、
自分の知っている言語のどれがLL言語と呼ばれるかフラグ立てておけば済む話だぞ。
出現頻度だけで言えば、LL言語≒Perl/Python/Ruby/JavaScriptでいい。

348 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 01:53:34.44 ID:YB2Y7dkJ.net]
LL言語という物の中身は分かりましたが
そのように分類する事で、
得るものがあるようには感じませんでした

349 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 04:02:19.23 ID:F0OdFQYT.net]
>>294
ソートが楽になるだろう?

350 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 04:04:40.21 ID:TpFswTs0.net]
>>295
バーカ C言語すれだから初期化リストだと思ったとか寝言ほざいてるID:tCxrViSfのバカさを指摘するために
他の文法要素でリストばたくさんあるぞと指摘してやったんだろ

死ねバーカ



351 名前:デフォルトの名無しさん [2017/07/29(土) 05:24:03.96 ID:sjwibnJ3.net]
既存のCのコードをUnicode対応に書き直したいんだけど、
char を wchar_t に置換したり、文字列リテラルにプレフィックス付けてくれたり、
関数を wchar.h 版にしてくれる便利なツールは無いですか?

もしくは予約毎と文字列リテラルだけを対象にしたいので、
パースして品詞情報を出してくれるスクリプトなんかあれば改造するかも。

352 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 05:31:19.12 ID:u24XiLoF.net]
>>336
double とか int でもそう思ってるなら単なるアホだぞ

353 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 05:34:46.32 ID:u24XiLoF.net]
>>337
> 他の文法要素でリストばたくさんあるぞと指摘してやったんだろ
そんなもんは既に>>267で指摘されてるのに周回遅れでなにドヤッてんだよ w

354 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 05:39:01.00 ID:u24XiLoF.net]
>>335
まあLL知らなかったアホが悔し紛れにマウンティングしようとして自爆してるだけだから w

355 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 05:47:56.72 ID:vlC06Wfm.net]
>>338
そういうツール作ればいいじゃん。

356 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 07:17:17.25 ID:N+YJafLA.net]
>>338
全自動は厳しそう
文字のchatと文字以外のcharの区別が出来ない

357 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 07:28:56.29 ID:N+YJafLA.net]
>>337
その指摘の意図が不明
他にあるから何?

358 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 07:55:34.60 ID:TpFswTs0.net]
>>340
バーカ それもオレなんだが
往生際悪く日が変わってID変わったID:WViVOgsqが絡んできたから止めを刺してやったに過ぎないが
バカには理解できないようだ さすが救いようのないバカ

359 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 08:00:46.31 ID:ULoSSJ2b.net]
>>339
くさるほど連結リストを作るのに、いちいち特定の型に対応させてられないよ

360 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 08:04:41.41 ID:N+YJafLA.net]
>>345
で結局何のリストなの?



361 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 08:09:17.20 ID:N+YJafLA.net]
ていうか、
>>228の書き込み自体が皮肉なわけだけど
C言語自体にリスト構造なんて物はないっていう
本気で初期化リストだと主張してると思ったわけじゃ無いよな?
「初期化リスト?」だし

362 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 08:10:22.22 ID:N+YJafLA.net]
皮肉に対してトンチンカンな指摘をしてるアホが
一人いるみたいだけど

363 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 08:11:51.02 ID:N+YJafLA.net]
>>346
腐るほど連結リストを作るプログラムって何だ?

364 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 08:15:35.54 ID:zJVnUUbX.net]
>>345
ひょっとして同じこと繰り返してるバカって言われてることに気づいてないのか?
>>265>>280 でわざと同じように指摘してやったのに w

365 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 08:17:38.69 ID:zJVnUUbX.net]
>>346
>>290

366 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 08:25:35.65 ID:N+YJafLA.net]
>>289
使う側でいちいちメモリ確保、解放をするの?
それとも、Data自体が実体でキャストして使う?

いずれにしろ使いにく過ぎる

367 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 08:25:56.47 ID:ULoSSJ2b.net]
>>352
連結リストの型ごとにアルゴリズムを生成するの?それこそミスの元じゃない?

368 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 08:26:55.49 ID:ULoSSJ2b.net]
>>353
いちいちmalloc()/free() するんだよ
malloc()/free() でミスするようでは仕事にならん、というか検査用ラッパぐらい手持ちでもっとけよ

369 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 08:29:08.33 ID:N+YJafLA.net]
使いにく過ぎる

>>354
型ごとに同じコードを何度も記述する必要はないぞ
そのためのマクロだ

370 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 08:31:19.71 ID:ULoSSJ2b.net]
連結リストの中に連結リストとか自由にやりたいのだったら void *data 一択だよ



371 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 08:31:57.23 ID:N+YJafLA.net]
構造体名と型をdefineしてからインクルード

372 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 08:33:04.08 ID:zJVnUUbX.net]
>>354
> まあいろんな型が必要だとテンプレートが欲しくなるけど
マクロでもそこそこ行けるしね
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

373 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 08:35:18.93 ID:ULoSSJ2b.net]
どっちが書きやすいか試せば一発だが‥これは二分木でも一緒
誰か三重の連結リストなり二分木なりを自分のやりかたで書いてくれないか?

374 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 08:36:09.59 ID:N+YJafLA.net]
リストのノードとは別にメモリ確保が必要なら、パフォーマンスにも影響するし

375 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 08:40:17.35 ID:N+YJafLA.net]
腐るほど使うなら使いやすくないと

メモリ確保、解放を自分でやれ?
あり得ない

376 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 08:41:10.70 ID:ULoSSJ2b.net]
>>362
それはCの基本だよ、お前さんC++に慣れきっているんじゃない?

377 名前:タグもいるかな mailto:sage [2017/07/29(土) 08:41:31.77 ID:zJVnUUbX.net]
>>357
せっかくの静的型付を安易に捨てるのはバカにありがちな行動
struct List_t {
struct List_t *Previous;
struct List_t *Next;
union {
struct List_t *Child;
double Double;
} Data;
};

378 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 08:44:54.55 ID:N+YJafLA.net]
>>363
使いにくくてバグの元でパフォーマンスも悪いモジュールを強要する

お前とは仕事をしたくない

379 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 08:52:21.05 ID:ULoSSJ2b.net]
>>364
出た!union 野郎が出た!
そんなところで共用体をつかってコードを一本化できるのか?続きを書いてみろよ

380 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 08:53:25.58 ID:ULoSSJ2b.net]
>>365
ふん、それはCを知らないといっているようなものだよ‥
>>360を書けばわかる



381 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 08:54:11.31 ID:TpFswTs0.net]
> そこそこ行けるしね
と書くとアンダーラインになるのか?

382 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 08:55:16.84 ID:TpFswTs0.net]
マクロでもそこそこ行けるしね

そこそこ行けるしね

行けるしね

383 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 09:20:46.96 ID:zJVnUUbX.net]
>>366
続きってなんだよ w
2分木なら双方向リストと同じだぞ w
struct List_t {
struct List_t *Left;
struct List_t *Right;
double Data;
};

384 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 09:21:39.47 ID:zJVnUUbX.net]
>>368
アンダーライン w

385 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 09:28:06.03 ID:14mINgXT.net]
ん?
二分木なら3個とつながってるから、
普通3個リンクを張る

386 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 09:29:28.03 ID:dTbBo9oQ.net]
>>364
お、標準ライブラリのソート全否定か?
Cではちょいちょい捨てるよちょいちょいね
常に型を保存したかったらC++使うしかない

387 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 09:29:42.67 ID:14mINgXT.net]
あと、色情報も普通はつける

388 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 09:43:22.80 ID:N+YJafLA.net]
>>364>>370 も、何の構造?

親をたどれないとポインタを一個進めることも出来ない

C++でいうsetの話をしたわけじゃないの?

389 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 09:43:31.26 ID:zJVnUUbX.net]
>>372, >>374
赤黒とかの前に2分木の基礎からやり直せ

390 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 09:45:52.74 ID:zJVnUUbX.net]
>>373
> お、標準ライブラリのソート全否定か?
>> 安易に捨てるのは
の意味もわからないアホ w



391 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 09:49:09.48 ID:zJVnUUbX.net]
>>375
>>364 に対して親とか知ったかが背伸びするなよ w
根や親を各ノードに持つか別に管理するかは要件次第

392 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 09:54:12.77 ID:N+YJafLA.net]
ポインタを進めたり戻したりする必要がなければ
親にリンクを張らなくてもいいけどさ

std::setと同等なものをイメージしたけど、
まったく違うものが突然出てきたわけね

393 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 09:59:21.62 ID:N+YJafLA.net]
>>364はそもそも二分木では無いのか

>>357のリストの中にリストっていうのはそういう意味なのか?

394 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 09:59:54.86 ID:N+YJafLA.net]
おれの読解力が無さすぎるのか、
説明がなさすぎるのか、

395 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 10:08:25.24 ID:RY+TGg1x.net]
>>381
>>286 >>287 にある通り、previousとnextと書いてると、大抵は双方向リストを意味してるものだと取る
ここがleftとrightと書いてると、意味上は全く同じなんだけれども、単語の上からはまずは二分木を連想する
next一つだけだと、一番単純な連結リストであることを期待する

396 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 10:11:31.61 ID:dTbBo9oQ.net]
>>377
それいうならリストの中身void*にするのもそこまで安易な選択ってわけでもあるまいに

397 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 10:14:10.31 ID:gxbujSGs.net]
>>379
君以外はみんな「リスト」の話をしている。
君もそうだったのだがなぜか勝手に君だけsetだと言い出してる。

>>380
「リストの中のリスト」ってのは、配列で言うとジャグ配列、
つまりジャグリスト。(という言い方は普通しないが)

>>381
君の頭が悪すぎるだけ。
君以外はみんな噛み合っている。つまり、必要十分な説明はなされている。
つか、>>364,370を読めない奴が議論参加するな、という話でしかないが。

個人的には>>364でunionは使わない。マクロで量産だね。(手動テンプレート)

398 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 10:17:23.70 ID:N+YJafLA.net]
>>286は、
双方向を利用して作ったから名前が変なのかと思った
でも、追加したのが Child なのはどっちみち変だな
2分木だとしたら

>>370は2分木だろうけど、
これで何をしたいのかわからん
双方向と2分木が同じ発言の意味も不明

399 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 10:20:56.53 ID:N+YJafLA.net]
>>370で二分木の話が出た
もっと上ではsetの話が出ている

400 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 10:22:31.80 ID:N+YJafLA.net]
>>357
リストの中のリストって
list < list < int > >
こういう意味かと思ったけどこれも違うのね



401 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 10:26:44.77 ID:N+YJafLA.net]
まあいずれにしろ、>>289 は無いな

402 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 10:31:03.43 ID:zJVnUUbX.net]
>>383
ソート使うのにmalloc/freeは要らんだろ

403 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 10:35:15.55 ID:dTbBo9oQ.net]
>>389
リストなんてどうせmalloc/free使って運用するし別によくね?

404 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 10:36:49.65 ID:gxbujSGs.net]
>>385
>>286は「双方向リスト」だぞ。名前もかなり妥当。 <

405 名前:br> つか、君だけまったく付いて来れてないが。

> 双方向と2分木が同じ発言の意味も不明
抽象化して「ポインタの数」という意味で捉えると同じ、ってことだよ。
これについてこれてないのは、「抽象思考出来ない馬鹿」だね。最近はよく見かけるが。

>>387
いや、そういう意味だぞ。


ふむ、なるほど、君は「リスト」を作れない馬鹿のようだ。君は何言語使いなんだ?
C言語使いなら、ド頭>>230でも否定されている通り、普通はリスト程度ならサクッと作れる。
(ただしそもそもリストなんて使わないが)
[]
[ここ壊れてます]

406 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 10:37:38.60 ID:zJVnUUbX.net]
>>384
> 個人的には>>364でunionは使わない。マクロで量産だね。(手動テンプレート)
ん?
ノードに値とリストのどちらかを入れられるリストと言う要件だと思ったが?

407 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 10:37:49.78 ID:N+YJafLA.net]
>>289
intのリストに1, 2, 3, ... , 10 を追加
するだけでもイヤになる

408 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 10:39:22.96 ID:N+YJafLA.net]
>>392
なんだ、結局おれ以外も会話が通じてないんじゃん

409 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 10:40:24.22 ID:zJVnUUbX.net]
>>390
まあお前がいいと思うならそうすればいいんじゃね?

410 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 10:41:41.06 ID:N+YJafLA.net]
>>391
あ、ごめん
>>385の一行目は >>364 の間違い



411 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 10:42:46.56 ID:N+YJafLA.net]
>>391の真ん中
>>364のコードはそうなってない

412 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 10:47:50.62 ID:N+YJafLA.net]
>>391の上半分

トポロジーがまったく違う
よって必要な処理もまったく違う
ポインタの数も、普通は2分木は3方向にリンクを張る

413 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 10:48:39.76 ID:N+YJafLA.net]
「普通は」とか書くと反論がくるのかな
「多くは」くらいにしておくか

414 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 10:58:06.68 ID:N+YJafLA.net]
>>370
結局これで何をしたいのかわからん

親へのリンクが無い、色が無い
って時点で汎用化とは程遠い

415 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 11:00:17.42 ID:gxbujSGs.net]
>>392
> ノードに値とリストのどちらかを入れられるリストと言う要件だと思ったが?
いや、そう明示されているわけではないよな?
次に、それが要件だったとして、或いは汎用化するために void* だろってのが皆の意見だ。
ここについては俺はいちいちキャストがウザいからデータはめ込み派(君と同じ)だが。

416 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 11:09:28.10 ID:VkCqDRe3.net]
Cばかり使っていると頭がこんなんなっちゃいます。

417 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 11:11:38.53 ID:N+YJafLA.net]
void* の問題はキャストもそうだけど
外部でメモリを管理する必要があるってところが大きいかと

多重リストだろうがunionだろうが
マクロでどうにでもなるんで
わざわざ不便な作りにする必要は無いかと

418 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 11:13:16.21 ID:N+YJafLA.net]
>>402
C++が使える環境なら素直にC++を使えって話だけど
いまだにCしか使えない環境ってのもあってね

419 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 11:14:41.46 ID:eThbJX9n.net]
(単方向)リストは先頭から終端の方向へ順にポインタを辿る、逆方向のポインタは無くても可(逆方向があるのは双方向リスト)
二分木は根から葉の方向へ再帰でポインタを辿る、親方向のポインタは無くても可(むしろ無いのが普通)

420 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 11:16:39.02 ID:gxbujSGs.net]
>>398
何度も言っているが君だけ付いて来れてない。いちいち全部なので端折るが、

> ポインタの数も、普通は2分木は3方向にリンクを張る
これについては既に回答済みで、引用すると、
> 根や親を各ノードに持つか別に管理するかは要件次第 (>>378)
で、全くその通りだ。

俺は君が何故これを理解出来ないのかもわかるが、
君は俺の質問に答える気がないようだから、教えてやらないことにする。
馬鹿のままで死ね。



421 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 11:16:58.24 ID:N+YJafLA.net]
Cってパフォーマンスを落としてまで汎用化するような使い方ってあまりしないしね
基本組み込み用

リストも片方向で済むなら片方向にするし、
そもそもリスト構造自体頻繁に使うようなものじゃない

422 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 11:18:34.04 ID:N+YJafLA.net]
だから、
Cで挫折する理由が「リスト」とかいう主張、
まったくチンプンカンプンで

423 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 11:19:32.62 ID:zJVnUUbX.net]
>>401
> いや、そう明示されているわけではないよな?
で、君

424 名前:
> 連結リストの中に連結リストとか自由にやりたい
をどう解釈してマクロでやるって言ってるの?

> 次に、それが要件だったとして、或いは汎用化するために void* だろってのが皆の意見だ。
皆の意見? w
[]
[ここ壊れてます]

425 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 11:21:33.18 ID:N+YJafLA.net]
>>406
要件次第で変わるのに「同じ」と言ってしまう

426 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 11:23:02.49 ID:N+YJafLA.net]
>>406
>>400

427 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 11:26:20.62 ID:gxbujSGs.net]
>>409
俺なら型ごとにstructを用意、つまりテンプレートと同じことをする、ということ。

ただしvoid*にしろって言う意見も分かるし、C的にはそれもありだと思うぞ。
ここら辺は好みの範囲だとは思うが。

428 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 11:30:42.93 ID:N+YJafLA.net]
>>405
無いのが普通って
世の中を知らなすぎる

汎用のコンテナとしての2分木で
そういう実装な例があるなら
示していただけると
出来れば有名どころで

親がないと、ポインタを一個進めるのもコストがかかる
挿入した時に左右のバランスを保つのにもコストがかかる

もちろん、そういう処理がいらない
コンテナとして使わないような
特殊用途の2分木ならいくらでもあるだろうけど
今はコンテナの話だよね

429 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 11:30:53.18 ID:zJVnUUbX.net]
>>412
マクロの話がよくわからんがまあいいや
あんたが要件どう解釈したかもわからんからどうしようもないしな

430 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 11:32:58.28 ID:N+YJafLA.net]
例えばstd::setの実装はすべて親へのリンクがある



431 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 11:36:13.86 ID:gxbujSGs.net]
>>414
インラインマクロでゴリゴリに対応するのではなくて、
structの宣言部分をマクロ化して、
MyList(MyListDouble, double)
MyList(MyListInt, int)
で量産する、ということ。つまりテンプレートだろこれは。

432 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 11:44:36.57 ID:N+YJafLA.net]
コードサイズが大きい時は、
名前と型をdefineしてからinclude
とか良くやる
defineやincludeは上のMyListみたいなマクロで

433 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 11:59:50.67 ID:ODSH1Ehs.net]
>>416
ごめん意味わからん
union の代わりになるって言うことなんだよね?

434 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 12:00:47.71 ID:EGnuLLJd.net]
いつからコンテナの話になったんや

435 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 12:09:46.80 ID:14mINgXT.net]
>>418
型ならなんでも良い

436 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 12:10:50.91 ID:14mINgXT.net]
>>419
最初からずっと

437 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 12:13:39.65 ID:14mINgXT.net]
ていうか
コンテナじゃない2分木はあるけど、
コンテナじゃないリストなんて無いだろ

初期化リストか?

438 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 12:22:33.90 ID:EGnuLLJd.net]
コンテナの定義に詳しくないんだけど、Lispのリストはコンテナなん?

439 名前:デフォルトの名無しさん [2017/07/29(土) 12:24:27.13 ID:vlC06Wfm.net]
このスレは1000までリストの話で埋まりそうだね。物凄いスピードで。

440 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 12:35:38.98 ID:gxbujSGs.net]
>>418
俺は>>286派だって事。(>>370もあり。)
>>364は無し。てかどうでもいいところでunion使ってもろくな事にならないし。
void*も無し。主にキャストが面倒だから。でもunionよりはvoid*を選ぶ。

とはいえここら辺は好みの問題でしかないが。
俺なら、型固定>void*>unionだね。



441 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 12:48:00.97 ID:TYuY3Yui.net]
>>420
単にunion使わずに(メモリー気にせずに)struct使うって話?

442 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 12:51:34.43 ID:QBDV3ETd.net]
あんなあおまいら・・
これ、コレクションをライブラリとして持てという
あるいはそれをどう作るかという話なんだわ
例をあげれば、AppleのCFMutableArray
Win32ならなんだ?

443 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 13:02:32.44 ID:14mINgXT.net]
>>426
型ごとに作るってこと

444 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 13:09:06.48 ID:TYuY3Yui.net]
>>425
> 俺は>>286派だって事。(>>370もあり。)
> >>364は無し。
要件違うものを持ってきてそんなことを言われてもなぁ

> てかどうでもいいところでunion使ってもろくな事にならないし。
> void*も無し。主にキャストが面倒だから。でもunionよりはvoid*を選ぶ。
unionになんかトラウマでもあるのか?
まあ好みの問題と言うのには同意する

445 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 13:09:40.87 ID:14mINgXT.net]
MyList(MyListDouble, double)
MyList(MyListMyListDouble, MyListDouble)

446 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 13:11:30.55 ID:gxbujSGs.net]
>>427
C的には、
> コレクションをライブラリとして持て
いらんわ
>

447 名前:るいはそれをどう作るか
必要なら自分で作るし苦労もしない

だと思うぞ。もちろんC++使ってもいいし、今更だろ。
ただそれ以前に、現実として、動的キー(辞書)が必要な用途はあまりないだろ。
Cの担当範囲なら、ほぼ全ての場合で構造体(静的キー)と配列で間に合う。(鶏と卵ではあるが)
もちろんこれら含めて汎用化したほうが楽だが、その分遅いのがLL言語な訳で。
[]
[ここ壊れてます]

448 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 13:17:05.76 ID:QBDV3ETd.net]
>>431
まあC++使えば済む話でもあるからな

449 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 13:27:26.48 ID:gxbujSGs.net]
>>429
> unionになんかトラウマでもあるのか?
いやお前少しは他言語もやれよ。
unionは他言語では廃止されている。理由はいろいろまずいから。
ググれば出て来るからやってみ。

まあそれ以前に君はunionの使い方を間違っている。
あれは、リード/ライトで型が違うときに使うものであって、
型違いだがサイズが同じだから突っ込む、という為の物ではない。
というか後者ならvoid*で受けていちいちキャストするというのが正しい。
しかしこれだと型チェックできなくなるからテンプレートにしろというのがC++だ。

450 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 13:29:31.36 ID:N+YJafLA.net]
形別 > union > void*

こうだな
もちろんサイズにもよるが



451 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 13:30:38.44 ID:N+YJafLA.net]
>>433
goto嫌いと同じにおいが

452 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 13:32:15.53 ID:N+YJafLA.net]
何度も書くけど、
外でメモリ確保解放強制はあり得ない

453 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 13:33:45.21 ID:N+YJafLA.net]
>>433
サイズが同じ?

454 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 13:34:53.52 ID:N+YJafLA.net]
unionの使い方は1つじゃないよ

455 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 13:41:10.88 ID:gxbujSGs.net]
>>432
Cは大前提としてそれがあるんだよ。
不満があればC++で大体事足り、それがbetterCだ。(俺の認識では)
つまり、リストが欲しいけど自分で作るのは面倒、だったらここだけC++使うか、って場合。

456 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 13:53:49.23 ID:E5EEKRTu.net]
>>433
> あれは、リード/ライトで型が違うときに使うものであって、
> 型違いだがサイズが同じだから突っ込む、という為の物ではない。
まあ確かにお前はunion使わない方がいいわ w
一応言っておくけど読み書きで型が違ったら値は保証されないよ

457 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 13:54:39.36 ID:YB2Y7dkJ.net]
union なくなると XEvent 困るだろう

458 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 14:04:10.84 ID:uK1pt60X.net]
unionて、メモリを節約できるのとそのメンバが同時に使われないってことがわかりやすいくらいだよな。
>>364もべつにunion使わなくてもいいわけだし。

459 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 14:11:28.22 ID:gp3BUyJn.net]
バズワード使うだけあってレベル低すぎる。>>433

460 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 14:20:45.06 ID:gxbujSGs.net]
>>440
> 一応言っておくけど読み書きで型が違ったら値は保証されないよ
値の保証はされてるだろ。
処理系に依存する(エンディアンが見えることが多い)というだけで。

いずれにしても、これが問題だと思う>>440のような馬鹿はunionを使うべきではない。
こんなの当たり前だろ、と理解できる奴だけがunionを使っていい。
そして現実として、unionを使わなければならない機会はほぼ無いから他言語では廃止されてる。
例えば、>>441とかは今なら継承で実装される。



461 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 14:21:28.04 ID:ULoSSJ2b.net]
union を使ったら見通しよく書けるのか?そうなのか?不思議な気分だ
よかったらサンプルコードを書いてほしい

462 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 14:51:40.09 ID:E5EEKRTu.net]
>>444
> 値の保証はされてるだろ。
されないよ、鼻から悪魔

463 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 14:58:48.36 ID:E5EEKRTu.net]
>>445
お前さんがどう思うかは知らんが>>364みてサンプルコードがが思い付かないならunionなんて使わない方がいい

464 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 15:15:38.90 ID:ULoSSJ2b.net]
>>447
それだけではわからないよ、実際に union の Child や Double の値を設定するところを見たいものだ
個人的にはうまくいかないと思っている
たぶんマクロを使うことになるし、マクロを使う

465 名前:だったら共用体なんか使わないほうがよかった、という結果になりそう []
[ここ壊れてます]

466 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 15:26:51.26 ID:14mINgXT.net]
何がわからないかわからない

467 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 15:35:05.11 ID:14mINgXT.net]
unionは、
普通に同時使用しないメンバに対して使われることもあるが
実際に使う環境を把握した上で
同じアドレスに対して複数のアクセス方法を
用いる場合にも良く使われる

一番あるのが、レジスタの定義
チップメーカーなどがヘッダとして提供したりする
ビットフィールドアクセスやワードアクセスなど、
複数のアクセス方法を使えるようにするため
あとは複数の型へのポインタをunionで定義したり

468 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 15:36:30.30 ID:14mINgXT.net]
>>364は環境に依存しない、
普通の排他メンバの使い方

469 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 15:41:58.78 ID:14mINgXT.net]
メモリをケチる為のunionは
時代とともに使う頻度は減っているが

複数のアクセス方法の為のunionは普通に使われる
もちろん環境依存コード
例えばWindows APIのLARGE_INTEGERも
この使い方のunion

470 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 15:46:20.38 ID:gp3BUyJn.net]
アセンブラじゃ共用が当たり前。だからCにある。それだけ。
x86のレジスタはまんま共用体。ワイヤー数、バス幅に制限があるんだから共用して当たり前。
本来、ハードの仕様を実装するためのもの。



471 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 16:09:53.11 ID:N+YJafLA.net]
なんか違う

472 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 16:11:44.21 ID:gxbujSGs.net]
>>449
まず大前提としてコードを再利用する仮定だ。
ベタにコピペした場合は関係ない。

>>364のunionは今なら継承で実装されることが多いはずだ。
当然Dataはテンプレート化され、
Previous,Nextへの書き込みは基底クラス、Dataへの書き込みは派生クラスに配置される。
これがC++的解決。

unionだと一見何でも書けるように見えるが、
実際は派生型を手動で扱っているのと同等なので、
共通書き込みルーチンを用意できない。これが>>448の言う、
> 個人的にはうまくいかないと思っている
で、俺もそう思う。
マクロを強引に使えば出来るかもしれんが、それなら上記C++的解決の方がマシ。

>>452
> メモリをケチる為のunionは
> 時代とともに使う頻度は減っているが
これって>>364の使い方、ということでいいのか?
それならC++的に言えば、
糞だからクラステンプレートと継承で対応できるようにして廃止した、というところだろう。

> 複数のアクセス方法の為のunionは普通に使われる
多分これ以外のunionは必要ない。
そして俺はこれについてはリート/ライトで型が違っても値が保証されていると認識している。
(一応言っておくが同じ値が読めるという意味ではない。《>>446の馬鹿は多分この勘違い》
プログラマから見て値が確定的、という意味だ。)
仕様に詳しい奴がいればよろしく。

473 名前:デフォルトの名無しさん [2017/07/29(土) 16:26:09.19 ID:mj0H/MXI.net]
初期化リストの話は終わったのか?

474 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 16:38:11.08 ID:Y1dtbxTh.net]
>>456
今union、次extern

475 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 16:51:08.52 ID:ULoSSJ2b.net]
>>453
たしかに遥か昔の DOS コールラッパではそうしていたけれども…なんか違うきがしないでもない
共用体の適切な使い方はおもいつかないね…

476 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 17:00:18.71 ID:ULoSSJ2b.net]
>>449 全部がわからない:−)
>>364 の方針で >>357 を書いてくれる人はいないものか
ちょっと想像がつかないんだ

void *data 派であるけれどもマクロの方はわかる、工藤智行氏の書籍にてさんざんやっていたからね https://www.amazon.co.jp/dp/4774100544/

477 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 17:05:21.12 ID:zJVnUUbX.net]
>>455
よく知らないなら黙ってりゃいいのに w

478 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 17:05:34.42 ID:EGnuLLJd.net]
共用体なんて使うとしたら、sdl_eventと同じように、enumとセットだろ〜?

479 名前:デフォルトの名無しさん [2017/07/29(土) 17:29:39.44 ID:Xv3aO8mX.net]
トリコロシ

480 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 17:35:09.29 ID:CXR2+t0L.net]
COBOLだとレベル番号で同じことが出来るね



481 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 17:35:29.83 ID:zJVnUUbX.net]
>>461
まあそうだね
もっと早くにその突っ込み入るかと思ったけどunionをとうとうと語る奴とか低レベルすぎて笑うしかない状態なのよ w

482 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 17:37:42.13 ID:14mINgXT.net]
>>364は自由な型じゃない
doubleのリスト
doubleのリストのリスト
doubleのリストのリストのリスト
...


他の型が必要ならunionに追加する

483 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 17:41:42.52 ID:gxbujSGs.net]
>>461
その場合も今は継承で実装されるのが普通で、それで何も問題ないだろ。
だからもう共用体は古いんだよ。それが俺の言った、
> JavaやC#の方が簡単だから。
> その後出てきた言語はCの駄目なところを改善している。(>>251)
であって、JavaもC#も共用体は廃止済み。

484 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 17:45:12.94 ID:gp3BUyJn.net]
JavaもC#もハナからOSやドライバを書く気ない。もちろんPascalで書く馬鹿もない。頓珍漢。ナンセンス。

485 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 17:45:49.99 ID:eThbJX9n.net]
#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;
}

486 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 17:50:31.58 ID:14mINgXT.net]
charが符号無しの環境?

487 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 17:55:22.53 ID:gxbujSGs.net]
>>467
JavaOSェ、、、

ただまあ、ハードが見えるレベルをC以外の言語で書くのは狂気の沙汰なのは同意する。
とはいえ、旧来のイベントオブジェクトがunionで出来ているのは、
・それがCの時代だったから
・古いから
であって、便利だからではない。
実際、新しいAPIは全部継承で実装されてるだろ。そういうことだよ。

488 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 17:58:59.45 ID:zJVnUUbX.net]
>>466
> C#も共用体は廃止済み。
何でこんな知識量でドヤれるんだろう? w
smdn.jp/programming/netfx/struct/1_structlayout_fieldoffset/#FieldOffsetAttribute

489 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 18:01:14.53 ID:14mINgXT.net]
強要隊に親を殺された?

490 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 18:01:47.45 ID:gxbujSGs.net]
>>471
つかお前C#知らんだろ。
それはレガシー用であって、レガシー以外でそれ使ったら殺されるぞ。



491 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 18:04:09.87 ID:14mINgXT.net]
実際に共用体はいろいろで使われているわけで

492 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 18:08:03.01 ID:FQLMCr49.net]
争いは同じレベルの者同士でしかうんたらかんたら

493 名前:デフォルトの名無しさん [2017/07/29(土) 18:10:06.13 ID:vlC06Wfm.net]
union 使っても
いいじゃないか
C言語だもの

494 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 18:10:09.26 ID:zJVnUUbX.net]
>>473
お前の糞職場は知らんけどMSはレガシー用なんて言ってないぞ
恥の上塗りかっこ悪 w
https://msdn.microsoft.com/en-us/library/system.runtime.interopservices.fieldoffsetattribute(v=vs.110).aspx

495 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 18:17:23.76 ID:gxbujSGs.net]
>>474
だから、レガシー以外は使われてないんだよ。
とはいえ、OSのAPIが共用体を返してくるんだから、
それを受け取れないのはまずいから手段も用意してはある、という話で。

>>364はC++/Java/C#なら継承で実装される。
その他の言語でも大体こうなる。理由は共用体がそもそも無いから。
俺は逆に、何故お前らがunionを使いたがるのかが分からんね。メリットは何もないだろ。

>>477
レガシー=obsoleteという意味ではないぞ。

496 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 18:26:02.72 ID:eThbJX9n.net]
C言語での組込み開発では共用体は普通に使われてる
>>468で示唆したような特殊機能レジスタの多重定義などが代表例

497 名前:デフォルトの名無しさん [2017/07/29(土) 18:26:39.61 ID:vlC06Wfm.net]
レガC

498 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 18:27:18.82 ID:14mINgXT.net]
使いどころでは使えって話
gotoといっしょ
>>364が使いどころかどうかは別として

499 名前:デフォルトの名無しさん [2017/07/29(土) 18:27:46.17 ID:vlC06Wfm.net]
>>479
てか、あると便利だよね。
よくわからないまま使うとハマるだけのことで。

500 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 18:28:35.21 ID:14mINgXT.net]
>>479
charにunsignedが無いのが気になってるわけだが



501 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 18:29:51.58 ID:zJVnUUbX.net]
>>478
> レガシー=obsoleteという意味ではないぞ。
バカってなんで言ってもないことに突っ込むんだろう?
みずから恥の上塗りすることもないだろうに w

502 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 18:30:55.63 ID:gxbujSGs.net]
>>479
それは知っているしそれはいいんだよ。
それ以外のケース、>>364みたいな使い方をお前らはやるのか?

503 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 18:32:39.97 ID:eThbJX9n.net]
>>483
ビットフィールド構造体の定義にはunsignedどうでもいいだろ
共用しているchar型変数の方にはunsigned付けたけど

504 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 18:33:12.58 ID:vlC06Wfm.net]
>>481
そうそう。わかってて使うなら gogo もありだ。

ていうかC言語だと使わないと変な書き方になってかえって読み辛くなることあるな。
try catch みたいな例外処理が書けないから。複数個所でエラーが出る可能性が
ある場合に処理を飛び越えて先に進ませる方法が for(;;) ブロックの中で break
使うぐらいしかなかったりして、ループでないのに for (;;) 使うぐらいなら goto 使った
方がまだ分かり易い。

505 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 18:34:01.67 ID:14mINgXT.net]
char, unsigned char, signed char
この辺は規格がいまいち

文字をunsignedにしなかったのもいまいち

あとは演算子の優先順位にも不満がある
ビット演算が弱すぎる

代入が = / 比較が ==
なのもいまいち

いろんな歴史的な理由があるんだろうけど

506 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 18:34:26.21 ID:zJVnUUbX.net]
>>481
> 使いどころでは使えって話
まあそういうことだね
環境も目的も制約も様々だから絶対unionでないとダメとかunionはレガシーしか使っちゃダメとか言う奴はたいていちょっとアレな人なんだと思う
まあ引っ込みつかなくなっちゃったんだろうね

507 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 18:35:03.24 ID:14mINgXT.net]
>>486
えっ?
本気で言ってるの?

508 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 18:36:30.47 ID:14mINgXT.net]
gogo

MP3関連のツールか?

509 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 18:54:34.75 ID:F0OdFQYT.net]
>>485
>>364 までして型をとる,というのも疑問だな‥

510 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 19:02:45.32 ID:A0tSwWs4.net]
バークレーソケットのソケットアドレス等で使わされてる感じだけど
自分から積極的に union を記述することは少ないな



511 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 19:18:41.24 ID:gxbujSGs.net]
というかマジで急にエアプ増えてね?

FieldOffsetを数字でベタ書きとか、かなり最悪のコードだぞ。(>>471内URL)
保守する場合は全部書き直しになる。(今更そこが変更されることもないはずだが)
真面目にこれを言っているID:zJVnUUbXはエアプだろ。
引っ込みつかないのはお前だ>>489

>>492
型を取るなら普通はC++的テンプレート解決だよな。
型なしがよければvoid*でいいし。

512 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 19:43:57.40 ID:zJVnUUbX.net]
反論できなくなってエアプとか w
分かりやすすぎるだろ

513 名前:デフォルトの名無しさん [2017/07/29(土) 20:48:24.50 ID:vlC06Wfm.net]
エアプってなに?

514 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 21:21:36.23 ID:VkCqDRe3.net]
エアプレーン

515 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 21:34:56.85 ID:vlC06Wfm.net]
エアーおならプ

516 名前:デフォルトの名無しさん [2017/07/29(土) 21:53:33.37 ID:qAu/jA2x.net]
>>468
ANSI C 規格への Microsoft 拡張機能を使用すると、ビット フィールドに対して char および long 型 (Signed と unsigned の両方) が許されます。

517 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 23:41:43.43 ID:KxGqyxM3.net]
知らない書き方だと思ったら、MSのCコンパイラの独自仕様なのか
どうやらそのビットフィールドをchar境界に制約するものみたいだけど、
こういう書き方だとビットフィールドの幅に見えて気持ち悪い

518 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 23:46:26.91 ID:14mINgXT.net]
マイクロソフト以外でも結構良くある
型指定可能なコンパイラ

enumの型指定とかも

519 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 23:49:52.99 ID:14mINgXT.net]
signedとunsignedはビットフィールドでも意味がある

1bitでsignedだと、符号ビットしか存在しない
値でいうと 0と-1

520 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 23:50:32.30 ID:14mINgXT.net]
>>486の「どうでもいい」の意味が不明



521 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 00:02:03.96 ID:1+DcPeTw.net]
1bitで表現できるのは0か1しかないのでは?
意味的には-1だろうが値としては1以外に表現する方法がない

522 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 00:25:20.56 ID:FGe2lUf3.net]
sizeof(int)==4とすると
468のsizeof(SFR)==1だが
468のcharをintに変えると sizef(SFR)==4 になる
(略)
アクセス違反でbitfieldが使えん可能性あり

523 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 02:07:11.27 ID:LfAaUMEW.net]
>>504
問題になるのは保存時じゃなくて読み出し時

524 名前:デフォルトの名無しさん [2017/07/30(日) 02:36:29.18 ID:FQwxQ4LP.net]
初学者なんだが教えて欲しい

状況:作ったプログラムが思うように動かないから途中の値を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

階層が深くなると値が変わるんだが、何が原因かわかる人いる?

525 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 02:41:51.54 ID:pLyoXQEm.net]
原因はバグ。これ以上は再現するソースコードがないと分からない

526 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 02:45:37.97 ID:LfAaUMEW.net]
変な状態が発生する状態を保ったまま
処理を削っていく
削っていって発生しなくなったら
その削ったところに何かヒントがあるかも

1レスに収まる範囲になったらここにすべてアップ

527 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 03:02:39.88 ID:FQwxQ4LP.net]
そんなに簡単にバグるものかと思って聞いてみたけど、汚ねえプログラムを添削してもらうのも申し訳ないからそういうものだと納得するよ、thx

528 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 03:29:48.70 ID:KxWScrhl.net]
>そんなに簡単にバグるものかと思って聞いてみたけど
次はコンパイラのバグとか言い出して大騒ぎして
そのうち人間のいい加減さに絶望する

普段から人間がどれだけ間違えてるか思い知るがいい

529 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 04:54:25.66 ID:0PJrZm1n.net]
>>507
初心者がやりそうな間違い。

1. 配列の A の要素数が足りない。
2. A を int *A; 等と宣言しておきながらメモリ確保していない。
3. メモリ確保しているがバイト数が足りない。
4. if 文を多重に使っているが階層を誤解している。
5. 自分で変数や配列の内容を書き換えている事に気付いていない。

4は例えば if (...) ...; if (...) ...; else ...; のようになっている場合に if (...) { ...; if (...) ...; else ...; } となると勘違いしている場合。
実際は if (...) { ...; } if (...) { ...; } else { ...; } になって最初の if と次の if は別物。
インデントがおかしいと騙される。しかしCコンパイラはインデントなど見ていない。

530 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 04:59:02.25 ID:9ZftmVJd.net]
--j  最近は前置が流行ってるのか?



531 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 05:07:33.79 ID:7dS2HrxN.net]
じゃあ俺のあてずっぽうの勘だと主たる原因はフォントサイズが小さすぎること
メインの原因はA[i]が紛れ込んでいること

532 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 05:21:48.22 ID:0PJrZm1n.net]
>>513
bokko.hatenablog.com/entry/20080606/1212695409

533 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 05:50:22.55 ID:3UqYvyNk.net]
>>507
for( j = x - 1; j >= 0 ,--j ) (jは最初1)
--j の前が ; であるべきなのに , てことはないよな。
投稿時のtypoだろうな。

if ( j != 0 )
printf( "a1=%d, j=%d\n", A[j], j )
if
の感じから見て、元のifのthen節を{}で囲ってなかったところに
printf() を挿入したから実行条件が変わっちゃった、かな。
「ぶらさがりif文にまつわる問題」てやつ。
(>>512 の指摘 4.)

534 名前:デフォルトの名無しさん [2017/07/30(日) 06:32:09.81 ID:bW/sP0k9.net]
>>515
C++訛りとは限らんぞ
機械語のオートインクリメントは++が後置で--が前置になっていて
それが透けて見えるように書いていると--は前置だし

535 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 06:41:47.40 ID:9ZftmVJd.net]
オーバロードした++やイテレータは前置と後置で速度が違うのか。後置使うやつがいなくなるじゃないか。

C++は欠陥品だな。++Cって名前にしろよ。

536 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 07:03:49.82 ID:1+DcPeTw.net]
>>517
機械語の仕様や挙動はCPUの種類による
昔の話だけど8ビットCPUの頃は、インテル(ザイログ)とモトローラでは逆になっていた記憶がある

537 名前:デフォルトの名無しさん [2017/07/30(日) 07:39:01.94 ID:bW/sP0k9.net]
>>519
LDIとLDDは逆じゃなく両方後置だ
そんな重箱の隅じゃなく本当に逆な例を挙げられるか?

538 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 07:40:09.47 ID:9ZftmVJd.net]
オートインクリメントってなんだ?
z80や6809にそんなのあったか?

539 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 07:42:23.87 ID:9ZftmVJd.net]
なんだ、ブロック転送のことか。

540 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 08:18:53.67 ID:1+DcPeTw.net]
Z80と6809でスタックポインタを弄るときのPUSH/POPでポインタの増減が前置後置逆になってたはず



541 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 08:36:50.77 ID:1+DcPeTw.net]
少し調べてみたらやはり逆っぽい
C言語風に表現すれば
6809のPUSHは前置 *--SP、POPは後置 *SP++
Z80のPUSHは後置 *SP--、POPは前置 *++SP

542 名前:デフォルトの名無しさん [2017/07/30(日) 09:05:35.12 ID:bW/sP0k9.net]
スタックポインタを意識してCのコードに--rとか書かねえよ

543 名前:デフォルトの名無しさん [2017/07/30(日) 13:04:06.19 ID:0PJrZm1n.net]
ま、そういうのは最近のコンパイラなら最適化で跡形もなく消えちゃう事もあるので普通は考えても意味ないと思う。

544 名前:デフォルトの名無しさん [2017/07/30(日) 13:29:40.49 ID:bW/sP0k9.net]
そういう問題じゃねえんだよ
話についてこれないならROMってろ

545 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 14:11:56.37 ID:W8z6HKGT.net]
C言語始めるためにいろんなサイトを転々としてVScodeとかVS2017とかをインストールしてみたんだけど訳がわからん
サイトに沿って設定とかしたけどどうすればいいかわからなくてどうしょうもない
Javaも少しやっててメモ帳に書いてたんだがあれくらい簡単じゃないのか
つまりどうしたいかというと
助けてくださいお願いします

546 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 14:31:49.48 ID:0PJrZm1n.net]
>>528
Linux インストールしちゃえよ

547 名前:デフォルトの名無しさん [2017/07/30(日) 14:47:05.86 ID:bW/sP0k9.net]
>>528
Javaはどんな環境でやってるんだ?
それに近いC環境がとっつきやすいと思うぞ

548 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 14:48:46.05 ID:1+DcPeTw.net]
>>528
とりあえずプロジェクトを新規作成して、テンプレートからWin32コンソールアプリケーションを選択、オプションで空のプロジェクトをチェックする
その後、ソースファイルに新しい項目を追加してC++ファイルを選択
この時デフォルトではC++(*.cpp)が選択されるので、気になるなら拡張子を*.cに変更すればC言語のソースが記述できる

549 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 15:22:25.39 ID:W8z6HKGT.net]
>>530
【Java】ゲームプログラミング超入門: www.youtube.com/playlist?list=PLJ86MSrhnFKVQPf-E8y0FZKv7uzR4L4Dt
この動画の人にずっとついていってやってた
Part32くらいで少し飽きて一二週間離してて久しぶりにやったら結果が違っててよくわからなくなって別のやつやろうとしてた

550 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 16:31:40.47 ID:FGe2lUf3.net]
A[j]のjの型は size_t か?



551 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 17:51:36.41 ID:AatiOL5G.net]
有名な土方プログラマーの、T Umezawa の動画だろw

Java, C# を、テキストエディタで書いて、端末でコンパイルする

552 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 18:00:05.83 ID:2PlgEyLl.net]
>>533
配列のサイズの範囲内ならなんでもいい

553 名前:デフォルトの名無しさん [2017/07/30(日) 20:43:35.11 ID:OOsADo1S.net]
>>528
gcc入れろ。

554 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 22:04:46.57 ID:7dPqlOSS.net]
tcc オススメ

555 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 22:18:32.51 ID:pLyoXQEm.net]
>>528
自分の場合はcygwinでgcc使ってる。インストール楽だし

556 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 23:12:47.40 ID:W8z6HKGT.net]
>>536
>>538
やっぱGCCがいいのかな
でもなんかVS2017使いたいんだよね
一回入れてみたことあるけどなんかよくわからんというか
その点VS2017は安心するというか
使ったことないけど

557 名前:デフォルトの名無しさん mailto:sage [2017/07/31(月) 00:11:52.08 ID:M3mLjUUM.net]
clコマンド使えばいいんじゃねえのか

IDEの機能なんて初心者は1%も使えない
普通のエディタでも初心者だと5〜10%くらいの機能しか使えない

558 名前:デフォルトの名無しさん [2017/07/31(月) 05:37:23.56 ID:VZjnFU9V.net]
>>539
普通のコマンドプロンプト出して、↓のバッチファイルを実行するとclが使えるようになる。
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"

cl your_program.cpp /EHsc

559 名前:デフォルトの名無しさん mailto:sage [2017/07/31(月) 08:29:21.54 ID:XaGlTjBV.net]
プロジェクト作成
i.imgur.com/7qtR3n9.png
i.imgur.com/ZgnClpW.png
i.imgur.com/bNyynXB.png
i.imgur.com/8aLQd1Y.png
i.imgur.com/KTIzIfq.png
i.imgur.com/yKIKgn8.png
i.imgur.com/Zi9GQTT.png
i.imgur.com/owrBvd7.png

560 名前:デフォルトの名無しさん mailto:sage [2017/07/31(月) 08:29:31.01 ID:XaGlTjBV.net]
コーディング、ビルド
i.imgur.com/nnrqbkH.png
i.imgur.com/djr81Jj.png
i.imgur.com/HyI9a1R.png



561 名前:デフォルトの名無しさん mailto:sage [2017/07/31(月) 08:29:39.14 ID:XaGlTjBV.net]
実行、デバッグ
i.imgur.com/M2aVKo8.png
i.imgur.com/ZtiQAYM.png
i.imgur.com/TnFClZ0.png

562 名前:kadesu [2017/07/31(月) 10:32:48.65 ID:RVdenN8P.net]
Selenium WebDriverでHTTP refererを設定する方法をご教授下さい。
chromeを使用しています。

■やりたい事
referer.com/target.com/

■実装イメージ
options->AddArgument("--referer=referer.com/");
driver->Navigate()->GoToUrl("target.com/");

■環境
Win7 64bit
visual studio
Chrome driver

563 名前:デフォルトの名無しさん mailto:sage [2017/07/31(月) 10:37:24.99 ID:yrizDXBC.net]
>>542-544
ってVS2017だけ?
もしかしてVScode入れる意味なかった?

564 名前:デフォルトの名無しさん [2017/07/31(月) 18:53:16.57 ID:Y/tHh3+o.net]
>>539
別にVSでも良いけど、差し当たっては新規作成とビルド->実行くらいは覚えんと。
(デジタルネイティブって言葉はどこ行ったんだろう。。。30代の自分が子供の頃でも迷った記憶は無いのに)

新規だけど、何も無いところから初めたい。
新規作成で空の何とか選べば意図通りに行きそう?とか、直感が働くのがデジタルネイティブの筈なんだが。

最初はcppファイルでCの勉強とかでも良いと思う。
むしろその方が型にうるさいから好都合だし。

565 名前:デフォルトの名無しさん mailto:sage [2017/07/31(月) 21:16:14.24 ID:v4rHNYrD.net]
リアルなプログラミングネイティブなのはベーマガ世代だけだよ。

566 名前:デフォルトの名無しさん [2017/07/31(月) 21:53:07.86 ID:VZjnFU9V.net]
トラ技世代はどうなるんだよ

567 名前:デフォルトの名無しさん mailto:sage [2017/07/31(月) 22:05:43.56 ID:v4rHNYrD.net]
ネイティブになるには小中学生時代に大量のコードを読む必要があるから。
その頃からトラ技読んでたらリアルデジタルネイティブになれるだろうな。
おれは回路はスラスラ読めない、書けない。このコンデンサは何用で〜とか考えないと無理。
母国語と同じ感覚、ネイティブになるには高校からじゃ遅すぎるよ。

568 名前:デフォルトの名無しさん mailto:sage [2017/07/31(月) 22:05:52.73 ID:KcGONOHk.net]
Z80とメモリとPIOの回路図から始まるんですかい

569 名前:デフォルトの名無しさん [2017/07/31(月) 22:12:45.15 ID:VZjnFU9V.net]
>>550
ごめんな、俺は社会人デビュー後だ
学生時代はhFEすら知らなかった

570 名前:デフォルトの名無しさん [2017/07/31(月) 22:18:29.43 ID:h/AGTSOY.net]
バックアップ活用テクニック



571 名前:デフォルトの名無しさん mailto:sage [2017/07/31(月) 22:24:57.05 ID:7wcG+43N.net]
紙テープみて、「ここバグだよ」ってぼそっと言う人

572 名前:デフォルトの名無しさん mailto:sage [2017/07/31(月) 22:29:30.63 ID:nnrvrhsw.net]
学生の頃はZ80や6809のアセンブリを手書きしてハンドアセンブルしてたなあ
>>523で書き込んだスタックの構造の違いに気付いたのもその頃

573 名前:デフォルトの名無しさん mailto:sage [2017/07/31(月) 23:15:45.49 ID:MZt0w9cd.net]
Cマガ復活させればここの難民は少しは救われるかな

574 名前:デフォルトの名無しさん mailto:sage [2017/08/01(火) 05:31:22.97 ID:o6jic4cS.net]
CJJ かDDJでも良いけど

575 名前:デフォルトの名無しさん [2017/08/01(火) 06:09:11.07 ID:CJO4kzTH.net]
ざべ

576 名前:デフォルトの名無しさん mailto:sage [2017/08/01(火) 06:45:19.65 ID:bsIAKS/0.net]
ハード指向なら トラ技
ソフト指向なら Interface

最近はかなり曖昧になってきてるけど…

577 名前:デフォルトの名無しさん mailto:sage [2017/08/01(火) 14:13:56.93 ID:dby33sg7.net]
>> 557-558
それなんですか?

578 名前:デフォルトの名無しさん [2017/08/01(火) 14:36:29.29 ID:CJO4kzTH.net]
ざべ=THE BASIC 技術評論社
元々は名のとおりBASICの雑誌だったが
いつしかオタッキーなPC雑誌へと変貌していった
ikura.2ch.net/test/read.cgi/i4004/1010850340/

579 名前:デフォルトの名無しさん mailto:sage [2017/08/01(火) 16:13:23.83 ID:8vfI5Dp4.net]
CJJ
iss.ndl.go.jp/books/R100000002-I000000074061-00

DDJ
Dr. Dobb's Journal Japan

580 名前:デフォルトの名無しさん [2017/08/01(火) 22:24:59.83 ID:DyBYTlGz.net]
547だけど、ごめん。。。
変なおっさん呼び込んじゃったね。。。



581 名前:デフォルトの名無しさん mailto:sage [2017/08/01(火) 22:38:50.29 ID:vXOO0+4J.net]
ここは同窓会みたいなものだから
昔話が大好きなんだよ

582 名前:デフォルトの名無しさん mailto:sage [2017/08/01(火) 22:54:03.38 ID:6pzqaY7a.net]
実装の話にバズワードぶっこんでくるガキはすっこんでろ。

583 名前:デフォルトの名無しさん mailto:sage [2017/08/02(水) 07:28:23.46 ID:mfenbxuD.net]
>>565
何をバズワードと思ったの?

584 名前:デフォルトの名無しさん mailto:sage [2 ]
[ここ壊れてます]

585 名前:017/08/02(水) 09:02:58.28 ID:ytmpxP9x.net mailto: >>566
同窓会
[]
[ここ壊れてます]

586 名前:デフォルトの名無しさん mailto:sage [2017/08/02(水) 09:17:35.26 ID:a1RMIIdL.net]
なんの実装の話だっけ?

587 名前:デフォルトの名無しさん mailto:sage [2017/08/02(水) 10:49:51.86 ID:nZqt0zvZ.net]
Facebook

588 名前:デフォルトの名無しさん mailto:sage [2017/08/02(水) 23:13:24.31 ID:pW5qBrxf.net]
Dr. 弩ブス Journal

589 名前:デフォルトの名無しさん [2017/08/03(木) 02:45:12.28 ID:CXemL7CS.net]
x^2+y^2=5をみたすx、yを求めたいんだけどどんなプログラムがええのかな

590 名前:デフォルトの名無しさん [2017/08/03(木) 02:45:35.24 ID:CXemL7CS.net]
ミス
x^2+y^2=25をみたす自然数x、yを求めたいんだ



591 名前:デフォルトの名無しさん mailto:sage [2017/08/03(木) 03:13:34.90 ID:2Hqooo+i.net]
#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;
}

592 名前:デフォルトの名無しさん mailto:sage [2017/08/03(木) 06:50:15.59 ID:84Bc5dj3.net]
数学的には {3, 4}, {4, 3} なんてことはわかってるんだからそのまま表示するプログラムでもいい

なるべく応用が効くようなコードにしたいなら
>>573は色々と突っ込みどころが

sqrt(25)は手計算じゃなくてコードで示そう
素直にsqrtを使っても良いし、
x * x < 25
y * y < 25
という条件でもいい

計算オーダー的に二重ループもない
25がちょっと大きくなっただけで計算量がヤバイ
int y = (int)sqrt(25-x*x+.5);
としてから条件を満たすか調べると計算オーダーが減る

593 名前:デフォルトの名無しさん mailto:sage [2017/08/03(木) 07:04:57.35 ID:HZxS4C1U.net]
You Ain't Gonna Need It

594 名前:デフォルトの名無しさん mailto:sage [2017/08/03(木) 07:08:22.87 ID:7weo7Xpr.net]
Keep it simple, stupid

595 名前:デフォルトの名無しさん mailto:sage [2017/08/03(木) 07:35:44.75 ID:84Bc5dj3.net]
だからこれで良いって言ってるだろ

#include <stdio.h>
int main(void) {
printf("x=4 y=3\n");
printf("x=3 y=4\n");
return 0;
}

596 名前:デフォルトの名無しさん mailto:sage [2017/08/03(木) 07:41:51.07 ID:84Bc5dj3.net]
あ、日本語が読めないのね
Perdon!

597 名前:デフォルトの名無しさん mailto:sage [2017/08/03(木) 07:54:23.54 ID:FkeiaVGn.net]
公開オナニーは宿題スレでやれ

598 名前:デフォルトの名無しさん mailto:sage [2017/08/03(木) 07:56:39.62 ID:2Hqooo+i.net]
YAGNIとKISSか
そこまで意識した訳では無いけど>>573は適当そのもののコードだからな
汎用性は皆無と言ってもいいよ
正直、質問者の意図もよく分からんしな

599 名前:デフォルトの名無しさん mailto:sage [2017/08/03(木) 08:25:09.96 ID:3OMIPeoe.net]
単なる課題だろう
ただ、発展形としてはいろいろ考えられる

ペル方程式 - 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

600 名前:572 [2017/08/03(木) 09:02:23.62 ID:i8hgiPVK.net]
うおおおおおおおおお答えてくれた人ありがとう

適当にスレ検索してここにたどり着いたけどスレチだったようだ ほんとにごめん 100万年ROMるわ



601 名前:デフォルトの名無しさん mailto:sage [2017/08/03(木) 09:18:16.02 ID:DNJcAlnm.net]
>>574
例えば、50になるとヤバいか?

602 名前:デフォルトの名無しさん [2017/08/04(金) 23:42:56.37 ID:RX2ZdH5Q.net]
ガチ初心者の僕にポインタの使い道を教えてください

603 名前:デフォルトの名無しさん mailto:sage [2017/08/04(金) 23:49:56.22 ID:E/blHrew.net]
配列と添え字でやりくりできてるうちは必要性がないぐらい

604 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 00:07:03.35 ID:cTKQoLNW.net]
広大なメモリー空間の海を自由に泳ぎ回りたい時

605 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 00:54:39.37 ID:Xh3Z77YL.net]
[s]scanfしたいとき

606 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 01:53:38.85 ID:hIPGEPA7.net]
ポインタは演算コストが安いから重宝する

607 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 02:13:08.60 ID:ZBBOV18T.net]
ポインタの演算コストって普通の整数演算と違うの?

608 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 02:22:37.47 ID:AmDvMFkm.net]
ポインタに+1したら1増えるのかよ?デバッガで値見てみ。

609 名前:デフォルトの名無しさん [2017/08/05(土) 05:11:53.62 ID:dUt+j3iS.net]
>>584
printf("Hello, C world!\n");
この一文でもう既にポインタを使っているわけだが?

610 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 05:22:24.07 ID:6vPjJVmL.net]
使ってるから何?



611 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 05:53:46.66 ID:AmDvMFkm.net]
ポインタの使い道を答えたら逆ギレするガチ初心者。
おそらくポインタを勘違いしてるからキレてんだろうな。

612 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 09:33:54.76 ID:FQO/+BoZ.net]
>590
char *で実験する様子が(ry

613 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 09:44:09.47 ID:B4rhQgJR.net]
>>591
初心者にありがちな間違い
ポインタと配列は区別しよう

関数に配列を渡した時の解釈について言及しているなら、ガチの初心者に対しては不適切

614 名前:デフォルトの名無しさん [2017/08/05(土) 09:59:39.56 ID:dUt+j3iS.net]
>>595
おまえも仮引数と実引数を区別しろ

615 名前:デフォルトの名無しさん [2017/08/05(土) 10:02:18.44 ID:xVRX2iSI.net]
void * に1を足す記述がエラーも警告も無しでコンパイル通ってしかも何事もなく1足されてたのを発見した時は驚いた。
gccってそういう仕様だったんだね。

616 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 11:10:13.55 ID:gO/VMD2L.net]
仮引数
実引数

何用語?

617 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 11:13:38.50 ID:hIPGEPA7.net]
いくらなんでも流石にそれぐらいは自分で調べて欲しいレベル

618 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 11:15:51.54 ID:B4rhQgJR.net]
>>598
Cの規格にはない用語だな
きっと別の言語なんだろう

文字列リテラルがポインタ wな謎言語

619 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 11:24:58.14 ID:tl2KBfJf.net]
仮引数と実引数はC用語じゃねえの?

620 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 11:32:07.13 ID:jiOahgu4.net]
仮引数と実引数はJIS X3010にも定義されている用語
仮引数はparameter、実引数はargument
ただ>>596が何を言いたいのかはよく分からん

要するに仮引数はプロトタイプ宣言などで仮に与える引数(型さえ明確なら何でもいい)のことで
実引数は式の中で実際に使われる引数(関数で実際に利用するので名前は重要)のこと



621 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 11:34:21.17 ID:hIPGEPA7.net]
>>600
アセンブラのオペランドにイミディエイト出来ないものはRO領域に格納されるのでアドレスが割り振られポインタ管理できる

>>601
言語固有の用語ではなく構造化プログラミングの用語

622 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 11:35:58.99 ID:B4rhQgJR.net]
ああ、argumentとparameterをJISはそう訳してるのか
それはすまん

623 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 11:37:18.40 ID:B4rhQgJR.net]
>>603
ぷぷぷ
必死だな 配列とポインタが違うって事 知ってるかい? w

624 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 11:40:54.82 ID:B4rhQgJR.net]
なんか、昔はポインタと配列の区別を知らない筆者の書いた入門書で障害児が量産されたと聞いたが
その中の一人かな

625 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 11:41:33.20 ID:hIPGEPA7.net]
知っていますよ

626 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 11:50:23.17 ID:B4rhQgJR.net]
>>607
> アセンブラのオペランドにイミディエイト出来ないものはRO領域に格納されるのでアドレスが割り振られポインタ管理できる
知っているとは思えない発言なんだが

627 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 11:54:45.67 ID:AmDvMFkm.net]
RO領域って何?

628 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 11:59:40.46 ID:hIPGEPA7.net]
>>608

>

629 名前:文字列リテラルがポインタ wな謎言語

なぜ文字列リテラルがポインタだと謎な言語なのでしょうか?
また>>608のその文のどの辺りが間違っていますか?

後学までにご指摘頂けるとありがたいです。
[]
[ここ壊れてます]

630 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 12:03:38.04 ID:hIPGEPA7.net]
>>609
ReadOnly領域です
まぁ割り当て方はリンカ次第ですが



631 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 12:32:48.74 ID:B4rhQgJR.net]
>>610
文字列リテラル即ち配列
配列とポインタは異なるもの
∴ それを同じとするのは謎言語

> 後学までにご指摘頂けるとありがたいです。
ROなんて決まってねーし
即値で表現できない(struct foo){1,2,3}なんてのはアドレス欲しかったら&で取らなきゃいけねーし

何もかにもがデタラメ

632 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 12:38:11.97 ID:GxOZ02Sj.net]
なんかニワカ臭

633 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 12:38:15.34 ID:AmDvMFkm.net]
処理系も指定せず意味不明杉。どっかで頓珍漢な呼出規約の説明してた人と同一人物じゃないのか。

634 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 13:12:31.66 ID:hIPGEPA7.net]
>>612
>それを同じとするのは謎言語
Cの文字列はcharの配列
それはリテラルでも変わりませんよ?
それ自体が謎というならもうCは無理でしょう

>ROなんて決まってねーし
特殊なリンカでない限り大抵のリンカは定数はROに配置しますよ?

>即値で表現できない(struct foo){1,2,3}なんてのはアドレス欲しかったら&で取らなきゃいけねーし
即値とリテラルが区別出来ていないのでは?
リテラルだろうとメモリ上に配置されたものはアドレスが振られています

>何もかにもがデタラメ
私には貴方がなにも知らないようにしか見えません

635 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 13:19:25.82 ID:LM2wNYVN.net]
>>615
>特殊なリンカでない限り大抵のリンカは定数はROに配置しますよ?
組込みか何か?

636 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 13:20:36.17 ID:239At3Tg.net]
604 デフォルトの名無しさん[sage] 2017/08/05(土) 11:35:58.99 ID:B4rhQgJR

ああ、argumentとparameterをJISはそう訳してるのか
それはすまん


だっさ最低限の日本語も知らずに日本の2chに書き込むなよ

637 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 13:21:53.41 ID:hIPGEPA7.net]
>>616
今は組み込み屋ですね
昔はアプリ屋でWinやAndroid触ってました

638 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 13:26:16.29 ID:3YqA5kDS.net]
もしかして配列とポインタの区別すらついてないのか

639 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 15:28:27.35 ID:AkDeKfTH.net]
Cだと実際区別ないよね
長々と罵りあってるのに具体的な説明がひとつも出てなくてわろた

640 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 15:41:07.75 ID:B4rhQgJR.net]
>>615
こいつダメだ 何もかもがデタラメ
ポインタと配列の区別
リテラルと即値の区別

何も出来てない



641 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 15:43:44.88 ID:B4rhQgJR.net]
>>620
無知を自慢しなくても良いから

642 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 16:11:57.11 ID:uXlFBIBD.net]
シンタックスシュガーですよ。

643 名前: mailto:sage [2017/08/05(土) 16:14:56.43 ID:40G0sflG.net]
6809 のアドレッシングモードが懐かしい
リテラルと即値の区別は 6809 を触っておればわかるよね
6809 搭載のPCIボードを誰か作ってくれないかな

644 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 17:47:19.45 ID:dV9p14Wx.net]
char *pointer;
char array[1];

・・・・・・
pointer++; /* OK */
array++; /* error */

645 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 17:51:18.49 ID:xVRX2iSI.net]
>>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] も
できたりして見た目

646 名前:が同じになる。
多分初心者はこれにハマることがあると思う。特に関数の引数をs3のように書いてしまい、
それでs4を引き渡そうとした時とか、あるいはその逆の時とかね。(そして昔のコンパイラは
警告も出さずに通ってしまい動かしてからバグに悩むと)。
[]
[ここ壊れてます]

647 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 18:08:09.16 ID:PFeVLmXg.net]
cで一番難しいのは、constだと思う。
間違えてても、動いちゃうからなー
なくても困らないけれど、厳密に宣言しようとおもうと慣れが必要。

char ** とか

648 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 18:10:24.82 ID:PFeVLmXg.net]
あっ、あと二次元配列とかは、関数の引数に指定しようとするとはまるね。

649 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 19:34:33.25 ID:vX9Ad9Pg.net]
"constは左に掛かる"

char const **s; // charを修飾
char * const *s; // char *を修飾
char ** const s; // char **を修飾

と書けば何も迷うことはない

650 名前: mailto:sage [2017/08/05(土) 19:38:19.13 ID:vHyXltX+.net]
では const char **s は?



651 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 19:39:51.34 ID:vX9Ad9Pg.net]
>>630
char const **s;
と一緒

652 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 00:10:43.00 ID:+MX/dj54.net]
>>630
「では」 がconst

653 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 00:11:43.92 ID:ljqAECQw.net]
forkで子プロセスを複数生成した際に、子プロセス間で変数を共有、または子プロセスから他の子プロセス(親は同一)の変数にアクセスする方法って有りませんか?

共有メモリ以外でお願いします

654 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 00:18:14.02 ID:+MX/dj54.net]
ファイル経由

655 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 00:42:21.39 ID:LLgtDDDS.net]
pipe

656 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 07:47:08.77 ID:D2MwPYUj.net]
大喜利をやれということなのかな

657 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 07:49:51.80 ID:UjkuucW3.net]
ptrace

658 名前:デフォルトの名無しさん [2017/08/06(日) 10:57:12.05 ID:3gNA0Uyl.net]
>>633
内部的には共有メモリと同じなんだろうけどmmapなんかどうだ?

659 名前:633 mailto:sage [2017/08/06(日) 12:30:30.67 ID:QIgcqg1l.net]
すみません自決しました

660 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 13:28:03.88 ID:fp1GLRR7.net]
書き込めると言うことは自決は失敗か



661 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 14:15:03.73 ID:fAxfwMN0.net]
自動で書き込むスクリプト作ったんじゃろ

662 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 14:32:55.81 ID:/dqOVGNE.net]
多倍長演算って10000進法でやってる?
それとも2^n進法?

663 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 14:33:22.10 ID:nazawjTw.net]
>>633
> 共有メモリ以外でお願いします
共有メモリがダメな理由が書いてないからネタなんだろうな

664 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 14:36:56.91 ID:nazawjTw.net]
>>642
32bit マシンでも 2^32 進数なんて使ってないが...

665 名前:デフォルトの名無しさん [2017/08/06(日) 15:27:01.03 ID:3gNA0Uyl.net]
>>643
難しくてわからないからじゃね?
あるいは宿題がそういう風に出てしまった。

666 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 15:42:53.54 ID:LLgtDDDS.net]
UNIX SOCKET

667 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 15:58:13.64 ID:pnlX0fdh.net]
>>645
どっちにしてもスルーするのが正解

668 名前:633 mailto:sage [2017/08/06(日) 16:02:38.93 ID:qTrjZ2YT.net]
>>643
コードが無駄に長くなるので好きじゃないんです
どうしてもって時以外は使いたくないです

669 名前:デフォルトの名無しさん [2017/08/06(日) 16:31:30.70 ID:ThMEkv3I.net]
>>602
596だが
おまえ、どこから流れ読んでる?
>>593あたり前後の関係よく見てみな
>>595がいかに頓珍漢な噛みつき方しているか牛でもわかるぞ

670 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 16:47:17.37 ID:r2XWWSNC.net]
>>649
ポインタと配列の区別がつけられない障害児のID:dUt+j3iSか
出会った入門書が悪かったんだから、もう諦めてポインタのない言語を学びなおせ

お前にゃCは無理って事だ



671 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 16:48:57.70 ID:r2XWWSNC.net]
ポインタを教えてくださいと言ってる初心者に配列使って見せて
「これがポインタだっ どやっ」

笑うしかないな

672 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 16:52:58.17 ID:4cVoKrwP.net]
やっぱりポインタの勉強するには柴田ぼーよー先生のポインタの本がいいんでしょうか?

673 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 16:56:06.63 ID:r2XWWSNC.net]
ID:dUt+j3iSにどんな本使ったか聞いて、それは避けるべきだと思うよ

674 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 17:02:15.95 ID:jhhg/GBw.net]
こいつらの反論が反論になっていないな
C分かっていればそのコードが
ポインタ渡しになっていることは直ぐに分かるんだけどね
まぁスルーが得策だよ
ID:dUt+j3iSはID:r2XWWSNCに構ってはいけない

675 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 17:23:37.54 ID:OSHq4q+H.net]
問題はそこではなくて、ポインタの話からいきなり仮引数だの実引数だのとかの話に飛躍したことだと思うのだがな
まあだいたい想像は出来る
何故だか初心者本でよく見られる間違いとして、関数の呼び出し側の引数が実引数、関数の受け取り側の引数が仮引数、という説明をそのまま受け入れていたのだろうな
言語によってはその通りかも知れんが、少なくともC言語のJIS X 3010の解釈とは異なっている

676 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 17:28:55.73 ID:r2XWWSNC.net]
>>654
ID:jhhg/GBwもポインタ理解出来てない障害児か
初学時になんて本使った?

677 名前:デフォルトの名無しさん [2017/08/06(日) 17:35:06.21 ID:ThMEkv3I.net]
>>654
ご忠告どうも
気持ちだけありがたく貰っとくyo

>>656
K&R 1stだが何か?

678 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 17:37:29.70 ID:MVEPApHK.net]
C言語でもその解釈で全然問題無いと思うけどな俺は
どっちにしてもID:r2XWWSNCはど素人のくせに
質問の仕方も知らない無礼な奴と言う事には間違いはないだろう

679 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 17:44:53.62 ID:OSHq4q+H.net]
>>657
実引数として配列を用いて関数呼び出しを行えば、呼び出された関数は仮引数としてポインタで受け取ると言いたいのだろう
K&Rでも実引数と仮引数はそういった説明をしていたか?

680 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 17:54:58.87 ID:r2XWWSNC.net]
>>657
おメーには聞いてねーよ 障害児



681 名前:デフォルトの名無しさん [2017/08/06(日) 18:16:39.32 ID:ThMEkv3I.net]
>>659
ああしていたよ
おまえには読み取れなかったんだろうがな

>>660
無礼なやつだな
俺は障がい者手帳は交付されてねえよ
勝手に妄想すんな精神分裂病患者め

682 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 19:45:26.91 ID:r2XWWSNC.net]
>>661
> printf("Hello, C world!\n"); これがポインタだっ どやっ
手帳申請しろよ w

683 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 19:52:07.02 ID:OFkcQ32C.net]
>>662
>>661 にそんなことは書かれているのか?

684 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 19:55:39.33 ID:zQpO4a2U.net]
そういやシンタックスシュガーと言えば、昔々こんなのが動いたのを初めて見た時は驚いたな。
https://paiza.io/projects/XOWJRDaMZQIIu9cF5Ex1Ug
本当にポインタ計算してるだけという。

685 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 20:53:33.24 ID:r2XWWSNC.net]
>>659
ガイジには読み取れなかったようだ
> When an array name appears as an argument to a function, the location
of the beginning of the array"s passed;

良い時代になったもんだ 歴史的資料がきちんと公開されている

686 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 21:33:36.77 ID:r2XWWSNC.net]
誤読される可能性があるので追記
>>659
ガイジのID:ThMEkv3Iには読み取れなかったようだ
> When an array name appears as an argument to a function, the location
of the beginning of the array"s passed;

良い時代になったもんだ 歴史的資料がきちんと公開されている

687 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 21:39:44.09 ID:r2XWWSNC.net]
>>654
ポインタ渡し w
謎用語を躊躇いなく使っちゃう ガイジの特徴だよなあ

688 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 22:38:49.98 ID:fAxfwMN0.net]
When an array name appears as an argument to a function, the location
of the beginning of the array"s passed;

「配列の名前が関数の実引数として現れた時、その配列の先頭ポインタが渡される」でいい?

689 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 22:53:31.79 ID:r2XWWSNC.net]
どこにポインタなんて書いてあるんだ 見えないものが見えちゃうって精神科受診した方が良いぞ

690 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 22:57:19.94 ID:fAxfwMN0.net]
じゃあ君



691 名前:ならlocationはどう訳す? []
[ここ壊れてます]

692 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 23:15:47.82 ID:jhhg/GBw.net]
ポインタ渡しが謎用語らしい
コイツはもう覚える気すらないよ
つーかただのバカ
スルー推薦

693 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 23:17:56.61 ID:r2XWWSNC.net]
位置

そもそも
> A pointer is a variable that contains the address of another variable.
と言う定義を理解してないのか?
障害児製造機な入門書が存在らしいな
お前は何という本を初学時に使った?

694 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 23:20:53.44 ID:UjkuucW3.net]
一応言っとくけど、文字列リテラルを関数に渡す場合の説明は5.5章だぞ

695 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 23:22:53.35 ID:r2XWWSNC.net]
>>671
ガイジ用語か qiitaでいっぱいヒットするわ w

696 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 23:25:55.10 ID:fAxfwMN0.net]
>>672
直訳すると、「ポインタとは他の変数の位置を内包した変数である」。
"location of the beginning of the array"、直訳すると「配列の先頭の位置」はポインタ以外の何物だっていうのか教えてくれる?

ちなみに俺の初学本は「C言語によるプログラミング」第二版

697 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 23:25:56.83 ID:AvyyeWcb.net]
他人をガイジ呼ばわりしてるけど自分が1番ガイジだったってオチやね

698 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 23:38:53.59 ID:fp1GLRR7.net]
メモリ上の位置を表す「アドレス」と、それを格納する変数である「ポインタ」を混同してるから議論が噛み合わないのでは?

699 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 23:45:57.68 ID:r2XWWSNC.net]
>>675
ガイジか?
ポインタとは他の変数のアドレスを内包した変数である
としか書いてないのに、書かれてない「位置」がなぜ出てくる

まあ、それには目をつぶって
「内包した変数」が重要
Cの変数とは型を持ち、値を格納できるもの

アドレスとポインタ(=変数)を混同しないように
あと10年くらい修行することだ

700 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 23:45:58.32 ID:fAxfwMN0.net]
いうほど混同しているだろうか?



701 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 23:54:22.39 ID:fAxfwMN0.net]
>>678
えーともしかして、
「いわゆる『ポインタ渡し』ではアドレスがコピーされているのであってポインタ変数が渡されているわけではない」と言いたいの?

702 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 23:55:35.62 ID:jhhg/GBw.net]
コイツはまともな社会生活できてるのか
日常会話が成立出来ていないのではないか

703 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 00:00:10.79 ID:Uo4tfgNR.net]
>>680
ガイジ用語使うな
qiitaでヒットするそれはあえて言うなら「ポインタ渡され」
このスレで出現している「ポインタ渡し」はガイジID:jhhg/GBwが使い出した謎用語

704 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 00:02:00.78 ID:bwSM+rxU.net]
論点を三行でまとめて

705 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 00:07:08.67 ID:r7C/NYo5.net]
>>682
いわゆるって言ったのにそれでもダメか。

void foo(int a[8])と宣言された関数を別の関数内で

int a[8];
void foo(a)

と呼び出す時、それはポインタが渡されているのではなく配列の先頭アドレスがコピーされていると言いたいの?

706 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 00:09:51.87 ID:uOfJK7yi.net]
「ポインタ」って用語は結構仕様書中でも不安定だから、実はあまり気にしてもしょうがなかったりするんだよね
www.kijineko.co.jp/node/498

707 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 00:11:41.88 ID:g8RW1Chx.net]
>>684
foo(a) の 「a」って何?

708 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 00:13:35.75 ID:r7C/NYo5.net]
>>686
その上にint a[8];って書いたんだけど、なんか文法ミスってたかいな?

709 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 00:13:38.80 ID:5EiEWIq+.net]
このガイジ早く死刑にしろ
絶対何か障害持ってるだろ
何か起こしてからじゃ遅いぞ

710 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 00:16:29.93 ID:DdwwpY1/.net]
なるほど。やたらガイジ連呼してる奴が頭おかしいわけだな。



711 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 00:21:20.30 ID:Uo4tfgNR.net]
>>684
渡されるのはポインタ変数の値(アドレス)、それをfooがポインタ変数として受け取る

712 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 00:24:46.95 ID:DdwwpY1/.net]
ポインタの使い道を聞いてるのに、なにみんなで必死にポインタの解説してんだ?

Javaとかポインタない言語があるんだからポインタはなくてもいいだろという主旨だろう。

713 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 00:25:52.66 ID:Uo4tfgNR.net]
ガイジ用語「ポインタ渡し」を編み出したID:jhhg/GBwは今日はID:5EiEWIq+か

714 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 00:33:24.20 ID:r7C/NYo5.net]
>>690
だよねえ。それじゃあ
printf("Hello, C world!\n");はポインタとして受け取っているように見えるんだけど、ポインタではないの?

715 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 00:38:54.27 ID:YE/9ro9h.net]
引数を変数だと考えるからおかしなことになる
引数は値であって変数ではない、渡しているのは値であって変数ではない
C言語には値渡ししか存在しない、他の言語で言う参照渡しに相当するようなものは存在しない
ましてやポインタ渡しに至っては全く意味不明
渡しているのはアドレスであってポインタを渡しているのではない

716 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 00:43:09.37 ID:CdxYgk48.net]
ポインタ渡されww

717 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 00:46:39.34 ID:r7C/NYo5.net]
じゃあ「アドレス渡し」ならいいわけ?

718 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 00:48:53.93 ID:tmW9+jq1.net]
定義至上主義者とは一般的な会話が成り立たないことがよくわかる

719 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 00:51:00.39 ID:r7C/NYo5.net]
定義至上主義なら最初から「アドレス渡しと呼べ」と言えばいいだけだから、ただ文句つけたかっただけだと思うよ

720 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 01:02:22.98 ID:L++MnVlz.net]
定義至上主義者はID:r7C/NYo5のことだと思うが
「ポインタ渡し」だの「アドレス渡し」だの言葉の定義に拘ってるようにしか見えん



721 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 01:04:50.56 ID:uOfJK7yi.net]
>>694
厳密にはNULLポインタとかがアドレスじゃないから、「ポインタ型の値」といったほうが汎用的では
そして、
>>685
によると(場合によってはポインタ型の値)もポインタと言ってる箇所があるのかな
仕様書読むのめんどくさい

どれにせよ、厳密な表記しても初心者には得がないな

722 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 01:06:41.28 ID:Uo4tfgNR.net]
>>693
printfに対する知識がなければ、アドレスを渡しているところまでしかわからない

723 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 01:08:08.23 ID:tmW9+jq1.net]
この流れでそう思える読解力は凄い
言葉の定義で頓珍漢な噛みつき方したのは
ID:Uo4tfgNRとID:YE/9ro9hだろ

724 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 01:10:17.31 ID:r7C/NYo5.net]
>>701
そんなことで人のことをガイジガイジ連呼していたの?

725 名前:片山博文MZ mailto:sage [2017/08/07(月) 01:11:58.49 ID:ITzYZ/9b.net]
人工知能は人間らしい解釈ができないから仕方ない。

726 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 01:14:42.90 ID:tmW9+jq1.net]
これチューリングテストの実験場だったのか
見抜けなかったわ〜w

727 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 01:15:35.04 ID:DdwwpY1/.net]
だからさぁ。使い道を聞かれてんだよ、使い方じゃねーんだよ。さっさと答えてやれよ。

javaやpascalはポインタ使わなくてもプログラム書けるのにCにポインタが必要になる使い方をよ。

もしかしておまえら入門書読んで理解したつもりなだけで、ポインタが何か分ってないんだろ?

728 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 01:18:08.93 ID:r7C/NYo5.net]
>>706
俺はガイジ連呼厨の意図が知りたかっただけだし、そこまで偉そうに言うなら君が答えてあげなよ

729 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 01:19:37.44 ID:Uo4tfgNR.net]
>>703
お前をガイジと呼んだのは、書かれていない単語が見えてたからだと説明したはずだが

730 名前:片山博文MZ mailto:sage [2017/08/07(月) 01:21:33.94 ID:ITzYZ/9b.net]
そこ、放送禁止用語も知らない一般人、オンエアしちゃダメ。



731 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 01:26:39.77 ID:r7C/NYo5.net]
>>708
俺以外に対してだよ

732 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 01:35:13.99 ID:DdwwpY1/.net]
結局、javaやpascalはポインタ使わなくてもプログラム書けるのに
Cにポインタが必要になる使い道、理由は誰も分らないのかよ。

ガッカリだぜ。なにがC言語なら俺に聞けだよ。

733 名前:片山博文MZ mailto:sage [2017/08/07(月) 01:35:26.77 ID:ITzYZ/9b.net]
┌────────┐
│        │
│  /■~\   │
│  (´∀`∩)  │
│  (つ  丿  │
│  ( ヽノ   │
│  し(_)   │
│        │
│Now Onigiring...│
│        │
│ 暫くおにぎりで │
│ お待ちください │
└────────┘

734 名前:片山博文MZ mailto:sage [2017/08/07(月) 01:38:45.36 ID:ITzYZ/9b.net]
pg-kura.haten

735 名前:ablog.com/entry/20120616/1339856279 []
[ここ壊れてます]

736 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 01:41:43.94 ID:Uo4tfgNR.net]
>>703
> printf("Hello, C world!\n"); これがポインタだっ どやっ
十分にガイジ

「ポインタ渡し」のガイジ事か?
> こいつらの反論が反論になっていないな
> C分かっていればそのコードが
> ポインタ渡しになっていることは直ぐに分かるんだけどね
printfの知識が無ければわからない
「渡され」を「渡し」と呼ぶ
十分にガイジ

737 名前:片山博文MZ mailto:sage [2017/08/07(月) 01:44:12.93 ID:ITzYZ/9b.net]
生で全国放送なんで、影響力強いっす。学校でイジメの真似事されると困ります。ですから、放送コードに違反した発言は極力慎むように頼みます。

738 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 01:48:52.14 ID:r7C/NYo5.net]
>>714
最初のは確かに渡されだけどポインタじゃない?一応間違ってはないんじゃない? 最初にそのレスした時相手のprintfの知識とか考えてなかっただろうし。

それに「ポインタ渡し」は慣用語として定着してしまっている側面もあるからその用語を使っただけでガイジ認定は早いよ
ある程度の慣用語は意図を汲んだ上で、間違ってると思うなら的確に指摘しないとコミュニケーション成立しなくてどっちがガイジかわからなくなっちゃう

739 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 01:50:24.62 ID:Amcgn4Bl.net]
>>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++;
}
とやるほうがコストが軽い

740 名前:片山博文MZ mailto:sage [2017/08/07(月) 01:50:56.10 ID:ITzYZ/9b.net]
動物園の檻の中で「あいつはオラウータン」「こいつはゴリラ」とかぼやいてる飼育員。



741 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 01:55:31.83 ID:Amcgn4Bl.net]
脱字訂正
誤:*dest_p++ = src_p++;
正:*dest_p++ = *src_p++;

742 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 02:04:29.54 ID:Uo4tfgNR.net]
>>716
やっぱり見えないものを見てるガイジか?
> printf("Hello, C world!\n");
これのどこに
> A pointer is a variable that contains the address of another variable.
が現れているんだ?

確実に配列とポインタの区別がついてないガイジだろ

743 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 02:11:29.62 ID:r7C/NYo5.net]
>>720
渡され側は先頭アドレスを格納したポインタであって、
そのレスをした人は最初にレスした時、相手のprintfの知識とか気にしてなかっただろうって書いたつもりだけど、なんか間違ってた?

744 名前:片山博文MZ mailto:sage [2017/08/07(月) 02:12:45.69 ID:ITzYZ/9b.net]
引数は変数の一種と見なすのも一理あるだろう。仮引数も変数と見なしても実用上は問題ない。
それとも仮引数は変数ではないと言い張りたいのか?

745 名前:片山博文MZ mailto:sage [2017/08/07(月) 02:16:49.89 ID:ITzYZ/9b.net]
我々は実用性を重視するが、理論上では仮引数はポインターではないかもしれない。君のような理論家ではそれは重要かもしれないが。

746 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 02:19:54.41 ID:Uo4tfgNR.net]
>>721
> printf("Hello, C world!\n");
この一文のどこにポインタが使われてるんだ?
printfの定義は「この一文」には含まれないよな
subroutine printf(s)
character*80 s
かもしれんぞ


591 デフォルトの名無しさん[] 2017/08/05(土) 05:11:53.62 ID:dUt+j3iS

>>584
printf("Hello, C world!\n");
この一文でもう既にポインタを使っているわけだが?

747 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 02:30:03.96 ID:r7C/NYo5.net]
>>724
とりあえず、もしfortranから呼んでるならなら_printfじゃない?
さっきから言われた側の知識に言及していらっしゃるけど、それこそ一般に言うとprintfって言ったら普通はstdio.hのものを指すし、言われた側もまさかfortranとは思わないよ
そんな病的な状況を例に出さないといけない時点でお

748 名前:かしい噛みつき方してるってわかるもんだと思うけどなあ []
[ここ壊れてます]

749 名前:片山博文MZ mailto:sage [2017/08/07(月) 02:31:22.31 ID:ITzYZ/9b.net]
>>724
それはC言語以外の話になるだろう。

750 名前:片山博文MZ mailto:sage [2017/08/07(月) 02:36:12.54 ID:ITzYZ/9b.net]
printfの仮引数がポインター型だから、printf内部とprintfの型情報でポインターを使っているといっても間違いではない。



751 名前:片山博文MZ mailto:sage [2017/08/07(月) 02:41:35.68 ID:ITzYZ/9b.net]
頭でっかちの理論家が、間違いを含む古い書籍を読んで、一字一句正しいと思い込んでいるのは最悪な状況だ。

752 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 02:46:48.50 ID:Uo4tfgNR.net]
>>722
「この一文」と限定したんだから、それ以外の知識は不要で、これだけでポインタを使ってるという事だな

753 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 02:48:03.30 ID:Uo4tfgNR.net]
>>727
プロトタイプも「この一文」以外の知識だよ
ボンクラ

754 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 02:48:13.58 ID:YE/9ro9h.net]
同意
俺も>>694では単に概念を述べただけなのに何故だか定義至上主義にされてしまったからな
理論化にとっては定義が大事なだけであって概念を理解しようとしない

755 名前:片山博文MZ mailto:sage [2017/08/07(月) 02:55:53.68 ID:ITzYZ/9b.net]
>>730
一文の意味論を考えると、やはりその仮引数はポインターだという結論になる。

756 名前:片山博文MZ mailto:sage [2017/08/07(月) 02:59:45.50 ID:ITzYZ/9b.net]
そのうちprintfがマクロだとか言い出す

757 名前:片山博文MZ mailto:sage [2017/08/07(月) 03:15:03.46 ID:ITzYZ/9b.net]
教育上は、引数は関数に渡せる変数だと指導する方が分かりやすい。ただ、コンパイラーや言語を考えるとき、理論上では問題がある。

758 名前:片山博文MZ mailto:sage [2017/08/07(月) 03:21:11.00 ID:ITzYZ/9b.net]
実際、仮引数は、変数と同じように型を持ち、変数と同じように値を代入したり、値を取り出したりできる。
これを変数ではないとするのは直感に反する。だから教育上の配慮から、理論以外では、仮引数は変数だと見なしてよい。

759 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 03:22:46.64 ID:Uo4tfgNR.net]
>>732
どこに「この一文」に仮引数が出てきてるんだ
お前も見えないものが見えるガイジか?

760 名前:片山博文MZ mailto:sage [2017/08/07(月) 03:23:44.68 ID:ITzYZ/9b.net]
>>736
私には意味が見える。



761 名前:片山博文MZ mailto:sage [2017/08/07(月) 03:30:44.55 ID:ITzYZ/9b.net]
>>736
お前のそのコメントのどこに意味が見える? 意味は見るものじゃなくて解釈するものだ。
意味論上で意味を解釈しようとしない馬鹿に議論はできない。

762 名前:片山博文MZ mailto:sage [2017/08/07(月) 03:40:03.33 ID:ITzYZ/9b.net]
猿、猿、猿。さて猿は何匹? いいえ、これはただの文字。本当の猿ではありません。
printf("あほ"); さて、これはどんな処理でしょう。いいえ、この文はただの
テキスト。フォートランかもしれないし、
バイナリーではないから、本当の処理ではありません。
printf? 別に意味なんてありません。この一文に意味なんてありません。
こいつらは形而上学を知らないのか。

763 名前:片山博文MZ mailto:sage [2017/08/07(月) 03:48:46.08 ID:ITzYZ/9b.net]
形而上言語では、一文とその意味は同一視するものだ。
そこで君が提示したprintf("なんちゃら");も意味があると仮定する。
これはprintf関数に"なんちゃら"という文字列データのアドレスを渡すものと解釈される。
よってこのprintfの最初の仮引数はポインター型だ。もし、ポインター型でなければ、形而上の意味が不定になり、
君が提示したことはC言語的には無意味だ、
という意味になる。馬鹿げてるよ。

764 名前:片山博文MZ mailto:sage [2017/08/07(月) 04:01:49.30 ID:ITzYZ/9b.net]
 ∧_∧      半端者はみっくみくにしてやんよ
 ( ・ω・)=つ≡つ
 (っ ≡つ=つ
 /   ) ババババ
 ( / ̄∪

765 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 04:23:54.04 ID:Uo4tfgNR.net]
>>740
printf("なんちゃら");
はprintfと言う外部名を持つ手続きに引数として文字配列の先頭アドレスを与えて呼び出すという意味しかない
わかったかね ボンクラ

766 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 04:32:31.96 ID:5iW9wRlr.net]
月曜の朝っぱらから元気だな
とレス辿ったら昨日からずっとやってたのか

767 名前:片山博文MZ mailto:sage [2017/08/07(月) 04:34:25.12 ID:ITzYZ/9b.net]
>>742
敢えてprintfの型に触れず誤魔化してるようにしか見えないが。printfの型が決まってなければ、明らかにコンパイルできない文だ。

768 名前:片山博文MZ mailto:sage [2017/08/07(月) 04:49:23.24 ID:ITzYZ/9b.net]
 ∧_∧      半端なヤツはみっくみくにしてやんよ
 ( ・ω・)=つ≡つ
 (っ ≡つ=つ
 /   ) ババババ
 ( / ̄∪

769 名前:片山博文MZ mailto:sage [2017/08/07(月) 04:55:23.95 ID:ITzYZ/9b.net]
「戻り値」はダメとか言ったらキリがない。
言葉の世界は多数決で決まる。
時代錯誤な正義を振りかざすな。

770 名前:片山博文MZ mailto:sage [2017/08/07(月) 05:16:25.45 ID:ITzYZ/9b.net]
const char a[1] = "";
const char *p = "";
assert(sizeof(a) == 1);
assert(sizeof(p) == sizeof(void *));
a++; // Error
p++; // OK



771 名前:片山博文MZ mailto:sage [2017/08/07(月) 05:33:55.94 ID:ITzYZ/9b.net]
我が国は教育上の配慮を生徒よりも先回りして先回りして考えているから、教育水準をここまで
高めることが出来たんだ。教育上の配慮がないなら、答えを砂漠の中から探させることになってしまうぞ。
お前は天才だからいいが、エリートじゃない一般人は教育上の配慮を行った教材じゃないと生き残れない。

772 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 06:44:33.33 ID:qWjEOBrh.net]
>>744
コンパイルするのにprintfの型が既知である必要なんてないだろ
何言ってんだコイツ

773 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 06:52:48.38 ID:bZKJxmgb.net]
>>672
これどこの定義か知らんけど(変数じゃなくて)関数へのポインタって言うのもあるよね?

774 名前:片山博文MZ mailto:sage [2017/08/07(月) 07:37:27.89 ID:ITzYZ/9b.net]
                  ┌─┐
                  |も.|
                  |う |
                  │来│
                  │ね│
                  │え .|
                  │よ .|
       バカ    ゴルァ  │ !!.│
                  └─┤    プンプン
     ヽ(`Д´)ノ ヽ(`Д´)ノ  (`Д´)ノ    ( `Д)
     | ̄ ̄ ̄|─| ̄ ̄ ̄|─| ̄ ̄ ̄|─□( ヽ┐U
〜 〜  ̄◎ ̄  . ̄◎ ̄   ̄◎ ̄   ◎−>┘◎

775 名前:デフォルトの名無しさん [2017/08/07(月) 07:48:24.65 ID:xW9C/CpC.net]
>>735
仮引数ってプロトタイプ宣言の引数じゃなかったっけ?
あれ、関数の型を教えるだけだから、型だけ書いて変数書かないとかもおkだお。

int hoge(int);

776 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 08:38:13.41 ID:oeQKd2lB.net]
あいや〜
昔 -traditional でgccでコンパイルして
動かせた化石ソースが、
今はもう -traditional使えないんで
コンパイル出来ない、動かせないアルよ。

777 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 09:14:12.38 ID:dOHD//zn.net]
>>752
仮引数かいてなくて どっちがどっちじゃ! と迷う qsort
qsort(void*, size_t , size_t , int (*)(const void*,const void*)):

778 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 09:25:07.14 ID:Uo4tfgNR.net]
>>750
自分で調べて一次ソースを持ってこい
許容されるソースはK&RかISO/JIS/ANSIに準ずる規格票

779 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 09:27:48.56 ID:Uo4tfgNR.net]
>>754
仮引数もガイジ認定したい用語だ
原文ではparameter
実引数をあらわすargumentはactual argumentまたはactual parameterとも呼ばれる
実仮引数 w まさにガイジ用語

780 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 09:29:25.08 ID:dOHD//zn.net]
>>756
漢字にすると面倒な言葉だね・・・ たまに何だっけ?ってなることがある



781 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 09:30:00.41 ID:r4dv7rmY.net]
化石ソース

#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;
}

782 名前:デフォルトの名無しさん [2017/08/07(月) 09:30:57.72 ID:xW9C/CpC.net]
>>754
いあ。。。
実引数の方みろよとしか。。。
プロトタイプ宣言に何期待してんだよ。

783 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 09:35:47.75 ID:dOHD//zn.net]
数使ってるなら、そのうち覚えるけど、そうでもないのはいちいち調べるのに手間だし
最近のは プロトタイプをポップアップ表示したりする環境もあるし ね

784 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 10:58:51.07 ID:oP4SeJHR.net]
英語圏のガイジはどんな用語擬きの英語使うか気になる

785 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 12:44:52.49 ID:bZKJxmgb.net]
>>755
お前が調べて持ってこいよ w

786 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 14:01:38.84 ID:Uo4tfgNR.net]
>>744
ウソついてゴメンなさいはしないのか?

787 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 14:02:13.15 ID:Uo4tfgNR.net]
>>762
見つけられないなら、お前の戯言

788 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 14:21:07.21 ID:Oq7cYNKv.net]
JavaにポインタがなくてCにポインタがあるのはという話が出ているが
データのあるアドレスの扱いをポインタで実現したかそうでないかということだと思われる
Javaではint[]型のような参照型の変数にはアドレスが入っている
他例えばJavaScriptではNumber, Booleanのようなラッパークラスがint*などに似た役割を果たす

789 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 14:23:34.73 ID:Oq7cYNKv.net]
int*というよりはint *constか

790 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 14:27:21.13 ID:Jd+yR0yr.net]
char*ってなんなの?
char型の配列の先頭のアドレスを入れる配列って事?

つまりchar* a = {"hello","hoge","bread"};

こう?



791 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 14:36:26.52 ID:Oq7cYNKv.net]
charは256種類の値をとる型でありそれを使って'A'とか文字1つを表す
char型の配列はcharを一列に並べることによってUTF-8ヌル終端文字列を表す
その先頭のアドレスはchar*型なのでC言語ではchar*が文字列型になる
文字列の配列が欲しければ(char*)*つまりchar**

792 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 14:44:29.34 ID:Cf79G+d9.net]
>>768
char a と char* aは同じってこと?
char**は文字列の配列だから

さっきの例でchar** aならa[0]はhello, a[1]はhoge?

793 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 15:36:39.87 ID:YE/9ro9h.net]
codepad.org/O7uohbtZ

794 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 15:53:42.35 ID:fj1hwtp7.net]
>>770
うーん
char とchar*ってやっぱり違うのか?
charが配列でchar*は2次元配列みたいなものなのかな?
char**は3次元配列でchar***(以下略


char a[][] これは2次元配列
char *a[] これも2次元配列
char **a これも2次元配列
って事なのかな?

795 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 16:34:16.06 ID:YE/9ro9h.net]
codepad.org/zgPHa4lf

796 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 16:35:01.20 ID:bZKJxmgb.net]
>>764
はあ?
お前関数へのポインタも知らんのか? w

797 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 16:54:50.74 ID:Uo4tfgNR.net]
>>773
「(変数じゃなくて)関数へのポインタ」があると主張している、お前が一次ソースもってこい

798 名前:デフォルトの名無しさん [2017/08/07(月) 18:33:10.56 ID:OgCRmlag.net]
>>662
ポインタだよ
おまえまさか「配列を渡した」とか思ってるのか?
手帳がいるのおまえだろ、あ既にもってるんだっけw

799 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 18:56:35.36 ID:DdwwpY1/.net]
>>765
全然ポインタが何か分ってねぇ。cだって配列あるじゃねーか。

800 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 19:43:35.00 ID:r7C/NYo5.net]
>>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.



801 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 19:53:25.65 ID:g8RW1Chx.net]
ポインタが変数ではない別の何かだと言うのは、始めて聞きました

802 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 19:56:00.52 ID:r7C/NYo5.net]
>>778
>>750のことなら(変数へのポインタではなく)関数へのポインタって意味だと思うよ

803 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 20:00:14.61 ID:YE/9ro9h.net]
関数のポインタの配列
codepad.org/GP2rFL5Z

804 名前:デフォルトの名無しさん [2017/08/07(月) 20:31:35.85 ID:OgCRmlag.net]
>>778
ポインタは、アドレスを意味する値であって
それを格納しうる変数には限らない

805 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 20:59:10.29 ID:yPIvhEga.net]
論点が何なのかさっぱりわからん

806 名前:デフォルトの名無しさん [2017/08/07(月) 21:02:26.86 ID:OgCRmlag.net]
論点はポインタの使い途wwwwwwwww

807 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 21:04:00.81 ID:DdwwpY1/.net]
> ポインタは、アドレスを意味する値

酷いな。小学生かよ。

808 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 21:07:10.64 ID:g8RW1Chx.net]
ポインタが変数なのか変数でないのか、結論は出ましたか?

809 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 21:22:08.65 ID:4hdYUdtg.net]
>>778
理解力無さすぎだろ...

810 名前:デフォルトの名無しさん [2017/08/07(月) 21:23:07.98 ID:OgCRmlag.net]
>>785
それは論議の結論ではなく、単なる事実

# 年齢



811 名前:だか学歴がどうたら言ってるアフォはスルー []
[ここ壊れてます]

812 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 21:24:03.98 ID:0SF3W3/o.net]
(void *)0 は何になるんで

813 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 21:26:45.04 ID:yPIvhEga.net]
議論をするなら自分の主張くらいはっきり書けよ

814 名前:デフォルトの名無しさん [2017/08/07(月) 21:29:47.13 ID:OgCRmlag.net]
>>788
ポインタ

815 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 21:31:15.86 ID:DdwwpY1/.net]
一つ言えることは、幼稚園児 ID:OgCRmlag がオレオレ定義したポインタ

> ポインタは、アドレスを意味する値

を誰も支持することはないだろうということ。

816 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 21:33:48.90 ID:DdwwpY1/.net]
ID:OgCRmlag一人頓珍漢なこと言ってるだけあって、他は言ってること同じということか。
こいつ一人スルーすれば議論するようなことは何もない。

817 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 21:34:30.59 ID:yPIvhEga.net]
支持じゃなくて規格書を根拠としないと

818 名前:デフォルトの名無しさん [2017/08/07(月) 21:39:11.76 ID:OgCRmlag.net]
>>793
そうだな、おまえが根拠を示す必要があるな
どこに pointer is an lvalue とあるのか頑張って探せや

819 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 21:42:00.46 ID:yPIvhEga.net]
おれが?
冗談でしょ

820 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 21:44:02.82 ID:DdwwpY1/.net]
そもそも質問者は定義を聞いているんじゃない。使い道を聞いているんだ。
printf()で使う。これで答えのはずだ。

それなのにおまえらは規格書も読まずオレオレ定義を展開しやがって。



821 名前:デフォルトの名無しさん [2017/08/07(月) 21:45:41.08 ID:OgCRmlag.net]
手帳申請しろとまで言っといて
都合が悪くなったら手のひら返ししてるアフォはスルー

822 名前:デフォルトの名無しさん [2017/08/07(月) 21:46:23.64 ID:OgCRmlag.net]
まあ、俺じゃねえって言い訳しかできねえだろうなw

823 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 21:47:16.90 ID:e6/ebI1X.net]
何このどんぐりの背比べ…

824 名前:片山博文MZ mailto:sage [2017/08/07(月) 21:48:21.28 ID:uTywTMsC.net]
2個。

825 名前:デフォルトの名無しさん [2017/08/07(月) 21:52:43.06 ID:OgCRmlag.net]
751

826 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 21:53:53.63 ID:yPIvhEga.net]
アホ二人でスレ汚しか
感心しないな

827 名前:デフォルトの名無しさん [2017/08/07(月) 21:55:26.92 ID:OgCRmlag.net]
やーい直球の罵倒語しか言うことなくなってやんのwwwwwwwww

828 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 21:55:37.37 ID:DdwwpY1/.net]
ID:OgCRmlag ID:yPIvhEga ケンカしてるこの二人をNGにするとすっきり。

829 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 21:58:53.51 ID:yPIvhEga.net]
えっ?
おれ?

ただの通りすがりだ

830 名前:片山博文MZ mailto:sage [2017/08/07(月) 21:59:31.43 ID:uTywTMsC.net]
※未承認広告※

新 台 入 替 !



831 名前:デフォルトの名無しさん [2017/08/07(月) 21:59:33.21 ID:OgCRmlag.net]
スルーされてる約1名が相手して貰えている人をクリティカル嫉妬wwww

832 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 22:01:27.09 ID:yPIvhEga.net]
>>806
数学得意な人?

833 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 22:03:03.86 ID:yPIvhEga.net]
ビジービーバー関数はなんでC言語では書けないの?

834 名前:デフォルトの名無しさん [2017/08/07(月) 22:06:55.11 ID:OgCRmlag.net]
んなこたどうでもいい
&演算子が生じる結果は左辺値なのかよ?
6.5.3.2 にはそんなこと書いてねえぞボケこら

835 名前:デフォルトの名無しさん [2017/08/07(月) 22:11:16.54 ID:OgCRmlag.net]
        ゴガギーン
             ドッカン
         m    ドッカン
  =====) ))         ☆
      ∧_∧ | |         /          / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     (   )| |_____    ∧_∧   <  おらっ!出てこいID:DdwwpY1/
     「 ⌒ ̄ |   |    ||   (´Д` )    \___________
     |   /  ̄   |    |/    「    \
     |   | |    |    ||    ||   /\\
     |    | |    |    |  へ//|  |  | |
     |    | |    ロ|ロ   |/,へ \|  |  | |
     | ∧ | |    |    |/  \  / ( )
     | | | |〈    |    |     | |
     / / / / |  /  |    〈|     | |
    / /  / / |    |    ||      | |
   / / / / =-----=--------     | |

836 名前:片山博文MZ mailto:sage [2017/08/07(月) 22:11:31.00 ID:uTywTMsC.net]
>>809
計算不能であることが証明されている。Wikipediaより。

837 名前:片山博文MZ mailto:sage [2017/08/07(月) 22:29:15.82 ID:uTywTMsC.net]
※未承認広告※
パチパチしませんか?

838 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 22:33:57.24 ID:yPIvhEga.net]
なんでWikipedia

839 名前:デフォルトの名無しさん [2017/08/07(月) 22:34:35.17 ID:OgCRmlag.net]
手帳所持者は逃げたかwww

840 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 22:37:08.08 ID:yPIvhEga.net]
>>812
何言語なら書けま



841 名前:すか? []
[ここ壊れてます]

842 名前:片山博文MZ mailto:sage [2017/08/07(月) 22:40:09.74 ID:uTywTMsC.net]
>>816
現状、どんな言語でも駄目。量子コンピュータで計算の概念が再定義される位のことが起こらないと無理。

843 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 22:50:03.04 ID:yPIvhEga.net]
ありがとうございます
あなたのレベルが大体わかりました

844 名前:片山博文MZ mailto:sage [2017/08/07(月) 22:59:26.14 ID:uTywTMsC.net]
おそらく、量子コンピュータや生物コンピュータでも計算不能だろう。

845 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 23:09:18.43 ID:nw7xsMvr.net]
だからこんなキチガイはスルーしろと言ったのに…
ただのキチガイなんだから

846 名前:片山博文MZ mailto:sage [2017/08/07(月) 23:16:17.80 ID:uTywTMsC.net]
ハムスターをリモコンで操作したい。

847 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 23:33:23.62 ID:yPIvhEga.net]
女の子をリモコンで操作したい

848 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 00:41:25.03 ID:eouAXJYK.net]
>>777
どう見てもcompは変数なんだが

849 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 00:45:20.16 ID:eouAXJYK.net]
>>775
> おまえまさか「配列を渡した」とか思ってるのか?

配列名がどのように扱われるか知らないのか 完全なガイジ
とっとと手帳申請しろ

850 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 00:49:28.21 ID:eP5zQIOv.net]
いつまでやっているんだ



851 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 00:57:11.00 ID:MZyamSKY.net]
>>823
そのバカには何言ってもダメから
スルーしろ

852 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 01:47:17.25 ID:uStlgM0t.net]
>>826
いや馬鹿は>>778が読解力なさすぎと指摘されているのに同じ解釈を繰り返している>>823でしょ。
ID:r7C/NYo5はcompが変数であることは否定していないし、その前の議論は(変数へのポインタではなく)関数へのポインタが存在するかどうかだ

853 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 01:57:36.64 ID:t5Eof3Jx.net]
>>823
compそのものは変数だけど、関数を指しているポインタでしょ?
ID:Uo4tfgNRが関数へのポインタが存在しないって主張していらっしゃるようだから示しただけだよ

>>774の「(変数じゃなくて)関数へのポインタ」
の「変数じゃなくて」は「ポインタが変数でない」と言っているのでなくはなく「ポインタの指す先が変数でなく関数」と言っていると思うんだけど違うかいな?
A pointer is a variable that contains the address of another variable. の最初のvariableじゃなくてanother variable の方ってことね

854 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 01:58:16.25 ID:geODKJHF.net]
(変数でない)関数へのポインタが存在するかどうかだ

じゃないの?

855 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 02:01:15.50 ID:O87Z3HpH.net]
>>780再掲
codepad.org/GP2rFL5Z

856 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 02:05:22.89 ID:yYsi1PP7.net]
typedef void (*INTVEC)(void);
(INTVEC)0;

857 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 02:08:26.75 ID:t5Eof3Jx.net]
>>829
(変数でない)は関数かポインタかどっちにかかっていると思う? 俺は関数だと思う

858 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 02:10:43.85 ID:geODKJHF.net]
関数は変数じゃないと言うのは理解出来るけど
関数へのポインタが変数じゃないと考えている人がいるようなので

859 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 02:20:03.78 ID:uStlgM0t.net]
少なくともID:bZKJxmgbは違うと思うよ

860 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 02:26:48.57 ID:O87Z3HpH.net]
codepad.org/hfnT13zf



861 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 02:27:16.73 ID:geODKJHF.net]
違うなら良いんです

ポインタは変数じゃないと結論が出るかどうかを楽しみにしているだけなので

862 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 03:43:17.45 ID:eouAXJYK.net]
>>828
「ポインタは変数である」
と言う文脈で「ポインタの指すものが変数じゃ無いものがある」と言い出すガイジが存在するって言ってるのか?

863 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 04:07:36.23 ID:geODKJHF.net]
変数へのポインタが存在するかどうかは、議論になってないと思いました

864 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 04:10:20.00 ID:geODKJHF.net]
議論になっているのは、
「ポインタは変数ではない」あるいは
「ポインタには変数で無いものが存在する」ってことかな?

どちらにしても、何か違和感を感じざるを得ません

865 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 05:31:31.11 ID:fn/KDcW/.net]
ポインタという言葉が、ポインタ型かポインタ変数かどちらのことを意味しているのかは文脈次第
関数へのポインタ云々の主張はポインタ型のことを言っているし、ポインタは変数云々の主張はポインタ変数のことを言っている
両者を混同して議論しているから混乱する

JIS X 3010
ポインタ型(pointer type)は,被参照型(referenced type)と呼ぶ関数型,オブジェクト型又は不完全型から派生することができる。
ポインタ型は,被参照型の実体を参照するための値をもつオブジェクトを表す。被参照型Tから派生される

866 名前:|インタ型は,“Tへのポインタ”と呼ぶ。
被参照型からポインタ型を構成することを“ポインタ型派生”と呼ぶ。

例)
関数型
 被参照型 : void func(void), int func(int)
 ポインタ型 : void (*func)(void), int (*func)(int)

オブジェクト型
 被参照型 : int, double, array[]
 ポインタ型 : int*, double*, array

不完全型
 被参照型 : void
 ポインタ型 : void*
[]
[ここ壊れてます]

867 名前:デフォルトの名無しさん [2017/08/08(火) 06:09:26.13 ID:/vaNLRRA.net]
>>824
ははは、ほとぼりが冷めるのを待って出てきたか

 負 け 犬 め

&演算子が生じる結果は左辺値なのかよ?
6.5.3.2 にはそんなこと書いてねえぞボケこら

そのまま引っ込んでれば逃げられるのに
バカなやつw

868 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 06:57:04.74 ID:JTaa5zWQ.net]
>>839
お前はC言語の前に日本語勉強しろよ

869 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 07:36:06.14 ID:Ya8H5zzs.net]
こんなんじゃラチがあかんやろ
厳密な言語仕様規定用のメタランゲージで
Cのポインタ概念説明したれ

そんなん難しすぎて多分読めんけどな…わははは

870 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 07:59:01.02 ID:rMIF23m7.net]
ptr+1 は何だ?



871 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 08:06:53.41 ID:GPPLRiD4.net]
そもそもその ptr は何だ?

872 名前:デフォルトの名無しさん [2017/08/08(火) 08:14:46.20 ID:cPrpCtT/.net]
pgr

873 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 08:17:18.05 ID:rMIF23m7.net]
関数ポインタ以外のポインタ型の変数ならなんでもいいよ

874 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 08:31:21.70 ID:eouAXJYK.net]
>>841
&演算子ってなんだよ
お前も見えてないものが見えてるのか
とっとと手帳申請しろ

> printf("Hello, C world!\n"); これがポインタだっ どやっ

875 名前:336 mailto:sage [2017/08/08(火) 08:37:44.58 ID:YrE6LFRr.net]
しつこい。次レスした方が負けね。

876 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 08:47:52.68 ID:0o9xOItj.net]
>>837
「ポインタは変数の位置を示す変数である」っていう文脈は飽きたのか?w

文脈のすり替えは辞めろガイジ

877 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 08:49:22.58 ID:qTxWRpQR.net]
幼稚な勝ち負け論

878 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 09:28:08.76 ID:eouAXJYK.net]
>>850
それに文句があるなら、その先の章も読んだ上で、カーニハンとリッチーに言え
K&R 1stで学んだんだろ w ガイジ

879 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 09:30:49.19 ID:uN6BnjID.net]
ポインタが変数かどうかとか言ってるのって>>778か?
そしてそれにレスしてるID:OgCRmlagか?

それ以前は居なかったような

880 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 09:34:31.83 ID:2fnixEy5.net]
有用な情報としては>>840があって、残りのほとんどは子供の喧嘩とそれをからかっている周囲の茶々だから、スルーしとけばいいよ。



881 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 09:38:26.73 ID:eouAXJYK.net]
>>854
>>840こそポインタと配列を混同する諸悪の根源
ポインタ型をポインタと呼ぶ事で、配列とポインタの区別が出来ない、ID:OgCRmlagのようなガイジが量産される

882 名前:IDコロコロ変わるな mailto:sage [2017/08/08(火) 09:39:36.53 ID:oLfqgxcT.net]
>>852
「それ」って「A pointer is a variable that contains the address of another variable. 」のことか?
そこには文句ないよ。
勝手に「ポインタが変数かどうか」とかいう文脈にすり替えたことには文句があるけどな

883 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 09:55:39.20 ID:eouAXJYK.net]
>>856
ガイジID:OgCRmlagは文句があるようだぞ

884 名前:IDコロコロ変わるな mailto:sage [2017/08/08(火) 10:23:08.14 ID:oLfqgxcT.net]
>>857
そいつの主張は俺もガイジだと思うよ

885 名前:C言語ますたー《ますたー軍団(常時募集)の長》 [2017/08/08(火) 16:47:33.39 ID:46jc69TQ.net]
質問がある奴はVIPに来れば大体俺がいるよプゲラwww

886 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 21:02:06.34 ID:CWtfXRt7.net]
>>859
そのハンドルでは誰も信用しないだろう

887 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 21:06:09.48 ID:SUxfydq2.net]
> 7 名前:C言語ますたー《ますたー軍団(常時募集)の長》 ◆oa6k//3vOQ [sage] 投稿日:2017/08/08(火) 17:06:43.43 ID:46jc69TQ [1/3]
> アセンブラを1行ずつ実行するにはとうやってやればいいんだろう

888 名前:H
> エミュレータぐらいしか思いつかないわ

> 11 返信:C言語ますたー《ますたー軍団(常時募集)の長》 ◆oa6k//3vOQ [] 投稿日:2017/08/08(火) 20:06:57.31 ID:46jc69TQ [3/3]
> windowsの場合APIが用意されてるだろ?
> あれ1行ずつの実行って出来なくね?
> CPUの方にデバッグの機能がついているのだろうか…

こいつド素人。
[]
[ここ壊れてます]

889 名前:アムドクラス (4f6c-czis 110.132.254.159) [2017/08/08(火) 21:50:07.01 ID:z5MuZpZP.net]
AMDの勝ち

890 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 21:58:43.88 ID:eouAXJYK.net]
> printf("Hello, C world!\n"); これがポインタだっ どやっ
よりはまし



891 名前:片山博文MZ mailto:sage [2017/08/08(火) 21:59:58.58 ID:m3/ZcJyF.net]
>>863
いつまで言ってんだ? 引数はポインター型だって結論だっただろ。

892 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 22:18:43.73 ID:O3M4HeCn.net]
この場合printf関数の引数は、被参照型 文字列リテラル オブジェクトから派生されたポインタ型のオブジェクト

893 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 22:19:57.77 ID:0hOvAoxM.net]
オブジェクトなどという高尚な概念はCにありません

894 名前:デフォルトの名無しさん [2017/08/08(火) 22:21:06.28 ID:NzfA1f0K.net]
Pointer
https://goo.gl/images/8NAARa

895 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 22:25:41.34 ID:HehkFpa6.net]
>>866
>>840を見直して来い
JIS X 3010で使用されている用語だ
勿論オブジェクト指向とは何の関係もない
ていうかK&Rでもオブジェクトという用語は使われていた気がする

896 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 22:35:05.98 ID:0hOvAoxM.net]
しらん
まぎらわしい言い方してるから自分の頭も混乱するんだ

文字列リテラルからポインタ型が派生するのって変じゃないか
ポインタのほうが汎用的だし逆だろ

897 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 22:48:27.60 ID:4AThmWF1.net]
>>869
抽象的思考のできない奴だな
intからint*を派生するのと同じことを言ってるだけ
派生されたポインタ型を変数に代入したものがポインタ変数
お前の言うポインタとはいったい何だ?

898 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 22:54:10.15 ID:uStlgM0t.net]
い、いやー。object自体は本当にK&Rに書いてあったよ
オブジェクト志向登場以前から使われてきたんじゃないかな?

899 名前:片山博文MZ mailto:sage [2017/08/08(火) 22:55:26.67 ID:m3/ZcJyF.net]
同音異義語つーやつやな。

900 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 22:56:20.16 ID:0hOvAoxM.net]
派生の意味もちがうんかい



901 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 23:06:23.25 ID:ORaXP+Gp.net]
曜日の頭文字

#include<stdio.h>
int main(void){
int w = 3;
printf("%c\n", "SMTWTFS"[w]);
return 0;
}

902 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 23:15:50.51 ID:yrQEUEp6.net]
C言語で派生って言ったら型の派生の事だな
少なくとも型変換の意味ではない

配列型の式(文字列リテラル)が型変換されて非左辺値なポインタ型の式になるんだろ
>>866は変換前後ともオブジェクトだって言ってるけど
アドレス付け可能な領域に保存されている保証のないものがオブジェクトなの?

903 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 23:16:38.91 ID:yrQEUEp6.net]
安価ミスった>>865

904 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 23:23:10.94 ID:fmd6E2St.net]
何に盛り上がってるのかよくわからんけど
C言語だってオブジェクトはオブジェクトって呼ばれてる。
K&Rにも書かれている。
もちろん普通名詞のオブジェクトね

905 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 23:30:11.34 ID:O87Z3HpH.net]
張っておくか
>>840から転載
JIS X 3010
ポインタ型(pointer type)は,被参照型(referenced type)と呼ぶ関数型,オブジェクト型又は不完全型から派生することができる。
ポインタ型は,被参照型の実体を参照するための値をもつオブジェクトを表す。被参照型Tから派生されるポインタ型は,“Tへのポインタ”と呼ぶ。
被参照型からポインタ型を構成することを“ポインタ型派生”と呼ぶ。

906 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 23:37:29.99 ID:0hOvAoxM.net]
日本語的に派生って言ったら亜種ができることじゃん

double と *double って全然意味ちがうだろ
JavaとかでいったらObjectとRef<Object>ぐらいちがう
アドレスという概念をもちだして、多少関係してる違う型つくってるんじゃないか

JISがまちがってる

907 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 23:45:35.34 ID:yrQEUEp6.net]
JISは間違ってない
構文上、型指定子に*は含まれない
宣言子で*を付けることで被参照型からポインタ型に派生させているのだから、型の派生で合っている

>>865は間違ってる
この場合は派生ではなく型変換

908 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 23:56:11.53 ID:0hOvAoxM.net]
文字列リテラル オブジェクトはたぶん中身の文字データのことだろう
定義にしたがうと
それへのポインタは文字列リテラルから派生したポインタだからいいんじゃないの

909 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 00:05:11.01 ID:bnFISF+U.net]
普通名詞としての派生なら良いんじゃねーの

規格で定義されている派生として言ってるなら間違いってだけ
派生は型に対しての規則であって型を持つ式(オブジェクト)は派生しない、派生型に型変換されるだけ

910 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 00:14:48.77 ID:ckc2uc+D.net]
型変換であろうとポインタ型派生であろうとポインタ型である結果は同じことではないの?



911 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 00:16:45.80 ID:sYRFpLtr.net]
世間に通じない用語を振りかざして些末な定義や言葉尻について無益な議論をしていると
大学時代を思い出してほっこりする

912 名前:C言語ますたー《ますたー軍団(常時募集)の長》 [2017/08/09(水) 00:25:37.15 ID:s1XZJ5Nh.net]
>>861
なんで粘着されてんだよ…
あとこれの何がダメなんだ?
お前らデバッガのステップ実行に興味ないの?
ちょっと調べた所ではint 1で行けるかもぐらいか

913 名前:片山博文MZ mailto:sage [2017/08/09(水) 00:29:18.16 ID:bb8twRCP.net]
>>885
Visual Studio使えばデバッグ楽勝やで。

914 名前:C言語ますたー《ますたー軍団(常時募集)の長》 mailto:sage [2017/08/09(水) 00:30:50.08 ID:s1XZJ5Nh.net]
>>886
実行中のプロセスにアタッチして、アセンブラ見ながらステップインで解析したいんだけどVSじゃ出来なくない?

915 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 00:31:28.95 ID:8y5srZEo.net]
用語オブジェクトについての哲学的な論考や定義そのものがJISには載ってなさそうだな

深く考えずに音写しただけ
だからカタカナの用語になってる

916 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 00:34:53.01 ID:7zaXDMDr.net]
>>864
それが、ポインタと配列の区別をつけられない本質だ

>>744の大ウソをゴメンなさいしてからホザけ カス

917 名前:片山博文MZ mailto:sage [2017/08/09(水) 00:35:31.88 ID:bb8twRCP.net]
>>887
バージョンやエディションによって使える機能が違う。気にせず使いたいなら、「買え」

918 名前:C言語ますたー《ますたー軍団(常時募集)の長》 mailto:sage [2017/08/09(水) 00:37:19.05 ID:s1XZJ5Nh.net]
>>890
学生だしお金ないからね
2017のcommunityじゃ無理?

919 名前:片山博文MZ mailto:sage [2017/08/09(水) 00:37:30.14 ID:bb8twRCP.net]
>>744
訂正。関数の型が決まってなくともコンパイルできることがある。

920 名前:片山博文MZ mailto:sage [2017/08/09(水) 00:40:01.14 ID:bb8twRCP.net]
>>889
お前は人間失格だ。言葉が悪すぎる。



921 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 00:46:00.24 ID:7zaXDMDr.net]
>>893
あなた様も障害者手帳の申請をする事をお勧めするしだいで御座いまする。

まず、頭脳が残念過ぎまする。
そして、頭脳が残念過ぎまする。
加えて、頭脳が残念過ぎまする。
きっと、高い等級で認定されると愚考致しまする。

敬具

922 名前:C言語ますたー《ますたー軍団(常時募集)の長》 mailto:sage [2017/08/09(水) 00:46:00.43 ID:s1XZJ5Nh.net]
ポインタの話題ならアセンブラやった方が早いと思うんだよね
ポインタとして宣言された変数は32bit環境なら4バイト、64bitなら8バイトのメモリが確保されるだけだが、配列の場合、サイズ×添字の分メモリが確保されて、配列名がその先頭アドレスをあらわすってだけなのに

923 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 00:48:50.01 ID:ckc2uc+D.net]
>>891
VS2017Enterpriseならこんな感じ
Communityはよくわからん
i.imgur.com/wI7bq3C.png

924 名前:C言語ますたー《ますたー軍団(常時募集)の長》 mailto:sage [2017/08/09(水) 00:51:21.74 ID:s1XZJ5Nh.net]
>>896
いい感じだな
でも俺がやりたいのはソース無しの実行可能ファイルを、アセンブリを表示しながらステップインだからVSじゃ出来ないのかも…
まあ言っちゃうとクラックがしたいんだけどね

925 名前:片山博文MZ mailto:sage [2017/08/09(水) 01:02:47.80 ID:bb8twRCP.net]
>>894
現実世界ではあのごとき言動はアウトだからな。忠告だ。

926 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 01:05:03.10 ID:Mt1oO7bk.net]
>>897
Windowsで?
Linux なら gdb でやれそうな感じはするが、ソースなしだとどうなんだろう?

927 名前:C言語ますたー《ますたー軍団(常時募集)の長》 [2017/08/09(水) 01:06:30.01 ID:s1XZJ5Nh.net]
>>899
一応LinuxはUbuntuならあるよ
やっぱりLinux勉強しとくべきかな?

928 名前:片山博文MZ mailto:sage [2017/08/09(水) 01:08:37.25 ID:bb8twRCP.net]
クラークなら、windbgとかollydbgとか使えば? 汗もでるよ。

929 名前:C言語ますたー《ますたー軍団(常時募集)の長》 mailto:sage [2017/08/09(水) 01:14:59.65 ID:s1XZJ5Nh.net]
どっちも持ってて試したけどイマイチ…
int 3のブレークポイントがある所でしか止まらないじゃん?
普通に最初からステップインでやれないものか…
だから>861でエミュ上での実行が良いって言ったんだよね

930 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 01:16:05.66 ID:7zaXDMDr.net]
>>897
出来るよ やり方は片山KUZUが見てるから教えない



931 名前:C言語ますたー《ますたー軍団(常時募集)の長》 mailto:sage [2017/08/09(水) 01:19:35.53 ID:s1XZJ5Nh.net]
>>903
あっそう(^^;

932 名前:C言語ますたー《ますたー軍団(常時募集)の長》 mailto:sage [2017/08/09(水) 01:35:22.34 ID:s1XZJ5Nh.net]
どうもフラグレジスタのTrap Flagというのをセットすることでシングルステップ実行が出来るらしい…
とても面倒臭いけども自分でコード書いて頑張りますわ

933 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 04:26:02.60 ID:deJRgLks.net]
何も知らないド素人同然なのになんでC言語すまたーとか名乗ってんの?

934 名前:デフォルトの名無しさん [2017/08/09(水) 05:25:27.23 ID:J9yCSat5.net]
てす

935 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 06:39:45.89 ID:UBBon8Wk.net]
巣股ー?

936 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 06:40:21.09 ID:UBBon8Wk.net]
どうせなら入れたい

937 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 09:13:43.09 ID:VQlIa1Fm.net]
gdbでstepiってやればできんじゃねえの?ググれば1分で分かりそうだけどw

938 名前:C言語ますたー《ますたー軍団(常時募集)の長》 [2017/08/09(水) 11:32:53.54 ID:s1XZJ5Nh.net]
>>908
なんだー
>>910
だからLinuxじゃなくてwinなんだよww
Linuxは箱庭でしか動かんわ

939 名前:C言語ますたー《ますたー軍団(常時募集)の長》 mailto:sage [2017/08/09(水) 11:33:36.39 ID:s1XZJ5Nh.net]
>>906
ますたーって読んでいいぞ

940 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 11:38:08.60 ID:deJRgLks.net]
Cなのにスマタさん。特権プレイモードってのがあるんですよ。Winの起動オプションをよく見てください。



941 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 11:38:48.46 ID:vlyUfKCW.net]
>>911
gccもgdbもWindowsで使える

942 名前:C言語ますたー [2017/08/09(水) 11:41:46.58 ID:s1XZJ5Nh.net]
>>913
ほー有益な情報をありがとう
それだとどんなコマンドが使えるの?

943 名前:C言語ますたー [2017/08/09(水) 11:42:09.25 ID:s1XZJ5Nh.net]
>>914
あ、マジで?
勉強不足だわ…

944 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 11:44:51.11 ID:wdbwq19+.net]
cp/m80で使えるgdbはどこ?

945 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 11:46:56.01 ID:deJRgLks.net]
どうやらCなのにスマタさんは童貞です。

946 名前:C言語ますたー [2017/08/09(水) 11:57:25.81 ID:s1XZJ5Nh.net]
ちょっと調べてみたんだがgdbはソースがあって、-gオプションでデバッグ情報を生成したときのみ使えるコマンドじゃん
俺がデバッグしたいのはただの実行可能ファイルなんだ…

947 名前:デフォルトの名無しさん [2017/08/09(水) 12:02:30.41 ID:J9yCSat5.net]
>>848
案の定w
もう、とぼける位しかできねえボコボコだもんなおまえ

841に6.5.3.2と書いてあるのがどういう意味か
見当もつかない赤っ恥に気づきもしないからこそ
それでとぼけたつもりになっているんだろう

 浅 は か な や つ w

948 名前:デフォルトの名無しさん [2017/08/09(水) 12:22:51.13 ID:6bCVBseb.net]
>>919
行番号やデバッグシンボルが見られないだけで、gdb自体は使える
ollydbgやらにしても、任意の場所で止めたければ、ブレークポイント張れば済むだろ

949 名前:C言語ますたー [2017/08/09(水) 12:37:30.55 ID:s1XZJ5Nh.net]
>>921
おお使えたわw
でも実行ファイル側が入力待ち状態なんだけどデバッガ操作できない…
当たり前かここら辺はどうやって追えばいいんだろうか
手前にブレークポイント作ってステップインかな?

950 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 12:39:16.06 ID:LnmC5B+P.net]
>>917
それはお前が作るんだよ



951 名前:デフォルトの名無しさん [2017/08/09(水) 12:42:14.46 ID:J9yCSat5.net]
いるよなー
GNUはハッカーのものだってことを忘れてるやつ

952 名前:C言語ますたー [2017/08/09(水) 12:55:30.37 ID:s1XZJ5Nh.net]
最初っからステップインで実行したいんだけどシンボルテーブルが無いおかげでブレークポイント作れないからアドレス0x00400AFFにCCを入れて実行開始アドレスを0x00400AFFに書き換えたんだけどローダが読んでくれないみたい…
アドバイスありませんかね

953 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 13:13:43.97 ID:FEqENNu4.net]
gdbなら「b *アドレス」でブレーク貼れるでしょ

954 名前:C言語ますたー [2017/08/09(水) 13:31:17.32 ID:s1XZJ5Nh.net]
>>926
どうもデバッグ情報がないから無理っぽい…?

で、仕方なく開始アドレスにバイナリエディタでCC入れて止めてみたんだけど、デバッグ情報がないせいで’s’コマンドが実行できない
”cannot find bounds of function."って出るんだけど、ググったらデバッグ情報がないとこうなるみたい
gdbじゃexeのシングルステップ実行は無理なんじゃ…

とりあえずネットで調べながら自分でシングルステップ実行するプログラム作ったんだけど、デバッグイベント起こらなくてWaitForDebugEvent関数で止まるwww
どうすりゃデバッグイベント起こせるんだよ

955 名前:C言語ますたー [2017/08/09(水) 14:44:13.23 ID:s1XZJ5Nh.net]
しょぼいデバッガみたいのは動いたけどシングルステップ実行にならん…
なぜだ

956 名前:デフォルトの名無しさん [2017/08/09(水) 15:31:30.38 ID:WoeKVDyE.net]
なんで実行する必要があるんだ? 逆アセンブルしてソースコードを起こせばいいでしょ。

957 名前:C言語ますたー [2017/08/09(水) 15:43:21.53 ID:s1XZJ5Nh.net]
>>929
そんな膨大なコードから目的の部分が見つかるわけないでしょ

958 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 16:28:28.13 ID:7zaXDMDr.net]
>>920
で、それがどうしたんだ?

> printf("Hello, C world!\n"); これがポインタだっ どやっ
手帳申請しろよ w

959 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 16:37:22.13 ID:7zaXDMDr.net]
>>920
この、ガイジは全然理解してない事を理解できずにガイジを再生産しようとしたやがる

> printf("Hello, C world!\n"); これがポインタだっ どやっ
これは、ポインタじゃなくてポインタ型
そしてそれは、ポインタと配列を区別出来ないガイジの本質

役所には盆休みはないから、休みのうちに手帳申請しとけよ

960 名前:デフォルトの名無しさん [2017/08/09(水) 16:46:18.30 ID:J9yCSat5.net]
> これは、ポインタじゃなくてポインタ型

失笑
「ポインタと配列を区別出来ないガイジの本質」を
そのままお返しだ、さあ受け取れアフォ



961 名前:デフォルトの名無しさん [2017/08/09(水) 16:49:08.32 ID:J9yCSat5.net]
こーゆー手合いは、こっちから攻め込まなくても
時間稼ぎしてれば勝手に自爆してくれるから楽だ

962 名前:C言語ますたー [2017/08/09(水) 16:49:25.49 ID:s1XZJ5Nh.net]
機械語のシングルステップ実行に成功した
けどレジスタとか表示させるのにまたプログラム改変しなきゃなんない
面倒臭すぎる

963 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 16:51:48.67 ID:zUFk2ZAi.net]
配列も文字列リテラルも式の中の評価はポインタ型だからな
引数として評価されると本質は同じことになる

964 名前:デフォルトの名無しさん [2017/08/09(水) 17:00:02.70 ID:J9yCSat5.net]
>>936
ちげーよ
assert(sizeof(const char *) == sizeof "string literal"); //abend

965 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 17:09:17.76 ID:zUFk2ZAi.net]
>>937
それは sizeof 演算子を適用したときの評価結果が異なっているだけだろ
型は同じでもオブジェクトそのものは別なのだから当たり前

966 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 17:11:40.05 ID:PV13OBMN.net]
関数の引数として、配列をまるまるスタックにつむには
struct で包むぐらい? typedef はポインタのままよね?
https://ideone.com/3MYBoM

967 名前:デフォルトの名無しさん [2017/08/09(水) 17:17:25.80 ID:J9yCSat5.net]
>>938
おまえさんはこう言ったんだぜ
> 配列も文字列リテラルも式の中の評価はポインタ型だからな

sizeofつまりunary-expressionは紛れもなく式の1つだ
よって式の中で文字列リテラルがポインタ型というのは正しくない

968 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 17:25:24.78 ID:YmDhq+hb.net]
>>940
面倒くさい奴だな
正確には>>937の前者は型の評価結果、後者は式の評価結果だ
sizeof演算子は型名に適用する場合と式に適用する場合の二通りの使い方がある
演算子の動作も評価も異なる

969 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 17:28:25.59 ID:PV13OBMN.net]
前置,後置の ++ や -- は式じゃない ってことないし
>>936 は見てる状況を限定しすぎてないかな?

970 名前:デフォルトの名無しさん [2017/08/09(水) 17:28:34.22 ID:J9yCSat5.net]
>>941
ほほー型の評価結果と式の評価結果とな
じゃあこれはどう説明する?
const char* ptr
assert(sizeof ptr == sizeof "string literal"); //abend



971 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 17:45:41.64 ID:YmDhq+hb.net]
>>943
それは式同士の評価結果の比較
ポインタ型のオブジェクト同士を比較してる
int型変数の場合、iと(i+1)のとき評価結果は異なるが、型は同じというのと同じ

972 名前:デフォルトの名無しさん [2017/08/09(水) 17:49:19.66 ID:J9yCSat5.net]
>>944
えっ!?
assert(sizeof ptr == sizeof("string literal" + 1)); //pass
おまえさん、これが通るのは何が変わったというんだ?

973 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 19:31:37.93 ID:7zaXDMDr.net]
今日もガイジID:J9yCSat5は元気だな

974 名前:デフォルトの名無しさん [2017/08/09(水) 19:46:02.23 ID:J9yCSat5.net]
ん? ガイジの称号はお返ししただろ、ガイジ君

975 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 20:48:57.04 ID:afYQHR9U.net]
個人攻撃抜きでやれば、面白い事言っているんだけどなぁ:-P

976 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 20:58:23.97 ID:+5xcelsT.net]
糞下らん議論でスレを汚すな

977 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 21:07:56.63 ID:8y5srZEo.net]
クソ下らんことが141000レスも続いてんだぞ
14万だ
過去スレなんて見た日にゃ目がつぶれてそのまま気絶だ

978 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 21:09:32.99 ID:7zaXDMDr.net]
ガイジID:7zaXDMDrは必死になって、
> printf("Hello, C world!\n"); これがポインタだっ どやっ
これを否定するネタを探してきたらしいが
あてにならない(どうとでも取れる)JIS規格票は根拠にならんぞ

> A pointer is a variable that contains the address of another variable.
文字列は変数じゃない
従ってポインタじゃない これは神が決めた事

979 名前:おもろいやんけ! mailto:sage [2017/08/09(水) 21:23:05.53 ID:h3UNfnj7.net]
綺麗な自己紹介

980 名前:デフォルトの名無しさん [2017/08/09(水) 21:52:53.42 ID:NuBALnab.net]
>>939
配列の時点でスタックに確保されてるけど
それとは別のスタック領域にコピーとして渡したいってことなら構造体かな



981 名前:デフォルトの名無しさん [2017/08/09(水) 22:15:20.36 ID:aUjAPhEK.net]
このスレは必ず絡んでくるやつが居るな
しかも延々とな

レスされて「この野郎!」と思った時には、深呼吸して落ち着こう。
そしてこうつぶやくのだ「相手にするなヨシオ」とな

982 名前:デフォルトの名無しさん [2017/08/09(水) 22:24:18.50 ID:J9yCSat5.net]
>>951
ははは、JISつまりISO/IECの和訳はおまえの敵か
自らの死刑宣告を読み上げていることに気付いているのか

983 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 22:26:15.56 ID:vlyUfKCW.net]
ワザとやっているんだろう、たぶん

984 名前:デフォルトの名無しさん [2017/08/09(水) 22:28:54.98 ID:J9yCSat5.net]
個人攻撃は、俺もそんなことしにきているわけじゃないんだが
喧嘩売ってくる馬鹿がいるとき、場合によるが応戦することもある
俺には9条みたいなふざけた縛りはない、それだけのことだ

技術的なことを言うたびにもれなく失笑させてくれる
民進党のブーメラン屋みたいなマゾ野郎がいるから、
ちょっとSっ気出ちまってるんだよ

985 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 22:35:40.33 ID:vlyUfKCW.net]
2chで正論言っても仕方がないよ

986 名前:デフォルトの名無しさん mailto:sage [2017/08/10(木) 00:08:19.99 ID:Ahb0l/jg.net]
>>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"); これがポインタだっ どやっ
は、やっぱりお笑いだ わかったら明日手帳申請にいくんだぞ ガイジ

987 名前:C言語ますたー [2017/08/10(木) 00:15:28.54 ID:Wh1e+mJZ.net]
これただのBNFですやん
定義じゃなくて文法

988 名前:C言語ますたー [2017/08/10(木) 00:16:03.76 ID:Wh1e+mJZ.net]
あ、ごめんなんでもない
アスペかました

989 名前:デフォルトの名無しさん mailto:sage [2017/08/10(木) 00:23:27.16 ID:ukk4ErN5.net]
うんざりしている人は、ガイジをNGにしよう

990 名前:C言語ますたー [2017/08/10(木) 00:27:01.19 ID:Wh1e+mJZ.net]
(俺のことじゃないよな…)(´・ω・`)



991 名前:デフォルトの名無しさん mailto:sage [2017/08/10(木) 01:00:58.59 ID:OxRJE4uH.net]
まだやってんのかよ

992 名前:デフォルトの名無しさん mailto:sage [2017/08/10(木) 01:23:36.79 ID:eLvHxdUn.net]
あガガイのガイ

993 名前:デフォルトの名無しさん mailto:sage [2017/08/10(木) 01:49:11.94 ID:7/H0Fazi.net]
fflush(mevius.2ch.net/test/read.cgi/tech/1500293207/);

994 名前:デフォルトの名無しさん [2017/08/10(木) 08:25:53.10 ID:oM3wka/1.net]
>>959
英語でDeclaratorsって書いてあるの意味わかってる?
リテラルは宣言して使うものじゃないんで、
そこは全然関係ない

 ア フ ォ w w w

995 名前:デフォルトの名無しさん mailto:sage [2017/08/10(木) 08:29:30.77 ID:l1OSsrCe.net]
>>953
そそ
複製を渡して
よばれた関数内での値の書き換えが呼び出し元に伝わらない形が気になってた

996 名前:デフォルトの名無しさん mailto:sage [2017/08/10(木) 10:25:39.89 ID:Ahb0l/jg.net]
>>967
pointerの定義は規格票の中でこれしか無いって言ってるんだよ 他は定義せずに使っている

ガイジはどこまで言ってもガイジだな

997 名前:デフォルトの名無しさん mailto:sage [2017/08/10(木) 10:35:59.74 ID:QIhLvvh/.net]
【問題】
ポインタとは何か
日本語で二行以内で書きなさい

998 名前:デフォルトの名無しさん [2017/08/10(木) 11:16:07.94 ID:O+DiuWEO.net]



999 名前:デフォルトの名無しさん mailto:sage [2017/08/10(木) 11:43:42.10 ID:Ez0zAyQ5.net]
外人がまっさきに思い浮かべるポインタといえばコレ
i.imgur.com/nzuyDvh.jpg

1000 名前:C言語ますたー《ますたー軍団(常時募集)の長》 [2017/08/10(木) 11:44:33.00 ID:Wh1e+mJZ.net]
メモリ上のアドレスを格納する変数



1001 名前:デフォルトの名無しさん mailto:sage [2017/08/10(木) 11:48:40.43 ID:iih/xgGV.net]
> メモリ上のアドレス

低学歴にもほとがあるな。

1002 名前:デフォルトの名無しさん mailto:sage [2017/08/10(木) 11:49:15.42 ID:WglIhH8F.net]
具体的に説明せずに煽るから荒れる

1003 名前:デフォルトの名無しさん mailto:sage [2017/08/10(木) 11:57:50.46 ID:O+DiuWEO.net]
>>973
よくある実装ではそうだろうけど必ずしもメモリ上のアドレスでなくてもよかったような?
例えば(何か特殊な事情がないとこんな実装はしないだろうけど)ファイルでもいいんだよね。
*p ってやった時にアクセスできればいいだけだから。そういうアクセスになるようにコンパイルされればそう動く。

1004 名前:デフォルトの名無しさん mailto:sage [2017/08/10(木) 12:23:05.86 ID:BijEmwXz.net]
【問題】
自己顕示とは何か
日本語で二行以内で書きなさい

1005 名前:デフォルトの名無しさん mailto:sage [2017/08/10(木) 12:26:02.90 ID:Nr0tZQ0b.net]
>>970
オレたちの世代はこれだろ!
blog-imgs-51.fc2.com/d/o/n/donboolacoo/PP_20130414161829s.jpg

1006 名前:C言語ますたー《ますたー軍団(常時募集)の長》 mailto:sage [2017/08/10(木) 12:45:43.96 ID:Wh1e+mJZ.net]
>>974
学歴?
>>975
いや、ポインタ自体はただのアドレスだよ
厳密に言えば論理アドレス(物理アドレスでは無い)
ファイルってのは構造体に過ぎないわけで、windowsならFILE構造体ってのが用意されてる
だから、FILE *fp;と書けば、fpはただのアドレスだけど、その指す先はFILE構造体のサイズ分のメモリ領域となる

1007 名前:C言語ますたー《ますたー軍団(常時募集)の長》 mailto:sage [2017/08/10(木) 12:46:01.19 ID:Wh1e+mJZ.net]
ミスった>>976だった

1008 名前:デフォルトの名無しさん mailto:sage [2017/08/10(木) 12:59:59.40 ID:hk9jSOXL.net]
>>972
これでしょ
www.koinuno-heya.com/syurui/hagyou/images/pointer1.jpg
そっちのポインターは使わない人も多いし

1009 名前:デフォルトの名無しさん [2017/08/10(木) 14:11:24.78 ID:oM3wka/1.net]
>>969
ポインタとは何かという「定義」と、
宣言のうち実体を作る「定義」を混同しているわけね

 ア フ ォ w w w

1010 名前:デフォルトの名無しさん mailto:sage [2017/08/10(木) 15:54:14.88 ID:PuWYnGyf.net]
ahoとは何かと言う定義と実装された目前のahoの違い
&でアドレス取ろうとしたら住所不定であったでござるw



1011 名前:デフォルトの名無しさん [2017/08/10(木) 16:21:59.47 ID:oM3wka/1.net]
それはlvalueを除くvalue of an expressionだね
&969; //erroneous

1012 名前:デフォルトの名無しさん mailto:sage [2017/08/10(木) 16:51:40.50 ID:R5q9oGzu.net]
長いバトルだのう

>>629
サラっと嘘吐いてないかい?

1013 名前:デフォルトの名無しさん mailto:sage [2017/08/10(木) 16:53:00.40 ID:R5q9oGzu.net]
失礼した
茶碗持つね

1014 名前:デフォルトの名無しさん [2017/08/10(木) 18:00:55.34 ID:oM3wka/1.net]
char const **s; // **s を修飾
char * const *s; // *s を修飾
char ** const s; // s を修飾

これなら左と右を間違えたで済むが
あの文面はそうじゃない

1015 名前:デフォルトの名無しさん [2017/08/10(木) 20:22:14.17 ID:hEocmkh5.net]


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

1016 名前:デフォルトの名無しさん mailto:sage [2017/08/10(木) 20:24:22.06 ID:IhVgxvD4.net]
char const * array = xxx
って初期化したあとで
配列とポインタの区別ってつく?

1017 名前:デフォルトの名無しさん mailto:sage [2017/08/10(木) 20:28:53.63 ID:iazj7Dc9.net]
>>982
「ポインタ」はただの単語だ
それに意味を与えることが「定義」

> ポインタとは何かという「定義」と、
> 宣言のうち実体を作る「定義」を混同しているわけね
前者後者で意味を分けるって事はお前が「定義」したって事だ

ガイジのお前がな w

1018 名前:デフォルトの名無しさん [2017/08/10(木) 20:29:20.75 ID:sSyWFoa+.net]
>>988


1019 名前:デフォルトの名無しさん mailto:sage [2017/08/10(木) 20:41:57.65 ID:QtKgWI2k.net]
>>987
ポインタの型修飾子は左側の*(ポインタ型)への修飾であってるだろ
右側のsを修飾したら識別子への修飾になって

1020 名前:しまう

型指定の方のconstは構文規則が違うから、一緒に語ること自体がアレだけど
[]
[ここ壊れてます]



1021 名前:デフォルトの名無しさん mailto:sage [2017/08/10(木) 20:53:06.50 ID:pUVptWbb.net]
なんで次スレ勝手にワッチョイなってんの?

1022 名前:デフォルトの名無しさん mailto:sage [2017/08/10(木) 21:01:59.30 ID:eLvHxdUn.net]
勝手にガイジ対策草ア!!

1023 名前:デフォルトの名無しさん mailto:sage [2017/08/10(木) 21:07:33.98 ID:LT6YffV+.net]
恣意的な煽りしている奴がいるからだろう

1024 名前:デフォルトの名無しさん mailto:sage [2017/08/10(木) 21:10:04.72 ID:iazj7Dc9.net]
> printf("Hello, C world!\n"); これがポインタだっ どやっ
やはり、これはガイジが自分で定義した「ポインタ」の説明だったな

1025 名前:デフォルトの名無しさん [2017/08/10(木) 21:25:49.94 ID:dUeZi9GF.net]
ワッチョイ無しでスレ立て直せ

1026 名前:デフォルトの名無しさん mailto:sage [2017/08/10(木) 21:26:48.02 ID:eLvHxdUn.net]
ガイジ連呼厨対策になるしいいんじゃね?

1027 名前:C言語ますたー《ますたー軍団(常時募集)の長》 [2017/08/10(木) 21:37:35.20 ID:Wh1e+mJZ.net]
1000欲しいな

1028 名前:C言語ますたー《ますたー軍団(常時募集)の長》 mailto:sage [2017/08/10(木) 21:38:17.92 ID:Wh1e+mJZ.net]
俺のものっ

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

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








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

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

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