C言語なら、俺に聞け! <27>
■ このスレッドは過去ログ倉庫に格納されています
0001日下部? ということにしたいのですね? :)
NGNG・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/
推薦図書/必読書のためのスレッド PART4
http://pc.2ch.net/test/read.cgi/tech/1022961238/l50
・前スレ
<26> http://pc3.2ch.net/test/read.cgi/tech/1026048820/
<25> http://pc.2ch.net/test/read.cgi/tech/1024918442/
<24> http://pc.2ch.net/test/read.cgi/tech/1024033400/
<23> http://pc.2ch.net/test/read.cgi/tech/1023024817/
コンパイラなどのリンクは>>2-3 あたり
void日下部氏の激動の半生は過去スレを参照
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
【その他】
http://www.cmt.phys.kyushu-u.ac.jp/~M.Sakurai/prog/progf.html
http://www.bloodshed.net/index.html
0003デフォルトの名無しさん
NGNGそう、何も作り出すことは出来なかった。
しかし、僕の中のstatic変数にはいろんな思い出がつまってる。
でももうダメだ。
いつの日からか発生したループは、スタックを食いつぶしながら
僕のメモリ領域をどんどん蝕んでいく。
もうダメだ・・・。
僕は決心して窓を開けた。
「このプログラムは不正な処理を行ったため・・・」
0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNG0006ていのー
NGNG0007デフォルトの名無しさん
NGNG0008デフォルトの名無しさん
NGNG>>3; //翻訳単位に隔離しますた
}
0009デフォルトの名無しさん
NGNG14 http://pc.2ch.net/tech/kako/1015/10152/1015286974.html
13 http://pc.2ch.net/tech/kako/1015/10152/1015286974.html
12 http://pc.2ch.net/tech/kako/1012/10123/1012348974.html
11 http://pc.2ch.net/tech/kako/1009/10094/1009499565.html
10 http://pc.2ch.net/tech/kako/1009/10094/1009499565.html
9 http://pc.2ch.net/tech/kako/1007/10072/1007272267.html
8 http://pc.2ch.net/tech/kako/1007/10072/1007272267.html
7 http://pc.2ch.net/tech/kako/1003/10034/1003418249.html
6 http://pc.2ch.net/tech/kako/1003/10034/1003418249.html
0010デフォルトの名無しさん
NGNG25 http://pc.2ch.net/tech/kako/1024/10249/1024918442.html (予定)
24 http://pc.2ch.net/tech/kako/1024/10240/1024033400.html (予定)
23 http://pc.2ch.net/tech/kako/1023/10230/1023024817.html (予定)
22 http://pc.2ch.net/tech/kako/1022/10224/1022402165.html
22 http://pc.2ch.net/tech/kako/1022/10224/1022402165.html
22 http://pc.2ch.net/tech/kako/1022/10224/1022402165.html
21 http://pc.2ch.net/tech/kako/1022/10220/1022045622.html
20 http://pc.2ch.net/tech/kako/1021/10214/1021459016.html
19 http://pc.2ch.net/tech/kako/1021/10214/1021459016.html
18 http://pc.2ch.net/tech/kako/1020/10202/1020260813.html
17 http://pc.2ch.net/tech/kako/1019/10193/1019372139.html
16 http://pc.2ch.net/tech/kako/1018/10184/1018453690.html
0011デフォルトの名無しさん
NGNGauto変数の方が、後に何も残らなくてよいかと。
0012デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
NGNG↑
navi2ch ではこんな風に見えているのですが気のせいですか?
0014デフォルトの名無しさん
NGNG失敗。↑こんな風に。
0015デフォルトの名無しさん
NGNG失敗。↑こんな風に。
0016名無しさん@Vim%Chalice
NGNG0017デフォルトの名無しさん
NGNG済みません、意味がわかりません。
0018デフォルトの名無しさん
NGNGちょっと!あなた余計なことしないでよ!!
0019デフォルトの名無しさん
NGNGむむっ。俺的には何の問題もないと思うが。
0021ピラコウ
NGNG0022デフォルトの名無しさん
NGNG0023デフォルトの名無しさん
NGNGCでCGIを組みたいのか?
0024デフォルトの名無しさん
NGNGttp://www.xrea.com/jp/
0025デフォルトの名無しさん
NGNGhttp://www.at-link.ad.jp/
0026デフォルトの名無しさん
NGNGお前にはない。
0027デフォルトの名無しさん
NGNG127..0.0.1
0028デフォルトの名無しさん
NGNGネタを噛んでしまうと、見ていてとても痛いのですが…
0029デフォルトの名無しさん
NGNGどこか適当にハックしろ。
0030デフォルトの名無しさん
NGNG0031デフォルトの名無しさん
NGNGこれって可能?
ちゃんと動作するかな?
0032デフォルトの名無しさん
NGNGTRUEの定義とその怪しげな関数たちによる。
0033デフォルトの名無しさん
NGNG0034デフォルトの名無しさん
NGNGそれは確実だったかと
0035デフォルトの名無しさん
NGNGキモイ
0036デフォルトの名無しさん
NGNGそんなソースは読みたくありません。
0037デフォルトの名無しさん
NGNG助けてくれ〜
0038デフォルトの名無しさん
NGNG順序は合ってるけど、常に b() が実行されるとは限らない。
0039デフォルトの名無しさん
NGNG0040デフォルトの名無しさん
NGNGビッグファイア様ですな。
0041デフォルトの名無しさん
NGNG君は無理
0042デフォルトの名無しさん
NGNGバビル二世をよぶCのソースはどういうかんじですか?
0043デフォルトの名無しさん
NGNGextern void Babel_II();
int main()
{
Babel_II();
return 0;
}
0044デフォルトの名無しさん
NGNGvoid hanoi(int n,int a,int b){
int c = 6-a-b;
if(n>1)hanoi(n-1,a,c);
printf("disk %d : %d -> %d\n",n,a,b);
if(n>1)hanoi(n-1,c,b);
}
main(){
hanoi(3, 1,2);
}
参考
ttp://web2.incl.ne.jp/yaoki/hanoi.htm
0045デフォルトの名無しさん
NGNGで、ロデムはどこに?
0046デフォルトの名無しさん
NGNG変身してるから見つけにくいと思うよ。
0047デフォルトの名無しさん
NGNG0048デフォルトの名無しさん
NGNGそれは海鮮丼とは違うのか?
0049デフォルトの名無しさん
NGNG(゚*゚)梅干しスッパー
0050デフォルトの名無しさん
NGNG0051デフォルトの名無しさん
NGNG0052デフォルトの名無しさん
NGNG0053デフォルトの名無しさん
NGNG0054デフォルトの名無しさん
NGNG0055デフォルトの名無しさん
NGNG(゚д゚)ウマー
ワラタ
0056デフォルトの名無しさん
NGNGis***** ってな感じで関数があるの?
0057デフォルトの名無しさん
NGNGint char long shortとそのunsignedは整数。
0058デフォルトの名無しさん
NGNGなぜわざわざ確認する必要が?
0059デフォルトの名無しさん
NGNGPerl上がりなのでは?
006056
NGNG実数型変数の内容が整数かどうかを確認する方法です。
たとえば、3.1415と3.0000を振り分けるようなものがあるとありがたいんですが。
0061デフォルトの名無しさん
NGNG無い。 %すれば?
0062デフォルトの名無しさん
NGNG0063デフォルトの名無しさん
NGNGあるでしょ。
0064デフォルトの名無しさん
NGNGあったか?
0065デフォルトの名無しさん
NGNGとかダメかな?。。。ダメか。
0066デフォルトの名無しさん
NGNGつぅか比較ってできたっけ過?
006760
NGNGいや、intにキャストしたら、小数点以下捨てられるから、それをdoubleに戻して。。。
最適化とかされるとマズいけど
006865
NGNG0069デフォルトの名無しさん
NGNG小数部だけ取り出す関数とかあるじゃん。
007062
NGNG007165
NGNGやってることは一緒ですね。でも、警告でるかも?大丈夫かな?
0072デフォルトの名無しさん
NGNGさっさと関数名挙げな。
0073デフォルトの名無しさん
NGNG(val<ceil(val+0.5)+ε)&&(val>ceil(val+0.5)-ε)
0074デフォルトの名無しさん
NGNG何言語よ?
007665
NGNGあ、大丈夫でした。アセンブリ見てみたけど何やってるかわかりません。
以下
int foo(double a) { return a == (int)a; }
を gcc -O2 -Wall -S foo.c でコンパイルしたもの。
誰か解読して!
_foo:
pushl %ebp
movl %esp,%ebp
subl $24,%esp
fldl 8(%ebp)
fnstcw -2(%ebp)
movw -2(%ebp),%dx
orw $3072,%dx
movw %dx,-4(%ebp)
fldcw -4(%ebp)
fistl -8(%ebp)
movl -8(%ebp),%eax
fldcw -2(%ebp)
movl %eax,-8(%ebp)
fildl -8(%ebp)
fucompp
fnstsw %ax
andb $69,%ah
cmpb $64,%ah
sete %al
movzbl %al,%eax
movl %ebp,%esp
popl %ebp
ret
なんで、こんな複雑になるんだろ?(アセンブラスレ逝けっていわれそうw)
0077デフォルトの名無しさん
NGNGオペランドの意味わかれば猿でもわかるだろ。
007865
NGNGキャストするアセンブリ(機械語)命令って無いみたいですね(あたりまえ?)。
アセンブリ言語は浮動小数点数つかったことないのでサッパリです。
0079デフォルトの名無しさん
NGNGεは適当な誤差精度の意
ていうか有理数を実装したほうがよい
typedef struct { int nume, int deno } rational ;
0080デフォルトの名無しさん
NGNGdouble x,temp;
x=3.141592;
if(modf(x,&temp)==0)...
008165
NGNGそんな関数あったんだ。。。用意されてるならそれ使ったほうがよさそう
。。。てか、勉強不足。。。鬱氏
0082デフォルトの名無しさん
NGNG土下座したら、教えてやるよ。
0083デフォルトの名無しさん
NGNG煽りはスピードが命。
0084デフォルトの名無しさん
NGNG008580
NGNG調べたい場合は、if(x == (double)(int)x) の方が速いです。
また、0か非0かではなく、73氏のようにイプシロン以下であるか
判定するのであれば、
if( fabs(fmod(x,&temp)) < e)...
になるでしょう。
0086デフォルトの名無しさん
NGNG>if(x == (double)(int)x)
は、xがintの範囲外の時おかしくなりません?
008773==79
NGNGっていうかいいのかそれで?
0.1を十回足しても1にはならんのだぞ
0088デフォルトの名無しさん
NGNG実際引っかからんしな。
009065
NGNGそんなでっかい値だったら、そもそも小数点以下まで保持されてないんじゃない?
0091デフォルトの名無しさん
NGNGだから、小数点以下はゼロと判定されるようでないとまずい
わけです。
009265
NGNG32ビットマシンだとlong使わないとダメか。謝罪m(__)m
009365
NGNG11111....111(1が54個。2進数表現で)
という数字を入れようとしても
11111....11(1が53個)×2 = 11111....110
という値に丸められてしまうということです。
つまり、doubleだからといって必ずしも小数点以下まで保持されてるわけじゃないですよね?
0094デフォルトの名無しさん
NGNG浮動小数点数でも整数を表すときは
誤差は生まれないと思うんだけど、どうなんだろう。
if (x == (int)x)
は、xが整数で有効桁数内に収まっていれば必ず成立するんじゃないかと。
そもそも誤差って、小数点以下を2^-1, 2^-2, ... で表すから生まれるんだよね?
誰か詳しく知ってる人がいたら教えてください。
0095デフォルトの名無しさん
NGNG有効桁数におさまるなら当然誤差はない
int i;double sum=0;
for(i=0;i<10;i++)sum+=0.1;
ならばおそらくsum!=1というような話
0096デフォルトの名無しさん
NGNG誤差は無いですか。
ありがとうございます。
0097デフォルトの名無しさん
NGNG0098デフォルトの名無しさん
NGNG固定小数でどうすれば誤差がなくなるのですか?
0100デフォルトの名無しさん
NGNG(0.1 = 1/16+9/256+9/4096+9/65536...)
そのため、浮動小数点では、0.1を近似値としてしか表現できない。
固定少数点は、小数部に必要な桁数だけ下駄をはかせて、
整数であるかのように扱うため、上記の誤差は発生しない。
しかし、一般的に誤差といっても、浮動小数点形式に固有の誤差、
乗除算に伴う誤差、加減算に伴う誤差など多々あるので、
固定小数点を使えばすべての誤差がなくなるわけではない。
0101デフォルトの名無しさん
NGNG何かfflushの効果を一目で確認できるようなサンプルプログラムはありませんか?
■ このスレッドは過去ログ倉庫に格納されています