[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 05/09 13:42 / Filesize : 213 KB / Number-of Response : 830
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C言語なら俺に聞け(入門篇) Part 27



1 名前:デフォルトの名無しさん [2008/04/29(火) 09:44:57 ]
言語の入門者向け解説スレです。
・C++言語はスレ違いです。
・分からない事をなるべく詳しく書いて下さい。
・ソースコードを晒すと答えやすくなるかもしれません。
・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。

前スレ
C言語なら俺に聞け(入門篇) Part 26
pc11.2ch.net/test/read.cgi/tech/1206196600/
過去スレ
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++の宿題を片付けます 105代目
pc11.2ch.net/test/read.cgi/tech/1208268461/


757 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 02:16:27 ]
>755
忠告だが
その講義の教官の言うことは眉唾して聞いたほうがいい

教えてないことを聞くとかありえねー

758 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 02:56:17 ]
課題自体はすげー授業のそのまんま復習くせーし
話聞いてなかったんだろどうせ

759 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 02:56:17 ]
>>757
両方の言い分を聞かないと分からないぞ
ここで教官の言い分を聞く事はまずないだろうけど

760 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 02:57:06 ]
>>757
前半と後半が支離滅裂なんだがw

761 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 02:58:18 ]
>>760
日本語は難しいです

762 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 03:03:26 ]
>>760
日本語読めない人?

763 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 03:06:17 ]
課題なら別に教えてないことが出てきてもいいと思うけどな
小学校じゃあるまいし

764 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 03:08:53 ]
横槍だが 眉唾する という使い方がないんです、辞書を引いても分かるように。

765 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 03:11:29 ]
>>764
「眉に唾する」ならいいのかな?



766 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 03:13:52 ]
ttp://www.geocities.jp/tomomi965/kotowaza11/11-54-4.html

767 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 03:27:57 ]
下記の場合volatileがあるためValueを外部から書き換えるまでループを続けると思うのですが、

volatile ULONG Value; // レジスタ(外部から書き換えられる)

void main(void)
{
  Value = 0;
  while(Value == 0){ ←これ
    ;
  }
}

これを下記のようにポインタを経由すると最適化対象になってしまうのでしょうか?
(このポインタもvolatileをつける必要がある?)

volatile ULONG Value; // レジスタ(外部から書き換えられる)

void main(void)
{
  Value = 0;
  ULONG* pV = &Value;

  while(*pV == 0){ ←これ
    ;
  }
}

768 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 03:29:31 ]
>>767
volatile 修飾する必要があります

769 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 10:13:29 ]
>>767
volatileをつけなければ最適化対象になります。
が、最適化対象になるとValueを外部から書き換えるまでループを続けるという動作を必ずしなくなるわけではありません。
つまり、volatileをつけなくてもあなたの希望する動作をする可能性はあります。
つまり、volatileをつける必要があるとは言い切れません。

770 名前:「言い切れない」は詭弁だ mailto:sage [2008/05/15(木) 12:16:11 ]
>つまり、volatileをつけなくてもあなたの希望する動作をする可能性はあります。
それは普通、つける必要があると言いますね。

771 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 12:22:57 ]
↓必要条件とか十分条件とか言い出すヤツ

772 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 13:40:39 ]
|↑
++

ビルド毎に出力を確認すればおk てか、Cの話でなくなるが、テストで引っ掛けろ

773 名前:デフォルトの名無しさん [2008/05/15(木) 22:38:30 ]
プログラム知識0の俺がCを勉強しようと思うんだが
解説サイトと本どっちがいいの?
色々な掲示板みてたら両方とも良いって書いてたからわからなかった。

774 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 22:39:35 ]
じゃあ、とりあえずお金のかからない方法でやってみて
それで不満に感じたら本を買えば良いんじゃないかな

775 名前:デフォルトの名無しさん [2008/05/15(木) 22:49:12 ]
レスありがとう
その方法が一番いいかな〜
とりあえずググってサイトさがしてみる。
サイトって「C言語 入門」でググって上らへんのなら大丈夫だよね?



776 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 23:32:03 ]
本はだめな本があるから、本の紹介サイトを見たほうがいいぞ。


777 名前:デフォルトの名無しさん [2008/05/15(木) 23:39:22 ]
そうなんだ
まだ買わなくてよかった〜
ありがとう
それみて本選ぶよ

778 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 05:49:52 ]
本もそうだがサイトは特に多くのところを回った方がいい。
嘘を書いている、情報が古すぎる、環境依存なコード、誉められないコーディングスタイルetc...
あと、サイトにすることで有利な点は、疑問点があればここにアドレス張り付ければ一応質問できることかな?
書籍だと同じ本持ってる人間以外には内容をいちいち書いてもらわないと質問できないから。

779 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 09:21:08 ]
何を学ぶか?で選ぶ資料も違ってくる。
ソートに関しては、すでにどの手法が高速か分かりきっているが
教本によって記述が違っているものも。中には、あれ?って思うものも。

780 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 09:31:06 ]
宿題スレでHit and Blowのソースコードを書いてもらったものですが、
頭が悪いせいか理解しようとしても意味がよくわかりません。
誰か詳しい解説をお願いします。

kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6540.txt

781 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 09:32:00 ]
っつか、コードが悪い

782 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 10:38:15 ]
宿題スレはとりあえず提出できればいいやーって人向けで、
自分で理解するには向いてないと思う

つか>>780のソースは宿題スレではかなり親切な方だと思うけどな
一応コメントついてるし

783 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 11:46:34 ]
数当てだからといって、4桁の整数にこだわらずに
数字の文字4個の配列を使ってる。そこだろう

数字 + '0' <-> 数字の文字

理解するところまで宿題なんなら、ヒントだと思って考えてみるよろし

784 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 13:24:00 ]
>>780
何がわからないのか具体的に説明してくれないと解説のしようもない。

785 名前:デフォルトの名無しさん [2008/05/16(金) 14:41:36 ]
すみません。いきなりですが、本当に初心者なので分かりません。C言語では基本的に全て数値としてデータを格納すると聞きました。
ただ逆に数値(1〜9)を””で囲んで文字列とする場合、内部データは本来の数字にNullが付いた物でなく、ASCUコードで
あれば文字の1なら10進数の49(16進数の10X3)に変換されるという認識でよいのでしょうか?
又、普通の文字ならは該当する10進数・16進数に変更はなくNuLLが付くだけなのでしょうか?数値ま場合だけデータそのものが
例えば1なら実質先程言った49に変換されるという認識でよろしいのでしょうか?どうかご教授願います。



786 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 14:44:37 ]
16進ダンプとかって最近は見る機会無いのかな

787 名前:デフォルトの名無しさん [2008/05/16(金) 14:48:13 ]
>>786
Windowsでは見る機会がないでしょうねぇ〜〜〜禿藁
だからLinuxを使えとあれほどry

788 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 15:08:13 ]
>>785
C言語では(エスケープシーケンスを除き) ど ん な 文 字 も そのマシン上での文字集合に対応するデジタルな値として扱われる。
ASCII文字集合を使用しているすべてのマシンで、"1"は0x31 0x00で、" "は0x20 0x00である。
数字であろうと何であろうと扱いに差はない。

789 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 15:09:34 ]
linuxだと強制的に見なきゃいけない機会でもあんの?

790 名前:デフォルトの名無しさん [2008/05/16(金) 15:11:01 ]
ありがとうございました。Cはそなのですね。

791 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 15:11:26 ]
ntsd使うなり、IDEの16進メモリ表示モード使うなり
さすがにgdbに張り合ううつもりはないが、ntsdは結構遊べる

792 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 15:12:46 ]
なお、Cの話をする際において安易にNULLという単語を使うべきではない。
CにおいてNULLと書いた場合通常はヌルポインタ定数を表すマクロNULLのことをさす。
ASCIIのNULのことを言う場合にはNULまたはヌル文字と表記するべきである。

ついでに、ASCIIは A.S.C.I.I.(American Standard Code for Information Interchange) であってASCUではない。

793 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 15:14:25 ]
>>789
mpeg とかかまってると, Windows でも強制的に見なきゃいけない機会は結構あるが…


794 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 15:14:32 ]
>>792
お前が出直して来い

795 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 15:35:15 ]
俺がNULって書いたらナルだろーが!
とおっしゃりたいのですか?

どっちでもいいじゃん



796 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 15:42:56 ]
呼び方なんてどうでもいいよ
区別がついてないのはお前の方じゃねーかって話

797 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 15:44:35 ]
何を指摘したいのかを明確に挙げずに文句つけても話が混乱するだけだぞ
煽りたいだけならよそでやれ

798 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 15:46:11 ]
>ASCIIのNUL
……

799 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 15:46:33 ]
なんかまた変な奴が沸いたな。
相手すんなよ、つけあがるから

800 名前:デフォルトの名無しさん [2008/05/16(金) 15:47:50 ]
Windows使ってるとNULLとNULの違いすら分からないようだな。
駄目だこりゃ。

801 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 15:49:15 ]
なんだ
またいつものアレか

802 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 15:54:28 ]
>>800
違いですかwww

803 名前:デフォルトの名無しさん [2008/05/16(金) 16:06:33 ]
ニート・ヒキは金どうしてる?
yutori.2ch.net/test/read.cgi/news4vip/1210919591/


1 以下、名無しにかわりましてVIPがお送りします。 [] 2008/05/16(金) 15:33:11.35 ID:2pPh1TlA0

自分でソフト作って株の売買自動でやらせてる

種が50万しかなかったし初めて2月目だから
一日三万がいいとこだし金おろせないけど
まあ親元だし食ってくのには困らんので満足してる


しかし欝だ・・・やることなくて寝てばっかり・・

804 名前: [2008/05/16(金) 16:28:57 ]
microsoft visuar studioで
*印を出力するプログラムを作成してください
整数型の変数nに7〜15の値を設定する
変数nの値により,以下のような表示を行う(n=7の場合)

for文(またはwhile文)とif文の組合せである
カウンタ変数が偶数か奇数かで判断

printf文は
printf(“n=%d\n”,n); // nの値を出力
printf(“ “); // 空白を出力
printf(“*”); // *印を出力
printf(“\n”); // 改行する
だけを使用する




n=7
* * * *
 * * *
* * * *
 * * *
* * * *
 * * *
* * * *

上の条件でこういう風に表示するプログラムを書いてください



805 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 16:37:31 ]
宿題なら宿題スレへ



806 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 16:38:00 ]
>>804
>>1

807 名前:780 mailto:sage [2008/05/16(金) 18:32:38 ]
>>782
>>783
>>784
ありがとうございました。

808 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 10:33:01 ]
float型やdouble型の内部構造がいまいちよく理解できないんだが、どっかわかりやすいとこない?
最上位ビットが符号で使われるのはわかるんだけど、それ以外がよくわからない。
小数点以下の数値をどうやって保持してるの?

809 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 10:42:45 ]
>>808
ja.wikipedia.org/wiki/IEEE_754
実装がこれに準拠しているかどうかは別問題

810 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 11:12:45 ]
>>809
ありがとう。指数表記を使ってるのがわかって疑問が解けました。

811 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 11:40:19 ]
typedef struct{
double x, y;
}vector_t;

typedef struct{
vector_t vector;
double length;
}edge_t;


edge_t *edge_alloc(char *filename, int *edge_num)
{
int i, point_num;
vector_t *point;
edge_t *edge_area, *edge;
FILE *fp;

    途中略

edge_area=malloc(sizeof(*edge)*(point_num+1));
edge=&edge_area[1];

edge[-1]=edge[point_num-1];

*edge_num=point_num;
return edge;
}

このソースなんですが、edge[-1]とかいう場所に代入していいんですか?

812 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 12:17:49 ]
edge[-1] == (&edge_area[1])[-1]

813 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 12:32:03 ]
えっと〜


814 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 12:36:28 ]
edge[-1] == edge_area[0]

815 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 13:01:27 ]
edge[n]と書くと、配列edgeのn番目、みたいに読める。
しかし、配列の中(最初かもしれないし、最後かもしれないし、途中かもしれない)を
指し示すポインタedgeの、そっからn番目、とも読める。

もちろん、edge[-1]の存在は、ちゃんと担保されてないといけないけど、
文法的にというか、読み方的には、そういう意味

てことで、>>814



816 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 13:07:28 ]
edge[-1] == *(egde - 1)
なので文法的に問題は無い

大丈夫かどうかは指してる先がちゃんとあるのかの問題になる

817 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 13:10:36 ]
値を代入してるわけではないんですか?

818 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 13:14:13 ]
代入してる場所は代入しても問題ない場所。
上の数レス読んで理解できないならあきらめろ。

819 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 13:14:29 ]
ああそうだ もしかしてと思ってエスパーしてみるが、

edge=&edge_area[1];

の部分で、配列のコピーが発生したりは、してないからね

強いて言うなら、位置情報を代入している。それも、「一個先の位置」ね。

820 名前:デフォルトの名無しさん [2008/05/17(土) 13:18:52 ]
4,5,6進数の九九を作ってください。

4進数なら
1 2 3
1 1 2 3
2 2 10 12
3 3 12 21
こんな感じです。お願いします。

821 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 13:19:31 ]
>>820
宿題スレへどうぞ

822 名前:デフォルトの名無しさん [2008/05/17(土) 13:20:36 ]
4,5,6進数の九九を作ってください。

4進数なら
1 2 3
1 1 2 3
2 2 10 12
3 3 12 21
こんな感じです。お願いします。

823 名前:デフォルトの名無しさん [2008/05/17(土) 13:22:05 ]
なんか九九表がうまくできないですけど

824 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 13:22:10 ]
  1 2 3
1 1  2 3
2 2 10 12
3 3 12 21
こうしたいんだろ?
それはともかくとっとと消えろよ

825 名前:デフォルトの名無しさん [2008/05/17(土) 13:22:36 ]
今日から、パッケージソフトを作るための勉強をします。
何の言語を勉強すれば、よろしいでしょうか?
個人的には、C++がいいかと。
求人案件などを見ると、求人が多いから。

(ちなみに、どんなソフトを作ろうとしているかというと。
動画編集ソフトを作ろうとしています。)



826 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 13:23:43 ]
>>825
スレタイを百回音読して涙を流しながら去れ

827 名前:デフォルトの名無しさん [2008/05/17(土) 13:25:41 ]
>>826
さーせn

828 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 15:46:46 ]
Borland BCC32(フリー版)を使ってますが、リアルタイムキー入力を使いたいのですが
その関数名を教えて下さい (BasicのINKEY$見たいな物)

829 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 16:29:04 ]
>>828
GetAsyncKeyState






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<213KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef