X



C言語なら俺に聞け 144
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん (ワッチョイ 838a-3nWA)
垢版 |
2017/12/23(土) 19:33:43.89ID:dghfoRy20
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/

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

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

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

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


http://mevius.5ch.net/test/read.cgi/tech/1509107288/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
0099デフォルトの名無しさん
垢版 |
2018/01/08(月) 15:31:40.17
>>97
んなこたあない
>>94の書いてるコードと同義で、cの先頭アドレスからint分の領域に代入するだけで、cを拡張したり戻したりしてるわけではない
gcc 3.xやVC++2008では通ったが今のgccではコンパイルエラーになる記法
0101デフォルトの名無しさん (ワッチョイ 2bb3-RrJ/)
垢版 |
2018/01/08(月) 16:09:19.72ID:eKvnY0O/0
(int)cって右辺値じゃないの?
0102デフォルトの名無しさん (ワッチョイ 1f5b-5YeV)
垢版 |
2018/01/08(月) 17:43:28.20ID:u4QX+fVn0
>>101
そうだよ
だけど一部の(まずいことに大手の)コンパイラが
左辺値としての用法を古くから許していた
0105デフォルトの名無しさん (ワッチョイ 1f5b-5YeV)
垢版 |
2018/01/08(月) 19:03:01.62ID:u4QX+fVn0
若造が見たことないのは仕方ないよ
活発に議論されていたのがC89制定を目指していた頃のことだから
0108デフォルトの名無しさん (ワッチョイ 1f5b-5YeV)
垢版 |
2018/01/08(月) 19:26:48.32ID:u4QX+fVn0
>>106
一児の父だが孫はまだいねえよ
0109デフォルトの名無しさん (ワッチョイ 4b9f-Ogju)
垢版 |
2018/01/08(月) 19:45:48.59ID:8LuLzpAV0
>>107
例外じゃないって立場は俺しか居ないのか?
その場合、お前らはこれを整合性よく説明できない馬鹿共だということになるが、それで良いか?

逆に考えてみろ。
君がそれを「例外」だとしているのなら、つまり「例外」でなければ君は
const <type> *p = ... // (A)
<type> const *p = ... // (B)
で意味が違うべきだというわけだ。
その場合、それぞれどういう意味と捉えるべきだと考えるのか、言えるか?
0111デフォルトの名無しさん (ワッチョイ 9fb3-TPPA)
垢版 |
2018/01/08(月) 20:23:19.52ID:7hYpzMEE0
こんなの決め事なんだからもしそう言うのがあったとしても
> その場合、それぞれどういう意味と捉えるべきだと考えるのか、言えるか?
は、作った奴に聞くしかないだろ
0112デフォルトの名無しさん
垢版 |
2018/01/08(月) 20:24:38.73
例外でもなんでもなく、単にC言語の標準規格がそうなっているからとしか言いようがないけどな。

宣言指定子 (declaration specifier) は以下の3要素から構成されている (順不同)。
・記憶クラス指定子 (storage class specifier) : auto, register, static, extern, typedef
・型指定子 (type specifier) : void, char, short, int, long, float, double, signed, unsigned, struct/union指定子, enum指定子、typedef名
・型修飾子 (type qualifier) : const, volatile

ポインタ宣言子 (pointer) は以下の2要素から構成されている。
・*
・型修飾子 (type qualifier) リスト

いろいろ省略してるので細部は不正確かもしれないがC89ではだいたいこんな感じ。
参考: C11のYacc文法 http://www.quut.com/c/ANSI-C-grammar-y.html

で、なぜそうなっているかを自分流に解釈して自分の中で整合性を取るのはいいけど、それを他人に押しつけるなってことだね。
0113デフォルトの名無しさん (ワッチョイ 1f5b-5YeV)
垢版 |
2018/01/08(月) 20:24:45.15ID:u4QX+fVn0
ちゃんと理詰めで理解できるやつもいれば
暗記するしかないやつもいる

世の中、人それぞれだな
0114デフォルトの名無しさん
垢版 |
2018/01/08(月) 20:39:32.52
>>113
別に太陽が地球の周りを公転していると解釈してもいいんですよ?
結果さえ合っていればね。
ただその自分流の解釈を他人に講釈したら恥をかきますよって話。
0116デフォルトの名無しさん (ワッチョイ 1f5b-5YeV)
垢版 |
2018/01/08(月) 21:18:47.34ID:u4QX+fVn0
             「 ̄ `ヽ、   ______
             L -‐ '´  ̄ `ヽ- 、   〉
          /           ヽ\ /
        //  /  /      ヽヽ ヽ〈
        ヽ、レ! {  ム-t ハ li 、 i i  }ト、
         ハN | lヽ八l ヽjハVヽ、i j/ l !
         /ハ. l ヽk== , r= 、ノルl lL」
        ヽN、ハ l   ┌‐┐   ゙l ノl l
           ヽトjヽ、 ヽ_ノ   ノ//レ′
    r777777777tノ` ー r ´フ/′
   j´ニゝ        l|ヽ  _/`\
   〈 ‐ 知ってるが lト、 /   〃ゝ、
   〈、ネ..         .lF V=="/ イl.
   ト |お前の態度が とニヽ二/  l
   ヽ.|l         〈ー-   ! `ヽ.   l
      |l気に入らない lトニ、_ノ     ヾ、!
      |l__________l|   \    ソ
0118デフォルトの名無しさん (ワッチョイ 1f5b-5YeV)
垢版 |
2018/01/08(月) 21:43:42.37ID:u4QX+fVn0
無知なやつには
恥をかかせるよりも
教えないことが最も堪えるからな
0120デフォルトの名無しさん (ワッチョイ 1f5b-5YeV)
垢版 |
2018/01/08(月) 21:51:24.43ID:u4QX+fVn0
悪党の泣き声は言い響きだ
何を教えるつもりなのか聞き出したいんだなあwww
0122 ◆QZaw55cn4c (ワッチョイ 1f60-1EiW)
垢版 |
2018/01/08(月) 21:58:13.44ID:F+Qn6y7R0
正直なところ

const int x

int const x
は同等、

というのは、決め事でいいと思うよ、何もかも原理原則で理解できる(までに細かくパースできる)人にはどうでもいいのかもしれないが。

‥えっと、細かい人にとって、この場合どうでもいいのか、どうでもよくないのか、どっちだったっけ??
0124デフォルトの名無しさん (ワッチョイ 8ba8-15OS)
垢版 |
2018/01/08(月) 22:04:03.83ID:t4bSGeIh0
同等も何も、修飾する主体が変数だけなんだから、何をどう変えろと?
対象がポインタなのかポインタの内容なのかって話に意味の無い例を挙げてどうしたいんだ?
0125デフォルトの名無しさん (ワッチョイ 1f5b-5YeV)
垢版 |
2018/01/08(月) 22:17:28.76ID:u4QX+fVn0
収穫ゼロ
 ざ ま あ www
0126デフォルトの名無しさん (ワッチョイ 4b9f-Ogju)
垢版 |
2018/01/08(月) 22:43:40.28ID:8LuLzpAV0
>>116
>>125
禿同

というかいい加減、知らない奴が煽るとか止めろよドアホ共。それは長期的にスレを毀損する。
なお、俺は知っている奴が馬鹿を糞味噌に貶すのを止めはしない。
馬鹿なこと言わなきゃいいだけだし、
逆に、これが出来ないのがID制フォーラムが腐る原因だと思っているから。

ヒントは既に書いたし、それ以前にC流の文法解釈をすれば特段不自然でもないし。
「例外」だと言いつつ(A)≠(B)を妥当とする根拠もないのはただの自己矛盾だと気付け。
そしてK&RはCの作者によって書かれているんだが、それも知らないのか?
Cしかなかった昔ならともかく、今お前らみたいな馬鹿がCやる理由は無いと思うんだがなぁ。
0127デフォルトの名無しさん
垢版 |
2018/01/08(月) 23:14:54.65
>>126
で、K&Rのどの記述からconstに関する解釈(constの右側の固まり全体が定数と見なされる)を読み取ったの?
0128デフォルトの名無しさん (ワッチョイ 1f5b-5YeV)
垢版 |
2018/01/08(月) 23:16:56.57ID:u4QX+fVn0
K&Rにconstはねえな
constの設計は髭と禿の合作だが
0130デフォルトの名無しさん (ワッチョイ 1f5b-5YeV)
垢版 |
2018/01/08(月) 23:28:56.73ID:u4QX+fVn0
おまえの手元のK&RってISBNはいくつだ?
0131デフォルトの名無しさん (ワッチョイ 1f5b-5YeV)
垢版 |
2018/01/08(月) 23:40:40.21ID:u4QX+fVn0
眠い・・・落ちるぞ
0134デフォルトの名無しさん (アウアウカー Sa4f-dSb4)
垢版 |
2018/01/09(火) 09:57:35.67ID:2pt0JvoIa
人の事はどうでもいい。Cの話を書け。
0136デフォルトの名無しさん (ワッチョイ 0bf6-5YeV)
垢版 |
2018/01/09(火) 10:17:45.46ID:BapSTNU/0
constがないK&Rが本のことだと思ったアフォはもう死んじまったのか?
0138デフォルトの名無しさん (ワッチョイ 0f8a-jAz5)
垢版 |
2018/01/09(火) 13:34:20.42ID:IJNuACex0
プログラミング言語Cの第2版(白本)は初版(緑本)と違ってANSI規格準拠
型修飾子や型指定子の項目にconstは存在する
というかconstとvolatileはANSI標準で新設されたものと明言されてる
一般には同一著者なので第2版まで含めてK&R本と呼ばれているから紛らわしい
0143デフォルトの名無しさん (ワッチョイ 0bf6-8O7H)
垢版 |
2018/01/09(火) 21:51:12.35ID:BapSTNU/0
        ゴガギーン
             ドッカン
         m    ドッカン
  =====) ))         ☆
      ∧_∧ | |         /          / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     (   )| |_____    ∧_∧   <  おらっ!出てこいOgju
     「 ⌒ ̄ |   |    ||   (´Д` )    \___________
     |   /  ̄   |    |/    「    \
     |   | |    |    ||    ||   /\\
     |    | |    |    |  へ//|  |  | |
     |    | |    ロ|ロ   |/,へ \|  |  | |
     | ∧ | |    |    |/  \  / ( )
     | | | |〈    |    |     | |
     / / / / |  /  |    〈|     | |
    / /  / / |    |    ||      | |
   / / / / =-----=--------     | |
0145デフォルトの名無しさん (アウアウカー Sa4f-dSb4)
垢版 |
2018/01/10(水) 15:34:00.74ID:Y4Jjv91Na
つまり君は愛を求めてここに来たんだね。
0147デフォルトの名無しさん (ワッチョイ 4f23-ldot)
垢版 |
2018/01/10(水) 18:12:49.28ID:b0jd81470
openじゃなくてfopenみたいに、ファイルの存在確認のaccess関数に
対応するちょっと上位の標準関数ってある?
0148デフォルトの名無しさん (アウアウカー Sa4f-dSb4)
垢版 |
2018/01/10(水) 18:24:05.75ID:lfXyh+0pa
>>147
stat()とfstat()なんかどうだ?

まあでもopen(), fopen()の関係とは違うけどな。
open()はシステムコールだがfopen()はライブラリ関数だ。
(UNIX系OSの話ではあるが)。
0149デフォルトの名無しさん (アウアウウー Sa8f-sUx7)
垢版 |
2018/01/10(水) 19:13:04.16ID:7FV5Lym6a
俺の希望は、たいしたやりたくもないけど、
ちょっとやってみたら?とか丁寧に教えるからやってみなよ!
とかさ、そういう感じで優しく接してもらってだな、で、出来も悪いからなかなか覚えないけどそれでも教える側が知恵を絞ってどうにかうまく理解させる方法はないだろうかと創意工夫して育てる環境というのかな。とにかく頼むよまじ
0151デフォルトの名無しさん
垢版 |
2018/01/10(水) 20:01:31.67
>>149
授業料ももらってないのに優しく教える理由なんかないわな
5chなんて煽り合いと罵り合いの場だよ
0152デフォルトの名無しさん (ワッチョイ 4b9f-Ogju)
垢版 |
2018/01/10(水) 20:07:35.30ID:s9KBVpbq0
>>149
日本語でおk
そして死ね

> 出来も悪いからなかなか覚えないけど
なら覚えるまで何度でも読み返せ

> 教える側が知恵を絞ってどうにかうまく理解させる方法はないだろうかと創意工夫して
教わる側が1mmも努力せず、教える側に全責任をなすりつけるのは典型的ゆとり。死ね。

というかな、はっきり言えば昔より格段に環境は良くなっている。
当然教える側のノウハウも蓄積されてるし、
本も大量に出版され、良書以外は淘汰されてるし、
Webにも情報があふれ、ここみたいな掲示板やフォーラムもあるし、
無料でIDEも使えるし。

だから昔の環境で手こずった奴も、今なら楽勝で学んでいける。
問題は、昔だったら(=IDE無しでは)お話にならない馬鹿にもプログラミングさせようとしていることであって、
俺はこれに関してはもう諦めた方がいい=手取り足取り教えないと出来ない奴は死ねでいい、と思っている。
自分の為に他人に無償の努力を強いるその姿勢が根本的に間違っている。
つかマジで、ゆとりのノリでやりたいなら、C以外のゆとり用言語を使え。Javaとか。新しいのならGoとか。


そしてこれとは別に、俺は2chとは別の掲示板を立ち上げようとしているのだが、
君はこれについて興味あるか?
追える限りでの発言を確認したが、君は煽るだけの無能ではないらしい。
俺は今の2chのシステムでは行けるところまで行っている(既に飽和している)と見ているから、
これ以上の物を求めるのなら何かしら新しい機能が必要だと考えている。
今はそれのアイデア出し中だ。何かあれば是非。
0153デフォルトの名無しさん (ワッチョイ 9fb0-hg+r)
垢版 |
2018/01/10(水) 20:09:47.69ID:aFHgFo+Q0
漠然とした質問で失礼します。
私は最近c言語の勉強を始めたところでギリギリポインタ等も理解できたところです。
そこで、アルゴリズムとデータ構造の勉強をしようと思い本を何冊か買ってきたのですが、
スタックなどのデータ構造の仕組みがよくわかりません。。
どの参考書でも、「スタックとは後入れ先出しで…」という説明の後、「それではc言語でスタックを
実装してみましょう」といって意味不明なコード(長い)が書かれているパターンが王道のようです。
このパターンは線形リストとかでも同じです(諸兄にはいうまでもないでしょうが…)。
どのような実益があってこのようなデータ構造を生成する必要があるのでしょうか。
python等でいうところのリストに相当するデータ構造をc言語で作成するためということ?
また、実際のプログラムにおいては、データ構造の定義だけでかなりコード長くなると思われるのですが、
よく利用される手法なのでしょうか。
0156デフォルトの名無しさん (ワッチョイ 4b9f-Ogju)
垢版 |
2018/01/10(水) 20:26:57.23ID:s9KBVpbq0
>>153
std::stack相当の話?
なら大して使わないから、とりあえず読み飛ばしていい。

つか、最初から全部キッチリ理解しようとせず、
まずは分かる範囲で組み、その後、自分の出来る範囲を広げていくようにした方がいい。
(1度読んで全部理解して捨てる、ではなく、最初から5回読む前提で分かるところから読み進める)
そのうち、stackを使うべき用途に遭遇したら、なるほどと理解できるようになる。
0157デフォルトの名無しさん (ワッチョイ 9fd7-r3wo)
垢版 |
2018/01/10(水) 20:34:17.56ID:01jIFW0g0
>>153
直近のご要望としては、スタックの使い所を知りたいって事かな?

ほとんどの実行環境において、C言語の関数呼び出しなんかの実現に使われてるよ。
呼び出した側の状態を保存する場合にpush、呼び出され側から戻るときにpop的な。
0159デフォルトの名無しさん (アウアウウー Sa8f-hL1C)
垢版 |
2018/01/10(水) 20:43:06.09ID:M55Gu+ZEa
>>153
どのような実益?そうだなあ。スタックといえば以前PerlでXMLの階層構造を
SAX使ってRDBに全て入れる時に使ったなあ。まあ、それだけでなく先入先出に
するとやりやすくなる処理はあるよ。再起処理でも使われるし(スタックに積まれて
いるとあまり意識する必要ないかもしれないが)。

リストは例えば長さが可変長のファイルからデータ取得してメモリ上に置いておく
時に使えるかな。

まあしかしライブラリにあるならそれ使った方が楽だよ。毎回書くのは阿保らしい。
0160デフォルトの名無しさん (ワッチョイ 9fb0-hg+r)
垢版 |
2018/01/10(水) 20:49:01.77ID:aFHgFo+Q0
>>156
とりあえずソートアルゴリズムのが理解したいと思い勉強をしていたのですが、複雑なものになってくると
各種データ構造の理解が必須!みたいになってきまして、データ構造の方にも手を出したみたわけです。
ヒープとかの方が簡単そうな気がしますし、とりあえずスタック関連は後回しにします。

>>157
はい、なんかそのようなことも本に書いてあったのです。
しかしこれが、「スタックとはプログラミング言語内においても既に設計されている基本構造なのだ。以上終わり。」
であれば、スッキリするのですが、
「それでは、これをc言語で実装してみましょう」といって、スタックをc言語のプログラムで作り出すことの意義
が今一つわからないというか。
0162デフォルトの名無しさん (アウアウカー Sa4f-dSb4)
垢版 |
2018/01/10(水) 21:00:10.17ID:lfXyh+0pa
それ用途が違うよね。
0163デフォルトの名無しさん (ワッチョイ 9fb0-hg+r)
垢版 |
2018/01/10(水) 21:00:44.51ID:aFHgFo+Q0
>>159
難しすぎます!
おそらく当分使えるようにはならなさそうです!
0164デフォルトの名無しさん (ワッチョイ 4b9f-Ogju)
垢版 |
2018/01/10(水) 22:13:09.56ID:s9KBVpbq0
>>160
> とりあえずソートアルゴリズムのが理解したいと思い勉強をしていたのですが
アルゴリズムとデータ構造をソートで学ぶのは昔流で、今はそれをこの段階でやる必要はない。
今はとりあえず次の章に行ってしまって、for/while/if等を使いこなせるようになった方がいい。

> 「それでは、これをc言語で実装してみましょう」といって、スタックをc言語のプログラムで作り出すことの意義
仕様を説明する必要がないからだよ。

「じゃんけんゲームを作ってみましょう」なら仕様は大体分かり、説明が省ける。
「オレオレゲームを作ってみましょう」なら、「オレオレゲームとか何か」から詳しく正確に説明しないといけない。
その本は「スタックとは何か」を当然知っているという前提で書かれているんだよ。
Cプログラマがスタック構造を知らないというのもあり得ないからね。
ただ、スタック知らなくてもプログラムなんて組めるし、実際Web系の連中は知らんと思う。

とはいえこれが一方的に悪い訳でもなくて、逆に言えば、
スタック構造を知っていることがプログラミングの本質ではない、ということなんだよ。
だから君みたいな初心者は、分からないところは飛ばして分かるところから読み進めればいいんだよ。
というか、今、君のレベルの初心者がCから始める意味は無いし、
無駄に遠回りになるだけだが、それ分かってやってるか?
0165デフォルトの名無しさん (ワッチョイ 2bb3-IKYq)
垢版 |
2018/01/10(水) 22:17:21.44ID:3INPjtq00
>>160
ハノイの塔のパズルを解くプログラムを書いてみて。
スタックを使う場合と使わない場合の2パターン描いてみて。
で、どちらが少ない行数で書けるか、どちらが実行速度が速いか、
どちらが理解しやすい美しいコードか、さまざまな観点で比較してみて。
0166デフォルトの名無しさん (ワッチョイ 4b9f-Ogju)
垢版 |
2018/01/10(水) 23:08:24.25ID:s9KBVpbq0
>>153
と思ったが、Pythonに言及しているところからすると、既にPythonを使いこなせるのか?
だとすると、「アルゴリズムとデータ構造」をガッツリやる意味はある。

スタックが何故使われるかと言えば、スタックで対応できる場合に最速だからだよ。
だからCは実行方式からしてスタックべったりだ。
逆に言えば、それくらいしかメリットないし、
通常の配列にメソッド生やしてスタックにするのも簡単だから、他言語では大体そうしてるでしょ。

以下見れば分かるが、
https://cpprefjp.github.io/reference.html
Pythonのリストに当たる物は
array, deque, forward_list, list, queue, stack, vector の7種類あり、
Cはこれらを使い分けて最速コードを得る為の言語なんだよ。
勿論それ以外の物が良ければ自作しろ、という文化だし。
逆に、Python等は、グダグダ考えずに全部リストでやれ、それの方が分かりやすいし、という文化だろ。
0167デフォルトの名無しさん (ワッチョイ 9fb0-hg+r)
垢版 |
2018/01/10(水) 23:39:41.13ID:aFHgFo+Q0
>>165
ほうほう。ありがとうございます。
かなり難しそうですがやってみます。

>>166
スプリクト言語の方が簡単、pythonやrubyでプログラミングというものをはじめましたが、そもそも詳しい人だけが
簡単に思えるだけで、基礎的知識なしでは相当にきついんでないの?と感じてcを始めました。
というわけでpythonが使いこなせるということはありません。
cに関しては教科書一通り一周して、とにかく制御をマスターしたかったので制御文を使いまくるであろうソートアルゴリズムに手を付けたんです。
制御文もアルゴリズムも理解できたら一石二鳥かなと思って。
「定本cプログラマのためのアルゴリズム〜」に「リスト」の説明があり、
・要素の挿入 ・要素の削除 ・要素の読み書き ・探索
・複数のリストをまとめる ・リストの分割 ・リストの複製 ・要素の数を求める
とあり、「あら、pythonのリストと全く同じ構造だ」とおどろいたわけです。
cはとりあえずarray, deque, forward_list, list, queue, stack, vectorといったものを「なんとかして」pythonのリストやまた
それ以外のデータ構造を自分で作成するということですか。
0168デフォルトの名無しさん (ワッチョイ 1bd0-fRwE)
垢版 |
2018/01/10(水) 23:52:55.49ID:Klfu8N/c0
どうでもいいけどプログラミングなんて10年後オワコンじゃない?
コード共有サイト行けば書きたかったコード見つかるしコピペすればおk
世界で既に誰かが書いてるもの二回三回書く必要性はない
この流れが自動化されれば終わるだろうな
0170デフォルトの名無しさん (ワッチョイ 11d0-EKU2)
垢版 |
2018/01/11(木) 00:13:19.12ID:pXQSKlgS0
>>169
なに言ってんだこいつ
調べれば1000000億%出るから自分で調べろよ
まさかgithubも使ったことないのかい?
0171デフォルトの名無しさん (ワッチョイ 3d9f-0PCX)
垢版 |
2018/01/11(木) 00:21:59.15ID:zDr2JTOQ0
>>167
> cはとりあえずarray, deque, forward_list, list, queue, stack, vectorといったものを「なんとかして」pythonのリストやまた
> それ以外のデータ構造を自分で作成するということですか。
違う。
Pythonのリストというのは抽象データ型で、要するに「万能」に作ってある。
この方がソースコードは分かりやすいから。(知識が少なくても読める)
逆に、「万能」なら限界ぎりぎりの速度を追求できないから、
Cでは別々にして使い分けろ、必要なら自作しろ、ということ。

> スプリクト言語の方が簡単、
これは実際にそう。
pythonやrubyでプログラミングというものをはじめましたが、
これも正しい。
> そもそも詳しい人だけが簡単に思えるだけで、
> 基礎的知識なしでは相当にきついんでないの?と感じてcを始めました。
ここはちょっと違う。

要するに、「動けばいい」プログラムでCを使う意味なんて無いんだよ。
逆に、最速のコードが欲しいときにはC/C++以外に現実的な選択肢はない。
だからほとんどのOS/ブラウザ/処理系(PythonやRubyも)はCで出来ているし、
Cが基礎だっていうのも間違いではないんだが、
プログラミングにCの知識が必要かというと、そうでもないんだよ。
Python/Rubyで済むのなら、Python/Rubyで済ませるべきであってね。
そして初心者はまず、「動けばいい」からスタートすべきであって、
それ以外に色々知識が必要なCはズブの初心者向きではないんだよ。

ただまあ、話を聞く限り、君が「アルゴリズムとデータ構造」をやるのは悪くはない。
とはいえ、現実的にソートのアルゴリズム知ってても大して意味はないし、
直接目標に向かった方がいいと思うが。
例えば、ゲームを作りたいのなら、何でもいいからとりあえず動くゲームを作ってみろ、ということ。
どうせこの最中にいろいろな問題にぶち当たることになるから。
0172デフォルトの名無しさん (ワッチョイ 3d9f-0PCX)
垢版 |
2018/01/11(木) 00:30:31.27ID:zDr2JTOQ0
一応付け加えておくと、
Pythonのリストは、C++で言う array, deque, forward_list, list, queue, stack, vector のどの用途にも使える。
でもその分遅いし、メモリも食う。
Pythonを使うというのは、これを認めて、楽さを取る、ということ。
逆に、最高速度で動かしたい、メモリを無駄に食うのは嫌だ、となると、
リストの実際の使われ方を確認して、最も適切なものを選べ、
或いはさらにチューニングできるのなら自作しろ、となるのがC。

だから、組み合わせて作るのではなく、使い分ける。
0173デフォルトの名無しさん (ワッチョイ 3d9f-0PCX)
垢版 |
2018/01/11(木) 00:39:50.99ID:zDr2JTOQ0
例えて言った方がいいかな?

Pythonのリストは「車」という解像度しかないのに対し、
Cでは、「軽、軽トラ、普通車、バス、トラック」が指定できるようなもの。
「車」で済むのならPython使っとけ、だし、初心者はこれで問題ない。

細かくチューニングしたいからそれ以上の解像度が必要だ、というときにだけCが必要で、
逆に言えば、その気がないのならPython/Rubyで十分だと思うし、そうするべきだとも思う。
Cは実行速度は最速だが、開発速度は最速ではないので。
0174デフォルトの名無しさん (ワッチョイ 11d0-EKU2)
垢版 |
2018/01/11(木) 00:45:19.80ID:pXQSKlgS0
なお、人工知能にはPython使う模様
cさん...w
0175デフォルトの名無しさん
垢版 |
2018/01/11(木) 00:48:46.80
Pythonでも速度求めるんならスタック・キューはlistじゃなくてcollections.deque使うやろ
0176デフォルトの名無しさん (ワッチョイ 6ad7-LeTx)
垢版 |
2018/01/11(木) 01:47:55.44ID:RB8iNeAj0
>>174
py なのはインタフェースだけでしょ。
0177デフォルトの名無しさん (ワッチョイ 6ad7-LeTx)
垢版 |
2018/01/11(木) 01:55:31.45ID:RB8iNeAj0
>>160
えっ?
データ構造を学んでるんでしょ?
その実装例がでてきたことに対して、実装する意義がわからないっておかしくない?
学習するためじゃないんかい…

車輪の再発明は無駄だけど、学習として車輪の作り方をトレースするのは有益。

とちょっと斜め上の視点をとってみた。
0178デフォルトの名無しさん (アウアウカー Sa55-EKU2)
垢版 |
2018/01/11(木) 08:54:30.53ID:oCnGxyW+a
今からお前らが書いてるコードが全て車輪だってことなんだよなぁ...
0179デフォルトの名無しさん (アウアウカー Sa55-EKU2)
垢版 |
2018/01/11(木) 08:56:46.29ID:oCnGxyW+a
2chにいる時点で端くれプログラマーなんだし世界で既に書かれたコードしか書いてないでしょ...()
0181デフォルトの名無しさん (アウアウカー Sa55-EKU2)
垢版 |
2018/01/11(木) 10:09:07.84ID:oCnGxyW+a
>>180
これは無能確定
何回も同じコードを書くのかい?
0184デフォルトの名無しさん (アウアウカー Sa55-EKU2)
垢版 |
2018/01/11(木) 11:04:46.69ID:oCnGxyW+a
>>183
非効率だよな
0185デフォルトの名無しさん
垢版 |
2018/01/11(木) 12:08:37.79
自分でコード書かないと npm left-pad みたいな問題が起きる

ブラックボックス的に使う部分と内製化する部分はきっちり区別して
内製部分はすべてのコードを完璧に把握しておくべきだ
0186デフォルトの名無しさん (アウアウカー Sa55-EKU2)
垢版 |
2018/01/11(木) 14:34:55.01ID:xUZeJB/aa
>>185
そりゃコードは把握すべきだよ
けど基本全部他かりゃ引っ張ってくりゃ解決するんだよなプログラムなんざ
プログラマーを神格化する風潮やめようぜ
0193デフォルトの名無しさん (ワッチョイ c576-01qY)
垢版 |
2018/01/11(木) 23:02:15.41ID:/sH2FBYP0
いやしかし、ひどい質問だなw
プログラムどころかアルゴリズムの時点で特許がどうの騒ぐ時代なのに、プログラムを全世界で共有とか頭悪すぎる。
0194デフォルトの名無しさん (ワッチョイ 6d9f-QpsD)
垢版 |
2018/01/12(金) 03:12:29.92ID:a7+Gi3xg0
部分的にはライブラリの配布みたいな感じで出来てはいるけどな。
0195デフォルトの名無しさん (ワッチョイ 11d0-rzLw)
垢版 |
2018/01/12(金) 03:27:24.54ID:2CbWWRaV0
正直車輪の再開発なんていってたら商売成り立たないよな
ほかの人に見せて第三者がそのコード使ったら普通に嫌だと思うんだけどコードの共有化とか利益と競争を考えてない綺麗事じゃないか?
コード使い回しなんて実際問題、会社内ぐらいでしかやらんだろ
0197デフォルトの名無しさん
垢版 |
2018/01/12(金) 11:55:16.87
GNU汚染問題もあるし出所の怪しいコードをやたらとホイホイ取り込めないよな
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況