C言語なら俺に聞け! Part 135at TECH
C言語なら俺に聞け! Part 135 - 暇つぶし2ch1:デフォルトの名無しさん
16/05/10 13:13:49.45 3fG5/CbC.net
Language C FAQ
URLリンク(www.kouno.jp)
K&R
プログラミング言語C 第2版 ANSI規格準拠
URLリンク(www.amazon.co.jp)
C99
JIS X 3010:2003 プログラム言語C
URLリンク(kikakurui.com)
C11
ISO/IEC 9899:2011 - Information technology -- Programming languages -- C
URLリンク(www.iso.org)
価格:198 CHF
----
C言語なら俺に聞け
スレリンク(tech板)
2014/08/22(金)
【初心者お断り】ガチ規格準拠C専用スレ Part133
スレリンク(tech板)
2008/01/24(木)
【ISO/ANSI/JIS】 C言語なら俺に聞け! Part 132
スレリンク(tech板)
2007/09/20(木)

2:デフォルトの名無しさん
16/05/10 13:14:58.31 3fG5/CbC.net
C言語なら俺に聞け!
URLリンク(www.geocities.jp)

3:デフォルトの名無しさん
16/05/11 12:26:34.34 gJ/xQTr/.net
printf("乙\n");

4:デフォルトの名無しさん
16/05/11 13:50:20.31 pvGtAJM0.net
1.
char *s = null;
if (null == s) {
s = "";
}
2.
char *s = null;
if (null == s) s = "";
前者は空文字がカッコ内でしか有効じゃないと思うんだけど、後者は有効なのかやっぱり有効じゃないか誰か教えて!

5:デフォルトの名無しさん
16/05/11 13:51:53.59 7/pimAAr.net
前者も間違ってるけど、、、スコープの質問?

6:デフォルトの名無しさん
16/05/11 13:53:34.77 7/pimAAr.net
リテラルとオート変数は別物

7:デフォルトの名無しさん
16/05/11 13:55:09.91 QMXZ8hSl.net
リテラル文字列 "" の生命期間はグローバル変数と同じくランタイム間で readonly

じゃなかったっけ?

8:デフォルトの名無しさん
16/05/11 14:02:53.36 71GbDeiF.net
>>4
nullなる変数なり定数なりが定義済みであると仮定すると、
どっちも、空文字列へのポインタをsに代入してる。
んでもって、リテラル文字列の実体は無限エクステント(だったと思う)。
つまり、例えば
char* test() {
char* buffer = "foo";
return buffer;
}
とした場合に於いても、testの戻り値は使うことが出来る。
一見バグってるように見えるけどね。
一方で、配列に対して代入により初期化した場合はそのエクステントは配列のエクステントと等しくなるから
char* test() {
char buffer[] = "foo";
return buffer;
}
とした場合には、testの戻り値は信用出来ない。

9:デフォルトの名無しさん
16/05/11 14:04:21.81 71GbDeiF.net
>>7
実際にreadonlyかどうかは環境に依らなかったっけ?

10:デフォルトの名無しさん
16/05/11 14:12:17.48 QMXZ8hSl.net
>>9
憶測だけでちゃんと調べてないけど、C90あたりで
リテラルに対する書き込みは環境依存から鼻から悪魔だったような気がするけど
C++とごっちゃになってるのかもしれない

11:デフォルトの名無しさん
16/05/11 14:21:00.63 1vLHQDGP.net
いっそ、「自分自身のバグを直しながら強くなるC言語」にしてくれ

12:デフォルトの名無しさん
16/05/11 15:14:35.80 pvGtAJM0.net
>>7-8
生命期間を知りたかったんです
わかりやすい説明ありがとうございます
理解できました ノシ

13:デフォルトの名無しさん
16/05/11 16:02:45.59 KPNpqwlb.net
>>12
生命期間って要するにスコープだろ

14:デフォルトの名無しさん
16/05/11 16:16:50.99 ZuUCgQaq.net
>>13
scopeは見た目の範囲
lifetimeは期間

15:デフォルトの名無しさん
16/05/11 16:27:30.53 71GbDeiF.net
>>14
そのscopeの定義だとダイナミックスコープもポインタスコープも説明できない。
より正確には、
scopeは変数名に束縛された値が参照できる範囲
extent/lifetimeは値の生存期間
じゃない?

16:デフォルトの名無しさん
16/05/11 17:01:58.66 eH1yb+5y.net
ポインタスコープって何?

17:デフォルトの名無しさん
16/05/11 17:50:43.10 71GbDeiF.net
>>16
構造体へのポインタを使ったメンバアクセスに関するスコーピングなんかがポインタスコープって呼ばれてる。
int foo(struct Position* p) {
p->x = 10; /* xのスコープはレキシカルでもダイナミックでも無い */
}
URLリンク(ustcscgy.github.io)
Although the scoping methods provided by C-like languages are limited,
C programmers need to program across different environments too.
To do so, they often use an imprecisely defined scoping known as pointer scope.
Pointer scope is famous for its difficulty to debug, numerous security risks,
and, somewhat artificially, its efficiency.

18:デフォルトの名無しさん
16/05/11 18:06:33.12 eH1yb+5y.net
全然known asじゃないんですが、Lisp用語かなにかですか?

19:デフォルトの名無しさん
16/05/11 18:22:01.58 eH1yb+5y.net
ポインタスコープの説明は
『LET OVER LAMBDA Edition 1.0』
URLリンク(www.amazon.co.jp)
の6.4章か・・・。

20:デフォルトの名無しさん
16/05/12 03:26:25.03 +NvLv0pI.net
インターネットが無い頃の人たちって
どうやってC言語の勉強してたんですか?
やっぱ本だけ?

21:デフォルトの名無しさん
16/05/12 07:08:25.33 /eB9RrGz.net
インターネットの前にパソコン通信があった。パソコン通信は、有料の会員制で、書込みはIDがついた。荒らしは、IDによって追放された

22:デフォルトの名無しさん
16/05/12 08:06:15.93 Ac+Wesiy.net
それでもやっぱ書籍が主流で、
アホなこと書いてる本のせいで大勢が誤解を持ったままってことが往々にしてあった

23:デフォルトの名無しさん
16/05/12 11:59:10.80 ehHa3Ia2.net
言語自体は「はじめてのC」って本である程度覚えて、「K&R」。
初めて使うコンパイラなんかの場合、ライブラリのマニュアルも含め、精読してたな。
アルゴリズムとかは師匠のコード読んだり、教わったりしていた。
OSもない様な環境でのばりばりのハードウェア制御系だったから、一子相伝って感じだったな。
その後 OS 本体の仕事もやったりしたんで、非常によい経験になったと思う。

24:デフォルトの名無しさん
16/05/12 19:27:28.09 H+I8h1G8.net
>>22
アホなことを書いてる Web のせいで大勢が誤解を持ったままってことの方が多いと思うが...

25:デフォルトの名無しさん
16/05/12 19:36:37.93 tDNaM0bc.net
【ワカヤマン】C言語プログラミング能力認定試験 [無断転載禁止](c)2ch.net
スレリンク(lic板)

26:デフォルトの名無しさん
16/05/12 20:47:27.03 USYeYoDr.net
>>24
>>20

27:デフォルトの名無しさん
16/05/12 21:10:14.58 QSCTd5b6.net
当時は今と違ってパッケージについてくるマニュアル
が印刷されていてとんでもボリューム、殴って殺せる重量感があった
はじめてのCは有害図書

28:デフォルトの名無しさん
16/05/12 21:31:27.03 Fooytq8l.net
恵比寿低迷さんが
亡くなったそうです。
ナムー


29:デフォルトの名無しさん
16/05/12 21:35:47.26 6mJeQbGO.net
>>26
>>24 は今の話をしてるんだろ

30:デフォルトの名無しさん
16/05/12 23:08:27.58 USYeYoDr.net
>>29
昔どうしてたの?って話に今の話をするのがアホってことだろ言わせんな恥ずかしい

31:デフォルトの名無しさん
16/05/13 04:44:40.44 Weatj0gE.net
charやintなどのプリミティブ型って内部でメモリを確保されてるんですか?
もし大量ににプリミティブ型を使えばメモリが足りなくなりますか?

32:デフォルトの名無しさん
16/05/13 05:06:47.80 +5h85NoM.net
一つ知れば十個ぐらい分からないことが増える
奥深いにも程があるだろc言語

33:デフォルトの名無しさん
16/05/13 06:08:43.23 OQGFJHwa.net
>>30
お前は一旦昔の話をしだしたらずっと昔の話しかしないのかよ w

34:デフォルトの名無しさん
16/05/13 08:17:29.36 ogYSC2Nf.net
その擁護には無理がある
話の流れ的にはあれはただのアスペ

35:デフォルトの名無しさん
16/05/13 08:37:00.20 Tinmnd2+.net
>>31
ほんの数個なら最適化してレジスタに割り当てちゃうけど
それ以上ならメモリ消費するよ
それを大量に使う現実的でないプログラム書けば不足するだろうねぇ

36:デフォルトの名無しさん
16/05/13 09:27:04.66 Weatj0gE.net
>>35
やっぱそうか・・・
それはプログラムが終了するまで解放されないわけですよね?
何週間も回し続けるプログラムならプリミティブも意図的にnew/deleteしなければならないのかな

37:デフォルトの名無しさん
16/05/13 10:45:14.80 2XyS3TKW.net
>>36
ここCスレだよ。newとかdeleteとかないよ
それはともかく、自動変数(関数ローカル変数)ならスタック上に確保されるので
関数から抜ければ解放される

38:デフォルトの名無しさん
16/05/13 12:31:35.77 LotgazQY.net
javaからきたの?
基礎的なこと分かってなさそうだから勉強した方がいいよ。

39:デフォルトの名無しさん
16/05/13 12:37:29.49 vpMU1txe.net
>>28
URLリンク(twitter.com)

40:デフォルトの名無しさん
16/05/13 12:42:28.01 ZUyuraMo.net
>>36
ヒープから確保するのか、スタックから確保するのかを考えれる程度に
よくあるコンパイラの実装について学ぶと良いよ。
んでもってプログラムが終了するまで開放されないってのは普通はヒープでの話になる。
mallocしてfreeしなければその内メモリが足りなくなるだろうね。
# グローバル変数もある意味では開放されないけどそれはまた別物として考える

41:デフォルトの名無しさん
16/05/13 12:55:47.95 3RLOovra.net
>>34
ID:USYeYoDr もお前も充分アスペ

42:デフォルトの名無しさん
16/05/13 14:03:47.48 K5STjXBE.net
助けて欲しいのですが
今大量にmalloc&freeをするアプリケーションをlinuxで作っているのです。
そしたらvirtual memoryの使用量が数~数十GBになっているのです。
しかし実際に使ってる物理メモリは数kbなのです。
あとずっと(1時間とか)そのプログラムを走らせてるとswap領域がグリグリ増えていきます。そして重くなります。
何が気になるって普通のメモリ部分じゃなくてスワップ部分がグリグリ増えていくのです。
これって単純にフリーのし忘れによっておこるのでせうか?
それとも何か内部的仕組みに対して私が悪いことをしてしまっているのでせうか?
このアプリケーション一度に500個くらいのスレッドを動かすものなのですがもしかしてそれに理由があるのでせうか?
virtual memoryの値がグリグリ増えるのは別に構わないのですがswap領域の使用量が増えるのには納得いきませぬ。
ちなみに再帰的構造体を大量に使うのでmalloc以外の方法がありません。
ご教授お願いいたしまし候。

43:デフォルトの名無しさん
16/05/13 14:44:22.05 +7L1Kkkt.net
リークか何かを疑うのは当然として、
セクタ単位とバイト単位を取り違えているとかいうしょうもない問題もあると見た

44:デフォルトの名無しさん
16/05/13 14:54:13.63 +7L1Kkkt.net
>>36
確保・解放はヒープ領域を使う場合の話だけど
C/C++ では他の言語と比べてヒープ領域の利用を避ける傾向がある
可変長データ(テキスト、ファイル系データ、その他複合データ構造)以外は
スタックか静的領域に置くことをまず考える
ただし一応スタックにも上限はあるから大きめのオブジェクト(1kBとか)は避ける

45:デフォルトの名無しさん
16/05/13 14:58:10.72 ZUyuraMo.net
使ってるライブラリはGlibcだよね?
500スレッド程度で数GBってのはmallocの普通の使い方じゃ起こらないと思うんだがなぁ。
unistd.hのgetpagesize()関数が非常に大きな値を返したりしてない?
俺の環境だと4096になったけど。
あと、malloc()の引数にどのくらいの値を使ってる?

46:デフォルトの名無しさん
16/05/13 15:01:58.10 Uh2qXKp7.net
>>44
そんな傾向は言語にはねえよ
組み込み系はそうなるだろうけど言語とは独立

47:デフォルトの名無しさん
16/05/13 15:35:57.01 cduHyZK8.net
>>45
URLリンク(i.imgur.com)
問題のexecはstudentmulです
一度にmallocしてるサイズはsizeof
struct game_info{
MYSQL *sql;
pthread_t thread;
long gameid;
char isDone;
};

struct id_chain{
long id;
struct idchain *left;
struct idchain *right;
};
なのでだいたい16~24byteくらいかなぁとおもいまふ
小さいmallocを頻繁にするのは良くないっていうのをmallocのソース書いた人が言ってるのですがそれはCPU使用量の話なんですよ
なんどもmalloc&freeするんじゃなくて使い終わったものを再利用するようなコードにしたほうがいいですかね?

48:デフォルトの名無しさん
16/05/13 15:38:00.16 cduHyZK8.net
ちなみにgetpagesizeは4096でした

49:デフォルトの名無しさん
16/05/13 15:53:20.89 ZUyuraMo.net
>>47
小さいmallocを頻繁にするのが良くないのはK&Rのmallocの話だな。
glibcのmallocは小さいmalloc/freeを頻繁にやってもそんなに速度は落ちないように組まれてた筈。
にしても1時間半で46G消費は何かおかしいな。
単純計算で毎秒8MB程消えてる話になる。
ループの中にmallocがあって、それをループ中にfreeし忘れてるとか
そういうミスは無い?
或いはinitしたのにendしてないとか、connectしたのにcloseしてないとかMySQL周りでミスは無い?

50:デフォルトの名無しさん
16/05/13 15:55:09.76 Uh2qXKp7.net
>>47
ちゃんとfreeしてないんじゃないの?
あるいはしてるつもりで無関係のアドレスfreeしてたり。

51:デフォルトの名無しさん
16/05/13 15:55:43.17 0l3VxkcG.net
一応szも見てみたい
$ ps -o pmem,rss,sz,vsz,cmd -C studentmul

52:デフォルトの名無しさん
16/05/13 16:32:48.30 wbr+ZJxV.net
配列や構造体がDOS時代(16Bit環境)は32Kバイト、Win95/98の時は1Mバイト超えそうな時にmalloc使ってた。

53:デフォルトの名無しさん
16/05/13 16:44:30.82 cduHyZK8.net
URLリンク(i.imgur.com)
psコマンドの結果はこうなりました

URLリンク(i.imgur.com)
valgrindってツールでチェックしてみたらこんな出力がされたのですが関係ありますかねぇ?
pthread_createの中で使われたソースが解放されてないと出ているのですが。
ちなみにheadmanagerって関数の中のfree忘れがあるっていう出力は実際にはメモリリークじゃないので気にしないでくだしあ

54:デフォルトの名無しさん
16/05/13 17:08:04.12 cduHyZK8.net
あっ
申し訳ない
言っていなかったがこのアプリケーション500個くらいのスレッドが同時進行しているというだけであってスレッドは20秒くらいで死んでまた生まれるっていう感じの内容
これって関係ある?

55:デフォルトの名無しさん
16/05/13 17:10:59.22 ZUyuraMo.net
>>53
うーん
スワップ領域がモリモリ使われるのと直接関係ない気もするが・・・・・・
もしかしてスレッド毎にMySQLをinitしてたりする?
あるいは
URLリンク(gist.github.com)
か何処かでもうちょっと全体を見渡せるようなコード片を上げれる?

56:デフォルトの名無しさん
16/05/13 17:15:40.84 ZUyuraMo.net
>>54
てことはスレッドあたり300~400KB程リークしてる、かな
作られたスレッドでは何してんの?

57:デフォルトの名無しさん
16/05/13 17:16:18.43 cduHyZK8.net
>>55
...
本当に申し訳ない。
よく見たらスレッドごとにsqlのオブジェクト作ってる。
もしかしてこれが原因?
そういうもんなんだと思ってた

58:デフォルトの名無しさん
16/05/13 17:22:46.91 ZUyuraMo.net
>>57
スレッド毎に作ったなら、スレッド毎に消さなきゃ駄目。消してる?
スレッド毎に作ること自体はまぁ(効率は悪いけど)問題ない

59:デフォルトの名無しさん
16/05/13 17:27:46.77 0l3VxkcG.net
>>53の結果からVSZの4分の1くらいは実際に使用しているメモリだから
そのうちswapに追い出さなきゃならなくなるのは当然だな

60:デフォルトの名無しさん
16/05/13 17:28:19.19 cduHyZK8.net
オブジェクト消してはいるのは確かだなあvalgrindがもし消していなかったら検知する筈だし
ちなみに作られたスレッドはオセロやりながらそのゲームの記録をDBに書いてるだけ
そのスレッド達はmalloc使ってない

61:デフォルトの名無しさん
16/05/13 17:33:39.32 ZUyuraMo.net
>>60
closeもendも呼んでるなら違うのかねぇ。
MySQLのバージョンはいくつ?
あと、そのスレッドのコードはうp出来ない感じ?

62:デフォルトの名無しさん
16/05/13 23:22:11.87 WY8PSQUs.net
Cで高速ファイル検索プログラム作ってるんだけど、何でOSの方は
インデックス作った後再構築してないのに新しいファイル見つけるの
速いんだろう?インデックス作っても新しいファイルを適当な場所に
作ったら結局最初から探すのと一緒だからそのファイルに限っていえば
時間かかると思うんだけどOSのほうはすぐ見つけてくれる。
ここらへんが自分の腕じゃプログラミングで実装できないんですが…
何故だかわかります?

63:デフォルトの名無しさん
16/05/13 23:23:19.02 WY8PSQUs.net
すいません…
一応Cで作ってるのでここで質問さえてもらいました。

64:デフォルトの名無しさん
16/05/14 00:25:22.08 USUvWshC.net
>>62-63
インデックスサービスってので常時監視してるからじゃないかな

65:デフォルトの名無しさん
16/05/14 09:00:34.19 fmllMf1b.net
>>64
なるほど…常に差分を発見してるんですね。
でも差分発見ってインデックスファイルをもう一度精査するとかじゃなくて
容量の増減とかで判別してるような…
そう考えたら、同じフォルダで
容量12Kのファイルが消えて同じ容量12Kのファイルが新しく作成された場合
新しいファイル見つけるのってえらく時間がかかりそうな気がしますね…

66:デフォルトの名無しさん
16/05/14 13:36:09.76 f3s9/uBz.net
推測通りならそんな速いわけないだろ。
そもそもアプリケーションとOSで同じことしてると思うなよ。

67:デフォルトの名無しさん
16/05/14 14:42:49.24 5Fb9fh+q.net
* インデックスの構築
git init && git add && git commit
* インデックスの再構築
rm .init && git init && git add && git commit
* インデックスサービス
inotify git add filename
* インデックス化
git commit

68:デフォルトの名無しさん
16/05/14 17:41:16.84 fmllMf1b.net
OSのインデックスでファイルの中身まで情報取得してるのって
txtファイルで閲覧可能なファイル限定なんかな?どうなんだろう

69:デフォルトの名無しさん
16/05/14 18:05:23.06 fLeelvLJ.net
iFilterとかいうので機能追加できるらしい

70:デフォルトの名無しさん
16/05/14 18:11:04.94 SbPIcar1.net
officeのファイルなんかもIndexとってるから違うだろうな
スレ違いのような気はする

71:デフォルトの名無しさん
16/05/19 21:08:04.94 TxoTuPPd.net
本や勉強サイトを見るとポインタを宣言する際に
int *pと
int* pと書いてる場合があるのですが
どちらを使うべきなのですか?

72:デフォルトの名無しさん
16/05/19 21:28:41.61 dUK54jFV.net
どっちでもいいけど後者の場合
int* a,b;
と書くとbはポインタにならない
俺は一番最初に読んだ入門書が前者だったからずっとそっち使ってるけど世間では後者が多い気がする

73:デフォルトの名無しさん
16/05/19 21:40:00.95 L4Xn6zhh.net
C言語って20年前(windows95が出てすぐのころ)は大学生でも勉強が困難だったって本当なんでしょうか?
原因としては教材の確保、C言語を実行するための環境など。
そういえば20年前30年前なんてほとんど参考書無かったと思うし、この時代は
どうやってC言語勉強してたんですか?

74:デフォルトの名無しさん
16/05/19 23:00:03.54 tYxkNBp0.net
40代からじゃ無理かい?

75:デフォルトの名無しさん
16/05/19 23:00:38.25 JetDRGhU.net
そりゃもうwarez様々よ
俺はBoland C++ 3.0を学割で買ったな
今はgccやらLSI-C86試食版やらBoland C++ compilerやらMicrosoft C/C++ Cmpilerやら使えるしいい時代になったよ

76:デフォルトの名無しさん
16/05/19 23:18:14.36 lI3UOE+c.net
20数年前大学生だったけど、
「インターネット下さい!」ってネタのが出る前の時代で
パソ通でもやって情報集めないとプログラム言語の書籍なんて
本屋に置いてあるのが全てで良書、悪書の選別が無理だった。
Cコンパイラもフリーの物が存在すること自体想像もしてなかったので
有名所のTC++あたりを買うか、学校のPCのから盗ってくるか
PCサークルの関係からxxxしてくるか。
それでもちょうどVectorからCDxxx選シリーズが出始めた頃だったのが救いだった。

77:デフォルトの名無しさん
16/05/19 23:29:58.71 73EK6oIW.net
コンパイラが数万すると聞いて
アホかー と思いながらBASICやってたな
初歩的な入門書は普通にあった
ライブラリやツールは
パソ通経由かもしくはベクターがCDにまとめて売ってる奴がありがたかった
LSI-C86試食版でCをおぼえた

78:デフォルトの名無しさん
16/05/20 00:14:50.94 oSwuXQlt.net
Trubo CやWatcom Cなどがありましたね。
Watcom C/C++は使いやすかった
いまは無料で使えるみたいですね。

79:デフォルトの名無しさん
16/05/20 02:27:39.41 WCEBsdoQ.net
てことは今の時代プログラミングできるって強みにならないってことかな?
大学は情報学科なんだけど怖くなってきた。
今の小学生って二人に一人はプログラミングができるって本当なんだろうか?

80:デフォルトの名無しさん
16/05/20 02:32:09.04 WCEBsdoQ.net
この時代の技術的な強みって何だろう…
皆なんでもできるからすごいワクワクしなくなってきた

81:デフォルトの名無しさん
16/05/20 02:35:11.67 WCEBsdoQ.net
プログラマって歯科医なみに飽和してるんでしょ?
なんかわくわくしない

82:デフォルトの名無しさん
16/05/20 02:35:51.62 WCEBsdoQ.net
この時代俺だけ知っていて俺だけが持ってる技術みたいなのはないのかな
もちろん旋盤みたいに技能職じゃなくて技術職でね

83:デフォルトの名無しさん
16/05/20 02:37:01.92 WCEBsdoQ.net
とりあえず20年前の事情がきけてよかったですw
>>75
割れ??
もし割れならネット公開なんてしてもサイバーポリスもいなかった
だろうし氾濫してたんじゃないですか?

84:デフォルトの名無しさん
16/05/20 04:42:16.28 6E3fbfbw.net
プログラミングで大学の情報学科とか意味ない
文系学科出身者でもプログラミングなんかできる
ただし、詳細な理論まで理解するには専門知識が必要
例えば、データの暗号化とかを本当に理解しようとすれば、モジュロ演算などの整数論の
深い理解と応用力がなければ暗号化/解読の新たなコードを作ることはできない
(ライブラリ利用するだけなら誰でもできる)
技術職とはそういうこと、どちらかといえば単なるプログラマは技能職に近い

85:デフォルトの名無しさん
16/05/20 07:44:52.19 4VXo3Ti0.net
>>83
CDの転送するのにどれだけの時間がかかったと思ってるんだよ
そしてそれを上げたままにできるサーバがどれだけあったと思ってるんだよ

86:デフォルトの名無しさん
16/05/20 07:50:52.02 Nm0E3DoF.net
100M落とすのに一晩。テレホ万歳!!

87:デフォルトの名無しさん
16/05/20 08:16:56.21 fK4sx7tu.net
>>85
オフ会で FD 交換とかやってたな

88:デフォルトの名無しさん
16/05/20 08:29:08.86 5cANZ/vE.net
>>87
あとは共同購入とかな
どっちにしてもオフラインで会えること前提だったよな

89:デフォルトの名無しさん
16/05/20 09:34:33.72 Nm0E3DoF.net
MOドライブ(5万円)もCD-Rドライブ(10万円)もこの頃買ったな。

90:デフォルトの名無しさん
16/05/20 10:00:12.37 WCEBsdoQ.net
ちょっとまって
UNIXってのはフリーOSだから
C言語のコンパイラもフリーだったんじゃ?
有料だったんですか?

91:デフォルトの名無しさん
16/05/20 10:09:53.31 WCEBsdoQ.net
例えばぼくUNIXライクなubuntsuっていうソフトインストールしたんですけど
普通にCコンパイラ標準でありましたよ?
UNIXは95がでた当時からあっただろうしインストしたらCコンパイラもついてきた
のでは?

92:デフォルトの名無しさん
16/05/20 11:46:43.26 jCV1qcCq.net
そうだね、LinuxもGNU C Compilerも1995年には既にあったね。
でもメジャーなコンパイラはだいたい有料だったよ。
LSIとかBorlandとか。

93:デフォルトの名無しさん
16/05/20 12:38:02.55 EWS23G7J.net
20年前の振り返り、まだまだ続くよ!

94:デフォルトの名無しさん
16/05/20 12:43:08.23 Nm0E3DoF.net
DOSで使うソフト開発の為にCが使いたいのに
Cの為にUNIX系にするんじゃねぇ…。

95:デフォルトの名無しさん
16/05/20 12:56:51.00 fK4sx7tu.net
>>90
> UNIXってのはフリーOSだから
その UNIX とやらが何を指してるのかによるけど初めからフリーだった訳じゃない

96:デフォルトの名無しさん
16/05/20 13:23:25.79 jCV1qcCq.net
> 例えばぼくUNIXライクなubuntsuっていうソフトインストールしたんですけど
そのubuntsuとやらがUbuntuを指すものとしても、Unixとはコードの系統が違うよ。
Multicsという革新的なOSがあってだな

97:デフォルトの名無しさん
16/05/20 13:24:10.61 H0RYJTua.net
20年前だとPC98+FreeBSDがそこそこ支持されてた
だがネットもない時代に
日本語も不自由な環境やらコンパイラやらわざわざ勉強するとか苦行すぎる
それはフリーじゃなくて嫌儲や

98:デフォルトの名無しさん
16/05/20 13:39:22.34 jCV1qcCq.net
>>79-82
Javaしか読み書きできないようなクズプログラマは腐るほど情報工学系大学から産出されてるらしいけどね。
独学でプログラミング学びましたってレベルですら貴重で
一つでも良いから言語を相当深く知ってる、とか
浅くしか知らなくてもverilogからlispまで何でも触れる、とか
あるいは凡そネットワーク関連で括られる技術なら何でも知ってる、とか
そういった何かに特化したプログラマは枯渇してるから
悲観することは何もないよ。

99:デフォルトの名無しさん
16/05/20 14:03:26.74 DpcPfMoX.net
int i;
int *buf;
buf = NULL;
buf = (int *)malloc(100);
for(i = 0;i < 100;i++){
buf[i] = i;
 }
↑これが動いちゃって凄く怖くないですか?

100:デフォルトの名無しさん
16/05/20 14:08:28.87 4wIX/qhD.net
それを動いちゃうって言う人って・・・

101:デフォルトの名無しさん
16/05/20 14:13:55.00 jCV1qcCq.net
>>99
それが怖いようなら、きっとC言語は向いてないんだよ
// 特定の環境では意味した通りに動くよ!
uint16_t* buf = (uint16_t*)0xb8000;
buf[0] = 0x0730;

102:デフォルトの名無しさん
16/05/20 14:27:51.70 4wIX/qhD.net
>>99
#include <stdio.h>
#include <string.h>
#include <malloc.h>
int main()
{
int i;
int *buf;
char *str; //
buf = NULL;
buf = (int *)malloc(100);
str = (char *)malloc(10); //
strcpy(str, "ABCDEFGHI"); //
printf("1:%s¥n", str); //
for(i = 0;i < 100;i++){
buf[i] = i;
}
printf("2:%s¥n", str); //
return 0;
}
実行結果
1:ABCDEFGHI
2:

103:デフォルトの名無しさん
16/05/20 14:40:03.44 jCV1qcCq.net
buf = (int*)malloc(sizeof(int)*100);

104:デフォルトの名無しさん
16/05/20 15:41:46.85 0SZSpLq/.net
>>99
どの辺りが怖いん?

105:デフォルトの名無しさん
16/05/20 17:24:28.41 I2VFTkQS.net
>>97
その頃 Linux を使い始めて、「初めて良い環境を手に入れた」と思ったよ。日本語のことも含めてね。
多分、FreeBSD も大差無かったんじゃないかな。まあ、何を良いと思うかは人それぞれだけどね。

106:デフォルトの名無しさん
16/05/20 17:46:40.38 6uv30l7L.net
例えcのコンパイラがなかったとしてもunixコマンド自体が構造化プログラムの仕様だからc言語の勉強の代わりになったんでは?
むしろ正規表現の勉強ならスクリプトのほうが捗ると思うんだが

107:デフォルトの名無しさん
16/05/20 17:49:04.24 6uv30l7L.net
ちなみにcygwinは20年前から無料だったのかな?

108:デフォルトの名無しさん
16/05/20 18:03:35.32 tTx5oGeP.net
>>106
> 例えcのコンパイラがなかったとしてもunixコマンド自体が構造化プログラムの仕様だからc言語の勉強の代わりになったんでは?
なるかアホ

109:デフォルトの名無しさん
16/05/20 18:26:15.49 Nm0E3DoF.net
大学のプログラミング言語の講座って言語だけ教えてOSについては全く教えなかったよ。
まぁハードとOSの関係についての講座やったらそれだけで1年かかっちゃいそうだけど。

110:デフォルトの名無しさん
16/05/20 18:50:07.63 Nf8lVFp1.net
#include <stdio.h>
int main()
{
printf(

111:デフォルトの名無しさん
16/05/20 19:14:50.29 WCEBsdoQ.net
>>108
いやなるんじゃないですか?
25年前に一太郎しか入ってないガラクタのPC持ってましたが
ターミナルからバブルソートのスクリプトとか作ったりしてましたよ?
まーアルゴリズムが楽しくて仕方ないって感じでしたね。

112:デフォルトの名無しさん
16/05/20 19:38:03.29 6E3fbfbw.net
ID:WCEBsdoQ
>大学は情報学科なんだけど怖くなってきた。
>とりあえず20年前の事情がきけてよかったですw
>25年前に一太郎しか入ってないガラクタのPC持ってましたが
???

113:デフォルトの名無しさん
16/05/20 19:39:20.61 WCEBsdoQ.net
>>112
25年前のPCを10年前に使用してたんですよ。
もう捨てました。機種が何なのかさえ分からないw

114:デフォルトの名無しさん
16/05/20 19:42:44.54 1+9PyLLT.net
unix、linuxについてわけわかんないこと言ってる人が
いるな。本気だったらちょっと検索してunixの歴史でも
見てきた方がいい。釣られてんのかもしれんが。

115:デフォルトの名無しさん
16/05/20 19:46:12.75 fQtTxPZw.net
アルゴリズムを学ぶことをC言語の勉強とは言わない

116:デフォルトの名無しさん
16/05/20 20:08:01.24 fK4sx7tu.net
>>105
カーネルバージョン 1.x の時に日本語なんて使えたっけ?

117:デフォルトの名無しさん
16/05/20 20:22:10.45 WCEBsdoQ.net
ただ昔のPC欲しいな
捨ててしまった。
ターミナルがある30年前くらいのPCだと
何円くらいするんだろう
レアななものは手に入れたい。

118:デフォルトの名無しさん
16/05/20 20:44:24.15 HJzRWrTX.net
この前9801FA買った‥

119:デフォルトの名無しさん
16/05/20 21:11:03.63 H0RYJTua.net
>>104
ホントは分かっててあえて聞くC使いが怖い
ホントに分からずに聞く馬鹿なC使いが怖い

120:デフォルトの名無しさん
16/05/20 21:40:22.16 WCEBsdoQ.net
>>118
羨ましい…
昔の性能でどれだけのことができるか試したいんだけどなー
シミュレータではなく実物そのものがほしいです

121:デフォルトの名無しさん
16/05/20 22:00:19.87 jE3cpxsv.net
藤原さんが自殺されたそうです。
ナムー


122:デフォルトの名無しさん
16/05/20 22:25:52.77 1ED8UVgC.net
UNIXなんてWindowsどころじゃない高いOSの代表格だったんだぞ
Solaris8が無料になった時なんてサンがとち狂ったかと思ったもんだ

123:デフォルトの名無しさん
16/05/21 00:06:44.35 LPDYglBZ.net
Quadraがどうしたって?

124:デフォルトの名無しさん
16/05/21 08:22:53.67 XW0E+OmD.net
人工知能でプログラマがいなくなったらどうしようとかいう
ベタな考えがうかんだわけだけどこれについてみんなどうおもう?

125:デフォルトの名無しさん
16/05/21 09:25:24.25 4qmWB+Wj.net
スレ違い

126:デフォルトの名無しさん
16/05/21 09:27:26.82 XW0E+OmD.net
>>125
すまそ
フレームワークがちょうど人口知能っぽいなって思って
質問してしまいました。

127:デフォルトの名無しさん
16/05/21 09:34:42.37 K70VO2ZY.net
どうみても板違い

128:デフォルトの名無しさん
16/05/21 09:41:23.13 4qmWB+Wj.net
>>127
せやな
>>126
URLリンク(tamae.2ch.net)

129:デフォルトの名無しさん
16/05/21 10:54:11.25 PCAwvFHK.net
このコンテンツで、「C言語は純粋関数型言語だ」と主張されているんですが、
世界ではある程度合意はあるんでしょうか?
URLリンク(kenokabe-techwriting.blogspot.jp)
>C言語は純粋関数型である。 「純粋関数型」と「参照透明性」国内の自称関数型コミュニティの胡散臭さと海外論調の違い

130:デフォルトの名無しさん
16/05/21 11:24:54.71 4qmWB+Wj.net
ある言語が純粋関数型言語だって言う時に通常指しているのは、
その言語に束縛はあっても代入は無いって事。
Cには代入はあっても束縛はない。

131:デフォルトの名無しさん
16/05/21 11:43:42.14 xEB5od3W.net
そのURLはアンチスレが賑わうほどの問題児 ブラックリストに入れとけ

132:デフォルトの名無しさん
16/05/21 11:57:57.53 jS5LSITS.net
>>116
漢字を表示する手段と、日本語emacsがあればだいたいなんとかなったからな
カーネル0.xのころからXが使えたはずで、X使えりゃまあ表示は問題無いし、
X使わんでも漢字表示できるフレームバッファドライバとか誰か作ってたし、
ネットワークとかシリアル経由でログインするなら
8bitさえ通れば漢字が表示できる端末エミュレータでいけたし

133:デフォルトの名無しさん
16/05/21 12:46:22.01 +EFIShQB.net
>>97
20年前ってインターネットがまだ一般に普及してないのに凄いな

134:デフォルトの名無しさん
16/05/21 13:07:56.86 xEB5od3W.net
パソ通はあったけどググるという文化も仕組みもなくて決定的に別物

135:デフォルトの名無しさん
16/05/21 13:19:59.91 5nz199Fi.net
電気・電子板から誘導されてきました。
OSなしのC言語でlibJPEGを使ってMotionJPEGを再生させようとしています。
開発環境はTrueSTUDIO5.4.2liteでターゲットはSTM32F7です。
Motionの部分は自作できたのですが、JPEGの部分で一部のデータが壊れているようで
「Bogus Huffman table definition」というエラーが出ます。libJPEGはエラーが出るとexit()関数で
外に抜けてしまうのですが、その時当たり前ですがプログラム全体が落ちます。
エラーが出た場合、exitでmain文から抜けるのではなく、特定のアドレスに飛ぶようにしたいのですがいい方法はないでしょうか。
アセンブラはさっぱりなのでできればCでお願いします。

136:デフォルトの名無しさん
16/05/21 13:29:50.98 0WiMYEUz.net
その環境がどんなもんか知らないけど
setjmp + atexit + longjmp

137:デフォルトの名無しさん
16/05/21 13:45:45.15 YA9Dgs9l.net
libjpegでexit呼ばないようにすればいい

138:デフォルトの名無しさん
16/05/21 14:22:01.23 xEB5od3W.net
その libjpeg とやらが素人の書いたオモチャでないなら
たとえば条件コンパイルや初期化フラグで抑制できるんじゃないの?
どうしてもダメならその処理に入る前に破損チェックして
入らないようにするとか

139:135
16/05/21 14:39:41.58 5nz199Fi.net
>>136
ありがとうございます。
こんな便利な関数があったんですね。
まだ解決できてないけど何とかめどが立ちそうです。
>>138
もしかしたらそういうのもあるのかもしれませんが、
見切れてないのでできていません。
破損チェックはCPUの能力的に無理そう(動画にならなくなる)です
ちなみにlibJPEGとはこれのことです
URLリンク(libjpeg.sourceforge.net)

140:デフォルトの名無しさん
16/05/21 15:03:47.21 5gRfId3+.net
>>139
ソースあるんだから自分で改造すりゃいいだけじゃね?

141:デフォルトの名無しさん
16/05/21 15:29:00.89 ygJHdEnh.net
>>139
> ちなみにlibJPEGとはこれのことです
> URLリンク(libjpeg.sourceforge.net)
example.c にまんま書いてあるぞ

142:デフォルトの名無しさん
16/05/21 15:50:06.84 0WiMYEUz.net
libjpeg知らずにソフトエンジニア気取ってるお笑い芸人も来てるのか

143:デフォルトの名無しさん
16/05/21 16:47:10.90 JScxRfd8.net
>>99
確保する領域固定なら、最初から配列で確保すれば良いのに。

144:デフォルトの名無しさん
16/05/21 19:53:24.35 XW0E+OmD.net
破損チェックで思い出したんですが、横槍すいません。
ISOファイルのオリジナルディスクを入れてくださいは
C言語のプログラムに精通していたら解決できるんでしょうか?ww
そういうツールもあるんですが全然効果なくて自分で作ったほうが
いいのかなと思い始めました。

145:デフォルトの名無しさん
16/05/21 20:02:16.63 XW0E+OmD.net
どんな言語も逆アセンブラしたらC言語にたどり着けるんですかね?
そこが気になります。プログラムのクラックなんかも技術的にできるようになりたい。

146:デフォルトの名無しさん
16/05/21 20:43:47.85 p89iMTtM.net
は?

147:デフォルトの名無しさん
16/05/21 21:25:16.13 BejPyWil.net
>>146
いや、「は?」とか言われてもな...

148:デフォルトの名無しさん
16/05/21 22:20:05.59 hnLkmDWv.net
逆アセンブルは機械語をアセンブリ言語になおすことだぞ?
プログラム言語は関係ないだろ

149:デフォルトの名無しさん
16/05/21 22:20:54.87 XRbWBdK9.net
>>145
辿り着くよ

150:デフォルトの名無しさん
16/05/21 22:49:54.12 XW0E+OmD.net
でも何故このニーモニックはjavaでもなくperlでもなくC言語のコード
に対応してる!って断言できるんでしょうね。
それが知りたいんですけどね。それを知るには変換の仕組みを知る必要
があるのでは?つまり
C言語が変換されたらどんなニーモニックになるか。
こういう参考書が殆どないのは歯がゆいですね。

151:デフォルトの名無しさん
16/05/21 22:54:53.84 /Psi2UIt.net
確かにマシン語のテキストは激減したね

152:デフォルトの名無しさん
16/05/21 22:59:31.73 jS5LSITS.net
>>150
コンパイラにアセンブラへ変換するオプションがある
そういうのは自分で変換して確かめようともしない奴には極められない

153:デフォルトの名無しさん
16/05/21 23:04:59.40 XW0E+OmD.net
>>151
それって誰でもC言語に変換できたらコードが解析されて大変になるから
圧力でもかかってるんですかね?大げさですが技術者って技術についてあんまり
おおっぴらにしてほしくないとかあったりするのかな。あまりにも情報が
垂れ流しにされて困ってる人も多いのではと思いますね。

154:デフォルトの名無しさん
16/05/21 23:05:44.09 XW0E+OmD.net
>>152
なんかワクワクしてきました。やってみます。

155:デフォルトの名無しさん
16/05/21 23:11:37.09 /vZ9lW0K.net
機械語のニーモニック一つを見て、元のC言語ソースを復元はいくら何でも無理だろう

156:デフォルトの名無しさん
16/05/21 23:12:46.76 /Psi2UIt.net
>>153
そんな陰謀論めいた話はなくて,単にマシン語で記述するメリットが正直なくなってきたからだよ

157:デフォルトの名無しさん
16/05/21 23:15:02.99 XW0E+OmD.net
>>155
では何故プログラムはクラックされるんですか?
社員が情報を流出してるからですか?
>>156
でも制御系プログラミングとか機械語で書いてるんじゃないでしたっけ?

158:デフォルトの名無しさん
16/05/21 23:28:28.27 /vZ9lW0K.net
>>157
クラックするためには、元のC言語にたどり着く必要が無いから
機械語レベルで解読し、書き換えをすれば良いし、
そのレベルの事ができない人なら、クラックなんてできないよ

159:デフォルトの名無しさん
16/05/21 23:36:53.61 XW0E+OmD.net
>>158
さりげなく解答頂きありがとうございます
機械語だけをいじるってそんな器用な事ができるのかと思ったのと同時に
それしか無理なのかなーと納得もしました

160:デフォルトの名無しさん
16/05/21 23:38:05.09 /Psi2UIt.net
>>157
今はCで書いてるんじゃないかな

161:デフォルトの名無しさん
16/05/22 00:48:41.64 1OYErECz.net
こういうの読んで勉強した方が早い。最初の数章がCやgccツールの復習になっている
Hacking:美しき策謀 第2版―脆弱性攻撃の理論と実際
URLリンク(www.oreilly.co.jp)
0x200 プログラミング
0x210 プログラミングとは何か?
0x230 制御構造
======================================
0x252 x86プロセッサ
0x253 アセンブリ言語
======================================
0x260 基本に立ち返る
0x261 文字列
0x263 ポインタ
======================================
0x267 変数のスコープ
0x270 メモリのセグメント化
0x271 C言語におけるメモリセグメント

162:デフォルトの名無しさん
16/05/22 00:59:24.33 5k8BO1OF.net
将棋ソフトのやねうら王の作者、やねうらおの書いた本、
解析魔法少女美咲ちゃん マジカル・オープン!
OllyDbg を使って、ハッキング

163:デフォルトの名無しさん
16/05/22 05:36:57.29 FgH6NpYj.net
やねうらおも今やそういう肩書で呼ばれる時代か

164:デフォルトの名無しさん
16/05/22 13:25:56.29 vCgoPFhr.net
>>161
すげーワクワクする
こういうの勉強したらクラックとかできるようになるんでしょ

165:デフォルトの名無しさん
16/05/22 13:46:55.18 vKoFE7Z9.net
クラックの本質は高級マンションに張り付いて
住人一人一人を尾行して部屋番号と勤め先を調べたり
電話を盗聴したりするようなもの
魔法みたいに突然出来るものじゃない

166:デフォルトの名無しさん
16/05/22 16:16:45.97 5k8BO1OF.net
ドラクエXでは、ハッキングできないよ
通信データのうち転送エラーで、500バイト中、1バイトは、
間違ったデータを返すルーターがあるため、
はなから通信データを信用せず、独自にチェックしているので、
データをいじっても、サーバー側でエラーになる

167:デフォルトの名無しさん
16/05/22 16:26:27.19 llPwnouv.net
他板から誘導されてきました
gcc+ldのリンカスクリプトについて質問があります。
現在、ヒープとスタックを同じメモリ領域に確保しています。
/* User_heap_stack section, used to check that there is enough RAM left */
._user_heap_stack :
{
. = ALIGN(4);
_heap_start = .;
PROVIDE ( end = . );
PROVIDE ( _end = . );
. = . + _Min_Heap_Size;
. = . + _Min_Stack_Size;
. = ALIGN(4);
} > RAM
このような感じです。それを、ヒープとスタックで別領域のメモリを確保したいので、
/* heap data section */
.heap :
{
. = ALIGN(4);
_end = .;
end = _end;
PROVIDE ( _end = .);
PROVIDE ( end = _end);
PROVIDE ( _heap = .);
*(.heap .heap.*)
*(.HEAP)
. = . + _Min_Heap_Size;
. = ALIGN(4);
} > RAM
(続く)

168:167
16/05/22 16:26:52.01 llPwnouv.net
/* stack data section */
.stack :
{
_stack_top = .;
PROVIDE ( _stack_top = .);
*(.stack .stack.*)
*(.STACK)
_stack = .;
PROVIDE ( _stack = .);
. = ALIGN(8);
_stack_end = _estack;
PROVIDE ( _stack_end = _estack);
} > DRAM
としてみました。ところが、ヒープに十分な容量があるにもかかわらず、mallocでメモリ確保ができません。
これは、.heapをヒープとして認識されていないような気がするのですが対処法はないでしょうか?
よろしくお願いします。

169:デフォルトの名無しさん
16/05/22 21:42:51.41 vCgoPFhr.net
C言語勉強した後→今はやりのニューラルネットワークの勉強
したんだけどいまいち応用したいことがないというww
思ったんだけど言語の勉強は簡単だけど情報理論の勉強ってめちゃくちゃ
大変ですね

170:デフォルトの名無しさん
16/05/22 23:13:00.28 kh4BCROc.net
ちょっと板違いかもしれないんですけど、ここなら技術者がたくさんいるかなって思ったので書きます。
言語はCじゃなくてアセンブラとハードウェア記述言語なんですけど、
ファミコンを作ってみました。
URLリンク(youtu.be)
色々技術者の感想とか聞いてみたいです。
まだ途中です。
アセンブラとエミュレータも作りました。
なんか響くものありますか?技術者の方々。。。

171:デフォルトの名無しさん
16/05/23 08:54:53.18 bDXz1lkX.net
バグバグだけどそれっぽく動いてるね!
でもスレ違いだよ!
該当スレは無いから新しくスレッド立ててみたらどう?
ソースが無いから「すげぇ!動いてる!」以外の感想は出ないと思うの。

172:デフォルトの名無しさん
16/05/23 10:12:40.21 EqRWnqiT.net
ありがとうございます!カーネーション。
ソースは公開はしてます。昔のsourceforgeで。
FPGA
URLリンク(osdn.jp)
エミュレータ
URLリンク(osdn.jp)
アセンブラ
URLリンク(osdn.jp)
スレ違いですねー。すいません。
時間あるときにスレッド立ててみますー。

173:デフォルトの名無しさん
16/05/23 10:18:58.57 8vldmLpi.net
URLリンク(echo.2ch.net)
立てるならこっちの方外衣のではないかな?

174:デフォルトの名無しさん
16/05/23 10:19:39.52 8vldmLpi.net
方が良いのではないかな
誤変換すまん

175:デフォルトの名無しさん
16/05/23 10:36:11.05 mr7kZnmZ.net
板違いにかまってあげるみんな優しい

176:デフォルトの名無しさん
16/05/23 12:52:21.51 BbHX4Eo2.net
スレ違いだとは思うが
エミュレータとかアセンブラ
はこの板でいいような気がする
FPGA は
電気・電子
URLリンク(wc2014.2ch.net)
かな

177:デフォルトの名無しさん
16/05/23 14:29:21.48 EqRWnqiT.net
>>174
あー、ゲームは全然分かんないんですよ。それこそスーマリやったことある程度なんで。
ゲームの話の方に行っちゃうとちんぷんかんぷんになるかも。

178:デフォルトの名無しさん
16/05/23 14:31:50.76 EqRWnqiT.net
>>176
いいですかね?Cとアセンブラ詳しい人達と話してみたかっただけです。

179:デフォルトの名無しさん
16/05/23 14:33:02.94 EqRWnqiT.net
>>175
ホント優しい世界ですね。日本のそういうとこ好きです。

180:デフォルトの名無しさん
16/05/23 14:41:05.37 RYuvL5QP.net
この板で良いんじゃないかな?
立てたら教えてくださいね

181:デフォルトの名無しさん
16/05/23 14:44:07.66 rInNNyjw.net
>>172
君はなかなかやるなあ。
このスレの俺を除く誰よりも君の方が優秀だ。

182:デフォルトの名無しさん
16/05/23 15:13:31.31 RYuvL5QP.net
最初から自分を除いてしまうって
何て謙虚な人なんだ

183:デフォルトの名無しさん
16/05/23 15:45:37.76 W4bNz0YE.net
暗に自分が一番だって言ってるののどこが謙虚なんだ

184:デフォルトの名無しさん
16/05/23 15:49:42.45 hH63TVCl.net
>>183 も一連のネタに含まれるの?

185:デフォルトの名無しさん
16/05/23 16:04:42.33 V758P28P.net
世界中のハッカーより2chのが優秀だと思うのでここに書き込みました。

186:デフォルトの名無しさん
16/05/23 16:12:32.37 2nxNFjiS.net
C言語がアセンブラに変換される仕組みを勉強したくて色んな参考書買ったんですが
同じアセンブラでも命令の内容が違うのは何故ですか?
後NOPとかROTATEとか本によっては無い命令もあります。
もしかしてアセンブラって機種依存ですか?

187:デフォルトの名無しさん
16/05/23 16:15:28.27 bDXz1lkX.net
>>186
もしかしなくてもアセンブリは機種依存です。

188:デフォルトの名無しさん
16/05/23 16:46:57.15 WJyvxaEH.net
機種依存のアセンブラを覚えても、意味なし
LLVM, CASL2 などの、仮想・抽象アセンブラを見た方がいい

189:デフォルトの名無しさん
16/05/23 16:49:01.69 2nxNFjiS.net
ではWindows7とかは標準のアセンブリなんですか?
標準アセンブリというのを学んでみたいんですけど…

190:デフォルトの名無しさん
16/05/23 17:00:59.85 PCdOqhja.net
今からアセンブラ覚える人って大変だろうなぁ。
自分の場合はゲーム作成目的でBASICから呼び出すレベルから始めたけど。

191:デフォルトの名無しさん
16/05/23 17:30:36.10 2nxNFjiS.net
>>190
自分が言ったアセンブラはPICアセンブラです
NOPとかMOVLFとかPIC専用アセンブラなんですよ
これ覚えてるだけでもwindows7Cのアセンブラもすんなり理解できますか?

192:デフォルトの名無しさん
16/05/23 18:04:14.84 vsZv3DVO.net
出来ません。

193:デフォルトの名無しさん
16/05/23 18:25:03.43 bDXz1lkX.net
>>189
そもそも、CPU毎に機械語が違うんだから
機械語とほぼ一対一対応するアセンブリ言語がCPU毎に違うって事くらい
アセンブリ言語とはなんぞやってのを知ってれば分かる事なんだがなぁ
Windows 7が動作するCPUはx86系だから、
どうしてもアセンブリを覚えてWindows 7上で動かしたいと言うのであれば
x86アセンブリを覚えれば良い。

194:デフォルトの名無しさん
16/05/23 18:25:55.21 bDXz1lkX.net
あるいは>>188にあるように
LLVM IRを覚えるとかね。

195:デフォルトの名無しさん
16/05/23 18:41:44.56 q9fFfbWe.net
gas使えば。

196:デフォルトの名無しさん
16/05/23 19:35:41.34 2nxNFjiS.net
>>193
x86やx64ってアセンブラの名前だったんですね。
ただCPUごとにアセンブラが違ってもhelloworldが同じコンパイラで
動くのは何故なんだぜ?とは思いますけど

197:デフォルトの名無しさん
16/05/23 19:42:56.92 bDXz1lkX.net
>>196
x86やらx64やらは、正確にはアーキテクチャの、それも通称の方。
何故CPUが違っても同じコンパイラで動くか?
コンパイラが頑張ってるからさ。

198:デフォルトの名無しさん
16/05/23 20:16:14.16 2nxNFjiS.net
>>197
なるほど!
さっそくx86アセンブラ勉強します!
何て本買えばいいですか?

199:デフォルトの名無しさん
16/05/23 20:20:05.61 zyN7MWUp.net
>>198
最近はいいテキストがなくてね‥

200:デフォルトの名無しさん
16/05/23 20:28:11.43 zzMperjF.net
MASM 6.0のマニュアル
アセンブラの参考書は、無い。むかしから、無い

201:デフォルトの名無しさん
16/05/23 20:45:08.88 vsZv3DVO.net
インテルのマニュアル3巻組のを
初めから読むと良い。
もしくはAMDのAm186 and Am188 Family Instruction Set Manual
とか古いのだと量が少ないので楽。

202:デフォルトの名無しさん
16/05/23 21:21:37.40 2nxNFjiS.net
>>200
無いww
これはやる気でますね
アセンブラ覚えたらほかの学生と差がつくってことですもんね

203:デフォルトの名無しさん
16/05/23 21:23:47.26 G//Wy7ps.net
>>202
CPUのマニュアルがそれに相当するよ
MMX命令が~とか聞いたことあるだろ?
そういう○○命令とそれに対応するニーモニックの組み合わせってだけ

204:デフォルトの名無しさん
16/05/23 21:56:12.14 bDXz1lkX.net
3巻組と銘打ってるのに最終的に8個のpdfのセットになってるのが
インテルのマニュアル。
昔は上中下巻の中巻が2本立てという謎仕様だったが今よりマシという

205:デフォルトの名無しさん
16/05/23 22:00:35.12 bDXz1lkX.net
>>202
強いて言えば、ちょっと古い本だが「高級言語プログラマのためのアセンブラ入門」
URLリンク(www.amazon.co.jp)
とか、「30日でできる! OS自作入門」
URLリンク(www.amazon.co.jp)
とかがx86の参考書としては使えるかな。

206:デフォルトの名無しさん
16/05/23 22:03:19.56 bEUIJma6.net
アセンブラ勉強したいなら文法はネットで調べるだけで十分。コードをみたほうがいい。linuxのブートストラップがお勧め。16ビット、32ビット、64ビット、MMU、全て最小限のコードはある。
理解できないなら具体的にコードを引用して誰かに質問すればいい。

207:デフォルトの名無しさん
16/05/23 22:08:20.97 bEUIJma6.net
あ、PICか。マイコンの雑誌とかがいいんじゃないでしょうか。
PICはアセンブラが基本だからアセンブラ分からなければPICいじる意味ないくらいですね。

208:デフォルトの名無しさん
16/05/24 09:49:37.98 AiuqlWdY.net
386まではニーモニック表見ながら勉強出来たけどMMXで躓いてからは全く勉強してないなぁ。

昔スパコンOS開発部に派遣された時、デバッグで
「ダンプを逆アセして原因探してね。ニーモニック表あそこにあるから」
と言われたのには驚いたわ。PowerPC系は触ったことなかったのに(X68kのアセンブラ解説書を少し読んだ事があった程度)。

209:デフォルトの名無しさん
16/05/24 13:35:34.09 H+uoNdTK.net
>>208
RISCのCPUならあり得ますね。逆アセするのも慣れてれば簡単だし。スパコンってppcがベースなんですね。
MMXなどコンパイラが生成しないような命令は特殊用途と割り切って、局所的に使うんですかね?汎用性が下がりますもんね。

210:デフォルトの名無しさん
16/05/24 13:43:09.34 t6Kxw5HS.net
コンパイラは指定されたCPUに対して最適コードを書き出すんじゃないの?

211:デフォルトの名無しさん
16/05/24 14:30:12.12 zoeZ+LAK.net
>>210
MMXなどの拡張命令はオプションを指定しないと入らないと思ってましたけど、勝手に使われるもんなんですかね。

212:デフォルトの名無しさん
16/05/24 15:37:26.91 tdzye3Zz.net
>>211
勝手に使われて、オプションで使われなくする方が多いんじゃないか?

213:デフォルトの名無しさん
16/05/24 15:41:55.35 t6Kxw5HS.net
>>211
URLリンク(www.isus.jp)

214:デフォルトの名無しさん
16/05/24 17:34:51.51 zoeZ+LAK.net
>>212
そうなんですね。OS開発してると拡張命令なんて使われるの見たことないんで、アプリの人達は大変ですね。それこそ逆アセなんてもうできないような気がするなあ。

215:デフォルトの名無しさん
16/05/24 18:25:17.62 yhhSFwtW.net
gccだと古くは-msoft-floatオプションとかあるな

216:デフォルトの名無しさん
16/05/24 19:02:12.95 2lDnpmo+.net
visual studio C++でmfcプロジェクト選んだら
最初からコードいっぱい書かれてて何をしていいか分かりませんでした。
これらのコードは消していいんですか?
ハローワールドのプログラム書きたいだけなんですけど困ってしまいました。

217:デフォルトの名無しさん
16/05/24 19:09:46.55 Mn8/L3Ni.net
>>216
mfc選ぶなよ。
初心者にはc++/cliがオススメだぞ。

218:デフォルトの名無しさん
16/05/24 19:22:26.77 2lDnpmo+.net
>>217
いや通っぽいの選んだら他人と差つくかなと思って
ちなアセンブラ質問してた奴です
とにかくMFCでやりたいんです。
関数も多いそうですしほかの奴だとMFCAPIつかえないんですよね?

219:デフォルトの名無しさん
16/05/24 19:41:26.30 NcOn82rz.net
自動生成されてるコードの意味が解らなきゃMFC使うの夢物語だよ

220:デフォルトの名無しさん
16/05/24 19:47:03.54 9gec5rAi.net
>>218
hello world 動かせない時点で他人に差をつけられてるよ
独学ならちゃんと順序を踏め

221:デフォルトの名無しさん
16/05/24 19:53:36.74 ehSASbT+.net
おれまだ20代で歴も薄い雑魚グラマだから知らないんだけど、MFCはあれ流行ってたことあるの?
directwriteでhello world描画できる方がよっぽど重宝されそう

222:デフォルトの名無しさん
16/05/24 19:54:21.71 LoTiGm3R.net
>>218
まず8ビットマイコンで色々弄って見たらどうだろう

223:デフォルトの名無しさん
16/05/24 19:56:51.25 TK7Wrztf.net
>>221
win3.1とかwin95とかの頃は大流行りだったよ

224:デフォルトの名無しさん
16/05/24 20:02:23.11 ehSASbT+.net
>>223
ありがとうございました
文献に2002年とか多いのはそういうことか

225:デフォルトの名無しさん
16/05/24 20:27:33.40 H+uoNdTK.net
え、逆に今はMFC使わないんだ。知らんかったw
ま、フレームワーク変わっても書く内容はあんま変わんないような気がするけど。

226:デフォルトの名無しさん
16/05/24 20:31:41.19 D0tZyPZ2.net
勉強しててもGUIじゃないとモチベーション維持できないよね。
gtkとかどうなんでしょう。

227:デフォルトの名無しさん
16/05/24 20:42:16.63 mt0PIiy1.net
まずAPIって何か分かる?

228:デフォルトの名無しさん
16/05/24 20:51:45.36 TtTF6uFS.net
間違ってc++スレに迷い込んだ気がした

229:デフォルトの名無しさん
16/05/24 22:12:51.25 fsM+Gj6y.net
副作用関連の未定義について教えて下さい
> 直前の副作用完了点から次の副作用完了点までの間に,式の評価によって一つのオブジェクトに格納さ れた値を変更する回数は,高々1 回でなければならない。
> さらに,変更前の値の読取りは,格納される値 を決定するためだけに行われなければならない
の2行めが何を言っているかさっぱり分からんとです。
i = i + 1; // ... (1)
a[i] = i++; // ... (2)
(1)が許されて、(2)は許されないことから逆算して考えてみました。

・「変更前の値の読取り」は、「格納される値 を決定する」ケースにおいてのみ許される
・「変更前の値の読取り」とは、(1)における右辺のi、(2)における左辺のiを示す
イコール「副作用の発生するオブジェクトの値の読み取り(その値は副作用による変更前のものになる)」
・「格納される値 を決定するため」は、「代入される値を算出するため」
 ((2)は、配列の位置を決めるためだからNG)
という認識であっていますでしょうか?

a = i + i++;
とか(2)がダメなら何となくダメそうに感じましたが、
iが「代入される値を算出するため」にしか使われていないからOKだったりしますか?

230:デフォルトの名無しさん
16/05/24 22:30:44.98 wt2wiSzh.net
C++は、Cと違ってクラスがある。
君はクラスのことを知っているのか?
継承チェーンをさかのぼって、Baseクラスの同名のメソッドを、
自動的に順々に呼んでいく言語と、
自動的には呼ばないので、自分で呼んでいく言語の、2種類がある
まあ、このスレはCのスレだから、C++の話はスレ違い

231:デフォルトの名無しさん
16/05/24 23:15:07.66 wt2wiSzh.net
>>229
>i + i++;
インクリメントを他の式と、組み合わせられない。
必ず単独で使うこと。MISRA-C 2004、ルール12.13
ルール12.2、1つの副作用完了点内での、部分式の評価順序は未規定
i = 1; の時、
i + i++; は、1 + 2, 2 + 2 のどちらかわからない
次の文が実行される時には、インクリメントされているけど、
そのタイミングは同じ文内では、はっきり決まっていない
func(i, i++);
これも同様に引数が、(1, 2), (2, 2)のどちらかわからない

232:231
16/05/24 23:27:48.52 wt2wiSzh.net
>231 修正
>i = 1; の時
>i + i++; は、1 + 2, 2 + 2 のどちらかわからない
1 + 1, 2 + 1 だな
>func(i, i++);
>これも同様に引数が、(1, 2), (2, 2)のどちらかわからない
(1, 1), (2, 1) だな

233:231
16/05/24 23:45:57.48 wt2wiSzh.net
>>229
>さらに,変更前の値の読取りは,格納される値 を決定するためだけに行われなければならない
これは、MISRA-C 2004、ルール12.2、volatile 変数のことかな?
vがvolatile 変数だとして、
v + v;
ハードウェアをアクセスする度に、コロコロと値が変わるから、
これは、1 + 1, 1 + 2 かも知れない
だから、vに不用意にアクセスせず、
a = v; のように、一旦変数に入れてから、aを使う
v; みたいにアクセスしては、いけない

234:デフォルトの名無しさん
16/05/25 00:44:05.85 gdJJQ64a.net
ご回答ありがとうございます
>>231
> インクリメントを他の式と、組み合わせられない。
> 必ず単独で使うこと。MISRA-C 2004、ルール12.13
例えば
a = b * c + i++;
は、C言語規格上許されると思っているのですけれど、ルールに抵触するのでしょうか?
> ルール12.2、1つの副作用完了点内での、部分式の評価順序は未規定
a = i + i++;
がダメな理由はしっくりきました。

>>233
>さらに,変更前の値の読取りは,格納される値 を決定するためだけに行われなければならない
C言語の規格書から持ってきました
JISX3010 2003 プログラム言語C 6-5 式
a[i] = i++;
がダメな理由が、この一文らしいのですが・・・
この文をどう解釈すればよいかさっぱりだったので質問に至った次第です。

235:デフォルトの名無しさん
16/05/25 03:01:42.03 sGJacJpA.net
マ イ ン ド コ ン ト ロ ー ル の手法
・沢山の人が、偏った意見を一貫して支持する
 偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法
・不利な質問をさせなくしたり、不利な質問には答えない、スルーする
 誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法
偏った思想や考え方に染まっていたり、常識が通じない人間は、頭が悪いフリをしているカルト工作員の可能性が高い
靖 国 参 拝、皇 族、国 旗 国 歌、神 社 神 道を嫌う カ ル ト
10人に一人は カ ル ト か 外 国 人
「ガ ス ラ イ テ ィ ン グ」 で 検 索 を !

236:231
16/05/25 03:53:16.87 0v8CMiQb.net
>a = b * c + i++;
Goでもインクリメントは単独文で、他の式と組み合わせられないから、
MISRA-C 2004、ルール12.13 には違反する
>a[i] = i++;
これも、i = 1 だとして、a[1], a[2]のどちらかわからない。
ルール12.2、1つの副作用完了点内での、部分式の評価順序は未規定
iの読み取りが、1つの副作用完了点内で、
左辺・右辺の2回起こっていて、そのタイミングがわからない。
とにかく、1つの文内で、更新される同じ変数を、2回アクセスしたらダメ
言語の規格書を読んで勉強するのは、素人には絶対無理。
MISRA-Cの日本語訳を書いている集団でさえ、
規格書に詳しい人はいないし、皆欧州の委員会へ、問い合わせて作っている
まず規格書を説明するための、例題や概念が必要。
副作用と副作用完了点、キャストの潜在型・汎整数拡張・平衡化、複合式など
とにかく、バグを避けるには、まぎらわしい書き方をしない。
長い文を書かない。誰も規格について詳しい人はいないから

237:デフォルトの名無しさん
16/05/25 05:12:46.44 gdJJQ64a.net
>>236
あー分かった
> とにかく、1つの文内で、更新される同じ変数を、2回アクセスしたらダメ

> > さらに,変更前の値の読取りは,格納される値 を決定するためだけに行われなければならない
がイコールか

> 直前の副作用完了点から次の副作用完了点までの間に,式の評価によって一つのオブジェクトに格納さ れた値を変更する回数は,高々1 回でなければならない。
> さらに,変更前の値の読取りは,格納される値 を決定するためだけに行われなければならない
2行目の「格納される値 を決定する」は、1行目の「(高々1回の)格納さ れた値を変更する」を指しているんだ。
iに副作用が発生する式(i++)を書いたのであれば、iの値の読み取りはi++のため以外ではしてはならないと。
それを簡単に言うと
> とにかく、1つの文内で、更新される同じ変数を、2回アクセスしたらダメ
となる

> とにかく、バグを避けるには、まぎらわしい書き方をしない。
> 長い文を書かない。
はい、自分が書く時はそうしたいと思います。

ありがとうございます
お陰で理解できました

238:デフォルトの名無しさん
16/05/25 07:21:38.02 Qq1d4n8I.net
MISRA-C推しの底辺がかきまわしてるけど、C言語は自由度が高いので、高い信頼性を要求される分野では単価の安い底辺PGを使えない
それを解決しようと足掻いてるのがMISRA-C
C言語を学ぶ上で参考にするのは構わないが、NGワードに設定しておいた方がノイズリダクション出来て良いかもね

239:デフォルトの名無しさん
16/05/25 12:55:28.50 pZYZ14wu.net
PM, >>238 が WARNING 無視するなと何度言っても聞きません 首にしてください

240:デフォルトの名無しさん
16/05/25 13:12:27.40 ADImxnBq.net
だって警告レベル一番キツくしてSDKサンプルをコンパイルすると警告出るんだもん
M$馬鹿じゃねぇの?()

241:デフォルトの名無しさん
16/05/25 13:14:52.07 PX54IJWY.net
>>240
いい学習素材だと思うから、
そのエラーの原因と直しをしてみたら?

242:デフォルトの名無しさん
16/05/25 13:22:36.73 JRGw8yci.net
>>240
それで警告が出るからMSが馬鹿だと結論づけるお前が馬鹿

243:デフォルトの名無しさん
16/05/25 14:50:18.90 Qq1d4n8I.net
>>239
MISRA-Cはバカのための規格なので、バカを排除している職場では不要、使ってない。

244:デフォルトの名無しさん
16/05/25 16:59:51.98 grsxbFu1.net
以下のようなプログラムを作成せよ。
5名分の数学の点数と英語の点数を入力する。
以下の計算式に基づいて合計点数を計算する。
(合計点数)=(数学の点数)×1.2 + (英語の点数)×0.8
上位2名を「合格(A)」とする。
上記合格者以外について、以下の計算式に基づいて合計点を再計算する。
(合計点数)=(数学の点数)×0.8 + (英語の点数)×1.2
上位2名を「合格(B)」とする。
つまり、不合格者は1名のみとなる。
同じ合計点数はないと仮定してよい。
こういう課題なんだけど、とりあえず1.2とかの計算はおいといて、入力した点数の最高点の人を合格にしようとしたんだけど
合格が0人目になってしまう 途中までのプログラム下に貼るんでアドバイスください

245:デフォルトの名無しさん
16/05/25 17:00:51.35 grsxbFu1.net
>>244の続き
#include<stdio.h>
void main()
{
int i=0;
int a[5];
int b[5];
int c[5];
double tempmax;
printf("5人分の数学の点数を入力してください\n");
for( i=0; i<5; i++)
{
printf("%d人目の数学の点数:",i+1);
scanf_s("%d",&a[i]);
}
printf("英語の点数を入力してください\n");
for( i=0; i<5; i++)
{
printf("%d人目の英語の点数:",i+1);
scanf_s("%d",&b[i]);
}

246:デフォルトの名無しさん
16/05/25 17:02:05.60 grsxbFu1.net
連投すいません さらに続き
for( i=0; i<5; i++)
{
c[i] = a[i] + b[i];
}
printf("%d,%d,%d,%d,%d",c[0],c[1],c[2],c[3],c[4]);
tempmax = c[0];
for( i=0; i<4; i++)
{
if(c[i]>tempmax)
{
tempmax = c[i];
}
}
printf("合格(A):%d人目 ",tempmax);
}

247:デフォルトの名無しさん
16/05/25 17:13:25.35 hmlo+RWl.net
tempmax は最高得点を記録した double の値らしいが、
表示の方は「何人目」で int (%d) の値として扱ってるね。
他にも色々間違ってるけど、意味のある値が見えてくれば
検討の取っ掛かりになると思う。

248:デフォルトの名無しさん
16/05/25 17:32:24.26 8+OpaV01.net
printf("合格者の得点: %f\n", tempmax);

249:デフォルトの名無しさん
16/05/25 18:09:12.23 mqK6DNQr.net
最後のループではi<4ではなくてi<5。
最後のprintfでは最高点tempmaxを表示するようだけど、
何人目だからiを表示しないといけない。
最高点を取った人の番号を保存するための変数を用意して
最後のループを書き換える。
int no=0;
for( i=0; i<5; i++)
{
if(c[i]>tempmax)
{
tempmax = c[i];
no=i;
}
}
printf("合格(A):%d人目 ",no+1);
これでどうだ?

250:デフォルトの名無しさん
16/05/25 18:12:42.26 mqK6DNQr.net
こっちの方がいいかな。
printf("合格(A):%d人目 %d点",no+1,(int)tempmax);

251:デフォルトの名無しさん
16/05/25 18:46:25.87 grsxbFu1.net
>>249-250を参考にしたら数学英語の得点の最高合計点取った人が出るようになった ありがとう
でも、数学英語の両方とも上から5,4,3,2,1て入力したら-858993459人目って出るようになった
どっかforの範囲間違えたかな?

252:デフォルトの名無しさん
16/05/25 20:07:47.10 GAaLSrgN.net
ちょっと前にFPGAでファミコン作ってみたって書いて、スレ違い、板違いって怒られた者です。
エミュならこの板で良さげなんで、スレッド立ててみました。
スレリンク(tech板)
良かったら遊びに来てください。

253:デフォルトの名無しさん
16/05/25 20:09:18.71 grsxbFu1.net
>>251
自己解決しました
また質問なんだけど上から二番目の点数のデータ、もしくは、一番目のデータを除いた最高点数のデータ
ってどう表現すればいいの?

254:デフォルトの名無しさん
16/05/25 20:12:29.33 6ZfKurqy.net
>>240
サンプルはいいとしてヘッダーファイルの警告ぐらい抑止しといてくれ

255:デフォルトの名無しさん
16/05/25 20:25:21.80 Il38ptRz.net
>>217
でもあれでしょ?
c++/cliだとセットアップしたばかりのwindowsでは動かないでしょ?

256:デフォルトの名無しさん
16/05/25 20:46:37.33 8+OpaV01.net
>>253
ソートしろ

257:デフォルトの名無しさん
16/05/25 22:07:32.21 3hC190Yp.net
教えてください。
固定長テキストデータを、別ファイルに読み込む方法。
例えば3か月分の給料、15万6千円、18万7千円、19万3千円が
156187193とテキストデータで入っている。
156,187,193と切り出したい。
fscanf,fseek使ってもできませんでした。未熟者です。

258:デフォルトの名無しさん
16/05/25 22:09:08.14 8+OpaV01.net
fgetcで1文字ずつ読み込める。
それを3回繰り返す。

259:デフォルトの名無しさん
16/05/25 22:09:08.78 mqK6DNQr.net
ソートしないなら、tempmax1とtempmax2を用意して最初に最高点のtempmax1と順番を決定する。
次にtempmax2に対しても同じ計算をする。但し、c[i]<tempmax1を果たす。
要するに、最高得点を超えない場合の最高得点を求めればよい。
double tempmax1 = c[0],tempmax2 = c[0];
int no1=0,no2=0;
for( i=0; i<5; i++)
{
if(c[i]>tempmax1)
{
tempmax1 = c[i];
no1=i;
}
}
for( i=0; i<5; i++)
{
if(c[i]>tempmax2 && c[i]<tempmax1)
{
tempmax2 = c[i];
no2=i;
}
}
printf("合格(A):%d人目 %d点\n",no1+1,(int)tempmax1);
printf("合格(A):%d人目 %d点\n",no2+1,(int)tempmax2);

260:デフォルトの名無しさん
16/05/25 22:38:48.23 grsxbFu1.net
>>259
参考にさせてもらって合格(A)はうまく出力できた
後半の合格(B)を出力するときにc[i]<tempmax1のtemomax1の値が計算が変わって
変わってしまってるからif(c[i]>tempmax2 && c[i]<tempmax1) こういうふうにできない
#include<stdio.h>
void main()
{
int i = 0;
int a[5];
int b[5];
int c[5];
int no1=0,no2=0,no3=0,no4=0,no5=0;
double MAX,MAx,Max,max;
int min;
printf("5人分の数学の点数を入力してください\n");
for (i = 0; i<5; i++)
{
printf("%d人目の数学の点数:", i + 1);
scanf_s("%d", &a[i]);
}
printf("英語の点数を入力してください\n");
for (i = 0; i<5; i++)
{
printf("%d人目の英語の点数:", i + 1);
scanf_s("%d", &b[i]);
}

261:デフォルトの名無しさん
16/05/25 22:39:39.72 grsxbFu1.net
>>260続き
for (i = 0; i<5; i++)
{
c[i] = (double)1.2*a[i] + (double)0.8*b[i];
}
MAX = c[0];
for( i=0; i<5; i++)
{
if(c[i]>MAX)
{
MAX = c[i];
no1=i;
}
}
printf("合格(A):%d人目 ",no1+1,(int)MAX);
MAx = c[0];
for (i = 0; i<5; i++)
{
if (c[i] > MAx && c[i] < MAX)
{
MAx = c[i];
no2 = i;
}
}
printf("%d人目\n", no2 + 1, (int)MAx);
Max = c[0];

262:デフォルトの名無しさん
16/05/25 22:42:35.41 grsxbFu1.net
>>261続き
for (i = 0; i<5; i++)
{
c[i] = (double)0.8*a[i] + (double)1.2*b[i];
}
for (i = 0; i < 5; i++)
{
if (c[i] > Max && c[i]<MAx)
{
Max = c[i];
no3 = i;
}
}
printf("合格(B):%d人目 ", no3 + 1, (int)Max);
max = c[0];
for (i = 0; i < 5; i++)
{
if (c[i] > max && c[i]<Max)
{
max = c[i];
no4 = i;
}
}

263:デフォルトの名無しさん
16/05/25 22:43:25.22 grsxbFu1.net
<<262続き
連投すいません
printf("%d人目\n", no4 + 1, (int)max);
min = c[0];
for (i = 0; i < 5; i++)
{
if (c[i] >min && c[i]<max)
{
min = c[i];
no5 = i;
}
}
printf("不合格:%d人目", no5 + 1, min);
}

264:デフォルトの名無しさん
16/05/25 23:24:12.02 mqK6DNQr.net
面倒な奴だな。質問を小出しにするなよ。手間を掛けさせるな。
1番目2番目とかじゃなくて
5番目6番目とかずっと先まで出力したいなら
並べ替えしてから出力した方が短くて簡単だぞ。
並べ替えの方法はそこら辺のアルゴリズムの本に
幾らでも書いてある。本を探すのが面倒ならwikiにも出ているぞ。
挿入ソートでも見ればC言語のソースも載っている。
それをコピペして使え。

265:デフォルトの名無しさん
16/05/26 00:56:11.94 B/Q2fO5b.net
いい加減余所でやれ
C/C++の宿題片付けます 170代目 [無断転載禁止]©2ch.net
スレリンク(tech板)

266:デフォルトの名無しさん
16/05/26 01:07:08.20 z4o5uVHs.net
int my_cmp(const void* c1, const void* c2)
{

267:デフォルトの名無しさん
16/05/26 01:11:01.98 z4o5uVHs.net
int my_cmp(const void* c1, const void* c2)
{
 int a1 = *(const int*)c1;
 int a2 = *(const int*)c2;
}
....
int a[5];
int b[5];
int c[5];
....
qsort(a, sizeof(a)/sizeof(a[0]), sizeof(a[0]), my_cmp);
qsort(b, sizeof(b)/sizeof(b[0]), sizeof(a[0]), my_cmp);
qsort(c, sizeof(c)/sizeof(c[0]), sizeof(a[0]), my_cmp);

268:デフォルトの名無しさん
16/05/26 11:39:15.27 G3Xzn+W/.net
配列に決められた数字を格納し、格納した数字の奇数か偶数のみを表示した後に指定された数ずらすプログラムを組んだのですが
数字をずらすところでうまく行かずに困っています、誰か助けてください。
例:a[0]=0,a[1]=1,a[2]=2,a[3]=3,a[4]=4 ずらす数:2
a[0]=2,a[1]=3,a[2]=4,a[3]=0,a[4]=1

長いのでアップローダにtxtファイルをアップロードしました
URLリンク(fast-uploader.com)

269:デフォルトの名無しさん
16/05/26 12:42:34.93 f2o0rrY8.net
>>268
表示するときにずらせばいいのでは。ずらす数をkとすると
for(i=0; i<NUM; i++) {
printf("a[%d] = %d ", i, a[ (i + k) % NUM ]);
}

270:デフォルトの名無しさん
16/05/26 12:47:12.90 Cj4xC8mS.net
どういう環境で書いてる?
デバッガ使ってステップ実行するやりかた覚えたほうが今後のためになると思うが

271:デフォルトの名無しさん
16/05/26 14:24:54.91 ZS10B00B.net
>>255
それを動かすのが漢だ

272:デフォルトの名無しさん
16/05/26 14:47:38.51 UrTJJdUS.net
>>268
コードをよく読めなかったので最初の表示以降を適当に書いたんだけど
どうかな
URLリンク(codepad.org)
大きなループの中で全部やろうとせず表示とずらしで処理を分けた方が
考えやすいと思うよ

273:デフォルトの名無しさん
16/05/26 19:05:11.96 fhnCNSUE.net
今日IT企業の面接で今まで作ったプログラム見せてほしいっていわれたので
渾身の力作を見せたところ人事の内一名からすごいたたかれました。
人事
「君のプログラムは短いのはいいけど複雑さがなくて物足りない。
MP3形式の録音ソフトとはいえ工夫すれば1万行は超えるけど1000行程度だし、
もっと何とかならなかったのかい?プログラムは簡素なほうがいいけど、
外部ライブラリを読み込んだり、DLLファイルとの連携部分もあったほうが素人っぽくなくなる。
本当に純粋にプログラミング言語中心で学んできた人が描いたようなプログラムだ。」
こんなこといわれてしまいました…
確かに容量は20KB程度で物足りないかもしれません。
他の3社にも同じのみせましたけどすごいって賞賛されました。
でもかなりの酷評(言い方は非常に柔らかい)でこんなこといわれたのは初めてです。
4年間プログラムを根詰めてやってきたなら1000行じゃ物足りないんでしょうか?
もっと外部ファイルととあえて連携させて複雑にしたほうがいいんでしょうか?
虚をつかれたような評価なので大変困惑しております。
皆さんはどうお考えですか?

274:デフォルトの名無しさん
16/05/26 19:08:09.80 fhnCNSUE.net
確かにフリーソフトとか見てるとexeファイルの容量は最低でも1MBを超えていて
自分が作ったのはいつも数十KBで収まっているのは気になっていました。
だけど僕は4年間必死にC言語を勉強していて特に足らない点、もちろん業務知識は
0ですが基本的知識でPCの機能を実装することくらいはできます。
何かすごいショックで…

275:デフォルトの名無しさん
16/05/26 19:15:59.92 KKsKg0mH.net
面白くないネタ

276:デフォルトの名無しさん
16/05/26 19:39:49.89 5yoH/rz8.net
納得できんのなら無視して自分認めてくれるとこ行けばいいんじゃないのかね
モノがわからんのにどう?とか言われてもね

277:デフォルトの名無しさん
16/05/26 19:53:00.42 fhnCNSUE.net
>>276
複雑なプログラムのメリットって何ですかね?

278:デフォルトの名無しさん
16/05/26 19:53:52.50 fhnCNSUE.net
>>275
ネタではありません。
本当に言われたんです。

279:デフォルトの名無しさん
16/05/26 20:13:49.57 6iXHX0kN.net
どこかにアップしなよ
評価してくれる人が出てくるだろ
アップできないならネタと言う評価で

280:デフォルトの名無しさん
16/05/26 20:16:42.24 Z+cHO4t2.net
#include <stdio.h>
int a = 0;
void Func1(void) {
int b;
static int c;
printf("a:%p b:%p c:%p\n",&a,&b,&c);
if (++a<4) Func1();
else a = 0;
}
void Func2(void) {
int x;
printf("x:%p\n",&x);
Func1();
}
int main(void) {
Func1(); printf("\n");
Func1(); printf("\n");
Func2(); printf("\n");
return 0;
}

281:デフォルトの名無しさん
16/05/26 20:34:20.78 c9LsFSoH.net
>>277
複雑さ自体にメリットはない
面接官も「プログラムは簡素な方がいい」と言っているのだろう?
憶測になるけど
もう少し大規模で複雑になるソフトを書いてみてほしいってことだと思うよ
君の見せたプログラムは「Hello world」のような
小さく簡単で単純なプログラムだと言いたいんじゃないかな

282:デフォルトの名無しさん
16/05/26 20:36:30.24 M2X0d2Pu.net
>>273
デカければいいというものではない 同じ内容なら小さく短く書けるほうがエライ
同じ内容ならシンプルな方がエライ
でも○年間勉強しましたと言ってアピールする材料なのに 1000行程度ではあまりに物足りない
そもそもCで書くのは無駄が多く行数がイヤでも増えるからすぐに数千~数万行行ってしまう
ファイル一本かならず1,000行以内に収めろと言われたら窮屈で仕方ないくらい
それに、どうせソースを軽く眺めた程度では実力なんてわからないし
イチから教える手間は省けますくらいのアピール力だよ

283:デフォルトの名無しさん
16/05/26 21:05:22.73 fhnCNSUE.net
>>282
mp3形式またはwav形式でPCからでる音楽を記録するソフトです。
音質はフリーソフトと全く変わりませんでした。
どこを工夫すればいいんでしょう?全く考えが及びません。

284:デフォルトの名無しさん
16/05/26 21:07:26.52 fhnCNSUE.net
複雑さの要因はほぼGUIコンポーネントだと考えているんですが
そこらへんを凝ればいいのでしょうか?
どうすれば長くなるのか全く見当がつきません。

285:デフォルトの名無しさん
16/05/26 21:08:25.74 fhnCNSUE.net
>>282
別の面接官3人「なかなか1000行かける大学生はいない」
今日の面接官の内一人「1000行は少し物足りないなぁ…」
うーん…

286:デフォルトの名無しさん
16/05/26 21:13:25.80 KKsKg0mH.net
もうちょっとリアルな設定にしないと面白くないよ
次からは自分の知ってる分野で書こうね。

287:デフォルトの名無しさん
16/05/26 21:15:40.61 0wGqATI0.net
どっちにせよマ板で聞いてくれ

288:デフォルトの名無しさん
16/05/26 21:20:36.96 M2X0d2Pu.net
>>285
上は「ド素人の大学生にしては頑張ってるね」
   (教育して見る価値があるかもしれない)
下は1から教育する気がないブラック寄りの企業
  きっと即戦力として鍛えてくれるよ

289:デフォルトの名無しさん
16/05/26 21:26:33.06 fhnCNSUE.net
>>288
ご名答

290:デフォルトの名無しさん
16/05/26 21:27:22.89 fhnCNSUE.net
自分を信じたい

291:デフォルトの名無しさん
16/05/26 21:30:02.48 kT3OAx5i.net
面接官はプログラムを評価するのが目的じゃなくて
面接に来た人を評価するのが目的だからプログラムの評価自体に意味は無い

292:デフォルトの名無しさん
16/05/26 21:41:57.14 fhnCNSUE.net
>>291
もしかしたら下の企業で採用あるかも…
ブラックぽいんだよな…

293:デフォルトの名無しさん
16/05/26 21:44:40.05 fhnCNSUE.net
ちなみに1000行のプログラムは1か月かかりましたwww

294:デフォルトの名無しさん
16/05/26 21:47:03.25 2uDctnGE.net
>>268です、遅レスになってしまい大変申し訳ありません。
みなさんとても丁寧に回答していただいて本当にありがとうございます!
今から皆さんの書いていただいた内容参考に頑張ります、本当にありがとうございました。

295:デフォルトの名無しさん
16/05/26 21:48:24.27 YS/YHZQs.net
三十三間堂には何であんなに仏像があるの?
コレクターでもいたの?

296:デフォルトの名無しさん
16/05/26 21:51:58.49 YS/YHZQs.net
間違えました

297:デフォルトの名無しさん
16/05/26 21:53:29.21 tNvxuks+.net
わいニート、2週間で7000行のライブラリを書いたったwww

298:片山博文MZ ◆T6xkBnTXz7B0
16/05/26 21:56:40.29 W80Kwxkw.net
録音するプログラムなら、波形を見せるとカッコいいかも知れない。
他には音量調節とか。

299:デフォルトの名無しさん
16/05/26 21:57:15.96 fhnCNSUE.net
>>297
羨ましいです。
ライブラリなんて作ろうと思ったことないです。
面接官的にはライブラリなんかもリンクしてればかっこいいみたいな…
なんなんだ…w

300:片山博文MZ ◆T6xkBnTXz7B0
16/05/26 22:00:53.60 W80Kwxkw.net
無音部分を自動でカットする機能があってもいいな

301:デフォルトの名無しさん
16/05/26 22:03:17.27 rFYMqLi5.net
というか、そんなに気になるなら当人に聞いてみればよかったのに。
こちらは募集に応じてやってる身分なんだから遠慮なんていらないんだよ。

302:デフォルトの名無しさん
16/05/26 22:13:55.26 5yoH/rz8.net
コミュ症なんだろ

303:デフォルトの名無しさん
16/05/26 22:14:25.46 fhnCNSUE.net
>>298
イコライザーですか…
それだけで1000行くらいいきそうだww
俺は作りたいものを早く作りたいんですよね

304:片山博文MZ ◆T6xkBnTXz7B0
16/05/26 22:40:18.79 W80Kwxkw.net
人間は操作系が貧弱なソフトウェアにあまりお金を使わない傾向があるから、
シンプル過ぎるソフトは高く売れないんだよ。

305:デフォルトの名無しさん
16/05/26 22:45:12.30 B/Q2fO5b.net
プログラマ板かとおもった

306:デフォルトの名無しさん
16/05/26 22:53:28.09 fhnCNSUE.net
>>304
シンプルな目的にはシンプルなフリーソフトが一番だと思うから
単純なGUIのフリーソフトは重宝すると思いますけどねー
Windows7のほうが圧倒的人気なのもシンプルだからじゃないですか?
ソフトウェア業界ってこれから大丈夫なのかな…

307:デフォルトの名無しさん
16/05/26 22:57:08.32 fhnCNSUE.net
IT業界ってがっかりするような話多くないですか?
これからIT業界に行きたい(C言語使いまくりたい)のに
残念なニュースばかり…
・ウイルス対策ソフトは半分も防御できていない
・Windows10の不人気ぶり
・OSから個人情報抜きとっている
・officeが1年ライセンスで1万円超え

308:デフォルトの名無しさん
16/05/26 23:00:44.67 UjMbTLsx.net
たぶん最初から、不採用が決まっているから、君を馬鹿にしただけだろ
面接官なんて、気にしない方がいい。
そいつらは、2chの住民には勝てないからさ

309:デフォルトの名無しさん
16/05/26 23:02:54.50 fhnCNSUE.net
>>308
その面接官褒めたふりして
「採用の観点からは違う評価するけど意気込みとかはすごいよね…」
とか言ってきてほかの面接官が苦笑したりしてました。
何かデリカシーないですよね。

310:デフォルトの名無しさん
16/05/26 23:09:46.92 rFYMqLi5.net
だから不満があるなら本人に言えよ。

311:デフォルトの名無しさん
16/05/26 23:46:56.88 KKsKg0mH.net
ネタじゃないように思えてきたわ…
こんな思い込みの激しく人の話を聞かない奴ならそんな事もあるんじゃないかと。

312:デフォルトの名無しさん
16/05/27 00:35:44.59 q7OrZRlw.net
謎は解けた
もしこいつがライブラリフル活用したコード書いてたら、複雑すぎるといってお祈り
シンプルなコードだからシンプルすぎると言ってお祈り
要するにコイツを採用したくないだけだわ
俺が採用担当でも、板違いの指摘受けた上で話題までそらしていく奴取りたくねーもん

313:デフォルトの名無しさん
16/05/27 00:46:42.46 TGBFEs+a.net
製品のプレゼンテーションではなくて採用面接なんだろ?
面接官はコードそのものを見たい訳ではない
応募者がコードを通じてどのように自己PRするか
意地悪っぽい突っ込みに対してどのように受け答えするか、そこを見てるはず
製品発表ではないのだから、売り込むべきはプログラムではなくて自分自身を優先するべきだった
その場の雰囲気がわからないので、どのように返すのが良かったのかは何とも言えないけど

314:デフォルトの名無しさん
16/05/27 01:14:47.51 TGBFEs+a.net
ちょっと考えてみたけど、常道としては相手の言うことをひとまず肯定しつつ、コードをシンプルに保つメリットを
理解しているという基礎力をPRするか、他のレスにあるような機能追加のアィデアを幾つか挙げて応用力をPRするか
どちらかをその場の流れで返すくらいかなあ
実務的なコミュニケーション能力が試されていたんだよ

315:デフォルトの名無しさん
16/05/27 02:34:39.42 q2+au5cx.net
>>77
Borland C++ 5.5
Cygwin
が15年前の時点で0円なんだが
ということは20年前も0円だったのかな?
そう考えてみると20年前からプログラミングの敷居なんて
高くないんじゃないかね。
プログラマが不足してるとか言われてるけど日本終わりすぎでしょw

316:デフォルトの名無しさん
16/05/27 02:38:59.32 q2+au5cx.net
20年前だとバリュースターが中古で8万前後で売ってあったし
安価にプログラム十分できた時代だったんだよね。
何で20年前プログラムしなかったか本当後悔してるわ。

317:デフォルトの名無しさん
16/05/27 02:50:19.29 8Borfexq.net
20年前というとVBの時代か

318:デフォルトの名無しさん
16/05/27 03:12:12.17 2/vps+6r.net
20年前っていうと大昔の気もするけど
すでにwin95が発売済みなのか…

319:デフォルトの名無しさん
16/05/27 05:45:29.41 Q4WE5iSk.net
今ならタダ同然の中古ノートにLinuxでも入れて…で
Cの勉強も手軽に始められるけど、昔はやっぱり敷居が高かったろ。
マルチOSは元のWindowsまで起動不能になる危険があったから
専用に1台調達しなくちゃいけなかった上に、PC自体も高価だった。
Linuxの導入にも手間がかかった。
Windowsで簡単に使えるLSI-C試食版は本当にありがたかったね。
本屋で売ってる雑誌の付録フロッピーで手に入ったし。

320:デフォルトの名無しさん
16/05/27 06:52:30.71 TGBFEs+a.net
最近の途上国では高価なPCを買えないので、数百円から数千円程度のワンボードマイコン(ArduinoやRaspberryPiなど)を使って
プログラムを学んでいる若者が多いそうな(主にC言語とアセンブリ言語)
インドやアフリカあたりの一部地域では、プログラマは医師や弁護士なみのステータスだそうなので、サクセスドリームを
夢見る若者がかなりの人数輩出されてきており、将来的に現在の先進国の地位を脅かす存在になるだろうとか言われているな

321:デフォルトの名無しさん
16/05/27 07:16:07.78 TGBFEs+a.net
補足するとC言語が注目されている IoT の分野での話
JavaやC++などのそれなりのリソースが要求される分野では直接の影響は少ないだろうけど、それらの人材の一部が
C言語でのスキルを武器に大学ででも本格的にプログラミングを学ぶことを考えれば途上国の潜在能力は侮れない

322:デフォルトの名無しさん
16/05/27 07:17:23.25 ak6msHew.net
そういうポテンシャル高い奴は先進国に行って仕事するだろ

323:デフォルトの名無しさん
16/05/27 07:32:20.02 TGBFEs+a.net
先進国では総じてプログラマの社会的地位は低い
日本ではIT土方とまで言われる始末
先進国での下層階層と、途上国でのエリート階層ではどちらが居心地が良いか

324:デフォルトの名無しさん
16/05/27 07:53:05.91 aYCv3sEW.net
ブログにでも書いとけ。

325:デフォルトの名無しさん
16/05/27 13:37:38.08 q2+au5cx.net
というかLinuxとか今でも使わんだろ
プログラミングならwindowsで十分

326:デフォルトの名無しさん
16/05/27 13:42:31.76 zfNVlpD4.net
むしろプログラマの世界でLinuxに触ったことすらないというのは恥ずかしいレベル

327:デフォルトの名無しさん
16/05/27 13:49:46.35 S2Ksk7l1.net
これからはWindows10でbashもネイティブで動くから(震え声

328:デフォルトの名無しさん
16/05/27 14:15:22.27 q2+au5cx.net
あえて不便なLinux使う理由は?

329:デフォルトの名無しさん
16/05/27 14:21:12.33 fvoGjXwU.net
>>328
お前が不便だと思いこんでるだけ
Linuxに慣れ親しんだユーザーが無視できない数要るからcygwinやらWindowsにLinuxサブシステムが搭載されたりしてるんだよ

330:デフォルトの名無しさん
16/05/27 14:32:38.19 ftcnTlL4.net
プログラミング系の授業でWindowsを使う大学は少ない
そういうことですわ

331:デフォルトの名無しさん
16/05/27 14:33:44.62 zfNVlpD4.net
Microsoft が MS-D0S 作るのに利用したOS、のはず
MS-DOSがUnixにどこか似ているのも仕方がないね。
>XENIX(ジーニックス・ゼニックス)とは、マイクロソフトによって開発されたUNIXである。
>安価なマイクロコンピュータで動作することから、1980年代半ばから1990年代初頭にかけて
>大きなシェアを誇った。
>1981年の最初の発表時はVersion7ベース、後にSystem III、System Vに追随し、BSD由来の
>機能も積極的に実装した。AT&Tからライセンスを受けた、世界最初の商業ベースのUNIXでもある。

332:デフォルトの名無しさん
16/05/27 14:39:29.13 fvoGjXwU.net
むしろ未だにSJISなWindowsの方が不便なんだよなぁ

333:デフォルトの名無しさん
16/05/27 14:47:38.59 82PeGMWr.net
>>328
Visual Studio C++とかなんとかいうC言語にちょっと似てるだけの全く別な言語環境を除いたら
WindowsでC言語プログラミングってどうやってやるの?

334:デフォルトの名無しさん
16/05/27 15:24:59.01 q2+au5cx.net
cygwinとかVC++とかあるのにlinux使う理由は?
トラブル発生したときの解決法だってwindowsに比べて少ないんだし
フリーツールだってlinuxじゃ動かないこともある。
プログラマでも制御系じゃないならlinuxなんて使わないよ

335:デフォルトの名無しさん
16/05/27 15:27:38.65 fvoGjXwU.net
>>334
Windowsでまともなメモリリーク検出やメモリ破壊検出ツールある?

336:デフォルトの名無しさん
16/05/27 15:35:59.86 q2+au5cx.net
>>335
いやそれはコードレベルでチェックしたらいいじゃん…

337:デフォルトの名無しさん
16/05/27 15:44:50.72 82PeGMWr.net
>>334
トラブルが発生した時の解決方法が少ない?
そりゃそうだろうさ。解決方法なんざ1つありゃ十分だ。
そもそもWindowsと違ってトラブルなんざ発生しないしなぁ

338:デフォルトの名無しさん
16/05/27 15:48:17.93 fvoGjXwU.net
>>336
お前は他人が書いたコードをいつもメモリ破壊もリークもしてないかコードレベルで漏れなくチェックできてるの?

339:デフォルトの名無しさん
16/05/27 15:56:40.76 fvoGjXwU.net
それをツール使うより早くできるなら凄い才能だし、お前の言い分は正しいよ。
お前とお前並の才能を持つ人の中だけで。

340:デフォルトの名無しさん
16/05/27 17:30:50.16 D/wh61wT.net
マ板でおけ

341:デフォルトの名無しさん
16/05/27 17:33:00.72 mk39Rryz.net
前世紀から

342:デフォルトの名無しさん
16/05/27 18:16:16.54 KOeYCo11.net
libmadで『decoding error 0x0235 (bad main_data_begin pointer) at byte offset 0』というエラーが多発して困っています。
コールバック関数output()の戻り値をMAD_FLOW_CONTINUEにしているときは発生せず、MAD_FLOW_STOPにすると発生します。
必ず発生するわけではなく、decode()関数に入った1フレーム目では発生しません。
1フレーム+次フレームの冒頭8byteのデータは正常に取得しています。
多分使い方が間違っているのだと思いますがどう間違っているのかがわかりません。
どなたか教えていただけないでしょうか。
よろしくお願いします。

343:デフォルトの名無しさん
16/05/27 20:05:23.92 A4KBBTj7.net
>>335
DevPartner とか Purify とかいくらでもあるだろ

344:デフォルトの名無しさん
16/05/27 23:45:32.50 0lBzfo5D.net
>>343
どっちも個人では手が出ない価格だけどな

345:デフォルトの名無しさん
16/05/28 00:05:34.52 BPoJKFOK.net
貧乏人にはVisual Studioのデバッグ機能で充分

346:デフォルトの名無しさん
16/05/28 00:12:25.31 MRX8K1iF.net
メモリ破壊とか制御系の話じゃん。
俺はweb系だからメモリリークとは無縁だ。

347:デフォルトの名無しさん
16/05/28 00:15:38.44 IDSqcyq5.net
結論:Windowsは使う必要が無い

348:デフォルトの名無しさん
16/05/28 00:37:30.75 MRX8K1iF.net
動画見る時どうしてるのさ

349:デフォルトの名無しさん
16/05/28 00:38:15.61 S85rxOSy.net
C言語のスレで何言ってんだ

350:デフォルトの名無しさん
16/05/28 00:39:54.60 MRX8K1iF.net
エクセルは?

351:デフォルトの名無しさん
16/05/28 00:46:08.50 MRX8K1iF.net
エクセル連携できなうのはきつい。
窓は

352:デフォルトの名無しさん
16/05/28 05:09:58.54 C1gDZr5r.net
>>346
いつからC言語にGCが導入されたんだ?

353:デフォルトの名無しさん
16/05/28 08:18:11.92 O1fTNVgV.net
Linuxって単なるOSだろ
開発環境で重要なのは作業環境とビルド時間ですよ
マルチディスプレイでデュアルプロセッサ
これでいい

354:デフォルトの名無しさん
16/05/28 08:22:49.32 O1fTNVgV.net
Linuxは英語表記も多くてきつい
正直耐えられない
大学でLinux使うところ多いとかいうけどさ
東大がそんなイメージだが
他はソースあんのか?
俺も旧帝だったけどふつうにWindowsに好きなコンパイラ入れてみたいな
感じだったよ?

355:デフォルトの名無しさん
16/05/28 08:32:01.21 8Xha/C3F.net
英語に忌避感ある底辺はエンジニアには向いてない
英語苦手で屁理屈こねて旧帝に逃避した口か

356:デフォルトの名無しさん
16/05/28 08:55:16.95 O1fTNVgV.net
英語表記が業務上面倒ってだけなんだが?
宮廷に逃避とか意味不明

357:デフォルトの名無しさん
16/05/28 09:02:46.78 O1fTNVgV.net
まー大抵の企業じゃwindowsよ

358:デフォルトの名無しさん
16/05/28 09:30:12.68 8Xha/C3F.net
日本語表記だけでやってける開発なんて、今時存在しねーだろ

359:デフォルトの名無しさん
16/05/28 09:36:06.22 IDSqcyq5.net
 
変数名も「合計」とか「売上」って付けているんだろうな

360:デフォルトの名無しさん
16/05/28 09:39:19.92 C1gDZr5r.net
無暗に強がる奴は、大抵は逆にコンプレックスを抱えている
認めたくないが故の自己防衛

361:デフォルトの名無しさん
16/05/28 10:14:02.23 O1fTNVgV.net
単にLinuxが面倒なだけ
器用な人は使えばいいじゃん
それだけのこと
コンプレックスだの忌避だの大げさだな
まー食わず嫌いなところはあるよ俺は

362:デフォルトの名無しさん
16/05/28 10:15:04.46 O1fTNVgV.net
食わず嫌いなところはあるけど
ネットワークの中で仕事してて
自分の端末だけLinuxにして効率落とすようなことはしたくねーわな
Linux使う職場は少数のところが多いのは事実

363:デフォルトの名無しさん
16/05/28 10:26:54.31 IDSqcyq5.net
ネットワークの中にいて、
ネット上の複数のサーバーのメンテをやって
必要な時だけVM立ち上げWindowsを起動しています
こんな効率の良い環境って無いと思うけど

364:デフォルトの名無しさん
16/05/28 10:36:33.13 O1fTNVgV.net
>>363
開発職じゃないのならLinuxサーバのメンテナンスはあるんかな
俺はWindows製品開発してるからLinux使う必然性がまるでない

365:デフォルトの名無しさん
16/05/28 10:38:32.52 ks9oZ0SW.net
業界特有の専門CADが有ってファイルの受け渡しさえ専用の端末が必要だから
Windows一択。

366:デフォルトの名無しさん
16/05/28 10:40:46.87 IDSqcyq5.net
使っている人が気がつかないと言うだけかも
スマホも内部はLinuxだったりする
ChromeBookも売上げ伸ばしているけど、これもLinuxがベースだな
PC全体の販売数が落ち込んでいる中、これらの売上げは逆に伸びているね

367:デフォルトの名無しさん
16/05/28 10:46:24.29 ks9oZ0SW.net
NuGetにOSSの移植を進めてほしいよね。
実のところ、そういうことでLinuxが滅びていくと思う。

368:デフォルトの名無しさん
16/05/28 10:55:42.99 kHgsDhCP.net
IT系の技術職でプログラマ板に出入りする人が
ここまでUnix系OSを嫌う意味がわからない。
仕事になっているのか?

369:デフォルトの名無しさん
16/05/28 10:58:42.69 IDSqcyq5.net
一応、ム板
出入りしている人は開発系が多いと思うけど

370:デフォルトの名無しさん
16/05/28 11:00:16.42 C1gDZr5r.net
Windowsも夏頃の次期アップデートでBashシェルをネィティブサポートするようになる
内部のサブシステムにLinuxカーネルを丸ごと取り込むことになる予定


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