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

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2011/02/06(日) 18:33:49
C言語の*入門者*向け解説スレッドです。
★前スレ
C言語なら俺に聞け(入門編)Part 77
http://hibari.2ch.net/test/read.cgi/tech/1295721606/
★過去スレ
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++の宿題片付けます 146代目
http://hibari.2ch.net/test/read.cgi/tech/1296387672/
★C++言語については避けてください。C++対応明記スレへどうぞ
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
  # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること
  # サイズが大きい場合は宿題スレのアップローダ等を利用してください
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
0153デフォルトの名無しさん2011/02/07(月) 23:11:43
>>151=◆QZaw55cn4c
0154デフォルトの名無しさん2011/02/07(月) 23:18:13
>>152
お前らのことなど眼中に無いから気にならないにょ♪
0155デフォルトの名無しさん2011/02/07(月) 23:19:36
お前らキチガイ好きだなw
0156デフォルトの名無しさん2011/02/07(月) 23:21:43
>>154=◆QZaw55cn4c
0157デフォルトの名無しさん2011/02/07(月) 23:27:38
おまえらまるで、ハンティングを楽しんでるライオンみたいだな!!
0158デフォルトの名無しさん2011/02/07(月) 23:29:58
>>154
お前が眼中になくてもこっちが迷惑してると言ってんだよ
本当に頭おかしいなお前!
とっとと精神科逝け
0159デフォルトの名無しさん2011/02/07(月) 23:30:12
キチとそれを馬鹿にしている馬鹿だろ
0160デフォルトの名無しさん2011/02/07(月) 23:31:12
   ○○○
  ○ ・ω・ ○ 
   ○○○
  .c(,_uuノ
0161デフォルトの名無しさん2011/02/07(月) 23:33:41
とびかうブーメラン
0162デフォルトの名無しさん2011/02/07(月) 23:34:15
他のスレの実況なんかどうでもいい
2ちゃんで顔が広いの自慢する奴とかキモすぎるし
0163デフォルトの名無しさん2011/02/07(月) 23:35:11
いきなりどうしちゃったの>>162
0164デフォルトの名無しさん2011/02/07(月) 23:41:07
急に◆QZaw55cn4cを擁護する人間が現れ始めたな
◆QZaw55cn4cのスレで◆QZaw55cn4cが論破されてからこの流れ
はてさて^^
0165デフォルトの名無しさん2011/02/07(月) 23:41:45
◆QZaw55cn4c はご覧のように極めて性格が悪く、リアルで友達が一人もいないので
ここに構ってもらいに来ているのです

しかもあまりの性格の悪さと耐久力の無さに、いい年をして未だに無職で、新しいPCを
買う金もないのでPen�V800MHzという時代遅れもいいマシンを使っています
0166デフォルトの名無しさん2011/02/07(月) 23:43:42
その証拠に◆QZaw55cn4cにSSE2ベンチマークについて質問してみるといいでしょう
答えられませんからwww
0167デフォルトの名無しさん2011/02/08(火) 00:22:08
モリタポ貯めてオンボロパソコンの買い替えを夢見るおっさん
かわいちょーwww
0168デフォルトの名無しさん2011/02/08(火) 05:16:19
>>76はfloatを引数に渡し、意図したとおりに出力される点において、なんら間違っちゃいない。
内部でdoubleに格上げされることを言及する場面でもないだろ。
Qなんとかがせっせとレスしてたみたいだが。
0169デフォルトの名無しさん2011/02/08(火) 05:17:42
とおもったら格上げされることについて噛み付いてんのか。俺盲目ですまん
0170デフォルトの名無しさん2011/02/08(火) 05:18:20
>>168
> ちなみに float f = 10 + 3; は、int から float に変換して正しく 13.0 が f に
> 入るけど、printf() の引数はその手の変換はしない。
> (フォーマット文字列が可変なんていうケースもあるから。)

イジメヨクナイ
0171デフォルトの名無しさん2011/02/08(火) 06:50:51
なんだこの流れは?と思ったらQなんとかが偉そうに誤解等かよ
printfの"%f"はdoubleにcastされるのか?
こりゃ新しいコンパイラが必要だなw
0172デフォルトの名無しさん2011/02/08(火) 07:45:51
↑こいつさいこーにばかw
0173 ◆QZaw55cn4c 2011/02/08(火) 08:01:21
>>171
昔からそうです。コンパイラを変える必要はないでしょう。この手の話は >>83 が一番わかりやすいと思います。

って書くと、楽しんでいただけますか?

>>149,150
最終的な回答は
http://hibari.2ch.net/test/read.cgi/tech/1295273862/71
http://hibari.2ch.net/test/read.cgi/tech/1295273862/74
http://hibari.2ch.net/test/read.cgi/tech/1295273862/78
あたりでしょう。これらに対する有効な回答はないみたいですね。

論破された、という意味では、
http://hibari.2ch.net/test/read.cgi/tech/1295273862/61
が決定的な有効打でした。これには参りました。

>>165
PenIII 866 です。
私の Let's note もそろそろ換え時でしょうね。B5ノートでリーズナブルなのがあれば使用感とともに教えていただけると嬉しいです。
0174デフォルトの名無しさん2011/02/08(火) 08:01:26
printf()などの可変個数引き数の場合やプロトタイプ宣言がない場合、引き数の型は
intよりも小さい整数型はintに、doubleより小さい実数型はdoubleにキャストされて詰まれる。

注意すべきは、intやdoubleよりも大きい型の場合。例えば、これは破綻する。
--
long double foo = 1;
int bar = 2;
printf("%g, %g", foo, bar);
--
前者はlong doubleをdoubleにキャストしてくれないし、後者は整数を実数にキャストしてくれない。

但し、プロトタイプ宣言がある場合は適切にキャストされる。従って、これも問題ない。
--
void func(float foo, long double bar);
func(1.2, 3);
0175デフォルトの名無しさん2011/02/08(火) 09:26:25
>>172
>>173
わざわざコテ外して暴言吐いてから書き込む◆QZaw55cn4cさんぱねぇッス!!!”!!!!!!!!
0176デフォルトの名無しさん2011/02/08(火) 09:30:29
>>173
MacBookAirでいいじゃん。
0177デフォルトの名無しさん2011/02/08(火) 09:31:56
>>173
リーズナブルって、金も無いのに買えるの?出来もしない事を言っちゃいけませんよ^^
0178デフォルトの名無しさん2011/02/08(火) 09:43:22
>>175
無理だろ。
MacBookAirの値段を500円で割ってみろよ…何年後になるんだよ
0179デフォルトの名無しさん2011/02/08(火) 09:45:55
>>173
リーズナブルわろたw
無一文でそのセリフは完全にギャグだろw
0180デフォルトの名無しさん2011/02/08(火) 09:48:25
乞食の見栄とか言うなよ。失礼だぞ!
0181デフォルトの名無しさん2011/02/08(火) 11:37:20
哀れな中年ニート ◆QZaw55cn4c
0182デフォルトの名無しさん2011/02/08(火) 11:39:39
http://www.bspeedtest.jp/みたいに速度を計る仕組みを教えてください
0183デフォルトの名無しさん2011/02/08(火) 12:38:14
◆QZaw55cn4c氏ね
0184デフォルトの名無しさん2011/02/08(火) 12:40:35
>>182
データを転送する。
時間を計る。
おわり。
0185デフォルトの名無しさん2011/02/08(火) 12:45:29
論破された、という意味では、
http://hibari.2ch.net/test/read.cgi/tech/1295273862/61
が決定的な有効打でした。これには参りました。
0186デフォルトの名無しさん2011/02/08(火) 12:47:43
173 : ◆QZaw55cn4c :2011/02/08(火) 08:01:21
>>171
ちんちんシュッシュッ

って書くと、楽しんでいただけますか?
0187デフォルトの名無しさん2011/02/08(火) 13:25:26
>>184
データって何を転送したらいいですか?
0188デフォルトの名無しさん2011/02/08(火) 13:26:39
>>187
いい加減スレ違い
0189デフォルトの名無しさん2011/02/08(火) 13:48:12
>>188
そうでしたか
どこで聞いたらいいですかね?
0190デフォルトの名無しさん2011/02/08(火) 13:55:08
>>189
http://hibari.2ch.net/test/read.cgi/tech/1295273862/
0191デフォルトの名無しさん2011/02/08(火) 15:16:13
>>189さん宿題をやってくださいって話ではないです
0192デフォルトの名無しさん2011/02/08(火) 15:20:22
まさに自問自答
0193デフォルトの名無しさん2011/02/08(火) 15:21:38
触らぬキチガイに祟り無しだよ
0194デフォルトの名無しさん2011/02/08(火) 15:25:25
>>193=◆QZaw55cn4c
0195デフォルトの名無しさん2011/02/08(火) 20:48:35
何かパタッと書き込みが止まったなw

自作自演してたのはほとんど◆QZaw55cn4cだったってオチ?
0196デフォルトの名無しさん2011/02/08(火) 21:18:46
◆QZaw55cn4cを擁護する書き込みは◆QZaw55cn4c本人によるもの
普段トリップを外さないのは他人を装いやすくするため
0197デフォルトの名無しさん2011/02/08(火) 21:34:34
Q、恥ずかしい過去(>>71>>76)を消すにはどうしたらいいですか?
A、スレッドを流せばいい

Q、連投すると荒らし扱いされる危険もあるのでは?
A、◆QZaw55cn4cをダシに使えばいい
0198デフォルトの名無しさん2011/02/08(火) 21:38:11
Q、さすがにバレバレでは?
A、突っ込む奴=◆QZaw55cn4cでおk
0199デフォルトの名無しさん2011/02/08(火) 22:00:13
インクリメントについて調べても理解できなかったので質問です
#include<stdio.h>
void main()
{
int a,b;
a = 2;
b = 2;
printf("a=%d , a++=%d , ++a=%d\n",a,a++,++a);
printf("a=%d \n",a);
printf("b=%d , ++b=%d , b++=%d\n",b,++b,b++);
printf("b=%d \n",b);
}

このプログラムで、aとbで数字が微妙に違うんですがなぜですか
順番が関係してるのはわかりますが詳細希望です
0200デフォルトの名無しさん2011/02/08(火) 22:01:27
>>199
>printf("a=%d , a++=%d , ++a=%d\n",a,a++,++a);
>printf("b=%d , ++b=%d , b++=%d\n",b,++b,b++);

こんな風に変数呼び出しに複数の引数を指定した場合はその評価順序については
規定がないから
0201デフォルトの名無しさん2011/02/08(火) 22:05:16
ぱぁぷぅ
0202デフォルトの名無しさん2011/02/08(火) 22:05:31
共通の変数使うなよ未定義になるから
0203デフォルトの名無しさん2011/02/08(火) 22:06:32
>>199
1行で複数の副作用が発生する場合、どの順番で処理するのかは環境依存。
その例で言えば、決まった結果になるのはaとbの最終的な値のみ。
0204デフォルトの名無しさん2011/02/08(火) 22:06:33
>>200
規定がないってことは環境によってもでてくる数値が違ってくる可能性があるってことですか
0205デフォルトの名無しさん2011/02/08(火) 22:08:51
>>203で出てました失礼
ありがとうございました
0206デフォルトの名無しさん2011/02/08(火) 22:11:38
1行って説明をそのまま額面どおりとっちまいそうな調子だな
0207デフォルトの名無しさん2011/02/08(火) 22:19:11
これかな
§6.5.2.2.
10 The order of evaluation of the function designator, the actual arguments, and
subexpressions within the actual arguments is unspecified, but there is a sequence point
before the actual call.
0208デフォルトの名無しさん2011/02/08(火) 22:19:15
>>199について
◆QZaw55cn4c、 コメントをどうぞ
0209デフォルトの名無しさん2011/02/08(火) 22:20:16
要するに引数の評価順序に依存する部分は関数呼び出しの外に出せって事だな
0210デフォルトの名無しさん2011/02/08(火) 22:41:08
197 :デフォルトの名無しさん:2011/02/08(火) 21:34:34
Q、恥ずかしい過去(>>71>>76)を消すにはどうしたらいいですか?
A、スレッドを流せばいい

Q、連投すると荒らし扱いされる危険もあるのでは?
A、◆QZaw55cn4cをダシに使えばいい


198 :デフォルトの名無しさん:2011/02/08(火) 21:38:11
Q、さすがにバレバレでは?
A、突っ込む奴=◆QZaw55cn4cでおk
02111992011/02/08(火) 22:47:06
>>206
「;」で区切るまでってことですかね?
>>209
関数呼び出しの外に出すっていうのは具体的にどう書くのですか
0212デフォルトの名無しさん2011/02/08(火) 22:49:44
#include<stdio.h>
int main(void)
{
int sum;
printf("数字を入力してください\n");
scanf("%d",&sum);
do
{
printf("%d",sum % 10);
sum = sum/10;
}
while(sum > 0);
return 0;
}

エラーでます・・・

parese error before"G"

Gなんて言葉ありませんよ?どういうことでしょう
0213デフォルトの名無しさん2011/02/08(火) 22:51:24
>>211
何怒ってんだよ。落ち着けってww

a++;
printf("%d",a);

みたいに分けろって事なんじゃね

どっちにしろprintf("%d %d\n",a++,a++);とかは
コンパイラによって評価の仕方が違うから理解する必要ない

というかやってはいけないと理解するべき
0214デフォルトの名無しさん2011/02/08(火) 22:51:52
>>212
日本語のところがあやしくね?
0215デフォルトの名無しさん2011/02/08(火) 22:53:04
>>212
エラー文を出てきたまま書いて下さい
0216デフォルトの名無しさん2011/02/08(火) 22:54:42
>>213
糞
0217デフォルトの名無しさん2011/02/08(火) 22:56:52
>>212
5行目が全角セミコロン
0218デフォルトの名無しさん2011/02/08(火) 22:57:31
マジだわろたw
0219デフォルトの名無しさん2011/02/08(火) 22:58:54
>>211
例えば
>printf("a=%d , a++=%d , ++a=%d\n",a,a++,++a);

↓

>int b = a++;
>int c = ++a;
>printf("a=%d , a++=%d , ++a=%d\n", a, b, c);
02201992011/02/08(火) 23:00:14
>>213
ごめん全然怒ってないんだけど、>>212の間違いかな。
なるほど、変数が同じときは一個一個分けて書くってことですか。
「,」で続けるのはやってはいけないって覚えておくことにします。
0221デフォルトの名無しさん2011/02/08(火) 23:02:11
>>219
あ、これじゃaの値が変わってしまうからaも保存しとかなきゃ

>int aa = a;
>int b = a++;
>a = aa;
>int c = ++a;
>printf("a=%d , a++=%d , ++a=%d\n", aa, b, c);
0222デフォルトの名無しさん2011/02/08(火) 23:09:38
「国民諸君、同志諸君、最後まで戦い続ける諸君に敬意を表する。すでに戦況は……私はベルリンと運命をともに……
しかしナチスは不滅である……たとえ米ソがいったんは勝つように見えようとも……。
そうなのだ、それは砂の上の勝利だ。彼らは世界の真の支配者ではないからだ。彼らの背後で操る者……ユダヤ……イスラエル……

世界的なユダヤ国際資本……。米ソは……おそらく1990年代ごろまで、対立と妥協を繰り返しつつ、世界を運営しようとする。
しかし所詮……ヨーロッパと日本、東アジア、イスラム諸国、インド……いずれ世界は米ソの手に負えなくなる。
そのときユダヤはみずから……に乗り出す。

哀れなアラブ4カ国……最終戦争。東西が激突するだろう。
ユダヤはそれに勝って全世界……なぜならそれが彼らの『旧約聖書』の約束だからだ。
黙っておけば必ずそうなる。しかし、私がそうはさせない。そのための手を、私は死ぬ前に打っておく。
それが最後の秘儀である。それによって人類はわれわれを受け継ぐことになる。
しかも見よ、そのあと、わがナチスの栄光、ラストバタリオン……。
それが真のハーケンクロイツの日だ。カギ十字の日だ。そのときラストバタリオンが現われる。ユダヤを倒す。
世界を支配する。永遠に……そしてナチスは甦る。真のヒトラーの時代が来る。必ずだ。
甦ったナチスの軍団とその強力な同盟がそのとき来る。宇宙からの復讐のカタストロフィとともに来るぞ。それからが真の究極だ。
真の終わりで真の始まり、真の淘汰、天国の地獄、21世紀のその年に、人類の驚くべき究極の姿……ではそれを明かそう。諸君、それは人類……」
0223デフォルトの名無しさん2011/02/08(火) 23:40:13
>>212
while(sum > 0);
これ怖い。
0224デフォルトの名無しさん2011/02/08(火) 23:49:41
>>223
どう怖いんですか?
0225デフォルトの名無しさん2011/02/08(火) 23:51:05
>>224
マイナスの値を入力したら下手をすると永久ループに飛び込む
環境依存だけど
0226デフォルトの名無しさん2011/02/08(火) 23:52:15
しかし-1を10で割ってマイナスになる環境はさすがにないだろ
0227デフォルトの名無しさん2011/02/08(火) 23:53:09
永久ループになったときってコンソールターミナルどうしたらいいんですか?
0228デフォルトの名無しさん2011/02/08(火) 23:54:38
>>227
OSによって全然違うからOSマニュアルみたら
Windows DOS窓ならCtrl+C
Windows GUIならタスクマネージャから落とす
0229 ◆QZaw55cn4c 2011/02/09(水) 00:02:56
>>220
関数の区切りの , (コンマ)はたしかに注意すべきということでそのとおりなのですが、
順次演算子のコンマ(というのもあります。)については、これは副作用完了点(sequence point) です。
順次演算子の左で発生した副作用(++ とか -- とか)は、順次演算子のところで確定します。
副作用完了点となるのは、&&, ||, ?:(三項演算子/条件式)と順次演算子のコンマです。

そういうものもあるということで、一応コメントしておきます。
0230デフォルトの名無しさん2011/02/09(水) 00:02:57
>>227
そのターミナルで Ctrl-C するか、別のターミナルから
ps や top で プロセス ID を探して、kill -9 <PID> する。
0231デフォルトの名無しさん2011/02/09(水) 00:04:19
>>229
氏ね
0232デフォルトの名無しさん2011/02/09(水) 00:04:25
>>229
そんなもん知っとるわカス
0233デフォルトの名無しさん2011/02/09(水) 00:05:21
229 : ◆QZaw55cn4c :2011/02/09(水) 00:02:56
>>220
関数の区切りの , (コンマ)はたしかに注意すべきということでそのとおりなのですが、
順次演算子のコンマ(というのもあります。)については、これは副作用完了点(sequence point) です。
順次演算子の左で発生した副作用(++ とか -- とか)は、順次演算子のところで確定します。
副作用完了点となるのは、&&, ||, ?:(三項演算子/条件式)と順次演算子のコンマです。

そういうものもあるということで、一応コメントしておきます。
0234デフォルトの名無しさん2011/02/09(水) 00:08:04
◆QZaw55cn4cはやっぱり精神状態おかしいよこいつ
何か一言いちゃもんを付けなければ気が済まないアホだなこいつは
0235デフォルトの名無しさん2011/02/09(水) 00:11:43
そんなに知識をひけらかしたいか
と言いたいところだけど、その「知識」も常識レベルだからそんなドヤ顔で書かれても寒いだけ
0236デフォルトの名無しさん2011/02/09(水) 00:14:04
おまいら本当に優しいんだなあ
単に暇なだけじゃこうまで突っ込みは出来ないよな
0237デフォルトの名無しさん2011/02/09(水) 00:15:16
突っ込みは◆QZaw55cn4cの独断場
0238デフォルトの名無しさん2011/02/09(水) 00:17:20
>>236
だって、大基地に群がるキチガイだからな
0239デフォルトの名無しさん2011/02/09(水) 00:18:01
>>236==>>238==◆QZaw55cn4c
0240デフォルトの名無しさん2011/02/09(水) 00:18:38
◆QZaw55cn4c糞すぎワロタ
0241デフォルトの名無しさん2011/02/09(水) 00:19:27
>>239==大基地に群がるキチガイ
0242デフォルトの名無しさん2011/02/09(水) 00:19:46
>>241==◆QZaw55cn4c
0243デフォルトの名無しさん2011/02/09(水) 00:20:30
わかりやすすぎる
◆QZaw55cn4cは頭に血が上ると見境が付かなくなる馬鹿ですね
0244デフォルトの名無しさん2011/02/09(水) 00:21:59
◆QZaw55cn4cは自分のスレで引きこもって金儲けでもしてろよ
0245デフォルトの名無しさん2011/02/09(水) 00:25:15
こいつ近い将来犯罪を犯しそうなタイプだよな
おーこわ
0246デフォルトの名無しさん2011/02/09(水) 00:31:53
基地外がいっぱい
0247デフォルトの名無しさん2011/02/09(水) 00:32:50
衒学的ってことだな
0248デフォルトの名無しさん2011/02/09(水) 00:34:02
正規分布にのっとった乱数がほしい
0249デフォルトの名無しさん2011/02/09(水) 00:48:35
◆QZaw55cn4cは糞
0250デフォルトの名無しさん2011/02/09(水) 01:01:41
void mem_cpy(void *dst,void *src,u_int size){
     char *p1 = *dst;
     char *p2 = *src;
     while(size--){
          *p1** = *p2++;
     }
}
基本的なソースはこういう形として,
こういう形で,エンディアンの問題を回避する方法ってある?
0251デフォルトの名無しさん2011/02/09(水) 01:03:45
>>250
C言語でないものはスレ違い
0252デフォルトの名無しさん2011/02/09(水) 01:05:16
>>250
エンディアンの問題って、何を「問題」だと思ってるの?

それによって解答は変わる。
■ このスレッドは過去ログ倉庫に格納されています