C言語ならアタシに聞きなさい<37>
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGC言語は時代遅れなんかじゃないです。
みんな大好きなんです。このシリーズの速さがそれを物語っています。
・C FAQ 日本語訳
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
・comp.lang.c FAQ(英語の原文)
http://www.eskimo.com/~scs/C-faq/top.html
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/
推薦図書/必読書のためのスレッド PART6
http://pc3.2ch.net/test/read.cgi/tech/1033207156/
・前スレ <36>
http://pc3.2ch.net/test/read.cgi/tech/1035211039/
コンパイラ、過去ログなどのリンクは>>2-5 あたり
0002デフォルトの名無しさん
NGNGgcc
http://gcc.gnu.org/
【Win32用の開発環境のみ。】
gcc-cygwin
http://www.redhat.com/software/tools/cygwin/
gcc-mingw
http://www.mingw.org
Digital Mars C++
http://www.digitalmars.com/
Open Watcom
http://www.openwatcom.com/
Borland C++ Compiler 5.5.1
http://www.borland.co.jp/cppbuilder/freecompiler/
【ライセンスや機能などに問題あり】
Microsot C/C++ 13.0.9466(VC.NET)
http://www.microsoft.com/japan/msdn/netframework/downloads/
LCC-Win32
http://www.cs.virginia.edu/~lcc-win32/
CINT
http://root.cern.ch/root/Cint.html
めじろ++98
http://www.vector.co.jp/soft/win95/prog/se075910.html
0003デフォルトの名無しさん
NGNGhttp://www.cmt.phys.kyushu-u.ac.jp/~M.Sakurai/prog/progf.html
http://www.bloodshed.net/index.html
【注意】
Cmachineは一般的なCと挙動が違いすぎるので動作の保証はできません。
まともな処理系を使いましょう。
0004デフォルトの名無しさん
NGNGだから回転がはやい。
しかも3すれごとに同じ質問が繰り返されている。
0005デフォルトの名無しさん
NGNG2/5
0006デフォルトの名無しさん
NGNG( ´∀`)/<先生!
_ / / / \オススメのコンパイラーを教えてください。
\⊂ノ ̄ ̄ ̄ ̄\ \_____________
||\ \
||\|| ̄ ̄ ̄ ̄ ̄||
|| || ̄ ̄ ̄ ̄ ̄||
.||
0007デフォルトの名無しさん
NGNG0008デフォルトの名無しさん
NGNGa) ┏━┳━┓
. ┃←╂→┃
. ┗━┻━┛
それとも、こうですか?
b) ┏━┓
. ┃↑┃
. ┣┿┫
. ┃↓┃
. ┗━┛
「水平軸回転」は b) ですよね。
0009デフォルトの名無しさん
NGNGa) /⌒
( ↑
ヽ、__ノ
それとも、こうですか?
b) ⌒ヽ
↑ )
ヽ、__ノ
00104
NGNGはやくも無駄にスレが使われました。ここまでで意味があるのはかろうじて
1-3
ぐらい。といってもリンクだけだけど。
0011デフォルトの名無しさん
NGNGまぁ所詮はこの程度でしょ。
0012デフォルトの名無しさん
NGNGあなたは誰ですか?
0013デフォルトの名無しさん
NGNGmemset((char*)&server,0sizeof(server));
ってのを本で見かけたんですが
ansiiの規格では
void*memset(void*,int,int,size_t)
っていうふうになってますよね
なんでわざわざchar*型にキャストする必要が
あるんですか?
おしえてくふぁさい
0014デフォルトの名無しさん
NGNG同じ行を読み直すとか、そういう場合には困るような気がするんですが(そういうことする必要ないか?)
ってかよくFILE *fp = fopen(hoge)ってので*fpがつかわれますが、この*fpの先の実体はどうなってるんでしょうか?
001615
NGNGヘッダーでも調べろ。FILEは構造体だ。
0017デフォルトの名無しさん
NGNG昔は void がなかったので(汎用ポインタには) void * の代わりに char *
を使ったらしいです。その名残ではないでしょうか?
0018193→一休さん
NGNG0019デフォルトの名無しさん
NGNG実体はライブラリによって異なるから、
調べる意味がないようなきもする。
が、ライブラリのソースまで追って行くのであれば
それはそれで勉強になるか。
0020デフォルトの名無しさん
NGNG0021デフォルトの名無しさん
NGNG0022デフォルトの名無しさん
NGNGでは、コミットするページ領域のサイズはいくつになるんでつか?
0023デフォルトの名無しさん
NGNGなぜCスレできくのでつか?
0024デフォルトの名無しさん
NGNG0025デフォルトの名無しさん
NGNG0026デフォルトの名無しさん
NGNG0027デフォルトの名無しさん
NGNGあっ、レスありがとうございます!
倉本安奈ちゃんかあ、今度見てみます!どうもですー
0028デフォルトの名無しさん
NGNG0029デフォルトの名無しさん
NGNG0030デフォルトの名無しさん
NGNG0031デフォルトの名無しさん
NGNG左側はその文字列の先頭アドレスでいいよね。
右側は、デリミタを検索(連続はチェックしてね)してその次のアドレスでいいよね。
0032デフォルトの名無しさん
NGNG0033デフォルトの名無しさん
NGNG0034デフォルトの名無しさん
NGNGstrchrあたり使ってなんとかすれ。
0035デフォルトの名無しさん
NGNGint i, j, k, *p ;
p = a[i];
k = p[b[j]];
とやるとき
for (i = 0; i < 10; i++)
b[i] *= sizeof (int);
としておいて
k = *((int *) ((char *) p + b[j]));
とやったほうが速いように思うんですけど
このコードは移植性がありますか?
003631
NGNGていうか、Cを学びたいのであれば、ぜひやってみて下さい。
0037デフォルトの名無しさん
NGNGそれくらい自分でやってくれると嬉しいのですが。
0038デフォルトの名無しさん
NGNG0039デフォルトの名無しさん
NGNG0040デフォルトの名無しさん
NGNG0041デフォルトの名無しさん
NGNG0042デフォルトの名無しさん
NGNGいや、そうなんだろうけど、ここでの意味は?
0043デフォルトの名無しさん
NGNG004431
NGNGそうじゃないです。僭越ですが、私はこのように書きました。
デリミタが見つからない場合と、文字列の最後に見つかった場合は
NULLを返します。
#define delimit 0x20
char *divide( const char *s )
{
char *myPtr;
if( myPtr = strrchr( s, delimit ) )
if( *(myPtr++) == NULL )
myPtr == NULL;
return myPtr;
}
0045デフォルトの名無しさん
NGNGchar *strchr(const char *str, int c)
{
c = (char)c;
while (*str && *str != c)
++str;
if (*str == c)
return (char *)str;
return NULL;
}
0046デフォルトの名無しさん
NGNGそれってどこのフォルダにありますか?
0047デフォルトの名無しさん
NGNGhttp://sources.redhat.com/cgi-bin/cvsweb.cgi/~checkout~/libc/sysdeps/i386/strchr.S?rev=1.12&content-type=text/plain&cvsroot=glibc
これが最高に参考になります(藁
0048デフォルトの名無しさん
NGNGVCインスコしたディレクトリの中にCRTっていうとこ。
CRTのインスコはオプションだよ。
0049デフォルトの名無しさん
NGNGありがとうございました
0050デフォルトの名無しさん
NGNGほかのスレに書いたんですがレスないでつ。
0051デフォルトの名無しさん
NGNGhttp://www.microsoft.com/japan/developer/library/jpwinpf/_win32_virtualalloc.htm
0052デフォルトの名無しさん
NGNG> c = (char)c;
なんだコリャ ?
0053デフォルトの名無しさん
NGNG0054デフォルトの名無しさん
NGNG47のでいいじゃねえか。
0055デフォルトの名無しさん
NGNG0056デフォルトの名無しさん
NGNG通報しますた
0057デフォルトの名無しさん
NGNG通報しました
0058デフォルトの名無しさん
NGNGもう一回通報しますた
0059デフォルトの名無しさん
NGNGMSKKにも通報しますた
0060デフォルトの名無しさん
NGNG0061デフォルトの名無しさん
NGNG1ビット比較するのと4ビット比較するのはどっちが早いと思う?
006261
NGNG0063デフォルトの名無しさん
NGNG0064デフォルトの名無しさん
NGNGどういう意味?
0065デフォルトの名無しさん
NGNG4ビットって?
0066デフォルトの名無しさん
NGNG0067デフォルトの名無しさん
NGNG厨ばっかだからか?(プ
0068デフォルトの名無しさん
NGNGレジスタって知ってる?
0069デフォルトの名無しさん
NGNG切り詰めて比較する必要はないだろう。
0070デフォルトの名無しさん
NGNG笑うとこか?C++はさっさとdat落ちか糞スレになる運命。
0071デフォルトの名無しさん
NGNG0072デフォルトの名無しさん
NGNGSTLで今日もfunctionalかつgenerativeにコーディングしましょう。
0073デフォルトの名無しさん
NGNG0074デフォルトの名無しさん
NGNG下位の8ビットだけ使うって事なんでしょ?
0075デフォルトの名無しさん
NGNG何でint変数にcなんて名前つけるの?
0076デフォルトの名無しさん
NGNG一文字ってことなんじゃないの?
0077デフォルトの名無しさん
NGNGでいいだろ
0078デフォルトの名無しさん
NGNGそれ、コンパイルできるの?
0079デフォルトの名無しさん
NGNGでもそれじゃダメだな。符号拡張しなきゃ。
0080デフォルトの名無しさん
NGNGC &= 0xff;
みたいに書いて欲しい。
008177
NGNGさっきはゴメン、頭眠ってるかも・・・オヤスミ...
0082デフォルトの名無しさん
NGNGそれじゃだめじゃん。
つーか普通に c = (char)c; でいいじゃん。
0083デフォルトの名無しさん
NGNG0084デフォルトの名無しさん
NGNGだから、int cの下位8ビットだけ使うってことでしょ?
0085デフォルトの名無しさん
NGNGc=(char)c
↑これやるとなにか違いがあるの?
今Cコンパイラないから確認できないけど、意味内と思うよ。
0086デフォルトの名無しさん
NGNG0087デフォルトの名無しさん
NGNGたとえば、cの内容が0x1111だったら明らかに違うじゃん。
0088デフォルトの名無しさん
NGNGアフォか。
char *str と int c を比較すれば int 型に暗黙変換される。
その時の *str が取りうる値は (int が 32-bit として)
0xFFFFFF80 (-128) 〜 0x0000007F (127) だ。
単にビットを切り取っただけだと、0x00000080 (128) を超える
数値ができて比較になんねーだろ。
char が unsigned char の処理系なら問題ないだろうけど。
0089デフォルトの名無しさん
NGNGこれならなんとなくわかるけど、
実際吐き出すコードはどうなるんだろう
0090デフォルトの名無しさん
NGNG0091デフォルトの名無しさん
NGNGc = (char)c;
で、VC++ 6.0 は...
movsx eax, BYTE PTR _c$[esp-4]
と言うコードを吐くから、とりあえず下位8ビットを符号拡張してるね。
0092デフォルトの名無しさん
NGNGつーか、なんで >>45 のコードに c = (char)c; が必要なの ?
0093デフォルトの名無しさん
NGNGmovsbl -4(%ebp),%eax
movl %eax,-4(%ebp)
下位1バイトを切り取ってる。
0094739
NGNGGCCだろ.
0095デフォルトの名無しさん
NGNG仮に char c=(char)i だった場合、*strとの比較は1バイトになるんですかね?
なんか4バイト比較しそうな気がする。CPUが命令もってないか、
速度変わらないとかで。
0096デフォルトの名無しさん
NGNG>>94
GCCだとGNU Compiler Collectionになりますが。
0097デフォルトの名無しさん
NGNG普通は1バイトずつ比較する。
CPU が命令持ってない時は、マスクして比較する。
0098デフォルトの名無しさん
NGNGアセンブリコードなどこの際関係ない。
下位型と上位型の演算は上位型にキャストされるという大原則を思い出せ。
・・・アセンブラコードって何だよ、アセンブルした時のエラーコードか?
0099デフォルトの名無しさん
NGNG0100デフォルトの名無しさん
NGNGその行があるのと無いのでは挙動がちがうじゃん。
わからんの?
0101デフォルトの名無しさん
NGNGだから、何のために「その違う挙動」が必要なのか聞いてるんだけど。
日本語理解できてないのか ?
■ このスレッドは過去ログ倉庫に格納されています