トップページ⇒tech
1001コメント293KB

C言語なら俺に聞け(入門編)Part 104

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2012/07/15(日) 10:28:33.18
C言語の入門者向け解説スレッドです。

★前スレ
C言語なら俺に聞け(入門編)Part 103
http://toro.2ch.net/test/read.cgi/tech/1341059858/
★過去スレ
http://makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000
★教えて欲しいのではなく宿題を丸投げしたいだけなら
  ↓宿題スレ↓へ行ってください。
C/C++の宿題片付けます 158代目
http://toro.2ch.net/test/read.cgi/tech/1339338438/
★C++言語については避けてください。C++対応明記スレへどうぞ。
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
  # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること。
  # サイズが大きい場合はアップローダ等を利用してください。
http://codepad.org/
http://ideone.com/
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
04494332012/07/29(日) 11:15:29.69
>>443
すいません。実は処理がi = 2だけじゃなく結構長いソースなので同化させちゃうと何度も呼び出さないといけなくなっちゃいます…

/* remain */ {
i = 2;
}

だけだとラベルがないので多数から参照できないお…、と言おうと思ったら>>444さんの会話の中で出ているジャンプ命令がありますねw

ですがすぱげってぃ〜状態になりませんか?ジャンプだらけだと…

やはりここは素直にmainルーチンのソトに置くのが妥当のようですね…。個人的に残念ではありますが
0450はちみつ餃子 ◆8X2XSCHEME 2012/07/29(日) 11:19:20.72
>>442
処理系の独自拡張を使うのは可能な範囲では避けた方がいいというのが一般的な意見じゃないかと思う。
特に関数内での関数定義はマクロで切り分けたりもしづらいタイプの機能なので移植性を損いがち。
更に言うならめったに使わない機能なので、変なバグが残っていたり将来的にサポートが打ち切られる可能性も少なくない。

といった欠点は指摘できるけど、利点と欠点を比べてどう判断するかは個別の状況によるトレードオフの問題。
04514332012/07/29(日) 11:29:41.03
>>448
はちみつ餃子さんありがとうございます。
C++で書いてもいいのですがとりあえずは>>449に書いた暫定対策で行きますw

クラス定義とかは初耳です。
C++は参考書買ってないので(X_x)...
勉強します…orz
0452デフォルトの名無しさん2012/07/29(日) 12:17:56.38
アルゴリズムはもう発見しつくされてるから
プログラミング業界って技術者がいらないの?
0453デフォルトの名無しさん2012/07/29(日) 12:22:02.91
> プログラミング業界って技術者がいらないの?
こういう質問に答えてくれるプログラムが開発されたらいらなくなると思うよ。
0454デフォルトの名無しさん2012/07/29(日) 12:37:48.51
>>452
こういうやつがいるから技術者が必要なんだよ
0455デフォルトの名無しさん2012/07/29(日) 13:07:29.51
技術者必要なんだけど、要らないやってずうっとやって来て、プログラムの作れない国になっちゃった。
0456デフォルトの名無しさん2012/07/29(日) 13:19:15.60
技術はほとんどが隠されて共有されないからね
世界各地で同じようなものを再発明しないといけないんだよ
だから技術者はいくらいても足りない
0457デフォルトの名無しさん2012/07/29(日) 14:24:05.39
C++のSTLは車輪の再発明をかなり抑えたという功績は大きい
スレチだけど

Cで書いてると毎度同じような事を何回も書いてすごい時間を無駄にしているような
気がする

ライブラリ化して一般化すればいいんだけどMATLABのような物を一人で作る事は
まず無理
0458デフォルトの名無しさん2012/07/29(日) 14:53:05.84
技術がない人たちのレスが続いています
あと少しのご辛抱です
0459デフォルトの名無しさん2012/07/29(日) 14:58:33.39
mallocってたとえば1000バイト確保しておいて10バイト分の入力のときにのこりの990バイトはその入力が終わった時点で開放されるんですか?
0460デフォルトの名無しさん2012/07/29(日) 15:03:15.97
>>458
あと少しってどれくらいですか
0461デフォルトの名無しさん2012/07/29(日) 15:10:28.74
>>459
されません
0462デフォルトの名無しさん2012/07/29(日) 15:14:20.34
>>459
free()してください
0463デフォルトの名無しさん2012/07/29(日) 15:14:41.76
あ、残りの990バイトが不要ってのならrealloc()でもいい
0464デフォルトの名無しさん2012/07/29(日) 15:33:58.22
レスありがとうございます。
やっぱりfree()しない限りは開放されないんですよね。
じゃああんまり動的メモリ確保の意義ってないんじゃないのかななんて思ったりするのですが・・・

と思ったらrealloc()なんてあるんですね。
ちょっといろいろ試してみます。
0465デフォルトの名無しさん2012/07/29(日) 15:35:13.40
>>457
Cでそういう有名なライブラリってglibc以外になんかある?
JavaとかC#やってから戻ってきたら文字列処理が
改めてめんどくさいと感じた
0466デフォルトの名無しさん2012/07/29(日) 16:36:21.13
ないよ
0467デフォルトの名無しさん2012/07/29(日) 17:07:47.61
>>465
CでSTLやるのあったやん
templateないのにどうやってジェネリックやってんのか知らんけど

http://cstl.sourceforge.jp/

ようやるわ
0468デフォルトの名無しさん2012/07/29(日) 17:09:38.39
>>464
>動的メモリ確保の意義ってないんじゃないのか
いやいや、これが非常に便利なんですよ。おいおい理解が深まると重宝しますよ。楽しみにしてください。
0469デフォルトの名無しさん2012/07/29(日) 17:15:55.06
>>467
ジェネリックってなに?
0470デフォルトの名無しさん2012/07/29(日) 17:25:18.28
ゾロのことじゃね?
0471デフォルトの名無しさん2012/07/29(日) 17:26:39.41
>>469
あれC++のtemplate知らんの?
例えばint与えるとint用の比較演算子、代入演算子、コピーコンストラクタを生成
double与えると以下同文
class与えると以下同文

std::sort()とかstd:copy()使うとqsort()とかmemcpy()より速い事があるっしょ?
0472デフォルトの名無しさん2012/07/29(日) 17:30:50.25
頑張ってるけどCでやる意義が不明。なにかいいことある?

> vector
> インデックスによる要素のランダムアクセスが可能。
そんなバカなと思いつつ、ワクワクしてみて、やっぱりな。
0473デフォルトの名無しさん2012/07/29(日) 17:43:48.32
Cはそういう楽さを犠牲にしてパフォーマンスだしたいときに使うんやろ
0474デフォルトの名無しさん2012/07/29(日) 18:20:55.88
>>467
多分生成的マクロだろう。 ## で識別子同士をひっつけるとか、いろいろ。
0475デフォルトの名無しさん2012/07/29(日) 18:40:19.36
■嫌いな国ランキング 2012
http://japaneserank.enq1.shinobi.jp/comment_record/101289/


■1位 韓国 24871票
■2位 中国  614票
■3位 北朝鮮 203票

■総投票数 25982票

0476デフォルトの名無しさん2012/07/29(日) 20:15:22.13
ネトウヨ王に、俺はなる!まで読んだ。
0477 ◆QZaw55cn4c 2012/07/29(日) 23:33:13.75
>>300
http://toro.2ch.net/test/read.cgi/tech/1340976913/670

>>302
まだまだですね。
0478デフォルトの名無しさん2012/07/30(月) 00:01:38.20
>>464
>じゃああんまり動的メモリ確保の意義ってないんじゃないのかななんて思ったりするのですが・・・
動的メモリ確保の意義は、そのメモリが確保されている期間が、静的変数、auto変数と異なっている
ところにある。

静的変数:プログラム開始から終了まで(ユーザプログラム的には最初から最後まで)
auto変数:ブロックに入ってから出るまで
動的変数:mallocされてからfreeされるまで

主にauto変数と違ってfreeするまでずっと残っている点が利点
→逆にメモリリークが怖いわけだが、、、。
0479デフォルトの名無しさん2012/07/30(月) 06:23:35.33
反原発だからコリアの人々と船出しよう山本太郎もいるよ!←意味がわからないし、何故コリアwwwwwwww
http://engawa.2ch.net/test/read.cgi/poverty/1343579821/


PEACE&GREEN BOAT 2012 開催! −いま、コリアの人々と船出しよう
今年12月、4年ぶりにPeace&Green Boatが出航します。テーマは「脱原発」。
日韓3ヶ所の原子力発電所を訪れ原発の「いま」を見つめ、
原発立地地域の人々との交流を通じて「脱原発」を進めるために必要なことを考えます。

旅をより充実したものへとナビゲートしてくれるのが水先案内人の皆さん。
PEACE&GREEN BOAT2012には多彩な水先案内人の方々が参加予定です。
原発のない社会に向けて、共に各地をめぐり語り合います。(※順不同・敬称略)
アイリーン・美緒子・スミス (グリーン・アクション代表)
鎌田慧 (ルポライター)
田中優 (環境活動家、ap bank監事)
古市憲寿 (社会学者)
松田美由紀 (女優・写真家)
宮台真司 (社会学者)
山本太郎 (俳優)

[魚拓]
http://megalodon.jp/2012-0726-2316-13/www.peaceboat.org/cruise/pg2012/index.shtml
http://niceboat.org/10/s/10ko323392.jpg
または
http://i.imgur.com/lY0nX.jpg

[どうしても直接踏んでソースを確認したい人は]
http://www.pbcruise.jp/cruiseList/peacegreen/index.html
http://www.peaceboat.org/cruise/pg2012/index.shtml
0480デフォルトの名無しさん2012/07/30(月) 08:22:35.19
ここって入門だというのに見てたら随分と初心者に優しくないのね
やっぱ専門板だとこうなっちゃうのかな
なにかトラウマみたいなことでもあったの?
0481デフォルトの名無しさん2012/07/30(月) 10:41:50.30
C言語のソースコード検索したら標準関数じゃない関数がいっぱいあるけど
あれは何なの?

0482デフォルトの名無しさん2012/07/30(月) 10:47:11.30
>>481
ヘルパ関数(下請け関数)だろ
そんなの実装によっていくらでも入ってる
C++だとprivateにされちゃって呼び出せないだろうけど

#define private public
0483デフォルトの名無しさん2012/07/30(月) 11:10:10.73
C#じゃなくてCを使う理由を挙げてください
0484デフォルトの名無しさん2012/07/30(月) 11:16:00.57
C++ならともかく、それはC#を知らないからじゃね?
0485デフォルトの名無しさん2012/07/30(月) 11:24:19.47
C#のライブラリもCで実装された処理を呼び出している
C#プログラマなんてのは表面でCのプログラムを呼び出してるだけのカスでしかない
0486デフォルトの名無しさん2012/07/30(月) 11:49:37.58
javaで採用されている機能だけでC++を使いCのライブラリを使う。
0487デフォルトの名無しさん2012/07/30(月) 11:59:49.95
Cがわからんから聞いてんだろ
0488デフォルトの名無しさん2012/07/30(月) 12:01:44.48
Cのライブラリもアセンブラで実装された処理を呼び出している
Cプログラマなんてのは表面でアセンブラのプログラムを呼び出してるだけのカスでしかない
0489デフォルトの名無しさん2012/07/30(月) 12:05:10.85
アセンブラのライブラリも機械語で実装された処理を呼び出している
機械語プログラマなんてのは表面で電子回路のプログラムを呼び出してるだけの半田ごてでしかない
0490デフォルトの名無しさん2012/07/30(月) 12:17:05.22
一生やってろ
0491デフォルトの名無しさん2012/07/30(月) 12:31:16.96
>>480
・それ入門レベルか?
・そんなもん、その人次第だろ…
・C言語の質問じゃねーし…
・まず日本語初心者や人間初心者を卒業してくれ
・流石にパソコン初心者やネット初心者はな…
・2chやプログラム板は初めてか?力抜けよ

ってな質問には相応の返答しかつかんが、その辺は加味してログ読んでる?
まあ、実際荒れてることもあるけど(夏休みだし余計にな)それはそれだからな
0492デフォルトの名無しさん2012/07/30(月) 12:39:46.09
>>483
C#・・・Windows専用に特殊にカスタマイズされたJavaのような言語
Windows専用だけあって(Monoのようなプロジェクトもあるがそれは別)
Windowsと非常に相性が良く、文法面では既にJavaをしのぎ、大抵の
GUIアプリケーションを多分現存する言語の中では最速で組み上げる
JITコンパイラ内蔵なので動作が意外に軽い

Java・・・マルチプラットフォームを売りにしているが、Windows上で動かす
には分が悪い
JITコンパイラを後付けしたせいかクライアントJREではホットスポットJITが
仇になって動きが重い
C#よりはるかにもっさり感じる
サーバーJREは起動が遅いが速度は速い
今や文法面でC#を追い掛ける奇妙な立場

C・・・最小限の機能しか揃ってないのでプログラミングは大変だが、高速な
ネイティブを吐き、しかもコンパクトなので組み込みに最適

という事で使用目的が違います
もちろん大規模GUIプログラムもCで書かれています
プログラマは地獄を見ますが
0493デフォルトの名無しさん2012/07/30(月) 12:57:21.42
なんだ大規模GUIプログラムて。
今時そんなのあんのか?
0494デフォルトの名無しさん2012/07/30(月) 13:01:55.32
>>492
ざっくりわかりました,ありがとう.
ちなみにCの組み込みに最適と言うのは
アセンブリ動的にロードする(プラグ印を組み込ます)ような事にあたるのでしょうかね
0495デフォルトの名無しさん2012/07/30(月) 13:10:39.02
違います。
0496デフォルトの名無しさん2012/07/30(月) 13:15:43.19
今ネイティブでGUIならQtだろ
でもC++だからな
0497デフォルトの名無しさん2012/07/30(月) 13:40:12.24
>>482
違う

winmain関数とか
見たことなかった。
0498デフォルトの名無しさん2012/07/30(月) 13:44:19.01
_tWinMain()
0499デフォルトの名無しさん2012/07/30(月) 13:52:29.93
>>497
メッセージループでぐぐれカス
0500デフォルトの名無しさん2012/07/30(月) 13:55:09.31
>>499
winMainは何言語なんですか?
0501デフォルトの名無しさん2012/07/30(月) 14:13:13.72
WinMain()でググレカス
0502デフォルトの名無しさん2012/07/30(月) 14:16:09.98
MSのコンパイラなら CRT0.C 見れば
0503デフォルトの名無しさん2012/07/30(月) 14:21:00.74
すいません、VBをちょっとしかかじったことないんですが
C言語のA<<3とかの<<って
どういう意味なんですか?
0504デフォルトの名無しさん2012/07/30(月) 14:22:52.49
その程度、入門書読んでから質問しろ
0505デフォルトの名無しさん2012/07/30(月) 14:29:43.34
本持ってないんですよー
ググっても<<は無視されて検索されるし
ほんとおねがいします
0506デフォルトの名無しさん2012/07/30(月) 14:40:32.12
C言語 入門
Goooogle
0507デフォルトの名無しさん2012/07/30(月) 14:49:19.39
そんなつれないこと言わずに
じゃあ芸能界で例えてください
0508デフォルトの名無しさん2012/07/30(月) 15:01:10.41
シフト演算子
これで検索できるだろ。
0509デフォルトの名無しさん2012/07/30(月) 15:08:34.53
>>503
Aを8倍する
0510デフォルトの名無しさん2012/07/30(月) 15:16:14.01
ttp://ideone.com/FG5js
0511デフォルトの名無しさん2012/07/30(月) 15:42:29.43
>>508
理解できますた!
C言語簡単っすね^^
0512デフォルトの名無しさん2012/07/30(月) 16:03:47.81
簡単でしょ
馬鹿にでも理解出来る言語、それがC言語
0513デフォルトの名無しさん2012/07/30(月) 16:08:28.35
Cは3日で把握出来る
向いてないド素人でも一月
それ以上かかるなら他の道を探すといい
0514デフォルトの名無しさん2012/07/30(月) 16:11:13.45
ポインタ関連を3日で習得できるなんて凄いわ。
ポインタ関連以外を3日で把握なら分かるけど。
0515デフォルトの名無しさん2012/07/30(月) 16:15:22.62
C言語は言語仕様がコンパクトで、演算子が多くて予約語が少ないため
文法を習得するのは確かに簡単

でもポインタに踏み込んだらなまじ他の言語よりも暗い迷路に迷い込むよな
0516デフォルトの名無しさん2012/07/30(月) 16:19:48.22
こわがりすぎー
0517デフォルトの名無しさん2012/07/30(月) 16:31:16.73
標準ライブラリが小さいから習得は早いね
0518デフォルトの名無しさん2012/07/30(月) 17:29:35.90
アセンブリの代わりだもん、
ポインタ関連が一番重要だ
8bitCPUでもいじくって
そのあとにCやれ
0519デフォルトの名無しさん2012/07/30(月) 17:35:19.93
個人で組み込み勉強したい場合ってどうしてますか?
製品基盤や専用のコンパイラなんて売ってるんでしょうか?
0520デフォルトの名無しさん2012/07/30(月) 17:37:43.83
もちろん売ってる。
0521デフォルトの名無しさん2012/07/30(月) 17:42:22.63
シャープのMZ-80Kでも買ってシコシコ叩けと言うのかw
それてもZ80を秋月電子で買ってハンダでジュウジュウと弄れと言うのか
0522デフォルトの名無しさん2012/07/30(月) 17:45:43.36
ロートルは来なくていいから
0523デフォルトの名無しさん2012/07/30(月) 18:10:08.04
いやはや全くその通りで、
まずはZ80のキットを購入してはんだごてを手に持ちながら
ハンドアセンブルくらいはした方がいい

そのほうがCPUとは何かを手に取るように実感できる
0524デフォルトの名無しさん2012/07/30(月) 18:18:09.01
ジジイはもう(゚�听)イラネ
0525デフォルトの名無しさん2012/07/30(月) 18:21:36.99
0番地から始まる配列の添え字と何が違うって言いたいんだ?
0526デフォルトの名無しさん2012/07/30(月) 18:30:01.11
いまどきZ80なんてやったって意味ねえよ
0527デフォルトの名無しさん2012/07/30(月) 18:56:30.54
PIC.、制御関連やるなら知って損はないじゃろ。
0528デフォルトの名無しさん2012/07/30(月) 19:07:37.85
PICやったことあるけど恐ろしくつまらなかった。
ままごとにも程がある。

マイコンって何なの?何のためにあるの?
ハードウェアを学ぶ前置き学習用?
パソコンじゃだめなん?
0529デフォルトの名無しさん2012/07/30(月) 19:11:22.04
あんたの身の回りにある電源や電池のいるものはたいていマイコン入ってるけど
0530デフォルトの名無しさん2012/07/30(月) 19:12:01.67
>>526
いまどきって何だよ
俺は趣味プログラマーなんだよ
世の中はこうなってるとかしらねーんだよ
0531デフォルトの名無しさん2012/07/30(月) 19:13:06.37
>>529
あ?パソコンの中身見たけど
あんなおもちゃみたいなブロック入って無かったよ?
もっと壮大なスケールの部品ばっかりだったしな!
0532デフォルトの名無しさん2012/07/30(月) 19:13:41.27
家電の組み込みとかのメーカー行きたいとか
自動車やら電車やら電気メーカー行くなら知ってて損ないんじゃないの。
秋葉原が設計と家電の聖地だった時代もあるのよ。
0533デフォルトの名無しさん2012/07/30(月) 19:18:46.94
Z80は知らなくていいだろ
時間の無駄
0534デフォルトの名無しさん2012/07/30(月) 19:20:59.23
時間の無駄って言ったら趣味のプログラムも・・・w
0535デフォルトの名無しさん2012/07/30(月) 19:26:02.37
H8やSH2などよりはZ80のほうがマシかもな。
0536デフォルトの名無しさん2012/07/30(月) 19:30:18.59
つかCPUのことか?
パソコソの蓋開けていじらねーだろどうせ
スレ違いなんだよ
電子機器スレ池
0537デフォルトの名無しさん2012/07/30(月) 19:46:20.77
組み込みやるなら情報工学科なんか進学せずに電子科電気科機械科に進んでメーカーに入れ
製品の仕様はハード屋が決めるし組み込みプログラマなんざハード屋の奴隷にすぎない
ソフト屋がどんだけ頑張ってもテレビの画質は向上しない
組み込みプログラマなんてのは表面でハードの機能を呼び出してるだけのカスでしかない
奴隷になりたくなかったらソフト屋が主導権を握れる分野に行くかソフトもできるハード屋を目指せ
0538デフォルトの名無しさん2012/07/30(月) 19:47:38.95
四年前に言って欲しかったよ
0539デフォルトの名無しさん2012/07/30(月) 19:53:21.16
米国 「日本はアジアの大国、司令官として憲法9条を破棄すべきだ!そして日本は核武装すべきだ!」
http://engawa.2ch.net/test/read.cgi/poverty/1343626083/


日米同盟強化へ 米国は9条改憲歓迎 「反対まったくない」

憲法第9条に基づき、日本は集団的自衛権を行使できないとの解釈が
日米同盟強化への大きな障害になるとする認識はいま米側で広範に強まり、
米国では、現在党派を問わず反対はなく、むしろ暗に歓迎するという姿勢が大勢となった。

92年にはヘリテージ財団が「米国は非公式に日本に改憲を促すべきだ」とする政策提言を発表した。
先代ブッシュ大統領も公式会見で、日本が改憲を求めるならば問題はないと言明した。

民主党リベラル派のトム・ラントス下院外交委員長は「日本が安全保障でも大国にふさわしい役割を
果たすために憲法を改正しようとすることを強く支持する」と述べた。

東京都の石原慎太郎知事が16日にワシントンでの討論会で憲法破棄を提唱したとき、
米側の討論者のリチャード・ローレス元国防副次官は「日本の憲法は確かに米軍占領時代の遺物であり、
日本はそれを変える権利も自由も有している」と述べ、日本の憲法改正にいまの米側には抵抗がないことを明示した。
http://sankei.jp.msn.com/politics/news/120425/plc12042507090004-n1.htm

米国FOX報道 " We Need a Nuclear Japan " 我々は核武装した日本を求めるべきだ
http://www.youtube.com/watch?v=0TjgNRfGbAE
0540デフォルトの名無しさん2012/07/30(月) 19:55:28.29
Z80はともかく、ビルドターゲットのアセンブラは知ってる方がいいね
Cで書いてると、期待どおりに生成されてるか(あるいはされてなくはないか)
逆アセンブルして確認することはよくあるから
0541デフォルトの名無しさん2012/07/30(月) 19:58:20.33
>>537
もっと言えば新製品開発とかなら理学部のほうがよくね?
理論を勉強するわけだから。

俺は工学部だから将来は高卒と仲良く工場勤務なんだろうな。
0542デフォルトの名無しさん2012/07/30(月) 19:59:34.43
Z80=パチンコ
0543デフォルトの名無しさん2012/07/30(月) 20:08:22.34
C使いはそっち系ってのがよく分かる流れだなw
0544デフォルトの名無しさん2012/07/30(月) 20:10:04.63
プログラマーの倍率って8倍くらいあるんだろ?
高嶺の花だわ

0545デフォルトの名無しさん2012/07/30(月) 20:10:22.37
90hはNOP
0546デフォルトの名無しさん2012/07/30(月) 20:10:54.88
ぼくちゃん物理系出身の土方です^^
0547デフォルトの名無しさん2012/07/30(月) 20:11:09.57
まぁ遠慮せんと好きなマイコン選べや。
http://akizukidenshi.com/catalog/c/cmicon/
0548デフォルトの名無しさん2012/07/30(月) 20:14:14.61
スーパーAKI−80
¥4,980
■ このスレッドは過去ログ倉庫に格納されています