1 名前:デフォルトの名無しさん [2019/04/02(火) 11:23:37.62 ID:SQXqRaAc0.net] !extend:checked:vvvvv:1000:512 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/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
92 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 16:51:52.86 ID:Y9aQW1ZLa.net] >>88 なんで? チミは頻繁にグローバル変数を使うってこと?やめたほうがええよ
93 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 16:58:14.51 ID:9YALwuYf0.net] >>89 なんでグローバル変数を使っちゃいかんのだ? スタックにしまえば安全だと思っているならおめでたいやつよ
94 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 17:08:01.10 ID:Y9aQW1ZLa.net] >>90 グローバル変数だめでしょ。 スタックってなんのこと?まさか関数呼び出しとスタックがセットだと思ってる?
95 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 17:12:08.62 ID:9YALwuYf0.net] >>91 なんでと聞いている 答えてくれ
96 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 17:16:15.00 ID:Y9aQW1ZLa.net] >>92 そんなもん、密結合・低凝集を実現する目的でしか役に立たんからですよ。
97 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 17:18:23.20 ID:9YALwuYf0.net] >>93 仮引数と自動変数が置かれるスタックもグローバルなんだが そのせいで密結合・低凝集になったりしているか?
98 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 17:20:34.39 ID:qyNiIlQC0.net] 記憶領域確保に失敗したとき 落ちないように頑張ってくれるのと 即落ちるのと どっちがどうだったか忘れた 最近読んだどっかに書いてあった筈だけど思い出せん… x86 限定で良いので挙動とコーディングの関係に心当たりのある方御教示ねがいます。。。
99 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 17:34:07.04 ID:VhJLBw5p0.net] こんな便所みたいなところでばっちばちでワロタ
100 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 17:36:28.06 ID:Y9aQW1ZLa.net] >>94 そうそう、だからポインタを使わないのがいいね
101 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 17:39:25.15 ID:Y9aQW1ZLa.net] 構造体に限った話でもないが、グローバル変数のポインタが引数として渡され、更にそういう関数が多段に続いたコードとか地獄だよ。 誰かが止めねばならんよ。
102 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 17:44:54.12 ID:9YALwuYf0.net] >>97 あ、おまえさんそっち系か ・・・なんでCなんか使うの?
103 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 17:46:05.16 ID:9YALwuYf0.net] >>98 グローバル変数をポインタ渡しは意味あるでしょ スコープを指定する、的なやつ
104 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 17:48:27.03 ID:Y9aQW1ZLa.net] >>100 マジ意味わからん
105 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 17:52:02.02 ID:9YALwuYf0.net] >>101 =97 二度も言わなくていいよ
106 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 18:00:58.67 ID:9QKNNv28a.net] >>102 いや、100の解説してくれや
107 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 18:05:19.14 ID:9YALwuYf0.net] >>103 #include <stdio.h> int x, y; int main(void) { scanf("%d", &x); scanf("%d", &y); return 0; } 暗黙にxに書き込む関数とscanfは どっちが汎用性が高いか どっちが見通しがい
108 名前:いか 考えてみな [] [ここ壊れてます]
109 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 18:07:33.40 ID:Y9aQW1ZLa.net] >>104 xとyを比較したらええんか?
110 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 18:09:36.68 ID:9YALwuYf0.net] >>105 おまえさんに解らせることはもう諦めた 放っといてくれ
111 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 18:17:20.49 ID:9YALwuYf0.net] 俺はいま103に説明しているんだ
112 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 18:41:36.83 ID:BTPtEuL0a.net] いや、同一人物だぞ
113 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 19:37:58.47 ID:WZ2DAnxG0.net] >>82 でイミフなこと言ってるなって思ったら単なる基地外やんw
114 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 20:25:42.75 ID:qyNiIlQC0.net] 結局「constを仮引数に使えないとき」というのがどんなときなのが全く分からず 「規格通りに書いてはならない」ケースが実
115 名前:在したのかしら [] [ここ壊れてます]
116 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 20:33:10.76 ID:Y9aQW1ZLa.net] >>110 え、毎回書いてるの?
117 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 21:26:31.69 ID:qyNiIlQC0.net] いや 仕事で使ってませんから そもそも「毎回」っていうほど書いてませんし 何らかのツールで勝手に入るので「敢えて書く必要性がない」ということなのでしょうか それとも一律に「書くな」というルールが定着している組織が実在しているのでしょうか
118 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 21:33:55.83 ID:9YALwuYf0.net] >>109 そうか、82がおまえさんはイミフなのか 悪いけど匙を投げるね
119 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 21:37:03.36 ID:qyNiIlQC0.net] >>104 にて scanf("%d", &x); と書かれているのですが、ターミナルから9を80字入力されたらどうなさるおつもりなのでしょうか また、signedともunsignedとも指定されておりませんが、その点はどのように汎用性を確保なさるのでしょうか
120 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 21:55:23.88 ID:9YALwuYf0.net] >>114 俺に聞くな、規格票を嫁 kikakurui.com/x3/X3010-2003-01.html 104のコードが規格厳密合致プログラム(strictly conforming program)であることのみここに宣言する この命題を反証されたら、潔く敗北を認める では貴殿の返答を待つ
121 名前:さまよえる蟻人間 mailto:sage [2019/04/10(水) 21:59:49.17 ID:QzOhMry80.net] intだけだったらsigned intになるっしょ。 近代的な環境なら、正しく書式を設定すればscanfはオーバーフローしない。
122 名前:さまよえる蟻人間 mailto:sage [2019/04/10(水) 22:19:22.09 ID:QzOhMry80.net] shortはsigned short、 longはsigned longだが、 charはコンパイラの設定によりsignedにもunsignedにもなる。普通はsignedだがな。
123 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 23:14:07.61 ID:qyNiIlQC0.net] >>115 > 規格厳密合致プログラム 残念ながら、リンク先の日本語文章に定義が無く意味不明だったため これから英文を読むことにします 型の件含め、皆様の御教示に感謝します
124 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 23:41:09.21 ID:qyNiIlQC0.net] "shall" の訳文に、筆者の苦悩のようなものが見受けられました その点ふくめ、私は知らないことが非常に多いようで、ご迷惑をおかけしました
125 名前: mailto:sage [2019/04/10(水) 23:46:11.63 ID:57hoitEO0.net] >>65 >>56 struct S { int a[65536]; };
126 名前: mailto:sage [2019/04/10(水) 23:49:04.71 ID:57hoitEO0.net] >>119 規格の中に現れる shall は十中八九「話者の意思」を示す 例文:You shall die. 超訳:「死ね!」
127 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 00:04:19.55 ID:SPJO7XdY0.net] >>121 > 例文:You shall die. > 超訳:「死ね!」 さすがにそれは… 日本語の文章の方に "shall" は書かれてなかったもんで把握、と 示唆したつもりだったのですが、通じなかったようで、表現力につき反省する所しきりであります
128 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 00:44:10.66 ID:Nah1Abkj0.net] I shall return 0.
129 名前:デフォルトの名無しさん [2019/04/11(木) 01:53:26.52 ID:5ienNbe20.net] *'``・* 。 | `*。 ,。∩彡⌒ミ * みんなハゲにな〜れ + (´・ω・`) *。+゚ `*。 ヽ、 つ *゚* `・+。*・' ゚⊃ +゚ ☆ ∪~ 。*゚ `・+。*・ ゚
130 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 07:54:50.71 ID:YCq7KtVA0.net] >>118 4. 規格合致性 規格厳密合致プログラム(strictly conforming program)は,この規格で規定する言語機能及びライブラリ だけを使用しなければならない(2)。さらに,いかなる未規定の動作,未定義の動作又は処理系定義の動作に依存する出力も生成してはならず,しかもどのような最低限の処理系限界も超えてはならない。 (2)規格厳密合致プログラムは,どの処理系でもサポートしているわけではない機能(附属書 F の中に例 がある。)を使うことができる。ただし,その機能を使うことができるのは,それが適切なマクロをもつ#ifdef 指令とそれに対応する#endif 指令とに囲まれている場合に限る。次に示すプログラム片がその例である。 #ifdef _ _STDC_IEC_559_ _ /* FE_UPWARD が定義されている */ /* ... */ fesetround(FE_UPWARD); /* ... */ #endif
131 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 09:09:31.46 ID:AbBe4c020.net] RFCなんかである要請の強度( MUST SHALL MAY ) みたいに使う用語の縛りはない?
132 名前: mailto:sage [2019/04/11(木) 20:58:24.95 ID:mnND5pqz0.net] >>122 あくまで私見ですが、現代英語では will に単純に置き換えられるような shall の使い方はもうありえなく、 shall を使うのは shall を使う必然性があるから、だから、shall は辞書でいうところの「意志未来」であり、したがって shall を訳出しないのは不誠実な訳だとどうしても私は感じてしまいます…
133 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 21:23:32.90 ID:SPJO7XdY0.net] 「英文読解」の場ではなかったので控えていたのですが >>127 個人的には「こんなのを訳出させられた人は凄い」と思ってます 「原典は英語で日本語訳がある」もので「日本語訳が意味不明」の場合 原典で確認すると「訳出で明確ではない」部分が確認できるケースが多々あります "shall" をどのように訳出するかは個人差ありますし 今回の箇所が「以前同じ文言があったので単純にコピペした」ものかどうかは確認していません もちろん>>126 さんが仰るように「強度の要請で助動詞を変える」ものもありえますが C99の文書の場合は丁寧に "shall" の定義から書かれていますし、 何より "strictly conforming program" という表現は、明確に 4.5 での新情報です
134 名前:デフォルトの名無しさん [2019/04/13(土) 04:36:48.17 ID:/Uq84pFNM.net] 昔の話。 若い頃K&Rの日本語版を買ってきて読み始めて、 間違いというか サンプルとしてよろしくない ところを見つけていた。 それが7年後に役立って 沢山仕事が入ってくるようになった。 本はキチンと読みましょう!
135 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 12:55:05.18 ID:hvrKDDfY0.net] >>129 面白そうな話の気もするが、抽象的すぎてよくさっぱりわからん。 せっかくだしもう少し詳しく教えて欲しい。
136 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 04:54:50.50 ID:jIyXk5jhp.net] You shall die. 日本語の古語にすると分かりやすい 汝死すべし shallはべしに近い
137 名前: mailto:sage [2019/04/14(日) 05:55:46.19 ID:AVvjfIV70.net] >>131 「べし」が二人称主語のときは「当然〜するべき」「義務」をあらわすことが多いですね ただしこの場合も、主観的な意見の場合・客観的な義務の場合の両方がありうるかもしれません shall=べき、べし、というのはいい線いっていると思います
138 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 06:22:08.07 ID:JgI3yl/w0.net] 日常会話や文学なら "You shall die." を「汝死すべし」と訳して 原文のもつ「お前死んだ方がいいよ」と「お前はいつか死ぬであろう」の 両方のニュアンス(他の解釈もあるかも)を残すってのはアリだと思うけど、 技術的な文章では、複数の意味に取れる書き方はしないでしょ。 翻訳の読者が欲しい情報も、原文がどちらを意図してるのか、だろうし。
139 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 06:41:56.55 ID:Sc1FWDft0.net] shall 〜するものとする。
140 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 08:56:50.49 ID:/sR0LrTu0.net] ISO9001の要求事項とか見たことないのか? Shall: しなければいけない Should: した方が良い って訳すのは常識だぞ
141 名前: mailto:sage [2019/04/14(日) 09:36:41.79 ID:AVvjfIV70.net] >>135 >>121 >>127 のとおり、shall は単純未来の可能性は捨て一律に意志未来に決め打ちしちゃっていいってことですね…
142 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 09:43:00.26 ID:zcg/ytHt0.net] 英会話スレ
143 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 09:54:03.65 ID:/V8zrPr00.net] 一年程度だが海外で仕事した経験のある俺にコメントさせてくれ。 shallにとくに意味はない。日本語に訳すのは難しいが方向性でいえば 汝死ぬ(shallなし) ↓ 汝はねぇ死ぬよ(shallあり) かな。 つまり特に意味はない。特に強調してるわけでもないけど、つまり断定か。
144 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 10:09:12.15 ID:zcg/ytHt0.net] 余計分かりにくい
145 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 10:38:07.79 ID:/sR0LrTu0.net] >>136 未来とか関係ない そうしないと規格に合致しねーぞって言うある意味条件だよ
146 名前: mailto:sage [2019/04/14(日) 10:50:12.57 ID:AVvjfIV70.net] >>140 「意志未来」という言葉は辞書の言葉ですが、私の本意は >>121 つまり「規格」または「規格の書き手」が "You will die" という感情の含まれない淡白な表現を、それが実現するように強要する、それが "You shall die."
147 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 11:15:43.43 ID:/V8zrPr00.net] いや、ほんとに意味はないんだよ。書き手がなんか気持ち悪いからshallつけてるだけでshall抜きでもかわらん。 willとかshouldに比べてshallどうとかじゃなくて、willとかshouldがなかったらどうかを考えるべき。
148 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 11:36:05.15 ID:xBNIHV910.net] そもそも他言語を日本語で正確に訳せるってのは幻想でしかないから 規格でshallやshall notについて扱いが明記されてる(C11なら4.1〜4.2)以上それが全てでしょ
149 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 11:56:00.83 ID:CLAWTkIiM.net] >>141 だからお前さんの本意とかはどうでもいい 規格でのshall/shouldの解釈は > Shall: しなければいけない > Should: した方が良い って訳すのは常識って話
150 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 12:01:14.41 ID:El+pt49w0.net] >>128 > 「英文読解」の場ではなかったので控えていたのですが (中略) > C99の文書の場合は丁寧に "shall" の定義から書かれています これ以上、「C言語のスレ」として、どんな話題あるんですか 「ANSI C(なりC90なり)」「C95」「C11」を持ち出すなら意味があるかも知れませんが?
151 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 12:28:26.87 ID:xBNIHV910.net] あと、そんなに辞書が好きならshallに「(法律・商業)〜(すべき)である, 〜(するもの)とする, 〜のこと」ってあるからそれが一番近いと思うよ
152 名前: mailto:sage [2019/04/14(日) 12:51:54.61 ID:AVvjfIV70.net] >>144 その百人一首の上の句と下の句をつなげるように日本語と英語の一対一対応を増やしていくスタイルは、カルタが少ないうちはいいけれども腐るほど多くなったときに困りませんか? でも、最終的には慣れればなれるほど自動的に丸暗記になるのだろうから(私も「you shall die =死ね」状態なのは事実)、語学に理屈付けは不要なのかもしれませんね…
153 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 17:36:41.54 ID:LDzja3MF0.net] C95って何? ああAMD1のことか、一瞬ぎくっとした しかしあの文脈では、それを言うならC99だろ
154 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 19:18:17.08 ID:xaCKxF64a.net] C言語で、配列を渡すときは&付けなくていいとありましたが scanf("%c", &array[i][j]); このときに&つけなならんのはなんでですか cだとつけるのか二次元配列だとつけなきゃならないのか(根本的にわかってないかも) そこら変詳しくおしえてもらえませんか
155 名前:はちみつ餃子 mailto:sage [2019/04/17(水) 19:46:08.34 ID:UWuCQ9XR0.net] >>149 配列は、条件を満たしたとき (というより条件を満たす場合の方が多いのだが……) にその先頭要素を指すポインタに型変換されるという特殊ルールがあるから。 配列 array を単に array と書いた場合には、 &array[0] に読み替えられると考えてもいい。 配列 array に & を付けて &array と書いた場合は「配列を指すポインタ」であって、「配列の先頭要素を指すポインタ」ではないことにも注意が要る。 (型が違う) そのあたりのルールは歴史的経緯があってややこしいんだけど、この規則がないとそれはそれで記述がぐちゃぐちゃになるんでな……。
156 名前:デフォルトの名無しさん [2019/04/17(水) 20:36:55.41 ID:VoxdaNRv0.net] >>149 int array[2][2]と仮定すると、array[0][0]の型はint scanf()は渡されたアドレスを書き換える関数なので必要なのはint *
157 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 23:51:24.14 ID:LDzja3MF0.net] >>149 []は、配列を、配列でなくす(要素にする)演算子だからだ
158 名前:デフォルトの名無しさん mailto:sage [2019/04/18(木) 04:53:03.15 ID:3hgPbfMt0.net] 文字列とscanf
159 名前:デフォルトの名無しさん mailto:sage [2019/04/18(木) 06:35:48.92 ID:gmBt4t3M0.net] 文字列(Cでは'\0'終端のchar配列)を格納できる変数 char s[SIZE]; に対して、 文字列を格納したい場合は scanf("%s", s); // 連続したメモリ領域 s[0], s[1], s[2] ... に格納 配列名 s は &s[0](配列の先頭要素へのポインタ)と、値と型が等しい 1文字だけ格納したい場合は scanf("%c%c", &[0], &s[1]); // s[0] と s[1] に1字ずつ格納 &s[0] は s と同じだが、 &s[1] との対応から &s[0] と書く方が分かりやすい 「配列名が暗黙に先頭要素へのポインタに変換される」話と、 「何を操作しているかをソースの書き方で明瞭に表現しようぜ」って話と、 整頓されずに混乱してるんじゃないかな。 「Cでは“文字列”とは何か」も絡んでるかも。 それに加えて、2次元配列という、これまたCではやや微妙な問題が噛んでるし。 char array[ROW][COLUMN]; // charの2次元配列 char *array[LINE]; // charへのポインタの1次元配列 >>149 の質問では二次元配列と明記されてるから本質じゃないけど、 説明を厳密にしようとすると、触れないのは片手落ちになっちゃうよね。 & 演算子でアドレスを得るときの内部的な処理の周辺。
160 名前:デフォルトの名無しさん mailto:sage [2019/04/18(木) 06:48:49.78 ID:o0KoJkQh0.net] &[0]なんて構文ねえよ よりにもよって、そんなとこtypoしちまったら致命傷だろうが
161 名前:154 mailto:sage [2019/04/18(木) 07:30:33.11 ID:gmBt4t3M0.net] ありゃ本当だ。&[0] は誤りだね。ご指摘ありがとう。 誤: scanf("%c%c", &[0], &s[1]); // s[0] と s[1] に1字ずつ格納 正: scanf("%c%c", &s[0], &s[1]); // s[0] と s[1] に1字ずつ格納
162 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 12:12:59.76 ID:Nwj37sNi0.net] C言語ってarray[3]だけじゃなくて3[array]もできるんだね []が演算子って今更知った
163 名前:はちみつ餃子 mailto:sage [2019/04/19(金) 12:21:05.01 ID:mypEidUJ0.net] >>157 array[3] は *(array+3) と等しい、構文糖であるということになっているので結果的にそうなった。
164 名前:デフォルトの名無しさん [2019/04/19(金) 12:39:59.72 ID:U46FCs4Qa.net] かといってそんな書き方してるプログラムはサンプルプログラム以外では見たことがない。
165 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 12:58:54.90 ID:8C7kRl9M0.net] これとか https://www.ioccc.org/2018/burton1/prog.c
166 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 15:31:03.70 ID:y1N4KfNld.net] >>157 コレ好き。たまーに混ぜ込んでおいてレビュー担当迷わせるの楽しい。
167 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 16:22:40.20 ID:t0MiT6LCM.net] >>161 作法違反で低評価になるだけじゃねw
168 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 16:50:40.06 ID:8C7kRl9M0.net] スキルの使い途を間違えているな 弱い者いじめではなく生産に使え チーム得点につながらない無駄なことをするやつを 上司は冷ややかに見ているぞ
169 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 17:06:38.82 ID:GSI3q7h60.net] 初めて5[a]がOKなんだと知ったときの感動を思い出せ。そんな感動と興奮を仕事に散りばめてくれるエンターテイナーだよ。
170 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 17:07:35.94 ID:GSI3q7h60.net] buf[5[buf]]
171 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 19:15:23.29 ID:g/tNuT86M.net] Cに配列なんて概念なくて、 配列宣言っぽく見えるのはポインタ宣言とallocaの構文糖だという 言語だったらよかったのに。
172 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 22:01:37.69 ID:8C7kRl9M0.net] いや、それは困る ポインタが指す先の実体は いつかどこかで配列になれなきゃ話が発散してしまう
173 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 22:17:39.05 ID:jGjLpvILa.net] だから、これは配列ではないという結論になる
174 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 23:18:20.25 ID:UowN6RnT0.net] "0123456789abcdef"[n % 10]
175 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 23:34:23.62 ID:8C7kRl9M0.net] アホ n % 16だろうが
176 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 00:07:20.17 ID:WPUlIDDo0.net] >>169 つよい
177 名前:デフォルトの名無しさん [2019/04/20(土) 01:30:17.77 ID:2mEBnGIe0.net] 早く配列になりたい
178 名前:デフォルトの名無しさん [2019/04/20(土) 12:04:07.28 ID:adBHY6Cw0.net] 忙しかったものですから、ウルトラ亀レスで申し訳ありません。 もちろんK&Rは良い本だとは思いますが、 よくないところがあると書きましたら、「それどこですか?」 のような質問がきていたのですが、仕事に忙殺されてレスが遅くなりました。 例えば、K&Rのハッシュ探索のプログラム。 ソースを見ればバグがあるとすぐわかるはずです。 K&Rのソースは単なるサンプルです。 仕事で実際に使えるわけではありませんし、 吐き出すハッシュ値をチェックしてみてください。 そのソースをF社の東大卒のプログラマがパッケージに組み込んでしまい、 大きなバグを引き起こしました。 で、俺が呼ばれてソースを見た瞬間に原因がわかって直しました。 K&Rを読んだときに気が付いていたからです。 K&Rを読んだときに、気が付く人はすぐ気が付いていると思います。 自分で考える人です。 本当のプログラマです。
179 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 13:35:25.67 ID:UeTDxeBdd.net] >>173 自分で考えるのが良いってのは、プログラマに限らずなんでもそうだよね。 その上で本当のプログラマとやらにもとめられるのは、考えて理解することよりバグを出さないテストを行う能力だと思うね。 考えてもミスる時はミスるし。 場数を踏んだプログラマは、もちろんちゃんと考えるけど、その上で自分の理解やコードを信じない。 ちょっと話が違うかな。
180 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 18:04:05.64 ID:YpwC1XIf0.net] >>173 それはK&Rのよくないところか? K&RはCとはどんな趣旨のものかを紹介する本で アルゴリズムを正確に教える本ではない 単にCの機能を説明するために例を挙げただけのナンチャッテコードを いきなり本番環境に持っていった東大卒とかぬかすやる気のねえクズと 大きな事故に至るまで欠陥を検出できない会社の検証ルールの問題だろうが
181 名前:デフォルトの名無しさん [2019/04/20(土) 18:21:44.59 ID:rZAw
] [ここ壊れてます]
182 名前:W+3j0.net mailto: 在るプログラムを作るのは間違い。買うのが正しい。 [] [ここ壊れてます]
183 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 00:16:47.67 ID:NOPBo00z0.net] 買ったもの、存在するものが四角い車輪だけだったとしてもか?
184 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 00:25:39.70 ID:sE/qbOcV0.net] 買ったもの、つまり売っているものは、自作したものよりも性能がいい
185 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 05:49:28.91 ID:HT/hFmaDa.net] Cできる人は(ここの住人のような)C++も当たり前にできるん?
186 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 06:09:41.42 ID:znB8VhQa0.net] >>179 会社に今までC一筋20年くらいの人がC ++のプロジェクトに来たんだが使えなさすぎてクソワロタ
187 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 06:45:11.14 ID:XP3sT+Yd0.net] >>178 何も言うまい 破門だ それだけだ
188 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 08:31:58.96 ID:nzBarAq00.net] もしかしてCのライブラリのソースコード全部読んでんの アホじゃね
189 名前:デフォルトの名無しさん [2019/04/21(日) 10:26:51.61 ID:gW8lsVjX0.net] >>175 173です。 おっしゃるとおりです。 俺の言いたかったのは、まあそういう感じです。 K&Rの信奉者があまりに多いので どゆふうに指摘していいのか困惑している次第です。 つまり、言語の紹介本としては良い本だと思いますけど、 それ以上ではない。 現在、英語版のK&Rしか私の本棚に見つからないけど、 PREFACEの15行目からは、 This book is meant to help the reader learn how to program in C. と始まっています。 この部分、日本語版にはどのように翻訳されていたか失念しましたが、 まさに、そのとおりなのです。 しかし、ハッシュ値のところですけど、 あと数文字をコーディングするだけでまともなコードになるのに、 なぜしなかったのか?という疑問はあります。
190 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 10:42:02.64 ID:ZEQClH310.net] プログラマなんて正常な判断ができないような過酷な状況に追いやられることなんてよくあるし、想像の余地はいろいろあるな。
191 名前:デフォルトの名無しさん [2019/04/21(日) 10:51:08.83 ID:MDootfcvM.net] >>179 Cを数年やってからC++を やりましたけど 最初は全くわかりませんでしたよ。 C++に慣れるまで1年ぐらいかかったかな? 全く別の言語と思ったほうが よろしいかと思います。
192 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 11:08:55.42 ID:gKcyDuy9a.net] Cでインターフェース・抽象性を意識したプログラムを書いてたらそんなに変わらんと思う。 ただ現実としては委譲を使ってたところから無理して継承に適応するために混乱することはある。現場で待っているのは神クラス。