C言語なら、俺に聞け! <9>
■ このスレッドは過去ログ倉庫に格納されています
0001C言語ハッカー Kusakabe Youichi
NGNGあちこちの言語に手を出したが結局極めたのはC言語だけだった。
大体のことなら分かるからオレに聞け。
だが、いちいちFAQに載った質問に応えるほど暇じゃない。
課題丸投げなら別スレにいけ。
・comp.lang.c Frequently Asked Questions
http://www.eskimo.com/~scs/C-faq/top.html
・C FAQ 日本語訳
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
・前スレ C言語なら、オレに聞け! <8>
http://pc.2ch.net/test/read.cgi/tech/1005811510/l50
0237デフォルトの名無しさん
NGNGchar *chkptr;
chkptr = buf + sizeof(char)*(size - 3);
です 、、
0238デフォルトの名無しさん
NGNGどういう書き方をすると、速くなるかは実際にコンパイルするまで
分かりません。
工夫した書き方で、逆に遅くなることもあります。
その例だと、どちらが速くなっても、わずかな差しかないと
思うので、自分が「素直」だと思う書き方が良いと思いますよ。
スピード重要で少しでも早くしたいときは、ソースで判断せずに、
実際に実行させて、計測してください。
0239デフォルトの名無しさん
NGNG>chkptr = buf + sizeof(char)*(size - 3);
この sizeof はいりません。
charだから動いているけど、それ以外の型だと、このコードは
正常にうごきませんね。
0240デフォルトの名無しさん
NGNG最適化を語るのは、それからの話だ。
0241236
NGNG>>238
気にする程でも無いですか、そう言われると気にならなくなって来ました
当分は-O3様にお任せしますです。
>>239
ぎゃっ、すいません。キャストか良く分かっていないです。。。
>>240
戻り値はこの場合だとbufですよね、、でもif(buf=fgets(buf,size,fp))とか
すると開放する時に if(buf);free(buf); って出来なくなるし。。。
取り合えず変なやり方と言う事ですよね。うーん
0242236
NGNGキャストか → キャストとか
if(buf=fgets(buf,size,fp)) → if((buf=fgets(buf,size,fp))!=NULL)
逝ってきます
0243Kusakabe Youichi
NGNG> FILE *fp = NULL;
> char *buf = NULL; /* 行バッファです */
意味のない初期化ですね。
> size_t size = 10240;/* バッファのサイズです */
変数に入れなくてもいいのでは?
> buf=(char *)malloc(size);
エラーチェックぐらいしておけば?
> memset(buf,'\0',size);/* 塗りつぶしておきます */
何の意味があるの? (末尾だけじゃだめなの?)
> if(buf[size-3] != '\0')/* ←←ここです! *//* 行の最後まで読めなかった */
> /* 領域を拡張して読み直します */
じゃあ1行が数ギガバイトあったらそこまで拡張するのでしょうか?
> この[size-3]の添え字計算はマズイと言うか最適化されませんか?
> char *chkptr = size - 3;として
なぜ-3なの? -1 じゃなくて?
0244Kusakabe Youichi
NGNG> まず判定方法を改めろ。fgetsの返値を使うとかな。
どう使うのでしょうか? :)
0245Kusakabe Youichi
NGNG> > memset(buf,'\0',size);/* 塗りつぶしておきます */
> 何の意味があるの? (末尾だけじゃだめなの?)
っていうか末尾の1つ前か
> > この[size-3]の添え字計算はマズイと言うか最適化されませんか?
> > char *chkptr = size - 3;として
>
> なぜ-3なの? -1 じゃなくて?
-2かな。
0246236
NGNG>意味のない初期化ですね。
はい、厨房です、bufに付いては後でfreeする時に怖いので(勘違い?)(鬱
>変数に入れなくてもいいのでは?
/* 領域を拡張して読み直します */ の部分が
bufExpansion(&buf,&size,fp);とかになっとります(鬱
>じゃあ1行が数ギガバイトあったらそこまで拡張するのでしょうか?
力の限り(鬱
>なぜ-3なの? -1 じゃなくて?
end of string\n\0というパターンを考えました(鬱
何かスレのレベル下げまくりみたいなんで山に帰ります。
謝謝了。
0247Kusakabe Youichi
NGNG> > 意味のない初期化ですね。
> はい、厨房です、bufに付いては後でfreeする時に怖いので(勘違い?)
はい勘違いですね。逆に言えばNULLをfreeしたときの挙動は
標準規格では未定義だったように記憶しています。
(少なくとも標準規格以前のBSD(VAXとか)ではfree(NULL)したときには
何も起きませんでしたが、SystemV系のではfree(NULL)するとSegmantation Fault
でコアダンプするものがほとんどでしたよ)
> > 変数に入れなくてもいいのでは?
> /* 領域を拡張して読み直します */ の部分が
> bufExpansion(&buf,&size,fp);とかになっとります
なるほど。だったら変数にすることはかまわないですが、
最初に変数に与える数値は#defineしておきましょうね。
あと、そのbufExpansionですが、reallocとか使っているのでしょうか?
fpを渡しているのはなぜでしょう?
もしかして中でfgets()を呼んでいる?
だとしたら「関数のまとめる」ために切る部分を誤っているような。
# 一般に言って、やたらと引数が多くなったり、アドレスを渡す引数が多くなる
# ような関数分けはどこか間違っていることが多いです。
> > じゃあ1行が数ギガバイトあったらそこまで拡張するのでしょうか?
> 力の限り(鬱
> > なぜ-3なの? -1 じゃなくて?
> end of string\n\0というパターンを考えました(鬱
え? でも「\n」だったら「\0ではない」のだからいいのでは?
0248デフォルトの名無しさん
NGNGfree(baz);
で破棄した時にbazにゴミが入ってたらヤバイっつってんだろ
魔板でレスするなって怒られてるんだけどな B -)
0249Kusakabe Youichi
NGNG> if(baz)
> free(baz);
> で破棄した時にbazにゴミが入ってたらヤバイっつってんだろ
この馬鹿理解してないみたい(^^;
つまり、ifでNULLだけどけてみたり、freeでゴミが入ってるかもしれない
なんていうコードの書き方ってのは「場当たり的すぎ」だという意味です。
(「予防的プログラミング」に似ているがその実が違う)
0250デフォルトの名無しさん
NGNG0251デフォルトの名無しさん
NGNGアホが書いたランダム爆撃コードを良く退治させてもらったもんだが
多分アンタの本読んだんだろね p
素人には難しいかもしれないが、コーダーってのは色んなレベルの寄せ集め
なんだよ、もし話が理解出来なくて気を悪くしたならすまないね。
0252Kusakabe Youichi
NGNG> つくづくこのオッサンは口だけだと思ってしまう
「思ってしまう」->「思いたい」ですかね。
> アホが書いたランダム爆撃コードを良く退治させてもらったもんだが
> 多分アンタの本読んだんだろね p
11月12日発売でした。
> 素人には難しいかもしれないが、コーダーってのは色んなレベルの
とか偉そうに言うやつにかぎってしょーもないコード書くのよね:)
0253デフォルトの名無しさん
NGNG保証されているはず。
どっかのタコな実装は知らん。
0254デフォルトの名無しさん
NGNGそりゃ良かったよ、色んな意味でね
>とか偉そうに言うやつにかぎってしょーもないコード書くのよね:)
俺やお前を含めてね。
0255Kusakabe Youichi
NGNG> 少なくともANSIの規格上ではfree(NULL)は何も起きないことが保証されているはず。
あれ? そうでしたっけ。
調べてみます。
> どっかのタコな実装は知らん。
ベル研に言ってください :) > どっかの
0256Kusakabe Youichi
NGNG> > 11月12日発売でした。
> そりゃ良かったよ、色んな意味でね
時系列的因果関係は合ってますか?
> > とか偉そうに言うやつにかぎってしょーもないコード書くのよね
> 俺やお前を含めてね。
無理に私までいっしょにしなくてもいいですよ :)
0257デフォルトの名無しさん
NGNG0258ヒツキー@プロゴルァミング
NGNG騙されてる>>257みたいなのも多いなぁ。
0259Kusakabe Youichi
NGNG> Kusakabeは無視。
とかいちいち書くやつ :)
0261Kusakabe Youichi
NGNG> > 少なくともANSIの規格上ではfree(NULL)は何も起きないことが保証されているはず。
>
> あれ? そうでしたっけ。
> 調べてみます。
調べてみました。C89以降は保証されているようですね > free(NULL)は何も起きない
でも、やはりmallocが返す値を入れる変数を
「あらかじめNULLにしておく」のを薦めるのはやはり変だと思います。
(たとえばこの人も薦めてる > http://www.google.com/search?q=free+%88%F8%90%94+NULL&hl=ja&lr=)
つまりその変数が最初のmallocの値を受け取るよりも前に
「free」が呼ばれた場合のことを考えた処置ですよね。
それはつまり、変数を宣言したあと「そのfreeが絶対にmallocからの値を代入する
よりも前に出てこない」ことが保証できないぐらいの複雑さの場合は意味を持ちますが
逆にいえば、そんな汚いコードを書くことのほうをどうにかするべきです。
同様のことは、たとえばif ((fp = fopen( ...で使う変数fpを
FILE *fp = NULL; のように初期化しておくことにも言えます。
0262デフォルトの名無しさん
NGNG書ければすむ話なんですがね。better C としてのC++利用。
初期化は、こういうことを為かもしれませんね。
char *a = NULL; char *b = NULL;
if( !a = malloc( size ) ) goto error;
if( !b = malloc( size ) ) goto error;
--snip--
error:
free(a); free(b)
0263Kusakabe Youichi
NGNG> まぁ char *buf = (char*)malloc( size ); と
> 書ければすむ話なんですがね。
っていうか、その表記が許されたとしても、
「宣言と代入が離れすぎていて、freeが先におこなわないことを保証できない」
コードって問題でしょ?
たとえば宣言をmallocからの代入の「すぐ近く」に置くことで、
freeがそれより前の行になってしまうようなものはコンパイル時にエラーに
できちゃうわけで。
> better C としてのC++利用。
Cでもできますね > ブロックの先頭以外に変数宣言を書く。
> 初期化は、こういうことを為かもしれませんね。
> char *a = NULL; char *b = NULL;
>
> if( !a = malloc( size ) ) goto error;
> if( !b = malloc( size ) ) goto error;
> --snip--
> error:
> free(a); free(b)
はい。たぶんそういうことをやりたいんでしょうね。
でもそれはずいぶん汚い書き方ですよね。そっちのほほうを何とかすべきで
あって、「NULLを入れておかないと危険」なような書き方自体に問題がある
わけです。
0264デフォルトの名無しさん
NGNGfree(hoge)hoge=NULL; なんだけどなあ・・・
つまりhogeにはまともなポインタかNULL以外入って欲しく無いし
それでバグ取りがやり易かったり超実用的なんだけど・・・
こんな事言うと「そんなヘボい構造自体が」とか言われそうだけど
私が書いたんじゃないんだよなあ
って言うと「そもそもそう言う設計自体が」って来るんだろねえ (^∀^)アハハッ
0265Kusakabe Youichi
NGNG> if(hoge)free(hoge); と言うより
> free(hoge)hoge=NULL; なんだけどなあ
なるほどfreeしたあとですか?
だったら、宣言時だけじゃあだめですね。
(freeしたたびに代入ですかー)
> つまりhogeにはまともなポインタかNULL以外入って欲しく無いし
でもそれはfreeに渡す変数だけじゃなく、すべてのポインターに関して
言えるのでは?
(ある時点でその指しているものが無意味に成ってしまうポインター変数なんて
いくらでもありそうですし)
> それでバグ取りがやり易かったり超実用的なんだけど
ですからそれは「本末転倒」ってやつですね。
「わかりにくいプログラム」を「わかりやすく直す」ことをせずに、
デバッグしやすくする方法って感じですね。
0266デフォルトの名無しさん
NGNG構造体ポインタはちょっと、、とか平気で言っちゃう人もプロジェクトには居る訳ですね
嫌あなたが超絶天才的C言語完全体なのはわかりますがね。
実際そう言う人とやってくのが仕事な訳ですよ、ええ。
そう言う人相手に「for使うならカウンタの初期化は無駄です」なんて
教えると会社潰れる位のつけ払う事になりますわ、多分
0267デフォルトの名無しさん
NGNG0268Kusakabe Youichi
NGNG> とにかくこの人は言ってる事がかなりヤバイです、いやホント。
「ということにしたい」のですね? :)
> 構造体ポインタはちょっと、、とか平気で言っちゃう人もプロジェクトには居る訳ですね
意味がわからないですが...
「構造体ポインタは使わないほうがいい」という人がプロジェクトにいたりする
っていう意味ですか?
っていうか、そんな人が平気で存在できるようなプロジェクトや会社に
自分がいるっていう事実はどう認識しているのですか? :)
> 実際そう言う人とやってくのが仕事な訳ですよ、
自分のあまりにも情けない環境を「世の中のごくふつう」だと
思い込みたいからといって、事実をねじまげるには無理がありますね :)
0269Kusakabe Youichi
NGNG> 糞壁はその存在自体が壮大なネタだからね
こういうのがいっぱい暴れて会話の邪魔をするところなんですね。
2chって。
0270デフォルトの名無しさん
NGNG0271デフォルトの名無しさん
NGNG氏んだです (´ー`)
0272Kusakabe Youichi
NGNG> Kusakabe Youichi先生は4徹でデバッグとかした事有りますか?
それって何ですか? > 4徹
0273デフォルトの名無しさん
NGNGえっネタじゃ無いんですか? (^^;
0274iku
NGNGあ い うのデータを
CSVにあ,い,うという形で出力する方法を知りたいのですが,
教えて頂けないでしょうか?
それともう一つ,
もしその出力するCSV1にデータが存在していた場合,
初期化してからデータ出力をしたいのですが,
どうすれば初期化できるのでしょうか?
よろしくお願いします。m(_ _)m
0275Kusakabe Youichi
NGNG> こんにちは。ikuと言います。
> あ い うのデータを
> CSVにあ,い,うという形で出力する方法を知りたいのですが,
> 教えて頂けないでしょうか?
ふつうに書けばいいのでは?
でも文字列は全部「"」で括ってたような > ふつうのCSV
> それともう一つ,
> もしその出力するCSV1にデータが存在していた場合,
> 初期化してからデータ出力をしたいのですが,
man fopen
0277デフォルトの名無しさん
NGNGここでしつこく語ってるかと言うと、fjでは突っ込まれるのが怖くて
発言できなかったから。
0278デフォルトの名無しさん
NGNG要するに、日本語を含んだスペース区切りのCSVを
コンマ区切りにCSVに直した言ってことか?
普通にスペースをコンマにReplaceすりゃいいじゃん。
C言語でやると漢字の2バイト目にスペースと同じ文字コードが
含まれてる可能性があって、分岐がめんどくさくなるような。
0279Kusakabe Youichi
NGNG> なんで、こいつは、fjでほとんど発言しなかったfree()問題を
> ここでしつこく語ってるかと言うと、
はつみみですね。fjで何度か話題になったのは、
「exitするときにいちいちfreeコードは意味があるか?」という
話題なので、全然ちがう話題ですね。
> fjでは突っ込まれるのが怖くて発言できなかったから。
ということにしたいわけですね? :)
(それで私の発言は見なかったことにしてるのですね^^)
0280デフォルトの名無しさん
NGNGCODE COMPLETE 読みましょう。
私は dangling pointer 嫌いです。ただ C だと全面的に dangling pointer
を追放するのは難しい(いちいち NULL を自分で代入しないとならなず、現実
的ではない)から、諦めてますけど。
C++ を使う場合には「所有する」オブジェクトに関しては std::auto_ptr な
どのスマートポインタを多用しますし、また関連を張るために使うポインタに
ついては NULL or 意味のあるポインタ値が常に保たれるように注意します。
0281名無し
NGNGvisualC++でそのプログラムを
見るにはどうしたらいいのんですか?
0282デフォルトの名無しさん
NGNG0283デフォルトの名無しさん
NGNG> Cでもできますね > ブロックの先頭以外に変数宣言を書く。
できませんよ。途中にブロックを作ってその先頭に変数宣言を
書くことはできますが。
0284Kusakabe Youichi
NGNG> >>263
> > Cでもできますね > ブロックの先頭以外に変数宣言を書く。
>
> できませんよ。
いえできますよ。
> 途中にブロックを作ってその先頭に変数宣言を書くことはできますが。
そりゃもちろんできますね。でもそれは「ブロックの先頭」ですね。
逆アセンブルすればいい。MSDNをよく調べろ。
つーか、コンパイルがなんであるか良く分かってないだろ。
0286デフォルトの名無しさん
NGNGC99からはブロックの途中から変数宣言できるようになったんですか?
ANSI X3.159 の古い規格しか知らない物で。
0288デフォルトの名無しさん
NGNGC99からできるようになったのよ。
http://std.dkuug.dk/JTC1/SC22/WG14/ 参照のこと。
厳密じゃなくてもいいなら http://seclan.dll.jp/ あたりもお手軽かも。
# 単にCと言った場合は混乱するなあ。規格の趣旨から言うと現行規格は
# ISO/IEC 9899:1999のみなんだけどさ。
0289Kusakabe Youichi
NGNG> C99からはブロックの途中から変数宣言できるようになったんですか?
なってますよ。
for (int i = 0; ... みたいなのもできるし。
複合定数も、指定付き初期化も。
0290デフォルトの名無しさん
NGNGC99サポートしたコンパイラなんてまだ一般的ではないんだから、一言
「C99では」と前置きしとけ。
0291Kusakabe Youichi
NGNG> ここはニュースグループじゃないんだから(Iyぢ無駄な引用はするなボケ。
また「ニュースグループ」とかわけのわからないこと言うやつがいた :)
0292Kusakabe Youichi
NGNG> # 単にCと言った場合は混乱するなあ。
混乱しないでしょ? override...じゃないや、えっとようするに
新しいのが古いのを上書きしてるんだし。
0293デフォルトの名無しさん
NGNG0294デフォルトの名無しさん
NGNGJIS があるやん。
0295288
NGNG> override...じゃないや、えっとようするに
outdate
> 新しいのが古いのを上書きしてるんだし。
288でもそのように書いたつもりですが。
ANSI X3.159-1989、ISO/IEC 9899:1990、ISO/IEC 9899:1999のそれぞれで仕様が
異なる場合はC89、C90、C99と明記することが多くありません? (いまだにC9Xと
呼んでる人もいるけど)
念の為、これはISO/IEC JTC1/SC22/WG14のmailing archiveやcomp.lang.cを読んだ感想です。
C99に対応していないgcc2.95.3を使っている俺としては、
C99でしか使えないことは明記して貰うとありがたい。
0297Kusakabe Youichi
NGNG> > 新しいのが古いのを上書きしてるんだし。
> 288でもそのように書いたつもりですが。
> ANSI X3.159-1989、ISO/IEC 9899:1990、ISO/IEC 9899:1999のそれぞれで仕様が
> 異なる場合はC89、C90、C99と明記することが多くありません?
うーん、C90っていう言い方はあまり聞かないですね。
C89でまとめちゃってる気がする。
> (いまだにC9Xと呼んでる人もいるけど)
C99をそう呼ぶひとってのは、確実にC90とはいいそうにないですね。
0298288
NGNG> うーん、C90っていう言い方はあまり聞かないですね。
ほとんど一緒ですから。
> C99をそう呼ぶひとってのは、確実にC90とはいいそうにないですね。
そんなことないですよ。C99がdraftのころは自分のことをC9Xと呼びつつ、
ANSIを参照するときはC89、ISOを参照するとき(めったにないけど)はC90
と書いてました。その時のくせがまだ抜けない人もいるみたいです。
0299デフォルトの名無しさん
NGNGネタにマジレスですか?
0300デフォルトの名無しさん
NGNG0301デフォルトの名無しさん
NGNGそれがC言語と関係あるのか? 荒らしたいならプログラマー板の隔離スレに
いけ、ヴァカ。
0302namber
NGNGint **a;
としたときの動的変数のメモリ確保の方法がわかりません。
例えば、
int a[3][3];
と同じ大きさのメモリを確保する場合どうしたらよいでしょう。
どうぞよろしくおねがいします。
0303デフォルトの名無しさん
NGNGint a[3][3] の置き換えならば、
int **a; ではなくて、
int (*a)[3]; であろう。
0304デフォルトの名無しさん
NGNGC FAQ見れ。
0306デフォルトの名無しさん
NGNGprintf("%s", s);
printf(s);
これって実行結果同じ?
0307デフォルトの名無しさん
NGNG文字列に代入文字があると変わる。
だからprintf(s)は危険。
0308デフォルトの名無しさん
NGNGもう
「K&R読め」
の時代でなくて
「C99の規格書読め」
という時代なの?
0309307
NGNGとりあえず、printf関数の第一引数は文字列定数にするべき。
#include <stdio.h>
main()
{
char *s;
s = "%%";
printf("%s", s);
printf("\n");
printf(s);
printf("\n");
}
--------------
%%
%
こんなふうに、、、
0311デフォルトの名無しさん
NGNGそれはまだいいよ。
#include <stdio.h>
main()
{
char *s;
s="%d";/* %sとでもよい */
printf(s);
}
----------------------
こういうことをすると、必要な引数が足りなくて、無いものを参照しようとして実行時にエラーになると思う。
0312311
NGNG○ /* %sとかでもよい */
0313デフォルトの名無しさん
NGNGよし、盛大に騙ってやろう。
まず、C99では以下のような関数定義が可能になった。
もちろん今までのようなold styleも許される。
int
main(argc, argv)
int argc;
char **argv;
{ return 0; }
0314デフォルトの名無しさん
NGNG変数宣言をカーリーブランケットの外に出せるってこと?
0315デフォルトの名無しさん
NGNG∩
| |
| |
| |
| |
∧_∧ | | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ´Д`)// < 先生!その場合プロトタイプ宣言はどうなりますか!
/ / \___________
/ /| /
__| | .| | __
\  ̄ ̄ ̄ ̄ ̄ \
||\ \
||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
|| || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
.|| ||
0316C99ならここを読め
NGNGhttp://seclan.s5.xrea.com/c99d/
デニス・リッチー氏インタビュー――CとUNIXの開発者が見る未来
http://www.idg.co.jp/lwonline/backnumber/200101/20010112_01_report.html
0317デフォルトの名無しさん
NGNG・・・
一応突っ込んどくね。
0318デフォルトの名無しさん
NGNGこれが2chでいう
「ネタニマジレスカコワルイ」
という奴なのか・・・?
0319デフォルトの名無しさん
NGNG0320デフォルトの名無しさん
NGNGプロトタイプ宣言など必要ない。
型の正当性はプログラマが保証すればよい。
あと、予約語にはentryというのが追加された。
これはエントリポイントを生成し、関数の途中から処理を実行できる。
例えば
int neta(int a)
{
a++;
entry dayo:
a++:
return a;
}
gomen = neta(2);の場合、gomen:4となるが、
gomen = neta.dayo(2)の場合、gomen:3となる。
0321デフォルトの名無しさん
NGNG. ∩
|::|
|::|
∧_∧ |::| ./ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(:∵´Α`)/:/< 先生!僕は先生しんじてます!
/:∵:∵:∵:/ \____________
/::/|:∵:∵:∵/
__|::| .|:∵:∵:∵|
\  ̄ ̄ ̄ ̄ ̄ ̄ ̄\
||\ \
||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
|| || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
.|| ||
0322デフォルトの名無しさん
NGNGIn article >>710, 710 仕様書無しさん wrote:
> > そんな変なことを言うひともいるんですね。
> そうですよね、ふつー上京は東京に行くことだし、
はつみみです。
730 :仕様書無しさん :01/12/04 18:13
>>722
じょうきょう【上京】
地方から都へ行くこと。現在は,東京へ行くこと。
(新辞林 by 三省堂 @Yahoo! DICTIONARIES)
とありますよ。
「地方から都へ行くこと。」「東京へ行くこと。」のどちらが「普通」かと言
えば現在では後者といっておかしくないでしょう?
744 :スバリ回答 :01/12/04 18:20
民明書房国語辞典
じょうきょう【上京】 [名][自サ]地方から都に出ること。京都へ出ること。
やはり、日下部氏は正しかった。
752 :Kusakabe Youichi :01/12/04 18:27
In article >>741, 741 困った wrote:
> 清水国語辞典
> じょうきょう【上京】 ジヤウキヤウ[名][自サ]地方から都に出ること‥豕・惱个襪海函
>
> 誤植ですね。
民明書房国語辞典 じょうきょう【上京】 [名][自サ]地方から都に出ること。京都へ出ること。
0323デフォルトの名無しさん
NGNGprintf("%s",str);
と書きますが、HTML的には
printf("%s%",str);
と前と後ろと囲ってもらわないと気持ち悪いです。
0324デフォルトの名無しさん
NGNGその辞書そのものが捏造かもしらんじゃん。
コンパイラー トロジャンという言葉を知らんのか。
0325デフォルトの名無しさん
NGNG厨房相手に反応すんのやめようよ(・∀・)
0326デフォルトの名無しさん
NGNG∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ・∀・)< 辞典はやっぱり民明書房だね♪
( ) \_______
| | |
(__)_)
0327デフォルトの名無しさん
NGNG0328デフォルトの名無しさん
NGNGどうしようもないレスで age るな、バカ。日下部先生を鑑賞するスレはプログラマー板
にあるから、こっちに来るように。
0329デフォルトの名無しさん
NGNG#define Today 25
と
const int today=25;
と書くのとは、どちらがいいのでしょうかね?
みなさんはどちらを書くんですか?教えてください。(出来れば理由などもあればお願いします)
よろしくお願いします。
0330デフォルトの名無しさん
NGNGenum のほうがよいんじゃない?
理由:gdbで25がtodayに読める
0331名無しさん@お腹いっぱい。
NGNG#include <math.h>
int N;
double M=10.0+h,h,pi=M_PI; ←ここのhと
void integ();
double f(double);
main()
{
h=1.5;
integ();
h=0.5;
integ();
void integ() ←ここが
{
double daikei=0.,simpson=0.;
int i;
N=M/h;
for(i=-N;i<=N;i++){daikei +=f(i*h);}
daikei *=h;
for(i=-N;i<=N;i+=2){simpson +=4.*f(i*h);}
for(i=-N;i<=N-1;i+=2){simpson +=2.*f(i*h);}
simpson *=h/3.0;
printf("\n h=%lf\n",h);
printf("sqrt(pi)=%15.10e\n",sqrt(pi));
printf("daikei =%15.10e\n",daikei);
printf("simpson =%15.10e\n",simpson);
}
}
double f(double x)
{
return exp(-x*x);
}
コンパイルしてもうまくいかないんですけど、どうしてでしょうか?
よろしかったら教えてください。
0332Kusakabe Youichi
NGNG> 例えば、
> int a[3][3];
> と同じ大きさのメモリを確保する場合どうしたらよいでしょう。
(sizeof(int) * 3 * 3)では?
0333Kusakabe Youichi
NGNG> char *s;
> printf("%s", s);
> printf(s);
> これって実行結果同じ?
sのなかにバックスラッシュや%がなければね。
0334Kusakabe Youichi
NGNG> だれかC99について盛大に語って。
> もう
> 「K&R読め」
> の時代でなくて
> 「C99の規格書読め」
> という時代なの?
K&RもC99対応のが出るのでは?
0335Kusakabe Youichi
NGNG> >>306
> とりあえず、printf関数の第一引数は文字列定数にするべき。
なんで連体形?
0336Kusakabe Youichi
NGNG> >>313
> 変数宣言をカーリーブランケットの外に出せるってこと?
ライナスがいつも持っているやつですね! > ブランケット
ライナス 《漫画 Peanuts に登場する Lucy の弟;
いつも安心毛布 (security blanket) を持ち歩くインテリ少年》
―民明書房刊『ライナスのすべて』より
■ このスレッドは過去ログ倉庫に格納されています