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


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

【初心者歓迎】C/C++室 Ver.47【環境依存OK】



1 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 15:14:51 ]
エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。
※sage禁止です(と代々スレに書いてありますが自己判断で)。
【前スレ】
【初心者歓迎】C/C++室 Ver.46【環境依存OK】
pc11.2ch.net/test/read.cgi/tech/1198755167/
【アップローダー】(質問が長い時はココ使うと便利)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm

231 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 16:10:07 ]
>>230
桁が足りなくて丸められてたのですね
ありがとございました

232 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 17:56:54 ]
丸められていたというか表示されていなかっただけかと

233 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 18:06:26 ]
>表示されていなかっただけかと
処理系依存かどうか知らないけど、printfって小数点以下表示桁で四捨五入しないっけ?

234 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 18:14:01 ]
>>233
ですよねぇ
>>232
言われて
気になって確かめてみました

235 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:08:00 ]
>>233
%fって%.6fと同じだからこれで合ってるんじゃないの?

236 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:17:53 ]
丸めるか切り捨てるかの話だろ

237 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:23:27 ]
>>236
切り捨てって丸めの一種なんだけどね。

238 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 21:37:55 ]
>>235
あぁいや、大したこっちゃないんだけど、四捨五入した結果だったら、
表示されてないだけというより丸められてるって方があってるかな、と思っただけ。
実際問題じゃどっちでも良いかな

239 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 22:07:23 ]
Visual Studio Std 2005 で Win32API を勉強中です。

ウィンドウを表示して、その中にMoveTo や LineTo で線を書くことはできました。
そこで、その書いた線上にマウスを持って行くと
マウスポインタが変更できるようにしたいのですが、
どんな感じに作っていけばいいのでしょうか?

マウスの位置を調べる関数があるのですが、
マウスが動くたびにその関数を呼び出して、
その値を、先ほど書いた2点間の線上の一次方程式に入れて判断していくとか、
そんな感じになるのでしょうか?
それとも、もっと簡単な方法とかあるのでしょうか。

教えてください。




240 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 22:14:37 ]
>>239
Win32APIスレの方がいい気もするが。

WM_MOUSEMOVEのlParamを使うなりしてカーソル位置を取得。
特定の方程式があるなら、それに当てはめればいいし、
GetPixel()を使って色で判別とかも出来る。


241 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 22:43:31 ]
>>240

色で判別というのもありますね。
いずれにしても、簡単にはいかないみたいですね。

Win32API スレにも質問してみます。

ありがとうございました。

242 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 22:48:03 ]
後のマルチである。

243 名前:デフォルトの名無しさん [2008/01/19(土) 23:43:44 ]
凄く簡単な質問で、自分で確かめろって感じなんですが、
今実行できる環境がないので、教えてもらえませんか。

<Head.h>で以下のように変数を宣言して、
int var;

<Main.cpp>にインクルードしたら、
#include "Head.h"

何もしないでも<Main.cpp>でvarは使えますか?
それとも<Main.cpp>で"extern int var;"としないといけないんですか?

244 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 23:47:58 ]
じゃ俺も試さないでレスw

多分何もしないで使えるはず。

245 名前:243 mailto:sage [2008/01/19(土) 23:52:22 ]
>>244
ありがとうございます。
やっぱ何か心許ないので、後で実験してみます。
すいません。

246 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 00:01:11 ]
>>229
%fなんか使わずに%gを使っとけ。

247 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 00:03:52 ]
%e との比較をしたい以上、%f の方が適切じゃね?

248 名前:243 [2008/01/20(日) 00:09:50 ]
すいません、なんか混乱してきたのでもう一度質問です。
------------
<Head.h>
extern int var;

<Head.cpp>
int var;
------------
<A.h>
#include "Head.h"

<A.cpp>
#include "A.h"
------------
<B.h>
#include "Head.h"

<B.cpp>
#include "B.h"
------------
これで<A.cpp><B.cpp>共に同じvarを使えるでしょうか?

249 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 00:18:25 ]
>>248
リンケージと宣言、定義について勉強しろ



250 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 09:29:33 ]
>>248
使える。

>>249
もしかしたらそれ以前に、#includeの意味がわかっていない気がしないでもない。

251 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 11:03:58 ]
私にも力が出せるかな
本気でがんばるから見ててね
キミらしく夢を語る瞳 宝石だってかなわない

(いちばん) 好きなことで (進める) 道を探そうよ
「大人になることはさみしいことさ」なんて逃げないよ

Overwrite 輝きながら あしたを塗り変えるため
最新Dream ステキな毎日を重ねたいだけ
一緒に行こう!

とまらない想いがあるってのに
誰にも言えずに温めてた
これからは話してみたいんだ
キミに会ってわかったよ

(ときどき) 確かめ合う
(希望が) 色あせぬように
「喜びをふたりで何倍にもしよう」いまを楽しくね

Overdive 広がる世界 あしたは無限に続く
最高Trance トキメキながらまた あふれるリズム
何でもできる!?

Overdive 広がる世界 あしたは無限に続く
最高Trance トキメキながらまた あふれるリズム
何でもできる!?
Overwrite 輝きながら あしたを塗り変えるため
最新Dream ステキな毎日を重ねたいだけ
キミの笑顔と 一緒に行こう!

252 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 17:58:42 ]
>>249
>>250
ありがとうございます。やってみたらできました。

253 名前:デフォルトの名無しさん [2008/01/20(日) 18:04:28 ]
メモリ解放というのをいつやればいいのか分からないんですが、
例えば下の場合、methodを抜けたら解放しなくても、
bufは自動でなくなるんでしょうか?

void method(){
char buf[100];
int i = 123456;
sprintf(buf,"%d",i);
}

254 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 18:06:07 ]
無くなる。
解放する必要があるのは malloc やら new やらしたやつ

255 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 18:14:19 ]
ありがとうございます。

256 名前:デフォルトの名無しさん [2008/01/20(日) 18:42:36 ]
サーセン

「+=」
とか
「-=」
ってどんな時使うんですか?(>_<)

257 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 18:44:09 ]
>>256
A = A + 2
でAを2回書くのがめんどくさくなったとき。

258 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 18:44:09 ]
a = a+10;
a += 10;

259 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 18:49:12 ]
普通は a = a + 10; なんて書かない。
BASIC や FORTRAN あがりの人が書く程度。



260 名前:デフォルトの名無しさん [2008/01/20(日) 22:48:50 ]
最近のVisual C++ではfopenを使うと代わりにセキュアなfopen_sを使えと警告が出るらしいのですが、
fopen_sはfopenに比べてどうセキュアなのでしょうか。

261 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 22:58:48 ]
>>260
fopenとfopen_sのソースでも見比べたら?

262 名前:デフォルトの名無しさん [2008/01/20(日) 23:04:45 ]
>>261
どこにあるんですか?

263 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 23:07:54 ]
>>262
デバッガで動かして、fopenの中にF11キーで入ればいいだろ。
そうすりゃ分かる。

264 名前:デフォルトの名無しさん [2008/01/20(日) 23:10:58 ]
>>263
最近のVC++は持っていません。

265 名前:デフォルトの名無しさん [2008/01/21(月) 00:16:01 ]
も、もうだめだ。

さよなら単位

266 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 00:37:07 ]
さよなら(^o^)/~~

267 名前:デフォルトの名無しさん [2008/01/21(月) 00:40:28 ]
Cプログラマ必須テキスト!

mori.eco.to/

268 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 00:48:51 ]
>>267
経歴が恐ろしくしょぼいなwwwwwwwwwww

269 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 00:51:04 ]
>C++未経験ながら、1人でC++の10万行のソースコードの保守及び、3万行の開発を行った。

突っ込みどころはここですか?www



270 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 00:55:57 ]
>>260
s付いてるほうは受け渡し用のバッファサイズを指定するようになった。
バッファサイズを超えては読まないようになってる。

271 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 00:58:32 ]
>>270
fopen_sもか?

272 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 01:04:11 ]
errno_t fopen_s(
 FILE** pFile,
 const char *filename,
 const char *mode
);

形そのものが違うじゃん

273 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 01:12:41 ]
悪い悪い、fopen_sの場合は
パラメータの検証が行われます。
pFile、ファイル名、またはモードが null ポインタの場合には、
「パラメータの検証」に説明されているように、これらの関数は
無効なパラメータの例外を生成します。

あとUnicode のファイル ストリームをサポートします

274 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 01:56:43 ]
qsort関数について質問なんだが、
必ずしも内部のアルゴリズムがクイックソートだとは限らないよな?
選択ソートが使われてる気がして仕方ないんだが。

でもぐぐってみるとクイックソートが使われてるって書かれてるし…。

275 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 01:59:22 ]
規格では具体的なソート手法の指定はないが、
O(N logN) でテンポラリバッファ不要のソート法であるという指定はあったと思う。

276 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 02:02:46 ]
んだから、選択ソートは使われていないはず。O(N^2) だから。

277 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 02:03:29 ]
ああ、ただし、要素数が少ない場合はわからん。

278 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 02:07:09 ]
>>277
ありがとう。
比較関数弄ってみてるものの中々アルゴリズムが特定出来ない…。
O(N log N)だとするとやっぱりクイックソートなのかなぁ。

要素数によって使われるアルゴリズム変わるんですかね。
だとすると新しい発見かも…。

279 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 02:20:32 ]
>>274
BCC5.9.2の実装だと途中で挿入ソートに切り替えている
要素数が10以下になると再帰呼び出しのコストが馬鹿に
ならないからだろう



280 名前:デフォルトの名無しさん [2008/01/21(月) 02:21:47 ]


281 名前:274 mailto:sage [2008/01/21(月) 02:43:21 ]
>>279
VC++ 2005だと要素数が10個になるまではクイックソートで
それ以降は選択ソートを使ってるみたいです。多分。

282 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 02:46:44 ]
バブルソートや挿入ソートではなく選択ソートと思った理由は何だろう?
選択ソートは交換回数が少なくて微妙に速度が違うからそこで判断したのかな。

283 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 02:49:25 ]
安定じゃなかったんじゃないかな

284 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 03:00:25 ]
>>282
比較関数で比較対象を出力してみて思っただけなので、
もしかしたら間違ってる可能性もあります。
一応ソースと出力結果貼っておきますね。

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

------ソート前------
4
5
1
2
3
>要素数:5
-----ソート開始-----
1回目: 5と 4を比較
2回目: 1と 5を比較
3回目: 2と 5を比較
4回目: 3と 5を比較
5回目: 3と 4を比較
6回目: 1と 4を比較
7回目: 2と 4を比較
8回目: 3と 2を比較
9回目: 1と 3を比較
10回目: 1と 2を比較

285 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 03:00:53 ]
>>284
ああ、なるほど。

286 名前:デフォルトの名無しさん [2008/01/21(月) 15:28:11 ]
C言語で質問なのです。
下のプログラムは動作確認済みなのですが、なぜ動作するかがわかりません。
iでfor文を考えているのに、for{}の中にiがなくても、動作するのはどうしてなんでしょうか?

#include<stdio.h>

int main(void){
double a[15]={-256.0,-128.0,-8.0,-2.0,-1.3,-1.0,-0.5,0.0,1.0,1.3,2.0,8.0,128.0,256.0};
double *p;
p=a;
for(i=0;i<15;i++){
printf("%f\t%p\n",*p,p);    ←例えばこの部分がprintf("%f\t%p\n",a[i],p);とかなら納得なのですが…
p++;
}
return(0);
}

287 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 15:36:25 ]
>>286
ポインタ習ってないの?w

288 名前:デフォルトの名無しさん [2008/01/21(月) 15:46:18 ]
ポインタについてはまだ理解力が足りないと思っています。

ただ、printf("%f\t%p\n",*p,p);にするなら、forの()の中身をpのみで表さないとなんか気持ち悪い気がして…
今までやってきたfor文は()の中の変数が{}の中で必ず使われてきたので…

289 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 15:50:57 ]
確かにあんまり行儀のいいプログラムじゃないなぁ。
私ならこう書く。
#include<stdio.h>

int main(void)
{
double a[]={-256.0,-128.0,-8.0,-2.0,-1.3,-1.0,-0.5,0.0,1.0,1.3,2.0,8.0,128.0,256.0};
for (unsigned i = 0; i < sizeof(a) / sizeof(* a); ++i) {
printf("%g\n", a[i]);
}
return 0;
}
ポインタを使うならこうなるかな。
for (double * p = a; p - a < sizeof(a) / sizeof(* a); ++p) {
printf("%g\n", * p);
}
return 0;
}
いずれにしろ、定数を生のまま書くのはやめた方がいい。



290 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 15:51:24 ]
>>286
>printf("%f\t%p\n",a[i],p)とかなら・・・
それを言うなら、printf("%f\t%p\n",a[i],&a[i]); だろ?

最後のpがokなら、*pもokだろうに。

291 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 15:51:39 ]
>>288
p=a; //pがaの先頭(-256)を指す
printf("%f\n", *p); //pが現在指してる値(-256)を表示する
p++; //pが次の要素(0)を指す
printf("%f\n", *p); //pが現在指してる値(0)を表示する
p++; //pが次の要素(-128)を指す
printf("%f\n", *p); //pが現在指してる値(-128)を表示する
以下繰り返し
iを使ってるのは、単に繰り返し回数を数えるため

292 名前:デフォルトの名無しさん [2008/01/21(月) 15:56:46 ]
>>289-291
みなさんわかりやすい説明をありがとうございます。
なんとか理解できそうです。

293 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 18:26:49 ]
>>288
繰り返し「回数」を明示するためにfor使ってるんじゃね
そのプログラムだとp+iとかp[i]とかでもいいが
ループ回数だけが重要で、何回目のループかはどうでもいいこともたまにある


294 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 20:41:09 ]
ループ変数にunsignedを使っちゃう奴を久しぶりに見た

295 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 20:42:30 ]
>>294
なんかまずいんですか?

296 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 20:44:46 ]
どうみてもわざと

297 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 20:46:48 ]
ここで聞いていいか分からないのですが、スレ違いならスレ教えてください。

目的はC++を使えるようになることです。
C++の前にC言語勉強した方がいいということで、(どっかのサイトに書いてあった)
今はC言語を勉強中ですが、
一通り勉強したらC++に移ってもいいでしょうか?
それとも、C言語をしっかりやってからの方がいいですか?


298 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 20:55:42 ]
>>297
俺は両者を混同しなければいつ移ったって構わないと思う。
まぁせっかくCやってるんだからポインタあたりまでは勉強したほうがいいかもね。

299 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 21:12:43 ]
>>298
ありがとうございます。
ざっと一通り勉強してから移ります。




300 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 21:13:38 ]
自分の勉強の方針くらい自分で決めろよ
学習を進めていけば、次に何をしたらいいかくらい
自分で判断できるようになる。
C++の勉強を始めたが最期、Cの勉強には一生戻れない
というわけでもあるまいし。

301 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 21:28:36 ]
逆に考えるんだ。
次にやるべきことを判断できるようになるまで
真面目に勉強する気が最初からないと考えるんだ。

302 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 21:47:04 ]
というようなキチガイ的な返事しか出来ないのがプログラマw
個人的にはいきなりC++でも全然問題ないと思う。

303 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 21:57:41 ]
>>295
> なんかまずいんですか?

・ふつーint
・差をとったりして負の数が出てくる計算で気分的によろしくない

304 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 22:31:29 ]
>for (unsigned i = 0; i < sizeof(a) / sizeof(* a); ++i) {
forの初期化のトコで宣言出来るのってC99だっけ?

305 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 22:34:46 ]
C++も

306 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 22:37:47 ]
size_t型が符号なし整数として定義されている環境だと、iがsignedの場合
i < sizeof(a) / sizeof(* a);
の部分で「signedとunsigned比較すんなボケ」という警告が出るから
unsignedにしたんだろう。
だがこれだと、size_t型が符号あり整数として定義されている環境では
逆に警告が出る。
これが嫌な人は(sizeof(a) / sizeof(* a))の方をcastしたりするんだろうけど、
signedなsize_t型なんて聞いたことないからぶっちゃけどーでもいい。

307 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 22:52:47 ]
根本的に違うんじゃね?
for文回すのにunsignedがいけないという理由は

for (unsigned i = 0; i > 0; i--) { ... }

というような回し方をしてたら、unsignedだから結局、
0未満は無いで、知らずに無限ループにハマってしまうからやめろ
とか、そんな理由の奴は聞いた事がある

308 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 23:04:27 ]
そもそも、回数が固定なループを書くときに
継続条件に < を使うのがおかしい。!=を使え。

309 名前:デフォルトの名無しさん [2008/01/21(月) 23:15:54 ]
signed/unsigned関係ないし・・・
iteratorならよく見るが、ふつうは不等号じゃね?



310 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 23:16:23 ]
>>306
>だがこれだと、size_t型が符号あり整数として定義されている環境では

そんな環境ありえねー。

>>307
そのループ1回も実行されないぞ。

まずいのは、例えば i を 9, 8, ... 1, 0 としてループしたい時に

for(int i = 9; i >= 0; i--){ ... }

って書いた場合、int を unsigned int にすると、>>307 の言うようにはまる。

でも、最近のコンパイラなら i >= 0 が偽にならないとかの警告が出るものも多いよ。

>>308
ネタだろうが、それはない。

311 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 23:20:52 ]
>>310はイテレータを使ったことがないとみた

312 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 23:26:40 ]
俺もたまに使ってしまう>unsigned
vectorなんかを添え字で単純に回したいとき。
くせというかなんというかw

313 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 23:27:01 ]
>>310
>>308
ネタだろうが、それはない
iteratorでなくとも
Cの場合でもループの不変な表明を考えた場合
!= を使うべきことは非常に多い。

i != NUMS

の場合、ループ終了後はi == NUMS であることが保障される。
が、i >= NUMS だとそうはいかない。

314 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 23:30:13 ]
どっちが速いの?

315 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 23:36:47 ]
>>314
変わらないだろ。

0との比較は速い場合がある。
for(int i=10; i; i--) { ... } // 10回ループ

316 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 23:48:01 ]
たまに数字飛ばしたりするからi>0って書くな

317 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 23:48:47 ]
>>315
まさか、Javaでもあるまいし普通のコンパイラは速度差がないコードを吐くと思うぞ。

318 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 23:52:24 ]
for(unsigned int i=10; i>0; i--) { cout << i << endl; }  →期待通り
for(unsigned int i=10; i>=0; i--) { cout << i << endl; } →無限ループ

理由、
unsignedの値はmax→→→→→→0→maxになる。
上のループだと偽(i==0)があらわれる。下のループだと常に真だから無限。

おk?

319 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 23:53:20 ]
>>318
お前は少し上のレスも読めないのか



320 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 23:55:28 ]
>>317
0との比較はゼロフラグを使えるので、効率が良い。
アセンブラの話な。
もちろん、命令パイプラインの効果で差が無くなるかもしれないが、
「場合がある」ということで。

321 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 23:56:48 ]
>>319
言われて見れば同じ事言ってるw つうか微妙に違う事言ってるのかと思って。
>>319のような言葉でしっかり確信持てることもある。

ということで、言葉は人をなめてるが実は優しい>>319

322 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 00:25:21 ]
>>320
その話を知ってからいろんな環境で実験したけど未だに実感できたことがない。
ハンドアセンブルするような環境ならそりゃ違うけど・・・

323 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 00:32:33 ]
>>322
だって期待できるコード削減量って
ループ1回につき比較命令1つ程度なんだから、
実感は難しいかなあ。

324 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 00:40:25 ]
いや、実験はそりゃ億とか兆とかするよ?
CPUの周波数がわかってれば期待できる短縮時間は予測できるじゃん?
んでも、どんだけ回しても測定誤差程度の値しか出ないんだよ・・・逆転も往々にしてあるし。

325 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 00:43:08 ]
なんか自分で書いててアセンブラで比較してステート数確認すりゃいいじゃんとか思ってしまった・・・

326 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 00:45:59 ]
アセンブリ吐いて比較してるよね?
場合によっては逆順に最適化されることもあると聞いた事あるが。

327 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 01:02:26 ]
>>306
規格でsize_tは符号なしと決まっている。

328 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 02:08:21 ]
VC9なんですけど

#define WIDEN2(x) L ## x
#define WIDEN(x) WIDEN2(x)
#define __WFILE__ WIDEN(__FILE__)

このマクロをもっと圧縮できませんか?
二行くらいに。

329 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 02:15:54 ]
できないから3行なんだ。

#define WIDEN(x) L#x
#define __WFILE__ WIDEN(__FILE__)

VC9を持ってないからこれがコンパイル通らなきゃ不可能。
ってか通ったところでほかの環境でも通るとは限らないが。



330 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 02:19:00 ]
真ん中飛ばせる希ガス

331 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 02:30:20 ]
みり






[ 続きを読む ] / [ 携帯版 ]

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

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