C言語なら俺に聞け 151at TECH
C言語なら俺に聞け 151 - 暇つぶし2ch1:デフォルトの名無しさん
19/04/02 11:23:37.62 SQXqRaAc0.net
!extend:checked:vvvvv:1000:512
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
URLリンク(paiza.io)
URLリンク(ideone.com)
URLリンク(codepad.org)
C11
URLリンク(www.open-std.org)
C99
URLリンク(www.open-std.org)
URLリンク(kikakurui.com)
C FAQ 日本語訳
URLリンク(www.kouno.jp)
JPCERT C コーディングスタンダード
URLリンク(www.jpcert.or.jp)
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured

2:デフォルトの名無しさん
19/04/02 11:27:10.68 SQXqRaAc0.net
前スレ
C言語なら俺に聞け 150
スレリンク(tech板)
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512

次スレを作る時は上記1行を「1行目に」コピーして2行に増やして必ず1行目に入るようにしてください。

…あってる…?

3:デフォルトの名無しさん
19/04/02 11:28:04.82 SQXqRaAc0.net
これで良い…のかな
!extend:checked:vvvvv:1000:512

次スレを作る時は >>1 の上記1行を「1行目に」コピーして2行に増やして必ず1行目に入るようにしてください。

4:デフォルトの名無しさん
19/04/02 16:37:14.52 VBVVrqHU0.net
前スレ977のリンクが404ぽいので
魚拓から復元してみた
URLリンク(ideone.com)
977 名前:デフォルトの名無しさん (アウアウエー Sa3f-XwTE)[] 投稿日:2019/04/01(月) 21:33:02.04 ID:v6mAk26Pa [1/3]
「要素型がint型で要素数がnの配列を受け取って、
全要素に添字と同じ値を代入する関数set_idx」を作成しました。
URLリンク(codepad.org)
配列aの要素数はマクロ定義で#define NUMBER 10とし、
問題なく動作しました。
ところが、この要素数10を60に書き換えてみたところ、
コンパイルされたexeファイルを実行しても動作しません。
コンパイラはMinGW(gcc)です。
思い当たる原因を教えていただけないでしょうか。

5:前スレ977
19/04/02 20:52:18.32 JwQjLW9ya.net
>>4
codepadが消えてしまっていたのですね、
復元ありがとうございます。
当初は16行目を
int a[] = {0};
と書いていたため上手く動作せず質問した次第です。
前スレで色々とレス頂きありがとうございました。
プログラムを書く際にバッファオーバーランの危険性を考慮する必要があることすら知らないレベルなので、
メモリの使い方を念頭において学習していきます。
C言語は諦めた方がよいというレスもありましたが、
センスがないのは重々承知の上で、腹を括って勉強していくつもりです。

6:デフォルトの名無しさん
19/04/03 00:01:40.97 qKRJca2S0.net
>>5
いえ
すみません
「呼び出し元で配列長を管理出来ている。問題はない」と言いうるようです /* むしろ free し忘れる方が問題か */
誤解・不適切な部分があったこと、申し訳なく存じます
色々大変かも知れませんが、頑張ってください

7:デフォルトの名無しさん
19/04/03 00:29:12.53 kMUljaKF0.net
>>5
cは非生産的で大したアプリは最初のうちは作れない
しかし覚えれば言語やOSや組み込みなどに手が出せるようになる
独学はイバラの道だが頑張ってね

8:デフォルトの名無しさん
19/04/03 14:57:25.86 PdcOYuo+0.net
>「c言語 おすすめしない理由」でググると
>URLリンク(www.sejuku.net)
sejukuはねーよ
C言語のウソ記事まき散らしたとこじゃねえか

9:デフォルトの名無しさん
19/04/03 17:06:47.20 jUO0vRXi0.net
全く以てくだらんな
何言語だろうが関係ねえ話で
習得できなかったやつの言い訳を集めただけの駄文だ
もし「初心者」がここを見ているなら一言いいたい
【 あ ん な の 忘 れ ろ 】
プログラム言語に限らず人生すべてに影響する有害な集団催眠だ

10:デフォルトの名無しさん
19/04/03 19:21:17.48 6tuZKWrYM.net
既存のソフト(dll)を引き継いだのですが、そのdll内でバイナリファイルをリードしています。
_open(xxx, _O_BINARY, _S_IREAD) しているのですが、複数のプロセスが同じタイミングでアクセスしても排他処理されないです


11:よね? どうもうまく読めてないのが原因かもしれない障害が発生して困っています。 どうすれば排他処理できるでしょうか。



12:デフォルトの名無しさん
19/04/03 19:55:12.80 ZPobjXHOa.net
読むだけなら排他は要らないんじゃない

13:デフォルトの名無しさん
19/04/03 20:00:41.26 ZmtTnpp/0.net
書き込みされたとき、どうなるかな

14:デフォルトの名無しさん
19/04/03 20:13:27.48 OJDzRIb+0.net
排他処理の方法を考えようにも情報が少なすぎるよ。

15:デフォルトの名無しさん
19/04/03 20:30:58.20 6tuZKWrYM.net
レスありがとございます。
後だしですが、書き込みはされないです。そこまでかんがえてなかったですが。
リードだけなら大丈夫そうですね。だったら他のとこに問題があるのかな・・・

16:デフォルトの名無しさん
19/04/03 20:57:30.11 GUjlsyjta.net
ファイル書いてる最中に読まないようにそのライブラリを使う側と書き込みする側のプログラムでロック掛けるようにするぐらいしか方法ないのでは?
ライブラリのソースもあって自分でも直せるというのなら自分でその辺改造しちゃえば良いんだろうけど。それだったらわざわざここに質問書かんよな?

17:デフォルトの名無しさん
19/04/03 21:24:51.36 OJDzRIb+0.net
そもそも1プロセスでもそのファイルをオープンできているのだろうか?

18:デフォルトの名無しさん
19/04/03 21:44:31.14 NesRjmW10.net
その障害の内容教えてくれんとな

19:デフォルトの名無しさん
19/04/03 21:51:55.02 OJDzRIb+0.net
どこまで説明したら適切なアドバイスもらえるかって実務にも重要な要素だよな。これも練習ですな。

20:デフォルトの名無しさん
19/04/06 14:35:16.98 sYe67fpI0.net
URLリンク(wandbox.org)
codepad死んだっぽいので次スレから代わりに↑をテンプレに入れよう

21:デフォルトの名無しさん
19/04/08 10:46:04.23 slzfC4/wa.net
ここどう?
URLリンク(www.jdoodle.com)
色んな言語使えるようだ。もちろんCもある。

22:デフォルトの名無しさん
19/04/08 10:58:04.07 czvLDSaVa.net
はい

23:デフォルトの名無しさん
19/04/08 20:38:05.96 j+rCFaIP0.net
fprintf_s みたいな
foo_s 系の関数実装って増えてるん?
「Visual C++ でガッコウのコードがコンパイルできない」みたいな話をたまに見かけるけど…

24:デフォルトの名無しさん
19/04/08 20:55:25.55 26lZNeBT0.net
セキュリティの為にfoo_sが推奨されてるんだから、ガッコウのコードの方を変えるべきでは?
何年経ったと思ってるんだ。

25:
19/04/08 21:02:21.56 PMJ1/1Ak0.net
>>22
その s 系とかいうやつは、いまいち気に要らない仕様でいちいち頭に来るので私は使わないです

26:はちみつ餃子
19/04/08 21:17:15.17 TICLg0mt0.net
>>23
_s 系の関数って言語仕様上はオプショナルでしょ。
安全でない関数の中で明確に仕様から削除されたのは
gets だけのはずだし、もちろん、安全性を意識させるのは
望ましいけど、どこでも _s 系の関数を使えるわけじゃない。
あくまでもオプショナルだから >>22 は「実装って」という聞き方をしているのだと思うぞ。

27:
19/04/08 22:00:58.21 PMJ1/1Ak0.net
>>25
Microsoft のコンパイラ以外では使えない、と聞いているのも納得がいかないのです、本当によいものなら、なぜ _s 系が移植されないのでしょうか…

28:はちみつ餃子
19/04/08 22:21:13.00 TICLg0mt0.net
>>26
そんなことを >>22 は聞いていない。
誤読。

29:
19/04/08 22:27:24.57 PMJ1/1Ak0.net
>>27
失礼。>>26


30:は >>22 への直接または間接の回答を意図しておりません とある「有用な」実装が広く使われるべき、という意見に対して、microsoft のコンパイラ環境でしか使えない実装を教育目的で強要してもいいのか、というか、そもそもそんなに「有用」な実装なのですか?本当ですか? という視点で >>22 を強く批判する内容です



31:はちみつ餃子
19/04/08 22:35:39.51 TICLg0mt0.net
>>28
_s 系の関数はオプショナルとは言えども規格にある存在なので、
Visual C++ は例のひとつとして挙がっているにすぎません。
間違いなくありがちな問題を軽減しますので、
使える処理系ならば使うように誘導するのは合理的です。

32:
19/04/08 23:24:16.54 PMJ1/1Ak0.net
>>29
お手数をおかけし恐縮ですが
「規格にある存在」というその規格をご教示願えますか?
手元にある ISO/IEC 9899:1999 には見えないようですが…

33:デフォルトの名無しさん
19/04/08 23:30:36.72 dk5yj0CN0.net
visual studioで新しいプロジェクトを作成して始めてビルドする度に
/D _CRT_SECURE_NO_WARNINGS
に誘導されてます……

34:デフォルトの名無しさん
19/04/08 23:46:29.39 Z7UT2eMea.net
localtime_s 使ったら内部でmutex使ってて無茶苦茶遅いのはむかついた

35:デフォルトの名無しさん
19/04/08 23:48:18.87 Z7UT2eMea.net
>>30
なぜそんな古いものを…
引数にvoid入れるとびっくりするタイプ?

36:デフォルトの名無しさん
19/04/08 23:50:57.39 dk5yj0CN0.net
localtimeについては批判できねぇ。
マルチスレッドでlocaltime呼び出してたせいで正体不明のバグに数日間悩まされたからな。。。

37:はちみつ餃子
19/04/09 03:49:52.59 jYkGM3GN0.net
>>30
C99 には無い。 C11 に入った。
Annex K (normative) Bounds-checking interfaces
って項目ね。
Wipkipedia でも言及がある。
URLリンク(ja.wikipedia.org)(C%E8%A8%80%E8%AA%9E)#.E3.82.AA.E3.83.97.E3.82.B7.E3.83.A7.E3.83.B3.E6.A9.9F.E8.83.BD

38:デフォルトの名無しさん
19/04/09 07:47:37.12 lax+sHP30.net
>>22
> fprintf_s みたいな
> foo_s 系の関数実装って増えてるん?
「いや増えてない」←わかる
「俺は foo_s みたいな関数が嫌い」←わかる
「俺は foo_s みたいな関数が嫌いだから >>22 を強く批判する」←全く分からない
誰か解説してくれるのだろうか

私は「ガッコウのセンセイ」でもないし「ガッコウの教材」の著者でもないから何とも
新学期だから知恵袋とかに質問増えそうじゃん?

39:デフォルトの名無しさん
19/04/09 07:52:30.47 vvoqC9qD0.net
>>22 を批判してるんじゃなくて>>22 にかかれてるような状況を批判してるんじゃないの?

40:デフォルトの名無しさん
19/04/09 09:52:53.37 EB2iO7oh0.net
>>24
同感
いけ好かねえの多いよな

41:デフォルトの名無しさん
19/04/09 09:56:13.65 A5vZx8Gh0.net
>という視点で >>22 を強く批判する内容です
そう解釈してやっても良いが、この日本語はおかしい

42:デフォルトの名無しさん
19/04/09 10:28:57.92 AXiDgdzZd.net
話それちゃうよ?

43:デフォルトの名無しさん
19/04/09 13:13:25.92 xq+Mg1lAa.net
漢なら localtime_r()

44:デフォルトの名無しさん
19/04/09 13:25:42.77 AXiDgdzZd.net
真の漢なら
#ifdef _win32
localtime_s()
#else
localtime_r()
#endif

45:はちみつ餃子
19/04/09 13:27:54.07 jYkGM3GN0.net
>>42
__STDC_LIB_EXT1__ を使った方がポータブルじゃない?

46:デフォルトの名無しさん
19/04/09 13:29:27.93 AXiDgdzZd.net
>>4


47:3 先生、それはなんですか?



48:はちみつ餃子
19/04/09 16:24:32.16 jYkGM3GN0.net
>>44
ググって。

49:デフォルトの名無しさん
19/04/09 16:29:41.88 obpichI70.net
C11 以降か…

50:デフォルトの名無しさん
19/04/09 18:39:32.35 AXiDgdzZd.net
>>43
ググってヒットした件数的にこんなん使えませんわ。

51:はちみつ餃子
19/04/09 19:07:14.53 jYkGM3GN0.net
>>47
件数じゃなくて、用途に対する妥当性で考えてよ

52:デフォルトの名無しさん
19/04/09 21:04:38.62 AXiDgdzZd.net
質問スレっぽいスレタイなのにそこまで考えさせられるのかよw
あんまり使われてないっぽいものは使わないってスタンスは崩さないよ、俺は。

53:デフォルトの名無しさん
19/04/09 21:11:11.26 e3amBytd0.net
使われてないものは使わない
つまりC言語自体・・・(ボソッ

54:デフォルトの名無しさん
19/04/09 21:27:21.27 AXiDgdzZd.net
言語を自分で選べるほど偉くないんですよ

55:
19/04/09 21:47:18.63 ssMdw0XF0.net
>>35
ほえ~
Annex K は確かにみじんも記憶に残っていません…でした
ご教示いただき感謝いたします

56:
19/04/09 21:52:14.86 ssMdw0XF0.net
>>33
実は K&R2 のみが正義、K&R2 こそ必要にしてかつ十分、という立場なので、そんな私が C99 を推挙した時点で、すでにして大幅に compromise しているつもりなのでした…

57:デフォルトの名無しさん
19/04/09 21:55:42.64 EB2iO7oh0.net
K&R2って妥協の産物だろ
K&R1こそ原理主義者の拠り所だ

58:はちみつ餃子
19/04/09 22:05:25.20 jYkGM3GN0.net
でもまあ JIS の最新は C99 相当だしな。
英語を読むのはしんどいし、
日本語の資料があるなら日本語の方がいいわ。

59:
19/04/09 22:25:14.01 ssMdw0XF0.net
>>54
>K&R2って妥協の産物
それも理解できます
K&R2 の最大の改悪部分は「構造体の実体渡しができること」
配列の実体を丸まま関数に渡せないくせに、構造体では出来るって意味わかんない
もしかして
struct S {
int a[65536];
};
とかいう構造体があったら、それを全部スタックに載せるつもりなのか?そういうことをする奴が現れる可能性を考えたのか?と小一時間問い詰めたい気分になりました…

60:デフォルトの名無しさん
19/04/09 22:31:23.50 lax+sHP30.net
struct S {
long long ago0[1048576*1048576];
long long ago1[1048576*1048576];
long long ago2[1048576*1048576];
long long ago3[1048576*1048576];
};

61:デフォルトの名無しさん
19/04/09 22:32:15.47 KCu43/3wa.net
>>56
それは、配列の方が悪いんでしょうに
構造体はコピーを渡すのが全然正しいじゃないの

62:デフォルトの名無しさん
19/04/09 22:45:54.00 A5vZx8Gh0.net
>>54
K&R1原理主義って、素敵?

63:デフォルトの名無しさん
19/04/09 22:48:12.12 PvJWb3nJ0.net
in a galaxy far,
far away...

64:デフォルトの名無しさん
19/04/09 23:05:49.72 A5vZx8Gh0.net
/* not reach here outside the universe */

65:デフォルトの名無しさん
19/04/10 01:12:36.88 sw3hAH5+0.net
jedi = get_force();

66:
19/04/10 01:49:22.11 57hoitEO0.net
>>58
構造体といえどもアドレスを渡すのが真に正しく、配列なら言語仕様でそれを強要される、なぜ構造体には甘い顔を見せる必要があるのか?

67:はちみつ餃子
19/04/10 04:59:47.74 mOo8C1VR0.net
>>56
極端なことが「できてしまう」のが問題ということですか? そもそも C なんてそんなものでしょう。
状況を見て適当に使い分けるべきで、駄目な使い方をしたら何だって駄目ですよ。

68:デフォルトの名無しさん
19/04/10 06:18:28.03 qyNiIlQC0.net
>>63
ド素人の勝手な推測だけれども
「配列だとマジでサイズどんだけか分かったもんじゃないじゃん」
「構造体のメンバ」に配列が来る場合はあるけど、そのサイズは多寡が知れてるじゃん」
という考えかもアリかもしんない

69:デフォルトの名無しさん
19/04/10 06:47:52.31 bjp/36w+M.net
むしろ勝手にアドレス渡しになる配列が甘やかされすぎ
文字列がcharの配列だからしょうがないけど

70:デフォルトの名無しさん
19/04/10 07:49:55.31 PtgOSD4Jx.net
配列の実引数をポインタ仮引数で受けれるという仕様上、配列のサイズ情報が失われコンパイラは何バイトコピーすれば良いか分からないから致し方ない。

71:デフォルトの名無しさん
19/04/10 09:42:54.83 G/tPYfHxa.net
>>56
昔々初心者の頃にやっちゃって物凄く遅くなって気づいた事があったw

72:デフォルトの名無しさん
19/04/10 09:49:26.10 G/tPYfHxa.net
構造体も const で渡されたらこっそりポインタ使って読むだけのアクセスするコード作っちゃっても良いのにな。
マルチスレッドで動くプログラムの時に死ぬかも知れんが。

73:デフォルトの名無しさん
19/04/10 10:06:17.49 QqefTxrga.net
そもそも[]が無ければ誤解も減ったと思うよ
いい年した大人が、引数で渡ってきた配列の sizeof 取ろうとするの良く見るぜ

74:デフォルトの名無しさん
19/04/10 10:42:39.87 ryP68qDF0.net
現代教えられてる言語で60年代中期の古さを引きずってる言語だからだ
配列に対してsize適用すれば長さを取れるのは現代じゃあ普通で、
取れないC言語のほうがおかしい、
これ、誤解でも何でもないからな

75:デフォルトの名無しさん
19/04/10 10:46:50.33 Y6MOlOQR0.net
sizeofで取れるのは要素数じゃないけどな

76:デフォルトの名無しさん
19/04/10 11:14:25.33 9YALwuYf0.net
>>58
事実上、構造体はほとんどの場合ポインタで渡すよな
実体で渡すという特殊なケースがデフォになってて
ポインタで渡すという主要な使い方でアドレス演算子が必須って
おかしくね?

77:デフォルトの名無しさん
19/04/10 11:16:06.57 9YALwuYf0.net
>>70
だよな
[]こそ諸悪の根元
自動変数と仮引数と外部宣言でみんな意味違うとか
気が狂ってるとしか思えない

78:デフォルトの名無しさん
19/04/10 11:23:36.81 7gi5m8N9a.net
そして「C言語はおかしい」と満場一致で結論が出て、また新たな言語が作られるのであった。
        完

79:デフォルトの名無しさん
19/04/10 11:25:19.17 lv7m7vwC0.net
ここが変だよC言語って本が昔売られてたな。。。

80:デフォルトの名無しさん
19/04/10 12:05:09.58 JKE/90g3a.net
>>73
俺は安全のために実体渡すし返すよ、割と

81:デフォルトの名無しさん
19/04/10 12:29:04.23 bjp/36w+M.net
>>73
たまから、構造体はint, doubleとかの変数と同じく値渡しで一貫してる
配列がおかしいだけ

82:デフォルトの名無しさん
19/04/10 14:02:32.11 pgm3XBSH0.net
不定と未定義がある限り、C言語はおかしくあり続けるのだ。

83:デフォルトの名無しさん
19/04/10 14:28:30.84 qyNiIlQC0.net
>>77
仮引数にconstはダメ?

84:デフォルトの名無しさん
19/04/10 14:46:53.80 9YALwuYf0.net
>>77
const使わんの? ・・・て、先に誰か言ってるな

85:デフォルトの名無しさん
19/04/10 14:49:44.54 9YALwuYf0.net
>>78
intが値渡しと決められた理由は理解してるか?
配列みたいに暗黙のアドレス演算子にもやればできた話で
そのほうがおまえさんの主張する一貫性にも叶うわけだが

86:デフォルトの名無しさん
19/04/10 14:51:22.98 hStfijf/0.net
by val と by ref でうあぁぁぁ

87:デフォルトの名無しさん
19/04/10 15:21:31.93 Y9aQW1ZLa.net
>>80
そりゃ、付けられるときは基本いつでもconstですよ
だからなに

88:デフォルトの名無しさん
19/04/10 15:49:26.74 qyNiIlQC0.net
>>84
付けられないときってどんなときでしょう

89:デフォルトの名無しさん
19/04/10 15:56:55.75 9YALwuYf0.net
>>84
77で「安全のために」って言っているのを
誤って変更してしまうのを防ぐためと読んでいたが
これがそもそも違うのか?

90:デフォルトの名無しさん
19/04/10 16:15:30.28 Y9aQW1ZLa.net
>>86
変更しようがしまいが、意図があろうがなかろうが、コンテクストを分けるためですよ。

91:デフォルトの名無しさん
19/04/10 16:36:22.97 9YALwuYf0.net
>>87
へー、じゃあ関数を呼び出すたびごとにプロセス生成とかすんの?

92:デフォルトの名無しさん
19/04/10 16:51:52.86 Y9aQW1ZLa.net
>>88
なんで?
チミは頻繁にグローバル変数を使うってこと?やめたほうがええよ

93:デフォルトの名無しさん
19/04/10 16:58:14.51 9YALwuYf0.net
>>89
なんでグローバル変数を使っちゃいかんのだ?
スタックにしまえば安全だと思っているならおめでたいやつよ

94:デフォルトの名無しさん
19/04/10 17:08:01.10 Y9aQW1ZLa.net
>>90
グローバル変数だめでしょ。
スタックってなんのこと?まさか関数呼び出しとスタックがセットだと思ってる?

95:デフォルトの名無しさん
19/04/10 17:12:08.62 9YALwuYf0.net
>>91
なんでと聞いている
答えてくれ

96:デフォルトの名無しさん
19/04/10 17:16:15.00 Y9aQW1ZLa.net
>>92
そんなもん、密結合・低凝集を実現する目的でしか役に立たんからですよ。

97:デフォルトの名無しさん
19/04/10 17:18:23.20 9YALwuYf0.net
>>93
仮引数と自動変数が置かれるスタックもグローバルなんだが
そのせいで密結合・低凝集になったりしているか?

98:デフォルトの名無しさん
19/04/10 17:20:34.39 qyNiIlQC0.net
記憶領域確保に失敗したとき
落ちないように頑張ってくれるのと
即落ちるのと
どっちがどうだったか忘れた
最近読んだどっかに書いてあった筈だけど思い出せん…
x86 限定で良いので挙動とコーディングの関係に心当たりのある方御教示ねがいます。。。

99:デフォルトの名無しさん
19/04/10 17:34:07.04 VhJLBw5p0.net
こんな便所みたいなところでばっちばちでワロタ

100:デフォルトの名無しさん
19/04/10 17:36:28.06 Y9aQW1ZLa.net
>>94
そうそう、だからポインタを使わないのがいいね

101:デフォルトの名無しさん
19/04/10 17:39:25.15 Y9aQW1ZLa.net
構造体に限った話でもないが、グローバル変数のポインタが引数として渡され、更にそういう関数が多段に続いたコードとか地獄だよ。
誰かが止めねばならんよ。

102:デフォルトの名無しさん
19/04/10 17:44:54.12 9YALwuYf0.net
>>97
あ、おまえさんそっち系か
・・・なんでCなんか使うの?

103:デフォルトの名無しさん
19/04/10 17:46:05.16 9YALwuYf0.net
>>98
グローバル変数をポインタ渡しは意味あるでしょ
スコープを指定する、的なやつ

104:デフォルトの名無しさん
19/04/10 17:48:27.03 Y9aQW1ZLa.net
>>100
マジ意味わからん

105:デフォルトの名無しさん
19/04/10 17:52:02.02 9YALwuYf0.net
>>101=97
二度も言わなくていいよ

106:デフォルトの名無しさん
19/04/10 18:00:58.67 9QKNNv28a.net
>>102
いや、100の解説してくれや

107:デフォルトの名無しさん
19/04/10 18:05:19.14 9YALwuYf0.net
>>103
#include <stdio.h>
int x, y;
int main(void)
{
scanf("%d", &x);
scanf("%d", &y);
return 0;
}
暗黙にxに書き込む関数とscanfは
どっちが汎用性が高いか
どっちが見通しがい


108:いか 考えてみな



109:デフォルトの名無しさん
19/04/10 18:07:33.40 Y9aQW1ZLa.net
>>104
xとyを比較したらええんか?

110:デフォルトの名無しさん
19/04/10 18:09:36.68 9YALwuYf0.net
>>105
おまえさんに解らせることはもう諦めた
放っといてくれ

111:デフォルトの名無しさん
19/04/10 18:17:20.49 9YALwuYf0.net
俺はいま103に説明しているんだ

112:デフォルトの名無しさん
19/04/10 18:41:36.83 BTPtEuL0a.net
いや、同一人物だぞ

113:デフォルトの名無しさん
19/04/10 19:37:58.47 WZ2DAnxG0.net
>>82でイミフなこと言ってるなって思ったら単なる基地外やんw

114:デフォルトの名無しさん
19/04/10 20:25:42.75 qyNiIlQC0.net
結局「constを仮引数に使えないとき」というのがどんなときなのが全く分からず
「規格通りに書いてはならない」ケースが実


115:在したのかしら



116:デフォルトの名無しさん
19/04/10 20:33:10.76 Y9aQW1ZLa.net
>>110
え、毎回書いてるの?

117:デフォルトの名無しさん
19/04/10 21:26:31.69 qyNiIlQC0.net
いや
仕事で使ってませんから
そもそも「毎回」っていうほど書いてませんし
何らかのツールで勝手に入るので「敢えて書く必要性がない」ということなのでしょうか
それとも一律に「書くな」というルールが定着している組織が実在しているのでしょうか

118:デフォルトの名無しさん
19/04/10 21:33:55.83 9YALwuYf0.net
>>109
そうか、82がおまえさんはイミフなのか
悪いけど匙を投げるね

119:デフォルトの名無しさん
19/04/10 21:37:03.36 qyNiIlQC0.net
>>104 にて
scanf("%d", &x);
と書かれているのですが、ターミナルから9を80字入力されたらどうなさるおつもりなのでしょうか
また、signedともunsignedとも指定されておりませんが、その点はどのように汎用性を確保なさるのでしょうか

120:デフォルトの名無しさん
19/04/10 21:55:23.88 9YALwuYf0.net
>>114
俺に聞くな、規格票を嫁
URLリンク(kikakurui.com)
104のコードが規格厳密合致プログラム(strictly conforming program)であることのみここに宣言する
この命題を反証されたら、潔く敗北を認める
では貴殿の返答を待つ

121:さまよえる蟻人間
19/04/10 21:59:49.17 QzOhMry80.net
intだけだったらsigned intになるっしょ。
近代的な環境なら、正しく書式を設定すればscanfはオーバーフローしない。

122:さまよえる蟻人間
19/04/10 22:19:22.09 QzOhMry80.net
shortはsigned short、
longはsigned longだが、
charはコンパイラの設定によりsignedにもunsignedにもなる。普通はsignedだがな。

123:デフォルトの名無しさん
19/04/10 23:14:07.61 qyNiIlQC0.net
>>115
> 規格厳密合致プログラム
残念ながら、リンク先の日本語文章に定義が無く意味不明だったため
これから英文を読むことにします
型の件含め、皆様の御教示に感謝します

124:デフォルトの名無しさん
19/04/10 23:41:09.21 qyNiIlQC0.net
"shall" の訳文に、筆者の苦悩のようなものが見受けられました
その点ふくめ、私は知らないことが非常に多いようで、ご迷惑をおかけしました

125:
19/04/10 23:46:11.63 57hoitEO0.net
>>65
>>56
struct S {
int a[65536];
};

126:
19/04/10 23:49:04.71 57hoitEO0.net
>>119
規格の中に現れる shall は十中八九「話者の意思」を示す
例文:You shall die.
超訳:「死ね!」

127:デフォルトの名無しさん
19/04/11 00:04:19.55 SPJO7XdY0.net
>>121
> 例文:You shall die.
> 超訳:「死ね!」
さすがにそれは…
日本語の文章の方に "shall" は書かれてなかったもんで把握、と
示唆したつもりだったのですが、通じなかったようで、表現力につき反省する所しきりであります

128:デフォルトの名無しさん
19/04/11 00:44:10.66 Nah1Abkj0.net
I shall return 0.

129:デフォルトの名無しさん
19/04/11 01:53:26.52 5ienNbe20.net
  *'``・* 。
  |     `*。
 ,。∩彡⌒ミ   *    みんなハゲにな~れ
+  (´・ω・`) *。+゚
`*。 ヽ、  つ *゚*
 `・+。*・' ゚⊃ +゚
 ☆   ∪~ 。*゚
  `・+。*・ ゚

130:デフォルトの名無しさん
19/04/11 07:54:50.71 YCq7KtVA0.net
>>118
4. 規格合致性
規格厳密合致プログラム(strictly conforming program)は,この規格で規定する言語機能及びライブラリ
だけを使用しなければならない(2)。さらに,いかなる未規定の動作,未定義の動作又は処理系定義の動作に依存する出力も生成してはならず,しかもどのような最低限の処理系限界も超えてはならない。
(2)規格厳密合致プログラムは,どの処理系でもサポートしているわけではない機能(附属書 F の中に例
がある。)を使うことができる。ただし,その機能を使うことができるのは,それが適切なマクロをもつ#ifdef 指令とそれに対応する#endif 指令とに囲まれている場合に限る。次に示すプログラム片がその例である。
#ifdef _ _STDC_IEC_559_ _ /* FE_UPWARD
が定義されている */
/* ... */
fesetround(FE_UPWARD);
/*
... */
#endif

131:デフォルトの名無しさん
19/04/11 09:09:31.46 AbBe4c020.net
RFCなんかである要請の強度( MUST SHALL MAY ) みたいに使う用語の縛りはない?

132:
19/04/11 20:58:24.95 mnND5pqz0.net
>>122
あくまで私見ですが、現代英語では will に単純に置き換えられるような shall の使い方はもうありえなく、
shall を使うのは shall を使う必然性があるから、だから、shall は辞書でいうところの「意志未来」であり、したがって shall を訳出しないのは不誠実な訳だとどうしても私は感じてしまいます…

133:デフォルトの名無しさん
19/04/11 21:23:32.90 SPJO7XdY0.net
「英文読解」の場ではなかったので控えていたのですが
>>127
個人的には「こんなのを訳出させられた人は凄い」と思ってます
「原典は英語で日本語訳がある」もので「日本語訳が意味不明」の場合
原典で確認すると「訳出で明確ではない」部分が確認できるケースが多々あります
"shall" をどのように訳出するかは個人差ありますし
今回の箇所が「以前同じ文言があったので単純にコピペした」ものかどうかは確認していません

もちろん>>126さんが仰るように「強度の要請で助動詞を変える」ものもありえますが
C99の文書の場合は丁寧に "shall" の定義から書かれていますし、
何より "strictly conforming program" という表現は、明確に 4.5 での新情報です

134:デフォルトの名無しさん
19/04/13 04:36:48.17 /Uq84pFNM.net
昔の話。
若い頃K&Rの日本語版を買ってきて読み始めて、
間違いというか
サンプルとしてよろしくない
ところを見つけていた。
それが7年後に役立って
沢山仕事が入ってくるようになった。
本はキチンと読みましょう!

135:デフォルトの名無しさん
19/04/13 12:55:05.18 hvrKDDfY0.net
>>129
面白そうな話の気もするが、抽象的すぎてよくさっぱりわからん。
せっかくだしもう少し詳しく教えて欲しい。

136:デフォルトの名無しさん
19/04/14 04:54:50.50 jIyXk5jhp.net
You shall die.
日本語の古語にすると分かりやすい
汝死すべし
shallはべしに近い

137:
19/04/14 05:55:46.19 AVvjfIV70.net
>>131
「べし」が二人称主語のときは「当然~するべき」「義務」をあらわすことが多いですね
ただしこの場合も、主観的な意見の場合・客観的な義務の場合の両方がありうるかもしれません
shall=べき、べし、というのはいい線いっていると思います

138:デフォルトの名無しさん
19/04/14 06:22:08.07 JgI3yl/w0.net
日常会話や文学なら "You shall die." を「汝死すべし」と訳して
原文のもつ「お前死んだ方がいいよ」と「お前はいつか死ぬであろう」の
両方のニュアンス(他の解釈もあるかも)を残すってのはアリだと思うけど、
技術的な文章では、複数の意味に取れる書き方はしないでしょ。
翻訳の読者が欲しい情報も、原文がどちらを意図してるのか、だろうし。

139:デフォルトの名無しさん
19/04/14 06:41:56.55 Sc1FWDft0.net
shall
~するものとする。

140:デフォルトの名無しさん
19/04/14 08:56:50.49 /sR0LrTu0.net
ISO9001の要求事項とか見たことないのか?
Shall: しなければいけない
Should: した方が良い
って訳すのは常識だぞ

141:
19/04/14 09:36:41.79 AVvjfIV70.net
>>135
>>121 >>127 のとおり、shall は単純未来の可能性は捨て一律に意志未来に決め打ちしちゃっていいってことですね…

142:デフォルトの名無しさん
19/04/14 09:43:00.26 zcg/ytHt0.net
英会話スレ

143:デフォルトの名無しさん
19/04/14 09:54:03.65 /V8zrPr00.net
一年程度だが海外で仕事した経験のある俺にコメントさせてくれ。
shallにとくに意味はない。日本語に訳すのは難しいが方向性でいえば
汝死ぬ(shallなし)

汝はねぇ死ぬよ(shallあり)
かな。
つまり特に意味はない。特に強調してるわけでもないけど、つまり断定か。

144:デフォルトの名無しさん
19/04/14 10:09:12.15 zcg/ytHt0.net
余計分かりにくい

145:デフォルトの名無しさん
19/04/14 10:38:07.79 /sR0LrTu0.net
>>136
未来とか関係ない
そうしないと規格に合致しねーぞって言うある意味条件だよ

146:
19/04/14 10:50:12.57 AVvjfIV70.net
>>140
「意志未来」という言葉は辞書の言葉ですが、私の本意は >>121
つまり「規格」または「規格の書き手」が "You will die" という感情の含まれない淡白な表現を、それが実現するように強要する、それが "You shall die."

147:デフォルトの名無しさん
19/04/14 11:15:43.43 /V8zrPr00.net
いや、ほんとに意味はないんだよ。書き手がなんか気持ち悪いからshallつけてるだけでshall抜きでもかわらん。
willとかshouldに比べてshallどうとかじゃなくて、willとかshouldがなかったらどうかを考えるべき。

148:デフォルトの名無しさん
19/04/14 11:36:05.15 xBNIHV910.net
そもそも他言語を日本語で正確に訳せるってのは幻想でしかないから
規格でshallやshall notについて扱いが明記されてる(C11なら4.1~4.2)以上それが全てでしょ

149:デフォルトの名無しさん
19/04/14 11:56:00.83 CLAWTkIiM.net
>>141
だからお前さんの本意とかはどうでもいい
規格でのshall/shouldの解釈は
> Shall: しなければいけない
> Should: した方が良い
って訳すのは常識って話

150:デフォルトの名無しさん
19/04/14 12:01:14.41 El+pt49w0.net
>>128
> 「英文読解」の場ではなかったので控えていたのですが
(中略)
> C99の文書の場合は丁寧に "shall" の定義から書かれています

これ以上、「C言語のスレ」として、どんな話題あるんですか
「ANSI C(なりC90なり)」「C95」「C11」を持ち出すなら意味があるかも知れませんが?

151:デフォルトの名無しさん
19/04/14 12:28:26.87 xBNIHV910.net
あと、そんなに辞書が好きならshallに「(法律・商業)~(すべき)である, ~(するもの)とする, ~のこと」ってあるからそれが一番近いと思うよ

152:
19/04/14 12:51:54.61 AVvjfIV70.net
>>144
その百人一首の上の句と下の句をつなげるように日本語と英語の一対一対応を増やしていくスタイルは、カルタが少ないうちはいいけれども腐るほど多くなったときに困りませんか?
でも、最終的には慣れればなれるほど自動的に丸暗記になるのだろうから(私も「you shall die =死ね」状態なのは事実)、語学に理屈付けは不要なのかもしれませんね…

153:デフォルトの名無しさん
19/04/17 17:36:41.54 LDzja3MF0.net
C95って何?
ああAMD1のことか、一瞬ぎくっとした
しかしあの文脈では、それを言うならC99だろ

154:デフォルトの名無しさん
19/04/17 19:18:17.08 xaCKxF64a.net
C言語で、配列を渡すときは&付けなくていいとありましたが
scanf("%c", &array[i][j]);
このときに&つけなならんのはなんでですか
cだとつけるのか二次元配列だとつけなきゃならないのか(根本的にわかってないかも)
そこら変詳しくおしえてもらえませんか

155:はちみつ餃子
19/04/17 19:46:08.34 UWuCQ9XR0.net
>>149
配列は、条件を満たしたとき (というより条件を満たす場合の方が多いのだが……) にその先頭要素を指すポインタに型変換されるという特殊ルールがあるから。
配列 array を単に array と書いた場合には、 &array[0] に読み替えられると考えてもいい。
配列 array に & を付けて &array と書いた場合は「配列を指すポインタ」であって、「配列の先頭要素を指すポインタ」ではないことにも注意が要る。 (型が違う)
そのあたりのルールは歴史的経緯があってややこしいんだけど、この規則がないとそれはそれで記述がぐちゃぐちゃになるんでな……。

156:デフォルトの名無しさん
19/04/17 20:36:55.41 VoxdaNRv0.net
>>149
int array[2][2]と仮定すると、array[0][0]の型はint
scanf()は渡されたアドレスを書き換える関数なので必要なのはint *

157:デフォルトの名無しさん
19/04/17 23:51:24.14 LDzja3MF0.net
>>149
[]は、配列を、配列でなくす(要素にする)演算子だからだ

158:デフォルトの名無しさん
19/04/18 04:53:03.15 3hgPbfMt0.net
文字列とscanf

159:デフォルトの名無しさん
19/04/18 06:35:48.92 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:デフォルトの名無しさん
19/04/18 06:48:49.78 o0KoJkQh0.net
&[0]なんて構文ねえよ
よりにもよって、そんなとこtypoしちまったら致命傷だろうが

161:154
19/04/18 07:30:33.11 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:デフォルトの名無しさん
19/04/19 12:12:59.76 Nwj37sNi0.net
C言語ってarray[3]だけじゃなくて3[array]もできるんだね
[]が演算子って今更知った

163:はちみつ餃子
19/04/19 12:21:05.01 mypEidUJ0.net
>>157
array[3] は *(array+3) と等しい、構文糖であるということになっているので結果的にそうなった。

164:デフォルトの名無しさん
19/04/19 12:39:59.72 U46FCs4Qa.net
かといってそんな書き方してるプログラムはサンプルプログラム以外では見たことがない。

165:デフォルトの名無しさん
19/04/19 12:58:54.90 8C7kRl9M0.net
これとか
URLリンク(www.ioccc.org)

166:デフォルトの名無しさん
19/04/19 15:31:03.70 y1N4KfNld.net
>>157
コレ好き。たまーに混ぜ込んでおいてレビュー担当迷わせるの楽しい。

167:デフォルトの名無しさん
19/04/19 16:22:40.20 t0MiT6LCM.net
>>161
作法違反で低評価になるだけじゃねw

168:デフォルトの名無しさん
19/04/19 16:50:40.06 8C7kRl9M0.net
スキルの使い途を間違えているな
弱い者いじめではなく生産に使え
チーム得点につながらない無駄なことをするやつを
上司は冷ややかに見ているぞ

169:デフォルトの名無しさん
19/04/19 17:06:38.82 GSI3q7h60.net
初めて5[a]がOKなんだと知ったときの感動を思い出せ。そんな感動と興奮を仕事に散りばめてくれるエンターテイナーだよ。

170:デフォルトの名無しさん
19/04/19 17:07:35.94 GSI3q7h60.net
buf[5[buf]]

171:デフォルトの名無しさん
19/04/19 19:15:23.29 g/tNuT86M.net
Cに配列なんて概念なくて、
配列宣言っぽく見えるのはポインタ宣言とallocaの構文糖だという
言語だったらよかったのに。

172:デフォルトの名無しさん
19/04/19 22:01:37.69 8C7kRl9M0.net
いや、それは困る
ポインタが指す先の実体は
いつかどこかで配列になれなきゃ話が発散してしまう

173:デフォルトの名無しさん
19/04/19 22:17:39.05 jGjLpvILa.net
だから、これは配列ではないという結論になる

174:デフォルトの名無しさん
19/04/19 23:18:20.25 UowN6RnT0.net
"0123456789abcdef"[n % 10]

175:デフォルトの名無しさん
19/04/19 23:34:23.62 8C7kRl9M0.net
アホ
n % 16だろうが

176:デフォルトの名無しさん
19/04/20 00:07:20.17 WPUlIDDo0.net
>>169
つよい

177:デフォルトの名無しさん
19/04/20 01:30:17.77 2mEBnGIe0.net
早く配列になりたい

178:デフォルトの名無しさん
19/04/20 12:04:07.28 adBHY6Cw0.net
忙しかったものですから、ウルトラ亀レスで申し訳ありません。
もちろんK&Rは良い本だとは思いますが、
よくないところがあると書きましたら、「それどこですか?」
のような質問がきていたのですが、仕事に忙殺されてレスが遅くなりました。
例えば、K&Rのハッシュ探索のプログラム。
ソースを見ればバグがあるとすぐわかるはずです。
K&Rのソースは単なるサンプルです。
仕事で実際に使えるわけではありませんし、
吐き出すハッシュ値をチェックしてみてください。
そのソースをF社の東大卒のプログラマがパッケージに組み込んでしまい、
大きなバグを引き起こしました。
で、俺が呼ばれてソースを見た瞬間に原因がわかって直しました。
K&Rを読んだときに気が付いていたからです。
K&Rを読んだときに、気が付く人はすぐ気が付いていると思います。
自分で考える人です。
本当のプログラマです。

179:デフォルトの名無しさん
19/04/20 13:35:25.67 UeTDxeBdd.net
>>173
自分で考えるのが良いってのは、プログラマに限らずなんでもそうだよね。
その上で本当のプログラマとやらにもとめられるのは、考えて理解することよりバグを出さないテストを行う能力だと思うね。
考えてもミスる時はミスるし。
場数を踏んだプログラマは、もちろんちゃんと考えるけど、その上で自分の理解やコードを信じない。
ちょっと話が違うかな。

180:デフォルトの名無しさん
19/04/20 18:04:05.64 YpwC1XIf0.net
>>173
それはK&Rのよくないところか?
K&RはCとはどんな趣旨のものかを紹介する本で
アルゴリズムを正確に教える本ではない
単にCの機能を説明するために例を挙げただけのナンチャッテコードを
いきなり本番環境に持っていった東大卒とかぬかすやる気のねえクズと
大きな事故に至るまで欠陥を検出できない会社の検証ルールの問題だろうが

181:デフォルトの名無しさん
19/04/20 18:21:44.59 rZAw


182:W+3j0.net



183:デフォルトの名無しさん
19/04/21 00:16:47.67 NOPBo00z0.net
買ったもの、存在するものが四角い車輪だけだったとしてもか?

184:デフォルトの名無しさん
19/04/21 00:25:39.70 sE/qbOcV0.net
買ったもの、つまり売っているものは、自作したものよりも性能がいい

185:デフォルトの名無しさん
19/04/21 05:49:28.91 HT/hFmaDa.net
Cできる人は(ここの住人のような)C++も当たり前にできるん?

186:デフォルトの名無しさん
19/04/21 06:09:41.42 znB8VhQa0.net
>>179
会社に今までC一筋20年くらいの人がC ++のプロジェクトに来たんだが使えなさすぎてクソワロタ

187:デフォルトの名無しさん
19/04/21 06:45:11.14 XP3sT+Yd0.net
>>178
何も言うまい
破門だ
それだけだ

188:デフォルトの名無しさん
19/04/21 08:31:58.96 nzBarAq00.net
もしかしてCのライブラリのソースコード全部読んでんの
アホじゃね

189:デフォルトの名無しさん
19/04/21 10:26:51.61 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:デフォルトの名無しさん
19/04/21 10:42:02.64 ZEQClH310.net
プログラマなんて正常な判断ができないような過酷な状況に追いやられることなんてよくあるし、想像の余地はいろいろあるな。

191:デフォルトの名無しさん
19/04/21 10:51:08.83 MDootfcvM.net
>>179
Cを数年やってからC++を
やりましたけど
最初は全くわかりませんでしたよ。
C++に慣れるまで1年ぐらいかかったかな?
全く別の言語と思ったほうが
よろしいかと思います。

192:デフォルトの名無しさん
19/04/21 11:08:55.42 gKcyDuy9a.net
Cでインターフェース・抽象性を意識したプログラムを書いてたらそんなに変わらんと思う。
ただ現実としては委譲を使ってたところから無理して継承に適応するために混乱することはある。現場で待っているのは神クラス。

193:デフォルトの名無しさん
19/04/21 12:18:59.87 +Seww2xKM.net
まるで別物と思うわ。
ただ仕事で使う分にはみなjavaと同程度の構文しか使ってないから、違いはさほどないと感じるかも

194:デフォルトの名無しさん
19/04/21 13:49:17.56 ZEQClH310.net
仕事以外でC++使うなんてドMでしょw

195:デフォルトの名無しさん
19/04/21 13:55:23.49 7uFZhwV3M.net
C言語で開発しているのも大概だけどなw

196:デフォルトの名無しさん
19/04/21 14:18:53.79 P3URCDUY0.net
仕事以外でプログラミングすること自体がドMの極みw

197:デフォルトの名無しさん
19/04/21 14:48:54.11 YKRN8m01M.net
34年間、ほぼ毎日プログラミングしてますよ!
定年になってもずっとやってると思います。
作りたいものが一杯有りすぎて体が2つ3つ欲しいです。
今、最も力を入れているのが人工知能です。
人類を滅ぼす悪魔のソフトを造るのが人生最大の目標です!

198:
19/04/21 15:58:12.64 MozNv5pX0.net
>>191
>人類を滅ぼす悪魔のソフト
これには�


199:ニても興味がありますね 「人類を滅ぼす悪のソフトウェア」 うーん、ぱっと思いつくところではテトリスとか…



200:デフォルトの名無しさん
19/04/21 17:58:31.04 XP3sT+Yd0.net
>>183
全然わかってねえじゃん
あと数文字をコーディングすることが
Cの機能を説明するサンプルとしては邪魔だったら
その数文字をコーディングしねえのは当たり前だ
サンプルってのはS/N比が大事なんだよ
そこで伝えようとしていること以外のノイズは
徹底排除する必要があるんだ

201:デフォルトの名無しさん
19/04/21 17:59:26.99 XP3sT+Yd0.net
>>191
おまえ自分が作ったプログラムの敵が未来からタイムマシンで暗殺に来るぞ

202:デフォルトの名無しさん
19/04/21 19:19:27.57 AjzRUWat0.net
脳波を検出して見たいVRを出してやるわ ==> 人類滅亡

203:デフォルトの名無しさん
19/04/21 20:04:10.03 gW8lsVjX0.net
>>193
初心者向きの本ですから真似する馬鹿もいるということを
想像すべきでしょうね。
おまえこそ馬鹿だな
想像力がゼロだ
笑えるぞ?
知ったかのクズだ

204:デフォルトの名無しさん
19/04/21 20:08:24.68 YKRN8m01M.net
今どきCとか
K&Rとかで
能書きこいて
馬鹿ジジイにも
ほどがあるwww

205:デフォルトの名無しさん
19/04/21 20:10:12.48 XP3sT+Yd0.net
>>196
「初心者」という隠れ蓑に逃げる馬鹿って、自己紹介か?

206:デフォルトの名無しさん
19/04/21 20:48:49.16 ZEQClH310.net
>>197
イラッとするのはわからんでもないが、ここはC言語スレだからそんなこというのは荒らしだぞ

207:デフォルトの名無しさん
19/04/21 23:45:38.39 2X82VWTJ0.net
>>196
あの時代の初心者は今時の初心者と違って、大半はちゃんと自分で考えて自力で技術を習得していく姿勢があり、ただ教えてもらった通りにするだけのようなのは自然と落伍していったと思うよ。当時の想定する読者層にあった適切な内容だったろうと思う。

208:デフォルトの名無しさん
19/04/22 00:28:58.76 1mQu6LUBa.net
単に裾野が広がってるだけで

209:デフォルトの名無しさん
19/04/22 01:07:58.48 HMkHCtfr0.net
>>196
人の意見を聞く気がないなら
チラシの裏にでも書いてなよ
175にもあるけど
初心者の真似するバカのコードが
そのままリリースされる態勢を反省した方が前向き
あと何であの本に信奉者がいるのか
理解できない自分も

210:デフォルトの名無しさん
19/04/22 02:24:36.97 RPRc4IKz0.net
>>200
当時のccが寡黙だったのが却ってよかったよな
なんで動かないのか自分の頭で考えるしかなかった
今どきのコンパイラは過保護で
落伍すべき者を引っ込み付かないところまで引きずっちまう

211:デフォルトの名無しさん
19/04/22 08:39:06.04 29O1k2F2M.net
>>202
お前のような馬鹿な奴は
そのうち自滅するよ(笑)
お前は「おれ天才!」とか
思ってる低知能のクズだ
もっともたちが悪いクズ

212:デフォルトの名無しさん
19/04/22 10:09:04.63 y6AB5FtQa.net
>>179
いや、俺は使えない。
C++は30年ぐらい前にやろうとはしたが当時のPCでもワークステーションでも流行っておらず当然そのような仕事もなく、自分は主にUNIX関係の仕事だったので使う機会がほとんどなかった。
その後PCの方ではWindowsが流行ったが仕事はそのままなので変わらず、趣味ではWindowsでDelphi使ったりもしたがC++はほとんど手を着けず大雑把にしかわからないまま。
仕事はやがてLinux関係に移行するがそこでもC++が必要とされる事はなく現在に至る。趣味でJavaを覚えたりもしたが自分の仕事ではほとんど必要とされなかった。
今は趣味で Kotlin を覚えているところだが、C++については複雑化�


213:オ過ぎたようなので今さらやる気は起きない。多分今後もやらないと思う。 Windowsプログラムを作る必要が出てきたとしても今ならC++なしで出来そうだし必要になるとしても局所的だろう。



214:193
19/04/22 10:13:09.11 RPRc4IKz0.net
>>204
196の時点ではまだ僅かに技術的な話題に振れていたが
今度は100%罵倒のみ
とうとう落ちるところまで落ちたな

215:デフォルトの名無しさん
19/04/22 12:15:04.42 IrgyqU7Vx.net
>>179
MFCが流行ってたりC++Builderが流行ってた時にはそれなりに使う人口がいたと思うけど、過去メンテ以外で現在積極的に使ってる人は少ないかもね。

216:デフォルトの名無しさん
19/04/23 01:03:01.93 dZlKsmD/r.net
>>157
え?こんな書き方出来たの!?
初めて見た
[]が演算子??
そんなの今まで読んだ本にのってなかったよ!

217:
19/04/23 06:21:01.09 JSYnwir10.net
>>208
ioccc

218:デフォルトの名無しさん
19/04/23 07:52:30.55 ITUqyUOr0.net
URLリンク(www.ioccc.org)

219:デフォルトの名無しさん
19/04/23 09:50:22.14 tEWsQxq+M.net
[]が演算子って常識じゃないのか?
どの優先順位表にも載ってるだろ?

220:デフォルトの名無しさん
19/04/23 09:56:40.16 EYeaOvlg0.net
もちろんこういう書き方も出来るのが[]演算子と文字列リテラルの合わせ技
int wday = 2;
printf("%c", "SMTWTFS"[wday]);

221:デフォルトの名無しさん
19/04/23 11:04:29.35 lZSXa7efa.net
標準入力で最初に数字を入力して、その値だけ文字列を入力するのはどんな感じで書けばいいですか
3
asdf
qwert
sdfghg
こんな感じで最初の入力の値に合わせて配列を用意する?感じになるとおもうんですが
なにもひらめきまへん

222:デフォルトの名無しさん
19/04/23 11:22:00.88 ITUqyUOr0.net
>>211
配列の宣言に使う[]は演算子ではない
直接宣言子の一部だ
意図的に演算子に似せてあるので
勘違いするのは無理ないが
演算子は式に作用するもので
宣言子に含まれる[]はこの定義に該当しない

223:デフォルトの名無しさん
19/04/23 11:44:40.51 5E3fgZzA0.net
>>212
土日・・・

224:デフォルトの名無しさん
19/04/23 11:54:58.53 mPLR84qwa.net
>>214
またおまえか

225:デフォルトの名無しさん
19/04/23 12:32:49.10 ITUqyUOr0.net
>>216
何か用か?

226:デフォルトの名無しさん
19/04/23 15:59:59.72 gv0SOq8da.net
>>213
文字を入力するだけで変数に入れる必要がないなら getchar() で '\n' 三回読んだら終わり。
変数に入れる必要があるなら最初の値の分だけ char * を保持する配列を char ** に malloc() や calloc() 使って確保して、更に全要素を malloc() や calloc() 使って確保して、それに対して fgets() を繰り返す。

227:デフォルトの名無しさん
19/04/23 16:43:21.53 56NoAZCP0.net
>>215
土曜は日曜であり、全は一である。

228:デフォルトの名無しさん
19/04/23 17:41:00.23 gv0SOq8da.net
月月火水木金金

229:デフォルトの名無しさん
19/04/23 20:20:58.69 i9di+stUM.net
おじいちゃん戦争はもう終わってるよ

230:デフォルトの名無しさん
19/04/23 20:24:41.37 aEjNiIWC0.net
令和も戦争のない年号になると良いが、ちょっと雲行きが怪しいな。

231:デフォルトの名無しさん
19/04/23 20:44:52.15 k/LWg8++0.net
>>222
日本は戦争しないでしょ?
そして巻き込まれもしないと思う。
だって日本には軍隊がないんだもの。
自衛隊なんて銃もろくに撃てないへなちょこばかりだから。

232:デフォルトの名無しさん
19/04/23 20:56:24.90 XDXL3q34a.net
コンピュータ好きなオタクって勇ましいやつおおいよね

233:デフォルトの名無しさん
19/04/23 21:21:40.55 Dz3CEytOM.net
語尾によねをつけて同調


234:を求めたがるのは左巻きの典型だよね



235:デフォルトの名無しさん
19/04/23 21:58:52.95 ITUqyUOr0.net
俺は右巻きだが「よね」はよく使う
レッテル貼りは瞬時に反証される論議の中では自爆行為だ
しょーもね

236:デフォルトの名無しさん
19/04/23 22:34:42.99 bUhZMb1va.net
やっぱり自信がないからコンピュータ好きになるのかな?

237:デフォルトの名無しさん
19/04/23 23:06:00.81 ITUqyUOr0.net
断言できないおまえが自信ないだけだ(pgr

238:デフォルトの名無しさん
19/04/24 03:42:44.00 SZsIFAZx0.net
よね

239:デフォルトの名無しさん
19/04/24 08:04:11.05 P2wnwvJc0.net
ICEデバッグしてるとき、とある変数の値をいくつか足し算して、別の変数に代入する関数で、
変数の内容同じなのに、結果が違う。。
最適化OFFにしてビルドしてる。

240:デフォルトの名無しさん
19/04/24 08:05:24.40 P2wnwvJc0.net
その関数は、別の場所から2度呼んでて、1回目と2回目で結果が違う
計算に使う値は全く同じなのに

241:デフォルトの名無しさん
19/04/24 08:51:50.10 zvRm4GUYM.net
>>230
自分の経験則で言えば、大抵は関数の処理途中で割り込み処理が発生してメモリかレジスタバンクを書き換えていると思う

242:デフォルトの名無しさん
19/04/24 10:14:34.45 V3yGzJXe0.net
一回目から二回目の間で変数のどれかが書き変わってるに決まってんじゃん

243:デフォルトの名無しさん
19/04/24 10:55:30.16 HTDgYDWT0.net
>>230
加算に使っているレジスタを割り込みで使いっぱしてね?

244:デフォルトの名無しさん
19/04/24 10:58:08.05 HTDgYDWT0.net
>>230
_Atomic使ってるか?

245:デフォルトの名無しさん
19/04/24 11:21:13.53 IysC1nu6x.net
>>230
ほぼ100%スタックのゴミ拾ってる。

246:デフォルトの名無しさん
19/04/24 12:37:12.74 AiHhhuXgM.net
まれにポインタ周りバグっててメモリー書き換えてるとか
てかICE使ってるならそこで止めて変数の中身確認しろよ

247:デフォルトの名無しさん
19/04/24 13:14:34.92 V3yGzJXe0.net
ICE製造の過程でICEそのもののデバッグでもしてんじゃね

248:デフォルトの名無しさん
19/04/24 18:27:12.37 SZsIFAZx0.net
まずはアイスクリームでも食べて休むといい
よね

249:デフォルトの名無しさん
19/04/24 18:45:45.47 JD7HGNH40.net
ここ20年ほどフルICE使ってないなぁ。
未だにあるんだろうか?

250:デフォルトの名無しさん
19/04/24 20:00:32.37 P2wnwvJc0.net
230だけど、俺の見当違いでした。
インプットの変数の値が違っていたので、当然足し算の結果も違っていたというオチ。
ICEデバッグだと変数を表示するとメモリの中じゃなくて表示した時点で割り当てられたレジスタの値を表示するので、
変数としては変わってないはずなのに他で書き換えられるので逐一変わって混乱していた。
ICE初心者でしたw

251:デフォルトの名無しさん
19/04/24 22:16:06.15 03JhFb4B0.net
デバッグ中に最適化を抑制するのは間違いではないと思います。
慣れてくると最適化したままでもある程度推測できるようになりますので、
リリースオプションでICEを使用することの方が多くなるかもしれません。

252:デフォルトの名無しさん
19/04/24 22:18:24.10 lwqMqFKi0.net
CPUぶっこぬいて差し替えてやるやつ?

253:デフォルトの名無しさん
19/04/24 22:41:36.06 W4WRMDmVM.net
ぶっこ抜くと言うよりターゲットボードのCPUの代わりに専用のソケットを実装して専用プローブで接続する
PCなどと違って組み込みのSoCにソケットなど無いのでぶっこ抜いて差し替えるなど無理

254:デフォルトの名無しさん
19/04/24 23:07:42.00 gVrMWpFh0.net
>>243
20年前のICEならそうなんだろう
>>244
JTAGの話か?
ソケット云々の前にGHzオーダーのCPUだと信号引き出すなんてとても無理

255:デフォルトの名無しさん
19/04/25 00:33:17.24 1oTSGFU/a.net
scanf("%d%d%d", &a, &b, &c);
こうまとめて入力するのをfgets使うとどうやるの


256:? fgets(s, sizeof(s), stdin); sscanf(s, "%d", &a); ↑ このセットをループで三つまわすしかない? 一行でやる方法あるんかな



257:デフォルトの名無しさん
19/04/25 00:56:36.76 WntZOZIYa.net
いや、1行中に入ってるなら同じじゃないか?
行の区切りとか要素の区切りとか細かい話はあるけども

258:デフォルトの名無しさん
19/04/25 03:18:03.15 rmDyF6iV0.net
またfgets教か
マジいやらしさがカルト教団さながらだ

259:デフォルトの名無しさん
19/04/25 04:21:17.20 D6NtakiX0.net
>>246
なんというか、ほとんど答えが上に書いてあるかのような質問だな・・・
sscanf(s, "%d%d%d", &a, &b, &c);

260:
19/04/25 05:17:53.53 6xUIrXDu0.net
>>246
スレリンク(tech板:55番)

261:デフォルトの名無しさん
19/04/25 21:00:37.28 E+TyVG800.net
>>244
そんな感じ
CPUじゃなくてROMだけど
就業先で当たり前のようにICE使わせて頂いてるけど、お値段見てビックリ・・

262:デフォルトの名無しさん
19/04/26 10:01:13.22 EJ4BH9nCa.net
>>250
商売すんなや…

263:デフォルトの名無しさん
19/04/26 10:28:55.76 YRtkzMZRa.net
>>252
それって商売になってるのか?
普通に公開されてるが。

264:デフォルトの名無しさん
19/04/26 13:15:14.86 0jspcAl20.net
商売のための宣伝だろ

265:デフォルトの名無しさん
19/04/26 14:06:27.08 YRtkzMZRa.net
そうなの?何の宣伝になってるのか全くわからんのだが。

266:デフォルトの名無しさん
19/04/26 14:27:22.39 0jspcAl20.net
誰もアクセスしない隔離スレなんで
時々こうやって宣伝して引っかかるカモを呼び寄せようと

267:デフォルトの名無しさん
19/04/26 14:36:01.95 YRtkzMZRa.net
元々有償でプログラム作るスレとして作ったスレだったんだろうけど結局誰もそんな風には使ってなくてただのプログラム発表の場になってるよね?
ま、しかし、5ちゃんのような掲示板で稼ぐのは無理があるよなあ。それ専用のサイトなら可能だろうけど。

268:デフォルトの名無しさん
19/04/27 10:20:19.39 H+/AGAV+0.net
既存をちょっと修正してほぼデグレのテストというスタイルの俺には、
要望に応じて1から新しいプログラムを組む人を尊敬する
修正は修正で既存への影響の面でそれなりのノウハウは要るにしても

269:デフォルトの名無しさん
19/04/27 10:42:26.45 e+ce++rA0.net
>>258
むしろ俺は人の作ったワケワカメなコードを文句も言わずメンテしてる人はすごいと思う。

270:デフォルトの名無しさん
19/04/27 16:22:24.62 W91FG5LxM.net
>>259
文句を言わずに、というより
文句を言わせずに、だと思う。
俺は奴隷だったので
よくわかる。
会社辞めて派遣になって
気分すっきり!
な~んの責任もないのに
年収1000万だもの
派遣辞められません!

271:デフォルトの名無しさん
19/04/27 17:56:34.08 H+/AGAV+0.net
>>260
派遣でそれほどの能力があったら独立して2000万は稼げるのでは

272:デフォルトの名無しさん
19/04/27 18:25:28.46 H+/AGAV+0.net
派遣でそれだけ貰える程のスキルがあるってことは、
C言語だと本当に低レベルのデバイスの制御からビジネスロジックの
設計からお任せできるレベル
独立すべきでしょう

273:デフォルトの名無しさん
19/04/27 19:19:15.66 e+ce++rA0.net
ハードの設計から組み込みソフトはもちろんWindows、Android.、iOSのアプリ、DBもWebもゼロから設計できるスキルがあったらどこに行ったらそんな高級取りになれるでしょうか?

274:デフォルトの名無しさん
19/04/27 19:26:07.70 mTDcTDsb0.net
火事の現場

275:デフォルトの名無しさん
19/04/27 19:26:19.83 H+/AGAV+0.net
コンサルレベルでもなかなか

276:デフォルトの名無しさん
19/04/28 03:02:09.70 IQfIs7rY0.net
自分で開業した方が良さそうな感じもするが、そうなると営業力も必要になるな。
まあでも Android や iOS アプリの場合は営業力あまりなくても世界中に売れれば儲かる事がある。
電卓アプリでこんな風に稼いでいる人も居るし。
URLリンク(appmarketinglabo.net)
これは世界での需要がどのぐらいあるかとプログラムが簡単かどうかはあまり関係ないってことでもあるかな。
需要がないものだと作るのが大変なプログラムでも売れなくて稼げない。苦労と儲けは無関係。

277:デフォルトの名無しさん
19/04/28 07:50:35.97 3xnz0I0C0.net
大半の自営業は開発費半分を前金でもらいとんずら。

278:デフォルトの名無しさん
19/04/28 13:24:06.83 JRRKtJTbM.net
>>267
日本に前金払うところなんてないから。
たからデスマになる

279:デフォルトの名無しさん
19/04/28 20:30:30.58 I/cjvEXhM.net
そんなことすれば詐欺として警察に追われる身になる

280:デフォルトの名無しさん
19/04/29 21:07:19.95 2RjR17Kk0.net
Linuxでシリアル通信のソフトを作成しています。
URLリンク(codepad.org)
コマンドを送信すると、相手が応答電文を返してくる仕様なのですが
write→readでは、うまく受信できないようです。
teratermで同じ電文を投げると、受信できるので
このソースが悪いのだと思っています。
投げて、受けるというのを上手くやるにはどうしたらいいでしょうか。
お助けをよろしくおねがいします。

281:デフォルトの名無しさん
19/04/29 21:50:17.89 AbuAGGh6a.net
socatパクってみれば

282:デフォルトの名無しさん
19/04/29 22:10:00.81 atpu4K080.net
>>270
とりあえずwrite()の戻り値とread()の戻り値が-1でないことから確認しようか

283:デフォルトの名無しさん
19/04/29 22:16:47.11 zdawGwopM.net
>>272
writeはバイト数の13が返ってきます。
readはここで止まります。ずっと待ち?状態になるようで、ctrl+cで抜けるしかありません。

284:デフォルトの名無しさん
19/04/29 22:19:37.72 dHR449jcM.net
Cっていいよね。
シンプルで全て見えてる。
キチンと組めば性能も素晴らしく、
ソースも分かりやすい。
ま、馬鹿が使うと酷いことになるから
馬鹿には触らせたくない!
馬鹿にはJavaがお似合いw

285:デフォルトの名無しさん
19/04/29 22:40:41.10 atpu4K080.net
>>273
そもそもtioが未初期化
33行目にtcgetattr(fd, &tio)とかを入れて

286:デフォルトの名無しさん
19/04/29 22:45:19.28 InnqLHhB0.net
Cのスレで用途も構造も違うJavaとか出してくるあたり相当頭悪いんだと思った

287:デフォルトの名無しさん
19/04/29 23:27:52.24 dHR449jcM.net
ああ
Javaわかんね―馬鹿か
Cしかわからん馬鹿院生って感じかな(笑)

288:デフォルトの名無しさん
19/04/30 01:53:25.72 AMBMNz/t0.net
なんでスレがカテゴライズされているかも理解出来ない

289:デフォルトの名無しさん
19/04/30 08:20:44.73 QYNECMA50.net
Cが分からないってやつはコンピュータの基礎の基礎が理解できてない。
いきなりプログラミングから学ぶからそうなる。

290:本田宗一郎
19/04/30 09:04:16.26 UDRlTLQRM.net
Cしかできない奴はCを評価できない
そんな簡単なこともわからない
院生くずれのバカニート(笑)

291:デフォルトの名無しさん
19/04/30 10:31:21.97 F


292:QfKtoeU0.net



293:デフォルトの名無しさん
19/04/30 11:10:18.88 UDRlTLQRM.net
できね―よ馬鹿

294:デフォルトの名無しさん
19/04/30 11:15:16.30 /zD1IEOE0.net
OSなしで書ける言語はC?

295:
19/04/30 11:39:21.09 iYYZTFZo0.net
>>283
C といえども OS なしではなにもできません

296:デフォルトの名無しさん
19/04/30 11:40:42.65 FQfKtoeU0.net
フリースタンディング環境のことだろ
ソース入力やビルドをOSなしでって意味ではなく

297:デフォルトの名無しさん
19/04/30 11:43:53.69 vCAloE34a.net
ハンドコンパイル・アセンブルするってことだろう

298:
19/04/30 11:45:02.69 iYYZTFZo0.net
>>285
C だけではなにも出来ないのではないでしょうか、最低限アセンブラの部分が数%はあるでしょう?

299:デフォルトの名無しさん
19/04/30 12:02:29.80 FWtA2SNeM.net
クロス開発ではホスト環境とターゲットは別
小規模組込み開発ではターゲットにはOSと呼べるものが存在しない場合もある

300:デフォルトの名無しさん
19/04/30 12:17:23.14 QYNECMA50.net
>>287
CPUによってはリセットエントリから100%C言語だけで記述できるよ。

301:デフォルトの名無しさん
19/04/30 12:28:19.12 AMBMNz/t0.net
書くことはできる
紙と鉛筆さえあれば

302:デフォルトの名無しさん
19/04/30 13:23:52.39 JZ+qVZdl0.net
OS無しで動くプログラムが書ける言語はC?
ってことだろうな

303:
19/04/30 13:41:26.32 iYYZTFZo0.net
>>289
へえ!そうなんですか!多倍長演算をCで書くときキャリーフラグはどう扱うのですか?

304:デフォルトの名無しさん
19/04/30 14:20:29.60 Cm5pFeJF0.net
>>292
15bit+キャリーみたいな形で扱えばいいだけ

305:
19/04/30 15:00:43.85 iYYZTFZo0.net
>>293
それは私もやりましたが、悲惨なコーディングになりました、キャリーを使えるのにそれを無視してCですべて記述するとか、ありえない選択だと考えています
スレリンク(tech板:51番)

306:デフォルトの名無しさん
19/04/30 15:58:16.84 QYNECMA50.net
>>294
そりゃビットサーチとか場合によってはCPUの機能を使ったほうが速かったりシンプルに書けるケースもあるけど、それはそれでまた別の話。
それを以てC言語で書けないとは言えないよ。

307:
19/04/30 16:35:39.02 iYYZTFZo0.net
>>295
まあ java だけで「やってしまった」OSというのもありますから…多分 JNI を使っているとは思いますけど…
C 言語だけで全部やってしまう、というのはありえなく、例外 exception の実装に有用な setjump(), longjump() ですら、CPU を叩かずにはいられない内容ですから、世に蔓延する「C言語マンセー」は、その機会があればなんとしても叩かずにはいられないのです

308:デフォルトの名無しさん
19/04/30 17:01:36.40 QYNECMA50.net
>>296
もしかしたら貴方と私は違う思想の元で仕事してるのかも。
JNIはAndroidぐらいでしか使ってない、てかそもそもJavaを使う機会が少ないような業界の人です。
なんちゃってtry~catchのためのsetjmp系はそれでもやっぱりアセンブラを使わないC言語の範疇内な訳であって、やっぱりC言語否定の理由にはならんとです。
唯一、OSを記述する際のタスクプリエンプトだけはC言語だけで記述できず悪魔のスタック操作とコンテキスト切り替えが必要なのでアセンブラが必須だとは思いますが。

309:デフォルトの名無しさん
19/04/30 17:54:15.66 Cm5pFeJF0.net
>>296
別にsetjmp, longjmpなくてもプログラムは組めるし
Memo


310:ry Mapped I/Oならデバイス制御もC言語だけで組めるだろ



311:デフォルトの名無しさん
19/04/30 18:21:31.59 hc3e5D+80.net
プログラミング素人です。
scanf関数について質問なのですが、
char str[10];
for(i=0;i<5;i++){
scanf(“%c”,str[i]);
}
として、「abcd」と入力された場合、
str[0]=‘a’
str[1]=‘b’
str[2]=‘c’
str[3]=‘d’
str[4]=‘¥’
str[5]=‘0’
となるのでしょうか?
str配列の0~3番目にa~dが格納されていることはprintfでわかりましたが、4以降は何が格納されているのか自分で調べる方法がわかりません…

312:さまよえる蟻人間
19/04/30 18:41:15.22 lzNlO/OB0.net
>>299
C/C++では文字は整数なんだ。整数として出力して、アスキー表を参照すれば、文字がわかるはず。

313:
19/04/30 18:44:59.71 iYYZTFZo0.net
>>299
鋭い質問ですね…手元でいろいろ試していますが、今ひとつ事情がつかめないでいます
URLリンク(ideone.com)
ideone と x64/gcc/cygwin でも結果が変わってしまいます…

314:さまよえる蟻人間
19/04/30 18:51:26.51 lzNlO/OB0.net
str[5]以降は決まってないから調べてもあまり意味がない。多分ゴミデータ。

315:デフォルトの名無しさん
19/04/30 19:09:43.34 QYNECMA50.net
>>299
str[4]='¥0'
それ以降はゴミ

316:デフォルトの名無しさん
19/04/30 19:30:23.83 CZMZfk1L0.net
>>303
str[4]は'\n'じゃね?

317:デフォルトの名無しさん
19/04/30 19:42:59.90 ZdpyyptHa.net
まあ改行入れたら改行ですね

318:デフォルトの名無しさん
19/05/01 00:16:42.15 pM2+GGDK0.net
自作関数内のエラー時にerrnoに値をセットするのってマナー違反ですか?

319:デフォルトの名無しさん
19/05/01 00:27:56.20 Lv+8X8zta.net
入れられるもんなら入れてみろ

320:デフォルトの名無しさん
19/05/01 01:10:53.33 dGckAS/m0.net
信長 入れられないなら殺してしまえそのプロセス
秀吉 入れられるまで仕様変更を待とう
家康 俺が直してやる!

321:306
19/05/01 02:42:38.43 LlVhs4fx0.net
URLリンク(ideone.com)
こういうエラー処理を書きたいんですが

322:デフォルトの名無しさん
19/05/01 13:05:10.79 Vm5gAWGsa.net
>>305
str[4]が改行コードの\nだとして
str[5]は\0にはならないの?

323:デフォルトの名無しさん
19/05/01 14:38:29.13 pGaFGHQ6a.net
>>310
それは明らかになりません。
null文字入れるのは大抵はこっちの役目です。

324:デフォルトの名無しさん
19/05/01 14:41:59.38 yF2N0E1tH.net
>>304
%c は空白文字は入らないのでは?

325:デフォルトの名無しさん
19/05/01 15:19:37.49 pGaFGHQ6a.net
%cは文字は全部入る。
受け付ける文字をはっきりさせたいなら[]使うのがよい。

326:デフォルトの名無しさん
19/05/02 12:01:07.73 oq2ExZVd0.net
printf()のペアっぽいからという理由で
scanf()を使わせる初心者本をこの世から駆逐すべき

327:デフォルトの名無しさん
19/05/02 12:52:42.24 Yg4L14jR0.net
使い方を熟知している人が使う分には問題ないが
「良い子はマネをしてはいけません」の典型だな

328:デフォルトの名無しさん
19/05/02 13:24:17.15 +EePt9KB0.net
初心者はただ値が入力できりゃ楽しいんじゃね
ついでにscanfはかんたんに間違いを引き起こすことが出来るから脆弱性の説明にも使える
このご時世、かんたんに間違いを体験させること自体が難しくなってる
セキュリティが高くなると間違えさせる行動へのコストもまた高くなる

329:デフォルトの名無しさん
19/05/02 15:41:08.09 jQNzLmJja.net
昔のマイコン的なものだと暴走したりしてなお良い。
core dump してるようじゃまだまだ安全過ぎる。

330:デフォルトの名無しさん
19/05/02 19:38:22.59 lQcGaGZC0.net
たしかにscanfが危険なものだと知った時にどうやってfgetsに置き換えるか考えたの思い出した

331:デフォルトの名無しさん
19/05/02 21:18:22.90 H376nx5x0.net
>>287
その数%のアセンブラの部分を、おまえさんは「OS」と呼ぶのか?

332:デフォルトの名無しさん
19/05/02 21:20:29.21 H376nx5x0.net
>>314
scanfの仕様をロクに調べもせず自分の頭で考えもせず
どっかの受け売りを初心者に吹聴する無能老害こそ
この世から駆逐すべきだろうが

333:デフォルトの名無しさん
19/05/02 21:21:11.50 TaSBDpemM.net
>>319
ヨコからスマンけど
そゅ意味じゃないのが
理解できないほどの馬鹿は
ここにくるべきではない

334:デフォルトの名無しさん
19/05/02 21:22:02.02 H376nx5x0.net
>>315
「よい子は真似をしてはいけません」と言われる芸当をやっているプロになろうって人には当てはまらない

335:デフォルトの名無しさん
19/05/02 21:24:27.49 H376nx5x0.net
>>321
おまえさんこそ>>283からの話の流れを読んでるか?
人を馬鹿呼ばわりした自分の発言に責任を持てよ

336:デフォルトの名無しさん
19/05/02 21:25:23.96 H376nx5x0.net
匿名掲示板だから逃げたければ逃げられるが
おまえさんの人間性の問題が変わるわけではない

337:デフォルトの名無しさん
19/05/02 21:34:15.84 TaSBDpemM.net
馬鹿丸だし(笑)
論文ゼロの院生くずれ馬鹿ニート
という雰囲気プンプンだな(爆)

338:デフォルトの名無しさん
19/05/02 21:53:25.96 TlCaXbcx0.net
院生とかめっちゃ高評価じゃんw
俺には大学にコロコロコミックを持ってきて、全ての人間が敵に見えて毎日発狂してた同級生の江○君と被ってしまう。
頭はすこぶる良いんだけど、頭が弱い残念なアイツの雰囲気がプンプン

339:デフォルトの名無しさん
19/05/02 21:55:19.32 H376nx5x0.net
学歴コンプレックスまる出しだな
頭隠して尻隠さずw

340:デフォルトの名無しさん
19/05/02 22:04:26.88 TaSBDpemM.net
院生の意味が理解できない馬鹿(笑)

341:デフォルトの名無しさん
19/05/02 22:05:27.60 TaSBDpemM.net
学歴など無意味
馬鹿は馬鹿(笑)

342:デフォルトの名無しさん
19/05/02 22:06:18.25 BLoepDOP0.net
>>319
何を言いたいのか意味不明w

343:デフォルトの名無しさん
19/05/02 22:22:28.19 H376nx5x0.net
効いてる効いてるw
突然論文ゼロとか言い出すカモは扱いやすすぎ

344:デフォルトの名無しさん
19/05/03 00:28:15.71 ykdjIw3IM.net
#include <stdio.h>
int main(void){
remove("スレリンク(tech板)");
return 0;
}

345:デフォルトの名無しさん
19/05/03 03:22:53.97 l9gwftmb0.net
文字列を消しても実態が消えないのでは

346:デフォルトの名無しさん
19/05/03 07:52:51.95 EnpL9vkxM.net
Cできるけどアセンブラできない、
ってのはCもできないってことだ。

347:デフォルトの名無しさん
19/05/03 09:31:51.08 Adh7HeMA0.net
アセンブラからCに行ったらアセンブラでやってたアルゴリズムがCで表現できなく、非常にもどかしくて・・・

348:
19/05/03 10:16:06.44 ZD3cPA9Q0.net
>>335
それは初耳、いや、どういうのに手こずったのか参考に教えていただけませんか?

349:デフォルトの名無しさん
19/05/03 17:51:44.54 VHrwonhY0.net
出来る出来ないっていう話なら、基本Cできるんじゃないかな。
CPU固有のブルック転送命令とかそんなのを除いて。
(それすら別にできるけどね。)
1命令でできてたことがめんどくさくなるってものならあるかも。

350:デフォルトの名無しさん
19/05/03 18:09:15.33 Mu7G7jjV0.net
アセンブラで作るにしてもでもアルゴリズムで実装しているならCでも出来るんじゃないの?

351:デフォルトの名無しさん
19/05/03 18:10:41.96 3HjiUXGl0.net
プラットフォーム依存の問題は言語じゃなくてコンパイラより下が解決するわけでさ、それをできると言っていいならなんでもできると思うよ。

352:
19/05/03 18:51:30.00 ZD3cPA9Q0.net
>>335
一つ思い出しました、キャリー


353:フラグを活用するアルゴリズムは、そのままでは C でかけずに大変ですね ローテートとかシフトとか



354:デフォルトの名無しさん
19/05/03 19:20:32.29 Qo5d3PXm0.net
>335
キャリーフラグが無くてオーバーフロー/アンダーフロー判定が面倒だとか、
ビットシフトはあってもローテーションが無いとか。
ジャンプ命令使うとパイプラインが初期化されるからなるべく使うなと聞いたのに
逆汗見たらジャンプしまくってるじゃないかとか。
8/16bit時代のアセンブラは1バイト、1ステート削って処理速度稼いでたんで
上記の差を補う処理が無駄に思えて・・・。
かといってインラインアセンブラ使うのはなんか違うと(インライン使うと最適化されないとも聞いてたし)。
それならアセンブラでCから呼べる関数書いた方がすっきりするとか。
20世紀時代のことだ。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch