X



C言語なら俺に聞け 151

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん (ワッチョイ cf8f-fy95)
垢版 |
2019/04/02(火) 11:23:37.62ID:SQXqRaAc0
!extend:checked:vvvvv:1000:512
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/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
0172デフォルトの名無しさん (ワッチョイ 3602-YIQo)
垢版 |
2019/04/20(土) 01:30:17.77ID:2mEBnGIe0
早く配列になりたい
0173デフォルトの名無しさん (ワッチョイ 69ad-61/s)
垢版 |
2019/04/20(土) 12:04:07.28ID:adBHY6Cw0
忙しかったものですから、ウルトラ亀レスで申し訳ありません。

もちろんK&Rは良い本だとは思いますが、
よくないところがあると書きましたら、「それどこですか?」
のような質問がきていたのですが、仕事に忙殺されてレスが遅くなりました。

例えば、K&Rのハッシュ探索のプログラム。
ソースを見ればバグがあるとすぐわかるはずです。
K&Rのソースは単なるサンプルです。
仕事で実際に使えるわけではありませんし、

吐き出すハッシュ値をチェックしてみてください。
そのソースをF社の東大卒のプログラマがパッケージに組み込んでしまい、
大きなバグを引き起こしました。
で、俺が呼ばれてソースを見た瞬間に原因がわかって直しました。
K&Rを読んだときに気が付いていたからです。

K&Rを読んだときに、気が付く人はすぐ気が付いていると思います。
自分で考える人です。
本当のプログラマです。
0174デフォルトの名無しさん (スプッッ Sd12-fGro)
垢版 |
2019/04/20(土) 13:35:25.67ID:UeTDxeBdd
>>173
自分で考えるのが良いってのは、プログラマに限らずなんでもそうだよね。
その上で本当のプログラマとやらにもとめられるのは、考えて理解することよりバグを出さないテストを行う能力だと思うね。
考えてもミスる時はミスるし。
場数を踏んだプログラマは、もちろんちゃんと考えるけど、その上で自分の理解やコードを信じない。
ちょっと話が違うかな。
0175デフォルトの名無しさん (ワッチョイ 0d5f-YIQo)
垢版 |
2019/04/20(土) 18:04:05.64ID:YpwC1XIf0
>>173
それはK&Rのよくないところか?

K&RはCとはどんな趣旨のものかを紹介する本で
アルゴリズムを正確に教える本ではない

単にCの機能を説明するために例を挙げただけのナンチャッテコードを
いきなり本番環境に持っていった東大卒とかぬかすやる気のねえクズと
大きな事故に至るまで欠陥を検出できない会社の検証ルールの問題だろうが
0176デフォルトの名無しさん (ワッチョイ 368c-HmQt)
垢版 |
2019/04/20(土) 18:21:44.59ID:rZAwW+3j0
在るプログラムを作るのは間違い。買うのが正しい。
0183デフォルトの名無しさん (ワッチョイ 69ad-61/s)
垢版 |
2019/04/21(日) 10:26:51.61ID:gW8lsVjX0
>>175
173です。
おっしゃるとおりです。
俺の言いたかったのは、まあそういう感じです。
K&Rの信奉者があまりに多いので
どゆふうに指摘していいのか困惑している次第です。

つまり、言語の紹介本としては良い本だと思いますけど、
それ以上ではない。
現在、英語版のK&Rしか私の本棚に見つからないけど、
PREFACEの15行目からは、
This book is meant to help the reader learn how to program in C.
と始まっています。
この部分、日本語版にはどのように翻訳されていたか失念しましたが、
まさに、そのとおりなのです。

しかし、ハッシュ値のところですけど、
あと数文字をコーディングするだけでまともなコードになるのに、
なぜしなかったのか?という疑問はあります。
0185デフォルトの名無しさん (トンモー MMd5-+96b)
垢版 |
2019/04/21(日) 10:51:08.83ID:MDootfcvM
>>179
Cを数年やってからC++を
やりましたけど
最初は全くわかりませんでしたよ。
C++に慣れるまで1年ぐらいかかったかな?
全く別の言語と思ったほうが
よろしいかと思います。
0186デフォルトの名無しさん (アウアウエー Sada-aFPd)
垢版 |
2019/04/21(日) 11:08:55.42ID:gKcyDuy9a
Cでインターフェース・抽象性を意識したプログラムを書いてたらそんなに変わらんと思う。
ただ現実としては委譲を使ってたところから無理して継承に適応するために混乱することはある。現場で待っているのは神クラス。
0191デフォルトの名無しさん (トンモー MMd5-+96b)
垢版 |
2019/04/21(日) 14:48:54.11ID:YKRN8m01M
34年間、ほぼ毎日プログラミングしてますよ!
定年になってもずっとやってると思います。
作りたいものが一杯有りすぎて体が2つ3つ欲しいです。
今、最も力を入れているのが人工知能です。
人類を滅ぼす悪魔のソフトを造るのが人生最大の目標です!
0192 ◆QZaw55cn4c (ワッチョイ 7247-hooH)
垢版 |
2019/04/21(日) 15:58:12.64ID:MozNv5pX0
>>191
>人類を滅ぼす悪魔のソフト
これにはとても興味がありますね

「人類を滅ぼす悪のソフトウェア」
うーん、ぱっと思いつくところではテトリスとか…
0193デフォルトの名無しさん (ワッチョイ 0d5f-YIQo)
垢版 |
2019/04/21(日) 17:58:31.04ID:XP3sT+Yd0
>>183
全然わかってねえじゃん
あと数文字をコーディングすることが
Cの機能を説明するサンプルとしては邪魔だったら
その数文字をコーディングしねえのは当たり前だ

サンプルってのはS/N比が大事なんだよ
そこで伝えようとしていること以外のノイズは
徹底排除する必要があるんだ
0195デフォルトの名無しさん (ワッチョイ 368c-HmQt)
垢版 |
2019/04/21(日) 19:19:27.57ID:AjzRUWat0
脳波を検出して見たいVRを出してやるわ ==> 人類滅亡
0196デフォルトの名無しさん (ワッチョイ 69ad-61/s)
垢版 |
2019/04/21(日) 20:04:10.03ID:gW8lsVjX0
>>193
初心者向きの本ですから真似する馬鹿もいるということを
想像すべきでしょうね。
おまえこそ馬鹿だな
想像力がゼロだ
笑えるぞ?
知ったかのクズだ
0197デフォルトの名無しさん (トンモー MMd5-+96b)
垢版 |
2019/04/21(日) 20:08:24.68ID:YKRN8m01M
今どきCとか
K&Rとかで
能書きこいて
馬鹿ジジイにも
ほどがあるwww
0200デフォルトの名無しさん (ワッチョイ 7252-U8iM)
垢版 |
2019/04/21(日) 23:45:38.39ID:2X82VWTJ0
>>196
あの時代の初心者は今時の初心者と違って、大半はちゃんと自分で考えて自力で技術を習得していく姿勢があり、ただ教えてもらった通りにするだけのようなのは自然と落伍していったと思うよ。当時の想定する読者層にあった適切な内容だったろうと思う。
0202デフォルトの名無しさん (ワッチョイ 92ad-AoSc)
垢版 |
2019/04/22(月) 01:07:58.48ID:HMkHCtfr0
>>196
人の意見を聞く気がないなら
チラシの裏にでも書いてなよ

175にもあるけど
初心者の真似するバカのコードが
そのままリリースされる態勢を反省した方が前向き

あと何であの本に信奉者がいるのか
理解できない自分も
0203デフォルトの名無しさん (ワッチョイ 0d5f-YIQo)
垢版 |
2019/04/22(月) 02:24:36.97ID:RPRc4IKz0
>>200
当時のccが寡黙だったのが却ってよかったよな
なんで動かないのか自分の頭で考えるしかなかった
今どきのコンパイラは過保護で
落伍すべき者を引っ込み付かないところまで引きずっちまう
0204デフォルトの名無しさん (トンモー MMd5-+96b)
垢版 |
2019/04/22(月) 08:39:06.04ID:29O1k2F2M
>>202
お前のような馬鹿な奴は
そのうち自滅するよ(笑)

お前は「おれ天才!」とか
思ってる低知能のクズだ
もっともたちが悪いクズ
0205デフォルトの名無しさん (アウアウウー Sacd-kBNU)
垢版 |
2019/04/22(月) 10:09:04.63ID:y6AB5FtQa
>>179
いや、俺は使えない。

C++は30年ぐらい前にやろうとはしたが当時のPCでもワークステーションでも流行っておらず当然そのような仕事もなく、自分は主にUNIX関係の仕事だったので使う機会がほとんどなかった。

その後PCの方ではWindowsが流行ったが仕事はそのままなので変わらず、趣味ではWindowsでDelphi使ったりもしたがC++はほとんど手を着けず大雑把にしかわからないまま。

仕事はやがてLinux関係に移行するがそこでもC++が必要とされる事はなく現在に至る。趣味でJavaを覚えたりもしたが自分の仕事ではほとんど必要とされなかった。
今は趣味で Kotlin を覚えているところだが、C++については複雑化し過ぎたようなので今さらやる気は起きない。多分今後もやらないと思う。
Windowsプログラムを作る必要が出てきたとしても今ならC++なしで出来そうだし必要になるとしても局所的だろう。
0206193 (ワッチョイ 0d5f-YIQo)
垢版 |
2019/04/22(月) 10:13:09.11ID:RPRc4IKz0
>>204
196の時点ではまだ僅かに技術的な話題に振れていたが
今度は100%罵倒のみ
とうとう落ちるところまで落ちたな
0213デフォルトの名無しさん (アウアウウー Sacd-JNgg)
垢版 |
2019/04/23(火) 11:04:29.35ID:lZSXa7efa
標準入力で最初に数字を入力して、その値だけ文字列を入力するのはどんな感じで書けばいいですか

3
asdf
qwert
sdfghg

こんな感じで最初の入力の値に合わせて配列を用意する?感じになるとおもうんですが
なにもひらめきまへん
0214デフォルトの名無しさん (ワッチョイ 0d5f-YIQo)
垢版 |
2019/04/23(火) 11:22:00.88ID:ITUqyUOr0
>>211
配列の宣言に使う[]は演算子ではない
直接宣言子の一部だ

意図的に演算子に似せてあるので
勘違いするのは無理ないが
演算子は式に作用するもので
宣言子に含まれる[]はこの定義に該当しない
0218デフォルトの名無しさん (アウアウウー Sacd-kBNU)
垢版 |
2019/04/23(火) 15:59:59.72ID:gv0SOq8da
>>213
文字を入力するだけで変数に入れる必要がないなら getchar() で '\n' 三回読んだら終わり。
変数に入れる必要があるなら最初の値の分だけ char * を保持する配列を char ** に malloc() や calloc() 使って確保して、更に全要素を malloc() や calloc() 使って確保して、それに対して fgets() を繰り返す。
0220デフォルトの名無しさん (アウアウウー Sacd-kBNU)
垢版 |
2019/04/23(火) 17:41:00.23ID:gv0SOq8da
月月火水木金金
0223デフォルトの名無しさん (ワッチョイ 69ad-61/s)
垢版 |
2019/04/23(火) 20:44:52.15ID:k/LWg8++0
>>222
日本は戦争しないでしょ?
そして巻き込まれもしないと思う。

だって日本には軍隊がないんだもの。
自衛隊なんて銃もろくに撃てないへなちょこばかりだから。
0229デフォルトの名無しさん (ワッチョイ 3602-Mntl)
垢版 |
2019/04/24(水) 03:42:44.00ID:SZsIFAZx0
よね
0230デフォルトの名無しさん (ワッチョイ 5e63-JNgg)
垢版 |
2019/04/24(水) 08:04:11.05ID:P2wnwvJc0
ICEデバッグしてるとき、とある変数の値をいくつか足し算して、別の変数に代入する関数で、
変数の内容同じなのに、結果が違う。。
最適化OFFにしてビルドしてる。
0239デフォルトの名無しさん (ワッチョイ 3602-Mntl)
垢版 |
2019/04/24(水) 18:27:12.37ID:SZsIFAZx0
まずはアイスクリームでも食べて休むといい
よね
0241デフォルトの名無しさん (ワッチョイ 5e63-JNgg)
垢版 |
2019/04/24(水) 20:00:32.37ID:P2wnwvJc0
230だけど、俺の見当違いでした。
インプットの変数の値が違っていたので、当然足し算の結果も違っていたというオチ。
ICEデバッグだと変数を表示するとメモリの中じゃなくて表示した時点で割り当てられたレジスタの値を表示するので、
変数としては変わってないはずなのに他で書き換えられるので逐一変わって混乱していた。

ICE初心者でしたw
0242デフォルトの名無しさん (ワッチョイ 3669-hooH)
垢版 |
2019/04/24(水) 22:16:06.15ID:03JhFb4B0
デバッグ中に最適化を抑制するのは間違いではないと思います。
慣れてくると最適化したままでもある程度推測できるようになりますので、
リリースオプションでICEを使用することの方が多くなるかもしれません。
0244デフォルトの名無しさん (ラクペッ MM81-1KF1)
垢版 |
2019/04/24(水) 22:41:36.06ID:W4WRMDmVM
ぶっこ抜くと言うよりターゲットボードのCPUの代わりに専用のソケットを実装して専用プローブで接続する
PCなどと違って組み込みのSoCにソケットなど無いのでぶっこ抜いて差し替えるなど無理
0246デフォルトの名無しさん (アウアウウー Sae9-MRXB)
垢版 |
2019/04/25(木) 00:33:17.24ID:1oTSGFU/a
scanf("%d%d%d", &a, &b, &c);
こうまとめて入力するのをfgets使うとどうやるの?

fgets(s, sizeof(s), stdin);
sscanf(s, "%d", &a);

このセットをループで三つまわすしかない?
一行でやる方法あるんかな
0249デフォルトの名無しさん (ワッチョイ 1b02-1PXK)
垢版 |
2019/04/25(木) 04:21:17.20ID:D6NtakiX0
>>246
なんというか、ほとんど答えが上に書いてあるかのような質問だな・・・

sscanf(s, "%d%d%d", &a, &b, &c);
0253デフォルトの名無しさん (アウアウウー Sae9-tnqD)
垢版 |
2019/04/26(金) 10:28:55.76ID:YRtkzMZRa
>>252
それって商売になってるのか?
普通に公開されてるが。
0255デフォルトの名無しさん (アウアウウー Sae9-tnqD)
垢版 |
2019/04/26(金) 14:06:27.08ID:YRtkzMZRa
そうなの?何の宣伝になってるのか全くわからんのだが。
0257デフォルトの名無しさん (アウアウウー Sae9-tnqD)
垢版 |
2019/04/26(金) 14:36:01.95ID:YRtkzMZRa
元々有償でプログラム作るスレとして作ったスレだったんだろうけど結局誰もそんな風には使ってなくてただのプログラム発表の場になってるよね?

ま、しかし、5ちゃんのような掲示板で稼ぐのは無理があるよなあ。それ専用のサイトなら可能だろうけど。
0258デフォルトの名無しさん (ワッチョイ 4b63-MRXB)
垢版 |
2019/04/27(土) 10:20:19.39ID:H+/AGAV+0
既存をちょっと修正してほぼデグレのテストというスタイルの俺には、
要望に応じて1から新しいプログラムを組む人を尊敬する
修正は修正で既存への影響の面でそれなりのノウハウは要るにしても
0260デフォルトの名無しさん (トンモー MM79-LqAG)
垢版 |
2019/04/27(土) 16:22:24.62ID:W91FG5LxM
>>259
文句を言わずに、というより
文句を言わせずに、だと思う。

俺は奴隷だったので
よくわかる。

会社辞めて派遣になって
気分すっきり!
な~んの責任もないのに
年収1000万だもの

派遣辞められません!
■ このスレッドは過去ログ倉庫に格納されています

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