C言語なら俺に聞け! Part 99
■ このスレッドは過去ログ倉庫に格納されています
0001v(^o^i)d
NGNG質問する前には最低限検索を。
GUIなどの標準Cではできない事の質問は使用している開発環境のスレへGo! (←ここ注目)
ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへさようなら。
エラー(警告含む)が起きたのならばエラーメッセージを書きましょう。
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/
各種リンク、関連スレは>>2-13あたり
C言語なら俺に聞け! Part 98
http://pc5.2ch.net/test/read.cgi/tech/1104114259/
他の過去ログはここに
http://nssearch.hp.infoseek.co.jp/clang/
0233デフォルトの名無しさん
NGNG具体的に言えば、例えば、
int a[10000];
int i;
for(i = 0; i < 10000; i++)a[i]=0;
とするところを、
int* a;
int i;
a = (int*)malloc(sizeof(int)*10000);//ヒープ領域に使用領域を確保。その先頭番地のポインタ。
for(i = 0; i < 10000; i++)a[i]=0;
free(a);//確保したら開放しないとダメ。メモリは再利用…
0234デフォルトの名無しさん
NGNG90000/10 だとコンピュータ内部だと、9000回10を引いているのだと
思っているからです
0235デフォルトの名無しさん
NGNG0236デフォルトの名無しさん
NGNGハー・・・・・・・
0237デフォルトの名無しさん
NGNG0238デフォルトの名無しさん
NGNGBCDコードに変換してる訳じゃないんですね。
0239デフォルトの名無しさん
NGNG0240デフォルトの名無しさん
NGNGもし本人なら、真面目に考えた人が浮かばれん。
俺はパズル以外に意義を見いだせなかったから、全然考えてないけどな。
0242デフォルトの名無しさん
NGNGでは問いますが、除算はどのように実現されているので?
除算回路なんて一般のCPUに組み込まれているんですか?
その辺はよくわからんですが、普通加算回路しか入ってないと思ってるんですけど。
いや、ほんとよくわからないんですけど。
あまりにも・・・過ぎて申し訳ありませんねぇ
0243デフォルトの名無しさん
NGNG引き戻し法とか
0244デフォルトの名無しさん
NGNGコードが美しいわけでもない、速度は遅い、無駄に変数使う。。。
そのアルゴリズムの優れている点はどこなの?
勉強したての人がそういうの見てお手本にしたら可哀想だろうに……
0245デフォルトの名無しさん
NGNG0246デフォルトの名無しさん
NGNG0247デフォルトの名無しさん
NGNG>コード読んでないけど
同一人物でつか?
0248デフォルトの名無しさん
NGNG0249デフォルトの名無しさん
NGNG0250デフォルトの名無しさん
NGNG自分は結構美しいコードだと感じたけど。
0251デフォルトの名無しさん
NGNG同一っつーか、俺はこの話題については>>210>>221>>240位しか書き込んでないよ。
で、プロセッサの除算は、いわゆる筆算のアルゴリズムを使うが、
最近のプロセッサは、テーブルを使って一発で結果を出す方法も併用していると思う。
少し前にPentiumのバグで回収騒ぎがあっただろ?
あれは浮動小数の方だけど。
0252デフォルトの名無しさん
NGNGいくらなんでもそれはないだろう
0253デフォルトの名無しさん
NGNG少し前にPentiumのバグで回収騒ぎなんて話題も知りませんでした。
じゃあ、普通に割り算してたほうが早かった、って事か・・・
けど、ホント勉強になったんです。問題考えてくださった方はありがとございました。
あとついでと言っちゃあ何ですけど、static const int の static がもしなかったら、
関数が呼ばれるたびに初期値が代入されて無駄が発生するって見解は正しいですか?
0254デフォルトの名無しさん
NGNG0255デフォルトの名無しさん
NGNG0256デフォルトの名無しさん
NGNG0257デフォルトの名無しさん
NGNG0258デフォルトの名無しさん
NGNG0259デフォルトの名無しさん
NGNG0260デフォルトの名無しさん
NGNG標準ライブラリにldivというのもある。
0261デフォルトの名無しさん
NGNGゲーム作っててデバッグ用にどこの場所を通ってるか調べるのにLOGを
とりたいんだけどゲームみたいに中で一定の速さが必要なものを作る時
ファイルの書き込みを使ってもスピードに支障はでないレベルでしょうか?
ファイル操作+速度に関して知っておられる方おりましたら助言よろしくです。
0262デフォルトの名無しさん
NGNGOSやファイルシステムにも依るが、書き込みはこれを数回繰り返す。が、
・全部同期で書き込む
・ジャーナリング等の情報だけを同期で、データ本体は非同期で書き込む
・全部非同期で書き込む
等々があって、実際のwriteでどの程度かかるかは環境依存。
その上、Cライブラリのレベルでバッファリングしているから
fwriteやfprintfで実際にシステムコールが呼び出されるかはわからない。
ログの量がある程度以下と想定できるなら、
setvbufによって、事実上ディスクアクセスをfclose時だけにすることも可能。
0263デフォルトの名無しさん
NGNG速度を保証する必要があるならファイル操作ではなく物理ディスク
0264デフォルトの名無しさん
NGNG0265デフォルトの名無しさん
NGNGfp = fopen( argv[1], "r" ) ;
fscanf( fp, "%s" ,buf ) ;
_write( h, buf, 10 ) ;
ちょっと省略しますが、こんな感じで新規のファイルを作ろうと思いました。
しかし、出来上がる場所が実行ファイルと同じ場所と思ってたんですが、そうでも
ないみたい。なぜ??
どうにかして、場所を指定できないですか?
0266デフォルトの名無しさん
NGNG普通ファイル名だけを指定するとカレントディレクトリを指定したものと見なされる。
どこかから実行ファイルの場所を得て、そこへファイル名をくっつけて使え。
0267デフォルトの名無しさん
NGNGけど、
> 普通ファイル名だけを指定するとカレントディレクトリを指定したものと見なされる。
自分も、そう思ったんですけど、出来上がる場所はなぜか
C:\Program Files\Common Files\System\Mapi\1041
これは _write とかの仕様なんですかね。
0269デフォルトの名無しさん
NGNG詳細は環境スレでどうぞ。_open()でさえスレ違いですから。
http://pc5.2ch.net/test/read.cgi/tech/1104843249/
http://pc5.2ch.net/test/read.cgi/tech/1104109858/
http://pc5.2ch.net/test/read.cgi/tech/1090652323/
http://pc5.2ch.net/test/read.cgi/tech/1101931660/
0270デフォルトの名無しさん
NGNGたぶんおまえのプログラムの他の処理でカレントディレクトリを
移動しっぱなしの処理があるんだろ
0271デフォルトの名無しさん
NGNGするなよぼけ > 開放
するなら「解放」だぼけ。
0272デフォルトの名無しさん
NGNGふつうに int array[100000]; で確保すればいい
どっかのぼけが「多くの領域」を定義せずにヒープがどうのと言っているが
そういう井の中の蛙は free についても人のコードを自分の環境に合わさせようと画策するから
言うこと1つずつうざいくら疑ってかかれ
決してああなるな
0273デフォルトの名無しさん
NGNG・・・すげーネタレスだな、おい。
最低限、 size_t 型で表現できる分の配列しか
宣言できないぐらいの事は書けよ。
>>226
言うこと1つずつうざいくら疑ってかかれ
決して >>272 の様になるな
0274デフォルトの名無しさん
NGNGアホ
0275デフォルトの名無しさん
NGNG0276デフォルトの名無しさん
NGNG0277デフォルトの名無しさん
NGNG0278デフォルトの名無しさん
NGNG0279デフォルトの名無しさん
NGNG二進数にするとは、どのような意味だ?
0280デフォルトの名無しさん
NGNG0282デフォルトの名無しさん
NGNGx86汗ではAAD命令。
0283デフォルトの名無しさん
NGNGint st[(x*y)];
こんな風にしたいんですけど、エラーでちゃいますよね。
どうしたらいいんですか?
0284デフォルトの名無しさん
NGNGmalloc
0285デフォルトの名無しさん
NGNGC止めろ。
0286デフォルトの名無しさん
NGNG0287デフォルトの名無しさん
NGNGC99ならできるよ。
おたくのコンパイラが古いだけ。
0288283
NGNG0289デフォルトの名無しさん
NGNG仮想の代物であるC99完全対応のコンパイラなんて、現時点に於いて期待する方がおかしい。
0290デフォルトの名無しさん
NGNG0291290
NGNG0292デフォルトの名無しさん
NGNGa[i][j]のようにアクセスできる領域は作れる
0293デフォルトの名無しさん
NGNGそうでない場合は>>292の言ってるように少しややこしい
0294デフォルトの名無しさん
NGNG解決したって書いてあるだろうがボケ
0295デフォルトの名無しさん
NGNGおまいがボケ
0296デフォルトの名無しさん
NGNGなんだと、このやろ
0297デフォルトの名無しさん
NGNG素敵
0298ミスターポポ
NGNG0299デフォルトの名無しさん
NGNG0300デフォルトの名無しさん
NGNGあ、またVC厨がわいてでた ;-)
0301デフォルトの名無しさん
NGNG0302デフォルトの名無しさん
NGNGなんでそんなにひっぱるんだろ。
0303デフォルトの名無しさん
NGNGは仮想とするのは、このスレ的に真
0304デフォルトの名無しさん
NGNG0305デフォルトの名無しさん
NGNGこのお題目をとなえれば、VCの存在が正当化されるとでもおもってるんだろうなあ。
毎回これしかいわないんだもの ;-)
0306デフォルトの名無しさん
NGNG0307デフォルトの名無しさん
NGNGつぎは「少ないから」とかいいそう。
最初は「long longなんて使えるコンパイラーはないから」だったのが
↓
「…少ないから」 にかわって、大概のコンパイラーで使えるようになった数年前からは
↓
「それはつかえるかもしれんが、C99の機能全部をサポートしたコンパイラーはないから」(理由になってない)
になってきたわけだが、それが
↓
「C99の機能を全部サポートしたコンパイラーは数少ないから」
になってしまって、
その「から」のあとに何が続くのか...
「だからVCつかってるのは正しいんだ!」って、かなり無理があるなあ。
まあ無理があるからあえて後半を書かないわけだが。
0308デフォルトの名無しさん
NGNG302の人は
> unsigned long long intの使えるコンパイラー10種類なんて、すぐに
と言ってるのに、
303のやつは
> いまんところ1種類も出てないわけだから、C99完全対応のコンパイラは
と、
「unsigned long long intが使えるコンパイラー」と言ってるのを
あえて「きこえないふり」をして「C99完全対応しているコンパイラーは」とすりかえた
つもりになって、それでごまかせてるつもりになってるのがいかにもVC厨だなあ。
0309デフォルトの名無しさん
NGNG実際私は使っているのですが、
その、あなたのいう「VC厨」っていう人たちは何をこわがってるんでしょうか?
0310デフォルトの名無しさん
NGNGおまえみたいに正規版を買ってるやつはいいが、
ここにいるVC厨は、イリーガルコピー品なので、まだ古いVCつかってるんだよ!
0311デフォルトの名無しさん
NGNGそんなわけないじゃん。妄想癖?
0312デフォルトの名無しさん
NGNGこいつのどこが「C99に対応していない」かを知っているVC厨はほとんどいない。
「どうやらC99完全対応じゃないらしい」とだけ聞きかじって、実際にどこがどうかとか
までは知らないので、いわれてもでてこないんだよな。だめすぎ。
完全対応しているコンパイラーは私の知る限りでは2種類だけだ(2004年夏の時点で)
0313デフォルトの名無しさん
NGNGひっしだな!
0314デフォルトの名無しさん
NGNG0315デフォルトの名無しさん
NGNG0316デフォルトの名無しさん
NGNG0317デフォルトの名無しさん
NGNG0318デフォルトの名無しさん
NGNGで、10種類は?
0319デフォルトの名無しさん
NGNGおれの知ってるかぎりのC99の機能は使っているが。
0320デフォルトの名無しさん
NGNG0321デフォルトの名無しさん
NGNGboolもtrueもfalseも使えるぞ。
おまえ使ったこともないのか? > 320
やーい。ぼけすぎ
0322デフォルトの名無しさん
NGNG0323デフォルトの名無しさん
NGNG昔のCから一番かわってない部分。
0324デフォルトの名無しさん
NGNGa-ha、so 10 of compilers, you know?
0325デフォルトの名無しさん
NGNG0326デフォルトの名無しさん
NGNG0327デフォルトの名無しさん
NGNG0328デフォルトの名無しさん
NGNG0329デフォルトの名無しさん
NGNGおまえ英語の成績悪いだろ?
0330デフォルトの名無しさん
NGNG0331デフォルトの名無しさん
NGNG■ このスレッドは過去ログ倉庫に格納されています