C言語なら、ぬるぽに聞け! Part 〈53〉
レス数が1000を超えています。これ以上書き込みはできません。
0001ぬるぽ
NGNG質問する前には最低限Googleで検索を。
GUIなどの標準Cではできない事の質問は使用している開発環境のスレへGo!
ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへさようなら。
コンパイラを探しているなら >>2-13 を。
上記を逸した場合の結果は激しく未定義だゴルァ!!
∧_∧
( ´∀`)< ぬるぽ
C FAQ 日本語訳
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/
0002デフォルトの名無しさん
NGNG51 http://pc2.2ch.net/test/read.cgi/tech/1046104909/
50 http://pc2.2ch.net/tech/kako/1044/10449/1044938752.html
49 http://pc2.2ch.net/test/read.cgi/tech/1042646178/
48 http://pc3.2ch.net/tech/kako/1041/10411/1041127646.html
47 http://pc3.2ch.net/tech/kako/1040/10400/1040048202.html
46 http://pc3.2ch.net/tech/kako/1039/10393/1039328710.html
45 http://pc3.2ch.net/tech/kako/1038/10384/1038405432.html
44 http://pc3.2ch.net/tech/kako/1037/10377/1037796472.html
43 http://pc3.2ch.net/tech/kako/1037/10372/1037281411.html
43 http://pc3.2ch.net/tech/kako/1037/10371/1037134356.html
42 http://pc3.2ch.net/tech/kako/1037/10371/1037101156.html
41 http://pc3.2ch.net/tech/kako/1036/10368/1036876790.html
40 http://pc3.2ch.net/tech/kako/1036/10366/1036673739.html
39 http://pc3.2ch.net/tech/kako/1036/10364/1036409391.html
38 http://pc3.2ch.net/tech/kako/1035/10357/1035729526.html
37 http://pc3.2ch.net/tech/kako/1035/10356/1035623265.html
36 http://pc3.2ch.net/tech/kako/1035/10352/1035211039.html
35 http://pc3.2ch.net/tech/kako/1034/10343/1034337064.html
34 http://pc3.2ch.net/tech/kako/1033/10332/1033240509.html
33 http://pc3.2ch.net/tech/kako/1032/10326/1032606064.html
32 http://pc3.2ch.net/tech/kako/1031/10319/1031905402.html
31 http://pc3.2ch.net/tech/kako/1030/10307/1030786546.html
30 http://pc3.2ch.net/tech/kako/1030/10307/1030786546.html
29 http://pc3.2ch.net/tech/kako/1029/10296/1029605182.html
28 http://pc3.2ch.net/tech/kako/1028/10284/1028495798.html
27 http://pc3.2ch.net/tech/kako/1027/10271/1027160374.html
0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
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
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/1020/10207/1020756993.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
15 http://pc.2ch.net/tech/kako/1016/10165/1016519243.html
14 http://pc.2ch.net/tech/kako/1015/10152/1015286974.html
13 http://pc.2ch.net/tech/kako/1013/10139/1013990673.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/1008/10083/1008300863.html
9 http://pc.2ch.net/tech/kako/1007/10072/1007272267.html
8 http://pc.2ch.net/tech/kako/1005/10058/1005811510.html
7 http://pc.2ch.net/tech/kako/1005/10058/1005811510.html
6 http://piza2.2ch.net/tech/kako/999/999617524.html
5 http://piza2.2ch.net/tech/kako/994/994908590.html
4 http://piza.2ch.net/tech/kako/992/992357382.html
3 http://piza.2ch.net/tech/kako/989/989929288.html
2 http://piza.2ch.net/tech/kako/979/979529893.html
1 http://piza.2ch.net/tech/kako/967/967985026.html
0005デフォルトの名無しさん
NGNGぬるぽってダレ?って感じ
0006デフォルトの名無しさん
NGNGスレたて乙。
∧_∧
( ´∀`)< ぬるぽ
みんなでいれれば叩かれない(怖くない
http://pumpkinnet.to/ranking/words/
【ぬるぽに投票した人】
http://pc.2ch.net/test/read.cgi/prog/1048837306/l50
0007デフォルトの名無しさん
NGNGと ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>1,5,6
0008デフォルトの名無しさん
NGNG俺の計算で言うと同じ質問量でもいつもの約2倍の速度でスレが消費されていく感じ
0009デフォルトの名無しさん
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
0010デフォルトの名無しさん
NGNGあ〜あ、「ぬるぽに聞け」なんて書くから・・・
0011デフォルトの名無しさん
NGNG使えない上司・先輩だな
0012デフォルトの名無しさん
NGNG( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>1
0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNG> まず問題を冷静に吟味してCの話か否かをはっきりさせてから質問しましょう。
> 質問する前には最低限Googleで検索を。
> GUIなどの標準Cではできない事の質問は使用している開発環境のスレへGo!
> ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへさようなら。
> コンパイラを探しているなら >>2-13 を。
> 上記を逸した場合の結果は激しく未定義だゴルァ!!
条件つけすぎなんだよ!ぬるぽざけんな
0015デフォルトの名無しさん
NGNGはぁ? カエレ!!
0016デフォルトの名無しさん
NGNG0017デフォルトの名無しさん
NGNG失敗スレですか?
0018デフォルトの名無しさん
NGNG0019デフォルトの名無しさん
NGNG0020まえすれ997
NGNG0021デフォルトの名無しさん
NGNG0022デフォルトの名無しさん
NGNG辞書で調べてものってないよ
0023デフォルトの名無しさん
NGNG0024デフォルトの名無しさん
NGNG関数プロトタイプ宣言じゃないよね??
0025デフォルトの名無しさん
NGNG↑ユーザー定義関数からmain関数を呼び出すことはないからいらないと思う・・・
int main(int argc,char **argv)
{
return 0;
}
0026デフォルトの名無しさん
NGNG0027デフォルトの名無しさん
NGNGセミコロンをつければプロトタイプ宣言。
0028デフォルトの名無しさん
NGNGうちのMS-IME2000だと「ひきすう」で引数と変換されるが。
いんすうだと因数か員数しか出ない。
ttp://wakatsukido.tripod.co.jp/kouza/kouza05.html
適当にぐぐってみた。
0029デフォルトの名無しさん
NGNGC言語なら、俺に聞け! Part 〈52〉
http://pc2.2ch.net/test/read.cgi/tech/1047275669/l50
0030C言語3日目
NGNG0031デフォルトの名無しさん
NGNGお前のコテハンほどじゃないけどな
0032デフォルトの名無しさん
NGNG( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>30
0033デフォルトの名無しさん
NGNG同じレベルか、勉強になるようなスレを紹介してもらえませんか
0034デフォルトの名無しさん
NGNGhttp://pc2.2ch.net/test/read.cgi/tech/1045074808/l50
0035デフォルトの名無しさん
NGNGもう「C言語」はいいと思うので、
「ぬるぽ開発 〜UNIXユーザの為の実践ぬるぽ講座〜」
をお勧めします。
0036デフォルトの名無しさん
NGNG0037デフォルトの名無しさん
NGNG0038デフォルトの名無しさん
NGNG0039デフォルトの名無しさん
NGNG塗る歩スレはもういりまん
0040かじゅ猫
NGNG0041デフォルトの名無しさん
NGNGぬるぽにであってから、その名前に良く出会うようになった気がする。
0042デフォルトの名無しさん
NGNGウチのPC(ATOK)だと「ひきすう」だと引数に変換されるけど
「いんすう」だと変換されない。
よって「いんすう」だと思われ。
0043デフォルトの名無しさん
NGNG0044デフォルトの名無しさん
NGNGネタにマジレスですか┓(´_`)┏
0045デフォルトの名無しさん
NGNGどうせ、戻り値も引数も無いくせに、
「ファンクション」を訳して「関数」とか言ってるバカ訳なワケだし。
0046デフォルトの名無しさん
NGNG0047デフォルトの名無しさん
NGNG0048デフォルトの名無しさん
NGNGだからファンクションの正確な訳語を希望する。
0049デフォルトの名無しさん
NGNGで、ファンクション⊃関数。
0050デフォルトの名無しさん
NGNGだからプログラムの正確な訳語を希望する。
0051デフォルトの名無しさん
NGNGどうしたらいいですか?
0052デフォルトの名無しさん
NGNG電子道
0053デフォルトの名無しさん
NGNG感染したところを取り除いてください
0054デフォルトの名無しさん
NGNGPascal の用語で行こう!
返値が ない ものは「procedure = 手続き」
返値が ある ものは「function = 関数」
0055デフォルトの名無しさん
NGNG戻り値を返しても、副作用があるとそれは関数じゃないから、厳密には違うらしい
っつか、呼び方なんてどうでもいいような
0056デフォルトの名無しさん
NGNG関数といわずにfunction。
0057デフォルトの名無しさん
NGNG0058デフォルトの名無しさん
NGNGどういう風になんの?
0059デフォルトの名無しさん
NGNG0060デフォルトの名無しさん
NGNGとはどういう意味でつか??
0061デフォルトの名無しさん
NGNG0062デフォルトの名無しさん
NGNGこのスレはこのままでは絶滅危惧種に指定されますよ?
0063デフォルトの名無しさん
NGNGぬるぽに(・∀・)カエレ!!
0064デフォルトの名無しさん
NGNGなるぽ
ってのは どうよ?
0065デフォルトの名無しさん
NGNG0066デフォルトの名無しさん
NGNG手元のフォントでは「|」の様だが。
0067デフォルトの名無しさん
NGNGウチだとこんな感じ。
>|<
0068デフォルトの名無しさん
NGNGそれはここです。
0069デフォルトの名無しさん
NGNG66-67 のが一般的っぽいが、どちらでもいいらしい。
こんな風に線が 5 本しかないものもある。
↓
^
0070デフォルトの名無しさん
NGNG* <- けつの穴
つーか、Cのスレではないのかよ?
0071デフォルトの名無しさん
NGNG0072デフォルトの名無しさん
NGNG0073デフォルトの名無しさん
NGNG0074デフォルトの名無しさん
NGNG0075デフォルトの名無しさん
NGNG->ってみんな何て呼んでる?
やっぱりアローが一般的なのか?
0076デフォルトの名無しさん
NGNG0077デフォルトの名無しさん
NGNGアロー演算子を再定義しよう、とか言わない?
007877
NGNG0079デフォルトの名無しさん
NGNG「デサシテル」
0080デフォルトの名無しさん
NGNG0081デフォルトの名無しさん
NGNGtinko->*anal と
*(tinko->anal)どっちが正しいの?
0082デフォルトの名無しさん
NGNG->* はC++のメンバポインタ演算子だ。
また *tinko->anal というようにカッコは不要です。
008375
NGNG必殺技でありそうでかっこいいな。
0084デフォルトの名無しさん
NGNG0085デフォルトの名無しさん
NGNGてことは、識別子の名前に使える?
0086デフォルトの名無しさん
NGNGまた、Cの予約語と同じ名前はつけられない。
確か処理系によっては$が使えたような・・・
0087デフォルトの名無しさん
NGNG0088デフォルトの名無しさん
NGNG参照渡し?
参照渡しならできないよ。C++ならできるけど。
ポインタ使うのはだめなの?
0089デフォルトの名無しさん
NGNGfunc(a, b);
って書いてaやbが書き替えられるなんて。
0090デフォルトの名無しさん
NGNGきもいよね。
Stroustrup自身もそういう使い方はするなって言っているし。
0091デフォルトの名無しさん
NGNG0092デフォルトの名無しさん
NGNG0093デフォルトの名無しさん
NGNG0094デフォルトの名無しさん
NGNG電源を切る。
0095デフォルトの名無しさん
NGNGもう春か・・・
0096デフォルトの名無しさん
NGNG0097デフォルトの名無しさん
NGNGmemcpyの前身
0098デフォルトの名無しさん
NGNG0099デフォルトの名無しさん
NGNG完全に 0 になるとは限らない。
010099
NGNG0101デフォルトの名無しさん
NGNG0102デフォルトの名無しさん
NGNG回路中でたくさん電気が蓄積されてる罠。
結構、何分かは完全に消えない罠。
0103デフォルトの名無しさん
NGNG前スレの922に出てきた
unsigned short int GetLength(unsigned char data[]){
return (data[0] << 8) + data[1];
}
この関数の動きがよくわかりません。
どのような動きをしているのか
ご解説いただけないでしょうか?
お願い致します。
0104デフォルトの名無しさん
NGNG先頭の二バイトに文字列の長さを入れてるってことじゃねーの? 前スレ見てないけど
0105デフォルトの名無しさん
NGNGdata[0]とdata[1]の合成。
0106デフォルトの名無しさん
NGNG0107デフォルトの名無しさん
NGNG答えは 105 の通りだが、使われている演算子の機能をひとつひとつ落ち着いて
考えれば自明だ。
0108デフォルトの名無しさん
NGNG|だと問題があるんだっけ?
0109103
NGNGこの仕様で文字列の長さと
char型の配列を返せるんですね!?
皆様のアドヴァイスを下に
演算子を丁寧に見てみます。
0110デフォルトの名無しさん
NGNG0111デフォルトの名無しさん
NGNGこの場合は正直、どうでもよろしい。
>>109
> char型の配列を返せるんですね!?
否。
105 をどう解釈したらそのようになる?
正解は仕様が不明なので何とも言えないが、おそらくは先頭 2 バイトに文字列長
を記録している方式の文字列だろう。
0112デフォルトの名無しさん
NGNG定数 8 を使っているところに不安は残るが、それを考えなければあり得ない。
0113デフォルトの名無しさん
NGNG使用するべきだろう。
0114デフォルトの名無しさん
NGNGこの場合は、ビット単位の論理和を使用するべきではない。
0115デフォルトの名無しさん
NGNGあんたは 16 進数からバイナリを得る場合も論理和を使うのか?
0116115
NGNG10 進数とか。
0117デフォルトの名無しさん
NGNG0118デフォルトの名無しさん
NGNG0119デフォルトの名無しさん
NGNG0120103
NGNGご指摘ありがとうございます。
動きはなんとなくわかったのですが
前スレ922では
char date[1];を
int Resultに代入していますが
int型にchar
の配列を代入できるのでしょうか?
0121デフォルトの名無しさん
NGNGそれは「配列を代入」しているのではなく、
「配列の1番目の要素を代入」しているのではないのか?
0122デフォルトの名無しさん
NGNG0123デフォルトの名無しさん
NGNG0124デフォルトの名無しさん
NGNG0125デフォルトの名無しさん
NGNG0126デフォルトの名無しさん
NGNG……かもしれない
0127デフォルトの名無しさん
NGNG0128デフォルトの名無しさん
NGNG0129デフォルトの名無しさん
NGNGあれp^だっけ忘れたぽ
0130デフォルトの名無しさん
NGNG^pですな。
object付かないのも同じだったと思うけど、TurboPascalの方言かも。
0131あほ
NGNG{
struct sockaddr_in dst;
... ... ...
... ... ...
do_connect(dst);
... ... ...
}
void do_connect(struct sockaddr_in dst)
{
connect(socket_fd, (struct sockaddr_in *)&dst, sizeof(dst));
...
...
}
こういうコードで、connect文で
passing arg 2 of `connect' from incompatible pointer type
が出てしまいます。何故でしょう。。。
connectへの他の引数は正しいとします。
mainの方で、dstも適切に設定されているとします。
構造体ってこういう感じで引数として渡せないんですか?
0132デフォルトの名無しさん
NGNG0133131
NGNG>struct sockaddr_in *
struct sockaddr *
でした。ありがとうございましt。
0135デフォルトの名無しさん
NGNG0136135
NGNG0137デフォルトの名無しさん
NGNGMPW Pascalもそうだった。
p^な。
0138デフォルトの名無しさん
NGNGコピーしたいと思い、
strcpy()を使いました。
そうするとstrcpy()は使わないほうがいいよと
忠告してくれた人がいるんですが
なぜなのかがわかりません。
strcpy()の問題点と代替関数があれば
御教授いただきたく思います。
厨房で申し訳ございませんが
よろすくおながいいたします。
0139デフォルトの名無しさん
NGNG0140デフォルトの名無しさん
NGNG0141デフォルトの名無しさん
NGNG0142デフォルトの名無しさん
NGNGmethod!
message!
0143デフォルトの名無しさん
NGNG"hogehoge" は9文字ある (hogehoge + \0)
char hoge[8] は8文字しか入れられない
あとは考えてくれ
0144デフォルトの名無しさん
NGNGstrcpyの問題点というと、コピー先のサイズがあふれるかどうか感知できない点かな。
こういうこと;
char baka[2];
char hoge[] = "hogehoge";
strcpy(baka, hoge);
bakaには2バイトしか大きさがないのに、9バイトコピーされてしまい、
結果バッファオーバーフローがおきる。
けどこういうのはstrlenを使うなりすれば前もって検知することは可能なんで、
strcpyを絶対に使うなという話にはならない。
ちなみに標準関数にはstrncpyという一見コピー先のサイズに合わせてくれるような
関数があるけど、こいつの仕様はヘンなので使わないほうがよい。
自前でサイズを見る関数を作るとかするといいよ。
0145デフォルトの名無しさん
NGNG末尾に'\0'を付加しない場合があるというのは別に変ではないと思うけど、
コピー元が指定したバイト数よりも短い場合は0で埋めるってのは変な仕様だよなぁ。
0146138
NGNGご教授アリガ�dです
終端文字が溢れてしまうわけですか。。。
なるほど、勉強になります。
とりあえずstrcpy(hoge, "hogehoge");と
ベタ書きしていたのですが
hogehogeを変数に代入してから
memcpy()するのが安全?なんでしょうか?
文字列の扱いはなんか制約が多いイメージが
強くてコワヒ・・・
(((((゚д゚;)))))ガクガクブルブルブルブル
0147デフォルトの名無しさん
NGNGCは何するにも制約が多いです。
Javaを使いましょう。
0148デフォルトの名無しさん
NGNG"制約"はJavaの方が多い
C++だ
0149デフォルトの名無しさん
NGNGJavaは何するにも重いです。
Cを使いましょう。
0150デフォルトの名無しさん
NGNG機械語をおすすめします。
0151デフォルトの名無しさん
NGNGstruct Foo;
と書けばFoo構造体の宣言ができるけど、
Cだとどう書くの?
下の関数の宣言だと
void func(Foo *f);
構造体の宣言だけで済む
(コンパイラ依存が減る)ので
これをCでやるにはどうするのか、という質問です
0152デフォルトの名無しさん
NGNG違いといえばC++の場合はtypedefしなくてもタグ名が型名になるということか。
0153デフォルトの名無しさん
NGNGstruct Foo a; ←構造体宣言
void func( struct Foo *f ); ←関数の引数に使う場合
ただ、構造体定義のとこで
typedef struct Foo { ...... };
ってやっちゃうことが良くあるんでないかな。そうすれば、宣言や引数のときに「struct」を省略できる。
0154デフォルトの名無しさん
NGNG> typedef struct Foo { ...... };
typedef struct { ...... } Foo;だろ。
0155制御屋さん見習中
NGNGF[0][0]= -1.301309e-06
こんな数があったとき、10^(-6)
のみ取り出す良い方法あり
ませんか?
お願いします。
0156デフォルトの名無しさん
NGNG浮動小数点数に対して==を使ったらうまくゆかなかったってやつか?
0157制御屋さん見習中
NGNGええっと、純粋に10の何乗のオーダーかっていうのが
知りたいのです。
0158151
NGNGそうです、これの形でよくやります。
こうやってtypedefしてたら、どうやって宣言するのでしょう?
関数の引数でも戻り値でも、「構造体へのポインタ」しか
つかってないときには…
0159デフォルトの名無しさん
NGNG新しい型を定義したんだからint等と全く同じように使える。
0160151
NGNGvoid func(Foo *f);
という関数宣言がでてきても、Cコンパイラから
未知の型:Foo
とかおこられないで、大丈夫なの?
C++なら
struct Foo;
void func(Foo *f);
とFooについて宣言する必要があるけど…
0161デフォルトの名無しさん
NGNGlog()とか使って計算するしかないのでは?
0162デフォルトの名無しさん
NGNGsprintfでも使ってeの後だけ切り出す手もあるねぇ
0163デフォルトの名無しさん
NGNG試せばいいだろ!(怒)
0164制御屋さん見習中
NGNGありがとう!
それは思いつきませんでした。
0165デフォルトの名無しさん
NGNGなんでその宣言の前にtypedefを書こうと思わないわけ?
0167デフォルトの名無しさん
NGNGtypedef struct{
int a;
char *b;
} Foo;
void func(Foo *);
こうだよこう。
0168151
NGNGこれだと、Fooについての実体をかいてますよね?
つまり、Fooの実体を変えるた場合、コンパイルを
やり直す必要がある(コンパイル依存が生じる)。
必要なのは「(構造体への)ポインタ」だけなのに…
ポインタであることさえわかれば、構造体の実体が
どうなっていても、ポインタのサイズは一定値なので
不要なコンパイル依存性を除去できるのですが…
0169デフォルトの名無しさん
NGNGを誰か説明してください。お願いします。わけわからんです。
0170デフォルトの名無しさん
NGNGとりあえずやってみろよ。
話はそれからだ。
0171デフォルトの名無しさん
NGNGlog()じゃなくてlog10()使えよ。
>>162
それだったらecvt()の方がよくないか?
0172151
NGNGC++だとヘッダファイルは以下ですむ
#ifndef FOO_FUNC_H
#define FOO_FUNC_H
struct Foo;
void func(Foo *f);
#endif
Fooの実体については何も書いていないので
コンパイラ依存がない。
つまり、Fooが定義されているfoo.hが変更されても
foo_func.hは関与しない
0173デフォルトの名無しさん
NGNGヘッダーファイルに関数の宣言を書くということは、他のファイルからもその関数を呼び出すんだろ?
0174デフォルトの名無しさん
NGNGポインタのサイズは一定でも、「なにの」ポインタかはコンパイラが意識する必要があると思え。
0175デフォルトの名無しさん
NGNG0176デフォルトの名無しさん
NGNG順番に型宣言でもして分解すればわかるだろう?
>int (*fns[])(struct gmstat*) = {gmmain, gmrank, gment, };
intを返す、struct gmstat*を唯一の引き数とする、関数へのポインタの配列fns、
それをgmmain, gmrank, gmentの3つの要素で初期化する。
つまり、
struct gmstat foo;
int rtn = fns[0](&foo);
と
int rtn = gmmain(&foo);
が等価なわけだな。
で、どうせなら
static int (*const fns[])(struct gmstat*) = {gmmain, gmrank, gment, };
にしておけ。
0177151
NGNGそれは、実際に必要な時まで、コンパイラが意識するタイミングを
送らせる(プログラマが調整させる)ことができますよね?
「Effective C++」の34項
「コンパイルするファイル間の依存性はできるだけ減らそう」
の話をしているつもりです…
これのC版のsttructはどうするのかなぁ、と。
やっぱりタグ名を使って冗長(?)に
extern struct Foo_tag;
void func(struct Foo_tag *f);
とでもするのでしょうか?
0178デフォルトの名無しさん
NGNG0179151
NGNGそれはそうなのですが…(^^;
Cでやるにはどうするのかな、と。
すみません、マルチポストっぽくって申し訳ないのですが
これからC++のスレでも質問させてもらいます…
0180デフォルトの名無しさん
NGNG要するに、構造体のメンバを隠蔽したいということか?
だったら、構造体を不完全型として宣言すればいい。
構造体へのポインタ「だけ」が必要な関数には、
typedef struct foo foo;
という宣言だけを見せて、メンバへのアクセスが必要な関数には、
struct foo { ... };
という宣言を見せればいい。
0181デフォルトの名無しさん
NGNGそれはそれで構造体の構造を変更しても、関数を使う側のファイルはコンパイルし直さなくても良いような気がする。
0182デフォルトの名無しさん
NGNG> これからC++のスレでも質問させてもらいます…
C++での方法を知っているのになぜ質問する。
0183デフォルトの名無しさん
NGNG冷やかしに来たのなら失せろ
0184デフォルトの名無しさん
NGNG>>180の言うようにCでもできるがダブルスタンダードになって
保守性が落ちるだけのような気がして気持ち悪い。
「C++でできることがCではどうなるか」疑問に思うのはいいが、
違う言語なのだから必ずしも同じように使わなくてもいいと思うのだが。
#名前空間の所為で、Cだとtypedef struct foo {int foo;} foo;なんてできるのだし。
0185sage
NGNG0186151
NGNG実際にCでかいていまして…
0187デフォルトの名無しさん
NGNGという質問が次は来るに 2,000ヌルポ
0188デフォルトの名無しさん
NGNG0189デフォルトの名無しさん
NGNGコンパイル時間がもったいないとか?
0190189
NGNG0191デフォルトの名無しさん
NGNG0192151
NGNGやってみたいと思っているんだけど…
しいていうならC++厨です
C++スレで質問したのですが、CならCの流儀にしたがえ
とアドバイスをうけました。
ですので、タグ名をつかってみることにします
(typedefをせずに)
荒らす気はなかったのですが、みなさんに迷惑を
かけてしまいました。
どうもすみませんでした。
0193デフォルトの名無しさん
NGNGがんがれ
0194デフォルトの名無しさん
NGNGもしくは説明されてるサイト教えてください
0195デフォルトの名無しさん
NGNG0196デフォルトの名無しさん
NGNG林の本でもいいから初心者本買えよ
http://www.google.com/search?num=50&hl=ja&lr=lang_ja&q=C%8c%be%8c%ea%82%cc%8c%5e+%8aT%94O
0197151
NGNGそれで、CスレでもC++スレでも、質問を終わります
C++スレでの終わりの意見はここです
http://pc2.2ch.net/test/read.cgi/tech/1047560042/623
たくさんアドバイスをしてくださって
どうもありがとうございました
0198タマちゃん
NGNGmain()
{
func1();
}
func1()
{
printf("a");
}
をコンパイルしようとすると、
5: Warning: function 'func1' undefine -- assumed to be int
って返ってきてしまいます。
どこが間違ってると思います?
0199デフォルトの名無しさん
NGNG解1)
#include "stdio.h"
func1()
{
printf("a");
}
main()
{
func1();
}
解2)
#include "stdio.h"
void func();
main()
{
func1();
}
void func1()
{
printf("a");
}
0200タマちゃん
NGNG神よ
ありがとう
0201199
NGNGmainの中でfunc1が出てきたときにはコンパイラはfunc1のプロトタイプは知らない。
知らないから、ファイルを読み進んでその先にあるかもしれないfunc1の
プロトタイプを知ろうとはしない。これが前方参照をしないの意味だ。
で、プロトタイプがわからない関数にぶち当たったときコンパイラは
intを返す関数だと仮定して処理を進める。これはCの規約でもある。
コンパイラがだしてるwarningはそのことを言ってる。
そのwarningを意訳すると、
「funcなんてしらねえよボケ、intを返すと見なすからそのつもりでいろや」
と言ってる。
んで、解1の方は前もってfuncの定義をしておくもので、
解2はコンパイラにfuncのプロトタイプを与えるというものだ。
0202デフォルトの名無しさん
NGNG0203デフォルトの名無しさん
NGNGintは処理系にとってもっとも自然な整数型。
同じサイズの処理系もあるし、違うサイズの処理系があってもよい。
たぶんおまいのさわれるコンパイラはサイズが同じなので違いはない
0204デフォルトの名無しさん
NGNG実引数にも影響を及ぼすことができるサンプルプログラミングですが
本に書いてあるとおりにやって何度も確認してるのですが
どこが間違えてるか分かりません。おしえてください。
#include <stdio.h>
void swap(int *pX,int *pY);
int main(void)
{int num1=5;
int num2=10;
printf("変数num1の値は%dです。\n",num1);
printf("変数num2の値は%dです。\n",num2);
printf("変数num1とnum2の値を交換します。\n");
swap(num1,num2);
printf("変数num1の値は%dです。\n",num1);
printf("変数num2の値は%dです。\n",num2);
return 0;
}
void swap(int *pX,int *pY)
{int tmp;
tmp=*pX;
*pX=*pY;
*pY=tmp;}
0205デフォルトの名無しさん
NGNG>swap(num1,num2);
swap(&num1,&num2);
&がない。よく本見てみ
0206デフォルトの名無しさん
NGNG0207デフォルトの名無しさん
NGNGありがとうございます!!正常な数値がでました。
ところで何故こうなるのでしょうか??
void swap(int *px,int *py);で宣言するときに
*pxおよび*pyは数値ですよね?
で、呼び出すときは swap(&num1,&num2);
と &num1および&num2はアドレスですよね?
つまり、&num(アドレス)を*px(数値)に代入することなんてできるんでしょうか?
0208デフォルトの名無しさん
NGNGint *ap;
ap=&a;
これをやってるのと同じ。
0209デフォルトの名無しさん
NGNGstruct name {
int namelen;
char namestr[1];
};
ってのが,C FAQ に載っていますが,
この使用に関して危険性は無いのでしょうか?
素人目には,かなり恐い感じがするのですが.
namestr[xx] のアドレスが危険な領域である可能性は無いのでしょうか?
0210デフォルトの名無しさん
NGNG関数内でint *px; を宣言して
引数のアドレスがコピーされるようなもの。
0211デフォルトの名無しさん
NGNG超ある。
ってかnamelenを何に使うのか説明してくれ。
0212デフォルトの名無しさん
NGNGていうか
mallocとかであらかじめメモリーを確保するから大丈夫
0213デフォルトの名無しさん
NGNGpname=malloc( sizeof(struct name) +9 );
としたら
pname->namestr[9] まで問題ない。しかしそれ以降は危険。
0214デフォルトの名無しさん
NGNGすごく初心者の友達がプログラムを覚えたいらしく、教えてあげることになり
ました。(僕もそんなに知識はありませんが)。使える言語が少ないのでC言語を
教えることにしました。ただ、友達はただがいいらしいのでそれを探したところ、
Borland等があるみたいですね。教えるために僕もBorland等をインストール
しようと思っているのですが、VC++が有るパソコンにそれを入れるとどうなりますか。
ぶつかって動作がおかしくなったりしませんか。教えてください。長文ですいません。
0215デフォルトの名無しさん
NGNGもうまんたい
0216デフォルトの名無しさん
NGNG0217209
NGNGこの場合 namelen はプログラマが陽に管理することになるんですね?
pname=malloc( sizeof(struct name) +9 ); のとき
pname->namestr[9] までOKなので,例えば
pname->namelen = 10; と設定してやるとか.
struct name {
int namelen;
char * namestr;
};
とすれば
struct neme namae; のとき
namae.namestr = xx;
namae->namestr = (char*)malloc(xx);
と出来ますよね?こっちのほうがいいような.freeしにくいのか?
この構造体のメリットは配列長情報を格納できることなのでしょうか?
いまいちピンとこないのですが,有効な利用法などはあるのですか?
0218デフォルトの名無しさん
NGNG0219デフォルトの名無しさん
NGNG209はCFAQでもダメだって書いてる。
どうやって
"配列namestrが複数の要素を持つように振る舞わせる"んだろ
char namestr[1];みたいな場合
namestr=ポインタ;
みたいな表現は許されないような気がした
217の方の使い方はいろいろあります。
最初にxxの大きさで割り当てた後
もっと大きいサイズが途中で必要になったりしたときとか長さが無いと困るし
そういうことをする関数を作った場合引数がごちゃごちゃしないとかかなあ
0220デフォルトの名無しさん
NGNG>公式な解釈によると上の技巧は Cの 規格に厳密には準拠していないと考えられる。
>(この技法が正しいか どうかを取り巻く議論を尽くすことは、このFAQの守備範囲を越えて いる。)
>しかし世の中に知られている全てのコンパイラの実装で、こ の方法は移植性が高いようである
>(配列の境界を注意深くチェックす るコンパイラは警告を出すかもしれない)。
>別のやり方としては、可変長の要素の大きさを、小さく取るより、非 常に大きく取ることが考えられる。上の例でいえば、
>char namestr[MAXSIZE];
>ここでMAXSIZEは配列namestrに保存されうるどんな名前よりも大きい。 しかしながらこの技法も、規格の厳密な解釈によると許されないよう だ。
駄目とは書いてないような・・
0222デフォルトの名無しさん
NGNGファイルフォーマットに可変長データ部分がある場合
ヘッダを一気に読んでこういう構造体にあてはめると効率が良いよ。
コンパイラの特性に依存してるから、移植性はほとんどないけど。
0223デフォルトの名無しさん
NGNGしかし、C99 では認められている気配。
0224デフォルトの名無しさん
NGNG0225デフォルトの名無しさん
NGNG0226デフォルトの名無しさん
NGNGそういえば、>>9のコンパイラ一覧にLSI-Cの試食版は入ってないな。
俺も昔はお世話になったが、やはりintが2byteはもう過去の遺物だろう。
0227デフォルトの名無しさん
NGNG俺がC始めたときは環境変数とか全然分からなかったから、
自動でパス通してくれるのは本当にありがたかったよ。
0228デフォルトの名無しさん
NGNG#include "stdio.h"
ビクビクガタガタ
ところで、純粋にC言語の勉強をするだけなら、gcc(cygwin)がお勧め。
ネットにさえ繋がればインストールは難しくないし、無料。
ただし、グラフィック関連は難しいので、あくまでも「C言語だけ」の世界だが。
0229デフォルトの名無しさん
NGNG0230デフォルトの名無しさん
NGNG0231デフォルトの名無しさん
NGNG0232デフォルトの名無しさん
NGNG0233デフォルトの名無しさん
NGNGc=n;とすれば良い所を可読性を良くする為、あえて
c=(char)n;としても遅くなったりしませんか(ループ内とかで)?
内部的な動作は良く知らないので教えてください。
0234デフォルトの名無しさん
NGNGとてつもなく遅くなる。禁じ手。
0235デフォルトの名無しさん
NGNGうほっ、そりゃまずいっす。 情報サンクス!
0236デフォルトの名無しさん
NGNG信じるな。
0237デフォルトの名無しさん
NGNGよく知らないけど
ハンガリアン表記すりゃあ、そんな必要無くなる罠。
0238デフォルトの名無しさん
NGNG> cがchar nがint型として
> c=n;とすれば良い所を可読性を良くする為、あえて
> c=(char)n;としても遅くなったりしませんか
処理系依存なのでアセンブラに落として同じコードになるか確かめろ。
0239デフォルトの名無しさん
NGNG0240デフォルトの名無しさん
NGNG0241デフォルトの名無しさん
NGNGc=(char)(a+b);
c=(char)a+(char)b;
みたいなのだと、結果は同じでも速度は変わる。
0242モナ王
NGNG以下のようなプログラムを実行します。
int main()
{
int i, j, n_1, n_2;
double K[M][N];
n_1 = 4;
n_2 = 2;
printf(" n_1 =%d\n", n_1);
printf(" n_2 =%d\n", n_2);
func( A, B, P, G, n_1,n_2,K);
printf(" n_1 =%d\n", n_1);
printf(" n_2 =%d\n", n_2);
return EXIT_SUCCESS;
}
すると、n_1とn_2の値が、func()の後で どちらも0になります。
func()内部で、n_1、n_2は値を参照しているだけです。
(for文のループに使用)
何故変わるのか理解できません。
宜しくお願いします。
0243デフォルトの名無しさん
NGNGこれだけの情報で分かったら神
引数を値を代入するような用途に使うのはいかがなものかと
0244デフォルトの名無しさん
NGNGfuncがスタック内容を壊してるから
0245デフォルトの名無しさん
NGNG正規の方法では、ポインタを使わない限り、それは意図しようが無い。
唯一 K がポインタ渡しになっていると思われるので、その扱いを間違えた func() の
バグだろう。
0246モナ王
NGNG>funcがスタック内容を壊してるから
これってどう言う意味ですか?
0247245
NGNG0248デフォルトの名無しさん
NGNG0249モナ王
NGNG長いのですが、、、
int func( double a[N][N], double b[N][M], double p[L][N], double g[M][N],
int Ncol,int Nrow,double K[M][N])
{
int i,j,k;
double InvF[N][N],s,tmp[10][10];
for (Pole_Count = 0; Pole_Count < Ncol; Pole_Count ++){
if(p[1][Pole_Count] == 0){
if(Pole_RealCal( a, b, p, g, Ncol) == 0){
/* エラー処理 */
return 0;
}
}else{
if(Pole_ImgCal( a, b, p, g, Ncol) == 0){
/* エラー処理 */
return 0;
}
}
}
for (i = 0; i < N; i++)
for (j = 0; j < M; j++) K[i][j] = 0.0;
return 1;
}
0250モナ王
NGNG>>249 自己レスです。
バグが分かりました。
K[][]の初期化を誤っていました。
(NとMが逆)
for (i = 0; i < N; i++)
for (j = 0; j < M; j++) K[i][j] = 0.0;
大変失礼しました。
当方win98 +Cygwin +gcc -Wall でコンパイルしています。
この様なバグは、見つけるのが難しいと思います。
皆さんはどのようにして、発見しているのですか?
0251デフォルトの名無しさん
NGNG0252デフォルトの名無しさん
NGNG>>244の予想どうりでワロタ
0253デフォルトの名無しさん
NGNG・ループ制御変数であっても一文字は避ける。
・ループの中身が一文だけであってもブロック化する。
・変数名を大文字で始めない。
・配列全体の初期化はmemset()を使う。
0254モナ王
NGNGありがとうです。
行列を扱いたいので、2次元配列を使いたいです。
・ループ制御変数であっても一文字は避ける。
これは、どういう意味ですか? i、jはやめろということですか?
・ループの中身が一文だけであってもブロック化する。
{}を付けろということですね。
・変数名を大文字で始めない。
了解です。
・配列全体の初期化はmemset()を使う。
これは知りませんでした。情報ありがとうございます。
0255デフォルトの名無しさん
NGNG私ならば、こうすると言う話だが。
Cの二次元配列は一次元目を固定サイズにしないといけないので使い難いと思わないか?
だから二次元配列の代わりに一次元配列で済ませるのが習慣になっている。
例えば配列全体の平均値を返す関数にするならこんな感じだ。
double CalcAverage(double const *pArray, size_t width, size_t height)
{
double sum = 0;
int iy;
for (iy = 0; iy < height; iy++) {
int ix;
for (ix = 0; ix < width; ix++) {
sum += pArray[ix + iy * width];
}
}
return sum / (width * height);
}
もしix + iy * widthが鬱陶しいなら、
#define pos(x, y, w) ((x) + (y) * (w))
とでもすればいい。そうすればpArray[pos(ix, iy, width)]と書ける。
0256デフォルトの名無しさん
NGNG0257デフォルトの名無しさん
NGNGコピペしたもんだからそういうことに。
指摘THX>>256
0258デフォルトの名無しさん
NGNG#include <stdio.h>
int main(int c, char **v)
{
c--;
if(c<0)return 0;
printf("%s ", v[c]);
return main(c, v);
}
0259デフォルトの名無しさん
NGNGvoid hogeprint( int, char * ); を作成しました。
#define STR(x) #x
int main()
{
int value = 100;
...
hogeprint( value, STR(value));
...
}
としたとき、"value"の示す文字列の生存範囲は関数内のみになるのですか?
それとも、main 関数が終わるまでになるのでしょうか?
0260デフォルトの名無しさん
NGNG0261デフォルトの名無しさん
NGNG0262デフォルトの名無しさん
NGNGそこが間違っているのですか?
なにが違うのでしょうか?
0263デフォルトの名無しさん
NGNGどこか間違ってるのか?
0264デフォルトの名無しさん
NGNGエラー E2120 test.c 13: プログラムの中からは main を呼び出せな・・(ry
0265デフォルトの名無しさん
NGNG0266デフォルトの名無しさん
NGNGmeschachはどうでしょ
俺は使ったこと無いですけどヘッダを見る限り
新たに配列を作ったり配列の大きさを変更したり
コピーしたり簡単な演算をしたり
と言うことは簡単にできそうです。
行列MATは行数、列数と2次元配列のように見せかけるポインタ
を持つ構造体みたいに宣言されてます
0268デフォルトの名無しさん
NGNGプログラム名の表示がおかしいってこと?
0269デフォルトの名無しさん
NGNG文字列リテラルと同一期間。
0270デフォルトの名無しさん
NGNGていうか、どんな風に問題があるのか書かないと
どうしようもない。
0271デフォルトの名無しさん
NGNGその文字列リテラルの生存期間が分かりません.
>>259 の場合はどうなるのでしょうか?
0272デフォルトの名無しさん
NGNG一般的にはプログラムの動作開始から終了まで。
0273デフォルトの名無しさん
NGNGブロック内
0274デフォルトの名無しさん
NGNG> int (*fns[])(struct gmstat*) = {gmmain, gmrank, gment, };
int (*gmmain)(struct gmstat *);
int (*gmrank)(struct gmstat *);
int (*gment)(struct gmstat *);
これを配列にして、その配列の名前を fns と付けた。
0275デフォルトの名無しさん
NGNGif >>272
char str[] = "abc";
char * str = "abc";
前者:ただの char型の配列(自動変数)
後者:文字列リテラル "abc" の先頭アドレスを格納するポインタ str 自身は自動変数だけど,
宣言・初期化が,どこで行われようとも "abc" という文字列はプログラムの実行中
常にどこぞかのメモリ領域を占有することになる.
if >>273
後者の宣言・初期化を行ったとき,ブロック内処理を終えると同時に,
文字列も姿を消し利用可能なメモリ領域となる.
う〜ん,所で >>273 のようであるとしたら,結局
#define STR(x) #x
hogeprint( value, STR(value));
のときの "value" は,関数(hogeprint)内でのみ存在するのでしょうか?
逆に, >>272 であるとすれば,
printf("hogehoge %d\n", value); を行うプログラムでは
実行中ずっと "hogehoge %d\n" という文字列リテラルを,
どこぞかのメモリ領域に有していることになる???
0276デフォルトの名無しさん
NGNG何を今頃とち狂ったレスをつけてるんだ?
0277デフォルトの名無しさん
NGNGstruct gmstat *型の引数でint を返す関数のポインタ
を保持する配列fnsを3個用意してそこに
gmmain, gmrank, gmentを代入してるってことですか
int *(fns[])(struct gmstat*)の場合はfnsは
struct gmstat* 型の引数 をもちint *を返す関数の配列であってますか?
int *fns[5](struct gmstat*)
のばやい
"int * を5個保持する配列"を返す関数fns?
0278デフォルトの名無しさん
NGNG>>273は忘れろ。
0279デフォルトの名無しさん
NGNG最初の解釈、「要素数3の配列fns」だ。
それから、関数は配列にできない。できるのは関数のポインタだ。
0280デフォルトの名無しさん
NGNGchar *str="hello";
printf("文字列は%sです。\n",str);
return 0;}
っていうコードなんですが
*strっていうのは、数値のことで
strっていううのは、アドレスのことですよね??
それなのに
printf("文字列は%sです。\n",str);
これだと文字列が格納されている変数のアドレスが表示されそうなのですが
きちんと文字列が表示されるのは何故でしょうか??
0281デフォルトの名無しさん
NGNGかなり考えたのになかなか分からなかったのに
わずか5分で間違いを指摘されるとは。
うーん考えてみると関数のポインタのサイズは知ることができても
関数のサイズってあまりピンとこないし、配列にできないのは
不思議では無い気がしてきました
0282デフォルトの名無しさん
NGNGprintf()が、%sに対応した処理としてそう表示するように実装されているから。
0283デフォルトの名無しさん
NGNG%s の場合はアドレスを貰って
'\0'まで表示させるように定義されているから。
0284デフォルトの名無しさん
NGNGあぁ、書くの忘れてた。
配列を返す関数も定義できないのでその積もりで。
それと、型が複雑になりそうならtypedefを使うといい。
/* int要素5個の配列の型定義 */
typedef int (int5_t)[5];
/* int5_tへのポインタを返す、intを引き数とする関数の一例 */
int5_t *func(int foo)
{
static int5_t sArr; /* static int sArr[5];でもいい */
return &sArr;
}
/* intを返す、intを引き数とする関数の型定義 */
typedef int fnInt_t(int);
/* fnInt_t型の関数のプロトタイプ */
fnInt_t foo;
int bar(int);
/* fnInt_t型の関数へのポインタの配列 */
static fnInt_t *const fns[] = {foo, bar,};
0285デフォルトの名無しさん
NGNG#include <stdlib.h>
int main(void){
char *str;
int num,i;
printf("何文字のaを用意しますか?\n");
scanf("%d",&num);
str=(char *)malloc(sizeof(char)*(num+1));
if(!str){
printf("メモリが確保できませんでした。\n");
return 1;}
for(i=0;i<num;i++){*(str+i)='a';}
*(a+num)='\0';
printf("%sを用意しました。\n",str);
free(str);
return 0;}
このコードに間違いあるでしょうか??
0286デフォルトの名無しさん
NGNG書き方がキモイ
0287デフォルトの名無しさん
NGNG間違いはある。
0288285
NGNG0289デフォルトの名無しさん
NGNG*(str+num)='\0'; じゃないの?
0290デフォルトの名無しさん
NGNGわたしの理解では、関数のポインタは、別の型の関数のポインタとのみ変換して、
また、元に戻すことができるはずです。
しかるに、とある Linux のライブラリ関数に、次のようなものがあるのですが、
こいつの結果を関数のポインタにキャストするとやはり具合が悪いんでしょうか。
void *dlsym(void *handle, const char *symbol);
0291デフォルトの名無しさん
NGNG0292285
NGNGソース書けばボタンひとつでコンパイル&実行してくれるソフトウェア使ってるんだけど
そのソフトウェアがおかしいのかなぁ
0293デフォルトの名無しさん
NGNGエラーをコピペしてみ。
0294デフォルトの名無しさん
NGNG一つ忠告してやる、自分の無能を棚上げして開発環境にあたる根性をどうにかしろ
0295デフォルトの名無しさん
NGNG0296デフォルトの名無しさん
NGNG理由:絶対にインストールしたくないから。
0297デフォルトの名無しさん
NGNG0298デフォルトの名無しさん
NGNG#include <stdlib.h>
int
main (void)
{
char *str;
int num, i;
printf ("何文字のaを用意しますか?\n");
scanf ("%d", &num);
str = (char *) malloc (sizeof (char) * (num + 1));
if (!str)
{
printf ("メモリが確保できませんでした。\n");
return 1;
}
for (i = 0; i < num; i++)
{
*(str + i) = 'a';
}
*(str + num) = '\0';
printf ("%sを用意しました。\n", str);
free (str);
return 0;
}
/* indentコマンドはじめて使ったよ */
0299デフォルトの名無しさん
NGNG{
return func;
}
これが成立する型名(???の部分)がどうしてもわかりません、誰か教えて下さい。
0300デフォルトの名無しさん
NGNGvoid *
すべてのポインタは暗黙で void * に変換できたはず。
0301285
NGNGまだC言語初めてまだ4日だからきちんとしたコードが書けないよ、
ヽ(`Д´)ノウワァァン!!
綺麗なコーディングスタイルってどういうのでつか??
やっぱり関数と関数の間に一行開けたりとかでつか?
0302デフォルトの名無しさん
NGNGただ、私自身学生時代に触っただけで、2年のブランクがあります。
で、教えてもらいたい事は、以下の2つです。
1.この様な状態の2人にあったCのテキスト
2.Cでの学習環境を作る上でのフリーソフト
この2つがよく分かりません。
教えてください。
0303デフォルトの名無しさん
NGNG>>298はコーディングスタイルのひとつの例。
で、C Machineは捨てようね。
>>299
void *でも返すしかないね。
0304デフォルトの名無しさん
NGNGC Machineを窓から投げ捨てろ。
そしてBCCを入れろ。
話はそれからだ。
0305300
NGNG適当なこと書いてしまった……。
すべてのポインタ→すべての型へのポインタ
void * が関数へのポインタを保持できる大きさを持ってなきゃ駄目だ……。
とりあえず VC++6.0 では問題なくコンパイルできるが、厳密にはどうすんだろう?
0306デフォルトの名無しさん
NGNG>void * が関数へのポインタを保持できる大きさを持ってなきゃ駄目だ……。
一律32bitじゃないの?Windows95以降のポインタって
0307デフォルトの名無しさん
NGNGpush argc
call main
add esp, $8
0308285
NGNGよろしかったら、その訳を聞かせてください
0309デフォルトの名無しさん
NGNG>>298のようなプログラムが動かないんでしょ?糞です。
0310デフォルトの名無しさん
NGNG#define ABC 100 みたいに使うんですよね
参考書には
#ifndef ANYHEADER_H
#define ANYHEADER_H
・
・
・
#endif って書いてるんですけど、なんだかdefineの
使い方がわかんなくなってきました。教えてください
0311デフォルトの名無しさん
NGNGインクルードガードで検索汁。
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&oe=UTF-8&q=%E3%82%A4%E3%83%B3%E3%82%AF%E3%83%AB%E3%83%BC%E3%83%89%E3%82%AC%E3%83%BC%E3%83%89
0312デフォルトの名無しさん
NGNGその場合
void (*)(); とかint (*)(); とかを汎用関数ポインタの代わりとして使う。
当然キャストは必要。void *を使うという解は移植性に乏しい。
0313デフォルトの名無しさん
NGNG#define ABC 100
int a=ABC; /* int a=100; */
#define ABC
int a=ABC; /* int a=; */
0314デフォルトの名無しさん
NGNGありがとう、なんだかわかってきました。
#ifndef ANYHEADER_H
#define ANYHEADER_H
・
・
・
この例文で、ANYHEADER_Hが2回目のインクルードでは定義されると
あったんですが、どういう意味なんですか?
#define ABC 100 の定義とは全然意味違うんですよね。すみません、
ほんと初心者なもので
0315デフォルトの名無しさん
NGNG違う、ANYHEADER_Hは一度しか定義されず、最初にこの定義に
出会った時のみ#endifまでの間をコンパイルするという使い方。
2回目以降は既にANYHEADER_Hが定義されているので、
スキップされる。
ヘッダファイルのある部分が二重にコンパイルされてエラーが
出るのを防ぐ常套手段。
0316デフォルトの名無しさん
NGNG#ifndef ANYHEADER_H
#define ANYHEADER_H の順番が大事なんですか?
仮に
#define ANYHEADER_H
#ifndef ANYHEADER_H としてしまうと、すでにANYHEADER_Hが
定義されているから、一度もインクルードされないってなるんですか?
間違ってたらすごく恥ずかしい質問になってしまったような・・・
0317デフォルトの名無しさん
NGNG正解。
0318デフォルトの名無しさん
NGNGそうです。というかコンパイラによっては、#undefせずに複数回#define
しようとすると警告が出るものもあります。
0319デフォルトの名無しさん
NGNG#define ABC
int a=ABC; /* int a=; */
上の例でABCは未定義なんですか?それとも宣言してるから定義している
ってことになるんですか?
0320デフォルトの名無しさん
NGNGマクロは定義されるけど置換え対象が空だというだけ
0321デフォルトの名無しさん
NGNGcpp test.c
とかやってみるとプリプロセッサがどう動くか分かる
ただしstdio.hとかをinclude すると出力たくさんですぎるので
全部外して遊んでみたら?
0322デフォルトの名無しさん
NGNGなんだか数日間の悩みが晴れました。すぐに復習ノートに
書き込まなきゃ
0323デフォルトの名無しさん
NGNGvoid *(*)(void) func(void)
{
printf("プ");
return func;
}
int main()
{
(*(*(void ((*)(void))((*)(void)))(*(func()))())())();
return 0;
}
これでよろしいのでしょうか?
0324デフォルトの名無しさん
NGNGそれコンパイル通る?
0325デフォルトの名無しさん
NGNGtypedef int (*fun_t)(); /*汎用関数ポインタ*/
typedef fun_t (ptrfun_t)()/*汎用関数ポインタを返す関数へのポインタ*/
fun_t func()
{
return (fun_t)func;
}
main()
{
ptrfun_t state;
while(1)
state=(ptrfun_t)(*state)()
}
こうしなさい
0326デフォルトの名無しさん
NGNGtypedef fun_t (*ptrfun_t)();/*汎用関数ポインタを返す関数へのポインタ*/
失礼
0327デフォルトの名無しさん
NGNGも忘れてた。
もしくは別解凍として
struct fun_t { struct fun_t (*fun)(); };
fun_t func()
{
struct fun_t ret={func};
return ret;
}
main()
{
struct fun_t state={func};
while(1)
state=(*state.fun)();
}
0328デフォルトの名無しさん
NGNGint main(void)
{
int a,b;
puts("2つの整数を入力して下さい。");
puts("整数A:");
scanf("%d",&a);
puts("整数B:");
scanf("%d",&b);
printf("Aの値はBの値の%fです。\n",(double)a/b*100);
}
このファイルをコンパイルしたら実行ファイルはできるのですが次のような
警告がでます。どうすればいいのでしょうか?
2.a.c:17:2: warning: no newline at end of file
0329デフォルトの名無しさん
NGNG0330デフォルトの名無しさん
NGNGいくらなんでもこれは分らなきゃだめだろ?
0331デフォルトの名無しさん
NGNG0332328
NGNG>330 それが分からないのです。なぜだかわかりませんが
コンパイルするのに5分以上かかりました。
0333デフォルトの名無しさん
NGNGとりあえずhello worldを表示させる
#include<stdio.h>
main()
{
printf("helloworld\n");
}
を打ち込んでコンパイル、実行できたのですが
何も表示されませんでした。
何が問題なのかどなたか教えてください。
0334デフォルトの名無しさん
NGNG表示を読む前にウィンドウがとじてしまっただけ。
目を鍛えろ。
パチスロとかお勧め。
で、擦るだけ擦ったらVCスレで聞きなおせ。
0335デフォルトの名無しさん
NGNG本当にコンパイルして実行ファイルできたの?
0336デフォルトの名無しさん
NGNG環境を教えろや
0337デフォルトの名無しさん
NGNG$ make test
$ test
$
0338デフォルトの名無しさん
NGNGLinuxです。
>>337
違います。
gcc -o test test.c
です。
0339デフォルトの名無しさん
NGNGtestだとtestという用意されたコマンドが実行されるだろう。
./testと入力して実行する。
0340339
NGNG0341デフォルトの名無しさん
NGNG>>337がつっこんでいるのはコンパイルの時の命令じゃなくて、実行時の命令だと思うぞ。
0342デフォルトの名無しさん
NGNG0343デフォルトの名無しさん
NGNGこれがfunctionポインタの宣言だとしたら綺麗だけど、プロトタイプとかぶるからねぇ。
それか、ぜんぶ
(*printf)("hello");
みたいにするとか。
0344デフォルトの名無しさん
NGNGfunctionって
ファンクシャンか
ファンクションの
どっちで読んでる?
漏れの周りでは前者なんだけど、
後者って人は居る??
0345デフォルトの名無しさん
NGNG>>343
int func(void);じゃどこにも*がないからポインタに見えないYO!
0346デフォルトの名無しさん
NGNG0347デフォルトの名無しさん
NGNG鼻から息を抜くように発音するのがミソ。
0348デフォルトの名無しさん
NGNG0349デフォルトの名無しさん
NGNG0350デフォルトの名無しさん
NGNG0351デフォルトの名無しさん
NGNG0352デフォルトの名無しさん
NGNGvar
hoge: function (i:integer):integer;
みたいな感じだっけ??
あまり使う人居なさそう。
0353デフォルトの名無しさん
NGNG0354デフォルトの名無しさん
NGNGと ) <| | | ザシュッ
Y /ノ .・・人 ∴:・
// ) ・ < >__Λ∩
//し' //. V`Д´)/
(/彡 / ←>>352-353
0355デフォルトの名無しさん
NGNG0356デフォルトの名無しさん
NGNGmpg321 という純粋に mp3 などを再生するだけのプログラム
を利用し、front end みたいな物を作りたいのですが
例えば player というプログラム名とし、player をバックグラウンドで
起動しておき、
> player -back
などと引数付きでコマンドを打つと、
既に起動しているほうの player に引数を渡して、新しい方は
すぐに終了するようにしたいのですが、どうすればいいか見当が付きません。
どんな感じになるか教えていただけないでしょうか。よろしくお願いします。
0357デフォルトの名無しさん
NGNGプロセス間通信
0358デフォルトの名無しさん
NGNGプロセス間通信でぐぐってみたら、
ttp://www.ncad.co.jp/~komata/c-kouza13.htm
を見付けました。これを元にやってみたいと思います。
どうもありがとうございました。
0359デフォルトの名無しさん
NGNG<この例文で、ANYHEADER_Hが2回目のインクルードでは定義されると
を、
>この例文で、ANYHEADER_Hが2回目のインクルードでは定義されていると
とすれば、自然だと思う。誤植なのか、もしかしたら、そのテキストの
著者は日本語が不自由なのではないでしょうか。
0360デフォルトの名無しさん
NGNG他の関数みたいに
for(i=0, i<n, i++);
の方が良くない?
0361デフォルトの名無しさん
NGNG後から作ったらそれは添付ファイルとは言えなくない?
0362デフォルトの名無しさん
NGNGfor(i=0, k=0, i<n, i++);となれば区別つかないから却下。
0363デフォルトの名無しさん
NGNGfor((i=0,k=0),i<n,i++)とやればよい。
0364デフォルトの名無しさん
NGNG・,は演算子であってただのセパレータではない。
以上
0365デフォルトの名無しさん
NGNG0366デフォルトの名無しさん
NGNG0367デフォルトの名無しさん
NGNG今の構文じゃないと困る。
0368デフォルトの名無しさん
NGNG0369デフォルトの名無しさん
NGNGエープリルフールも終わったんだからネタはやめろ。
Cではforはあくまでも「文」であって「関数」じゃねーぞ。
0370デフォルトの名無しさん
NGNG2chで言うなよ。
0371デフォルトの名無しさん
NGNGvoid my_for(???)
{
}
void my_if(bool b)
{
return;
}
みたいに。
0372デフォルトの名無しさん
NGNG取り敢えず、ファイルで受け渡しするようにしてみたら?
プロセス間通信はそれからでもいいと思うが。
0373デフォルトの名無しさん
NGNG正直マクロで十分だろう。
嫌われるけど
0374デフォルトの名無しさん
NGNG1ビットbool型にキャストすると
falseになるの?
0375デフォルトの名無しさん
NGNGbool型って何?_Boolのことか?
0376デフォルトの名無しさん
NGNGそもそも、forを関数とか言い出した>>360が阿呆なわけで。
>>374
Cにはbool型なんてない。
処で質問。
malloc()よりはalloca()の方が安全だと思うのだがansi標準にはない。
使うべきか否か。
0377デフォルトの名無しさん
NGNG自分で決めろ。
0378デフォルトの名無しさん
NGNGそりゃそうだ。
で、君の意見は?
0379デフォルトの名無しさん
NGNGmallocを使え。
0380デフォルトの名無しさん
NGNG0381デフォルトの名無しさん
NGNG0382デフォルトの名無しさん
NGNG0383デフォルトの名無しさん
NGNG試しにfree()してみたらエラーはでないが。
0384デフォルトの名無しさん
NGNG0385デフォルトの名無しさん
NGNG> malloc()よりはalloca()の方が安全だと思うのだがansi標準にはない。
C99の可変長配列ならばalloca()と同等の処理をするはず。
結論:C99を使う
0386デフォルトの名無しさん
NGNGfree()したポインタを再びfree()しても
俺の処理系ではエラーにはなりませんでしたが何か?
# ま た 未 定 義 か
0387デフォルトの名無しさん
NGNG判った。gccの拡張機能でお茶を濁すとするよ。
0388デフォルトの名無しさん
NGNG密かにスタックを壊してる罠。
0389デフォルトの名無しさん
NGNG0390manpage厨
NGNG多くのシステムでは実装にバグがあるので、この関数の使用は推奨されない。
多くのシステムにおいて、関数コールの引き数のリスト内では alloca が使えない。
これは、 alloca によって予約されるスタック領域が、
関数引き数に使われるスタック領域の中に現れてしまうためである。
ということらしい。使わないでおけ。
0391デフォルトの名無しさん
NGNG参考書とかにコマンドプロンプトで
gcc aaa.c
で実行するとありますが
これで実行すると
内部コマンドとして認識されていませんと出て実行されません。
何が環境設定みたいなものをしなければならないのでしょうか?
参考書やホームページなどにはその辺の記述は全くないのですが
教えてください
0392デフォルトの名無しさん
NGNGまずインストール汁
0393デフォルトの名無しさん
NGNGインストール・・・?
そんなのあるの?
参考書だとコマンドプロンプトに記述のみしか載ってないが・・・?
0394デフォルトの名無しさん
NGNGそもそも環境はなんだよ。コマンドプロンプトと書いてることからするとWindows NT系か?
cygwinを使おうとしてるのか?
0395デフォルトの名無しさん
NGNGWindows2000
ソースは普通に秀丸で
それを拡張子をCにしてCドライブに保存
プロンプトでCドライブ配下に移動して
gcc aaa.cを実行
0396デフォルトの名無しさん
NGNGWin2000そのままだったらgccなんて入ってないよ。
0397デフォルトの名無しさん
NGNGすいませんどうするれば2000やxpに
gccという奴を入れることができるのですか?
それとも
コンパイルするのに他のやり方とかありますか?
0398デフォルトの名無しさん
NGNGここの>>1 と >>2 を見てから言ってください。
0399デフォルトの名無しさん
NGNG0400デフォルトの名無しさん
NGNGマ板で見たんだけど、以下の様なソースね。
int foo( void )
{
char a{4], b[4]; // bを消すと落ちる
...明らかに a から b へのオーバーライド
}
Unix系なら明らかにスタックを破壊するので理解できるが、Win系だと
下から上に積まれるので『落ちはしない』様な気がするのですけど・・・
詳しい人お願いします。
0401デフォルトの名無しさん
NGNGコンパイルすらできません。
というか、Unix系とかWin系とか関係ないし。
0402デフォルトの名無しさん
NGNGa{4]
0403デフォルトの名無しさん
NGNGそのレベルの人には聞いていません。
<<402
目良いですね。気がつきませんでした。
0404デフォルトの名無しさん
NGNG0405デフォルトの名無しさん
NGNG0406デフォルトの名無しさん
NGNGあなたのレベルが低いだけです。
0407404
NGNGそうですかごめんなさい
僕の頭もオーバーロードして落ちそうです
0408デフォルトの名無しさん
NGNG0409デフォルトの名無しさん
NGNG( ´∀`)< ち○ぽ
0410デフォルトの名無しさん
NGNGWinでもIAなCPUではスタックは上から下だけど。
0411デフォルトの名無しさん
NGNG0412デフォルトの名無しさん
NGNG( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>409
0413デフォルトの名無しさん
NGNGぬるぽはAI
0414デフォルトの名無しさん
NGNG0415デフォルトの名無しさん
NGNG0416デフォルトの名無しさん
NGNG0417デフォルトの名無しさん
NGNG何を使うかの状況判断ができない人のほうが恥ずかしい。
0418デフォルトの名無しさん
NGNG私の質問は、以下の様なコードにおいて
#include<stdio.h>
voidfoo(void )
{
inti;
chara[4];
for( i = 0; i < ???; i++ )
a[i] = 0x00;
}
voidmain(void )
{
foo();
printf( "I'm safe\n" );
}
???が4を超えた場合、必ず飛ぶかどうかという質問です。
Unix系の場合、スタックは上位から下位へ積まれますので、???が5になれば
リターンアドレスを書き換えて飛びそうな気がします。
しかし、Win系の場合、スタックは下位から上位に積まれるので、飛びはしない
のではという事です。
言葉が足りなくてすいません。
0419デフォルトの名無しさん
NGNGま た 未 定 義 か
0420デフォルトの名無しさん
NGNG大丈夫、Win系でもスタックは高位アドレスから低位アドレスに向かって積まれるので
予定通りきちんとリターンアドレスを破壊してくれる。
一応念のために、LSI-CでもVC++でもそのようにコードを吐くことを確認したから間違いないだろう。
0421デフォルトの名無しさん
NGNG10秒単位で時間を表示するプログラムを作ってみたのですが、
時間が10秒単位になった瞬間、for文を使っているので何回も表示されてしまいます。
これを10秒単位で1回だけ表示にしたいのですが、解決策はあるでしょうか?
口頭で言ってもうまく説明出来ないので、ソースを晒します。
#include <stdio.h>
#include <time.h>
void everytime(void);
int main(void)
{
everytime();
return 0;
}
void everytime(void)
{
char *s;
time_t t;
for(;;)
{
time(&t);
if((t%10)==0)
{
s=ctime(&t);
printf("%s\n",s);
}
}
0422デフォルトの名無しさん
NGNGタブがつぶされてるのはかんべんね。
まさか voidfoo とか chara[] とか見て気づかない香具師はいないよね。
0423デフォルトの名無しさん
NGNG最後に実行した時間覚えておけばいいんじゃん?
0424デフォルトの名無しさん
NGNGIntel 系 CPU のスタックは
アドレスの大きい方から小さい方へ確保される
(関数抜けた時に add esp, * でスタッククリアだし)。
だから、オーバーしたらリターンアドレスが書き換えられる可能性がある。
もしくは、その前に i の値が書きかわって
変なことになることもあるかもな。
今回の場合は i を 0 にリセットして無限ループか。
>>419
一応バグの振る舞いを知っておくのも必要だと思うが。
0425デフォルトの名無しさん
NGNG適切なsleepを挟んでCPU資源を解放しろ。
0426デフォルトの名無しさん
NGNGそれをつっこむと、そのレベルの人には聞いていません。と言われるもので。
0427デフォルトの名無しさん
NGNG命令しないでください!
0428デフォルトの名無しさん
NGNG初めてのまともなレスありがとうございます。
そっか勘違いかね?昔のMS-DOSとかでもスタック方向は高位ー>下位
だっけ?
知ってたら教えてね。
0429デフォルトの名無しさん
NGNGいい加減スレ違いな話題は(ry
0430デフォルトの名無しさん
NGNG最適化を掛けるとiはレジスタ実装になるので問題は出ない。
それどころか、ループ回数が10数回程度ならループさえ消えてしまう可能性が高い。
仮にそうでなかったとしても、iの方が低位アドレスに配置されるのではないだろうか。
0431デフォルトの名無しさん
NGNGおまえには言ってない。
0432デフォルトの名無しさん
NGNGご返答どうもありがとうございます。
とりあえず>>423さんの方法でやってみようと思います。
>>427は偽です。
0433デフォルトの名無しさん
NGNGどうも。私の勘違いですね。
お騒がせしました。
>>429
スレ違いですか?
このスレはC言語の話でしょ。
アセンブラレベルの話は少しスレ違いですが、せめてスタックの
話くらいはさせて欲しいです。
0434デフォルトの名無しさん
NGNG0435デフォルトの名無しさん
NGNG0436デフォルトの名無しさん
NGNG0437デフォルトの名無しさん
NGNG0438デフォルトの名無しさん
NGNG標準Cの話題じゃなかろうに。
0439デフォルトの名無しさん
NGNG0440デフォルトの名無しさん
NGNGもひとつ質問!!
socket IO において recv(), send() を実行中に、signal を受けると、
エラーが生じます。(errno=EINTR=23 だっけか?)
この場合、socket buffer に中途半端なデータが残ることは無いので
しょうか?
私は sigprocmask() で来そうな signal をはじいてますが、EINTR の場合
差し戻すような処理でも問題ないでしょうか?
0441デフォルトの名無しさん
NGNGわかったところでなにか役に立つんですかね?
0442デフォルトの名無しさん
NGNG0443デフォルトの名無しさん
NGNG>>1くらい読みましょう。
0444デフォルトの名無しさん
NGNG全然役に立たないです。
疑問を感じただけです。
0445400
NGNGググレって事ですか?
板の趣旨からは外れてないつもりですが・・・
0446デフォルトの名無しさん
NGNG低レベルな人は黙っていてください。
0447デフォルトの名無しさん
NGNGhttp://pc2.2ch.net/test/read.cgi/tech/1040220302/
GO!
0448400
NGNGお騒がせしました。
0449デフォルトの名無しさん
NGNG未定義、不定の挙動を把握することはデバッグ時に大いに役立つぞ。
0450デフォルトの名無しさん
NGNG0451デフォルトの名無しさん
NGNG> Unix系の場合
こーゆー寝ぼけた発言に対して誰か突っ込んでやれよ。
0452デフォルトの名無しさん
NGNGその考え方は危険だよ。
0453デフォルトの名無しさん
NGNGむしかえすと、また低レベルな人は黙っていてくださいと言われますよ?
0454333
NGNG一応実行後一時停止するようになってるのですが・・・
>>335
はい。コンパイルOKという表示がでています。
>>336
windowsでLSI-86試食版3.3
に「C言語を始めよう」というソフトを
組み合わせて使っています。
始めはフォントが黒いせいで見えないのかと思ったのですが
選択範囲を指定して選択してみても反転しない
のでどうも表示されていないようです。
どうか教えてください。
0455400
NGNGどうもサンプル拾ってきました。
差し戻さずリトライすれば良いようですね。
こんなこと自宅でテストすれば良いのですが、環境がありませんので
皆さんのお知恵を拝借させていただきました。ありがとうございます。
>>451さん
何が寝ぼけているのか解りません。
論点を説明願います。
OSではなく石レベルの話だと言いたいのでしょうか?
0456デフォルトの名無しさん
NGNG糸冬
0457デフォルトの名無しさん
NGNGchar a[5] がリターンアドレスに重なっており、
なおかつ、リターンアドレスの上位8bitがたまたま0だったとする。
Intel 系のCPUでは、a[5]の所は下位8ビットなのでそこに0を書くと
はまるが、Motorola 系のCPUでは、そこは上位8ビットなので、
0x00 を書いても運良く助かるってこと。
Intel系やMotorola系以外のバイトオーダーを使うCPUもあるので、
環境に激しく依存する。
0458デフォルトの名無しさん
NGNG>a[4]
0459400
NGNGどうも。
で 終わり。
0460デフォルトの名無しさん
NGNG確実に表示はされているはず。
printfの後にfor文で無限ループすれば?
0461デフォルトの名無しさん
NGNG#include <stdio.h>
#include <time.h>
int WaitTime(time_t*timeAdd,time_t waitTime)
{
time_t nowTime;
time(&nowTime);
if(*timeAdd+waitTime<=nowTime){time(&(*timeAdd));return 1;}
return 0;
}
int main(void)
{
time_t wait10,wait100;
time(&wait10);time(&wait100);
for(;;)
{
if(WaitTime(&wait10,1))printf("%s",ctime(&wait10));
if(WaitTime(&wait100,10))break;
}
return 0;
}
0462デフォルトの名無しさん
NGNG0463デフォルトの名無しさん
NGNG#include <stdio.h>
#include <time.h>
/* 時間がnow+10になるまで待ってnow+10を返す */
time_t mysleep10sec(time_t now){
time_t t;
while ((t = time(&t)) < now + 10){
}
return t;
}
int main(void)
{
time_t t;
char *s;
s=calloc(1,256);
/* 10の倍数秒になるまで待つ */
for (time(&t); t%10!=0; time(&t)){
}
s = ctime(&t);
printf("%s\n", s);
for(;;){
t = mysleep10sec(t);
s = ctime(&t);
printf("%s\n", s);
}
return 0;
}
0464デフォルトの名無しさん
NGNGFreeBSDにもあるよ。
以下、FreeBSDのman 3 sleepから抜粋
>STANDARDS
> The sleep() function conforms to ISO/IEC 9945-1:1990 (``POSIX.1'').
標準関数じゃないね。
0465デフォルトの名無しさん
NGNG$ man 3 sleep
No entry for sleep in section 3 of the manual
0466デフォルトの名無しさん
NGNGWindowsにはSleepってのがある。
>>465
nanosleep(セクション2)は?
0468デフォルトの名無しさん
NGNGとりあえず無限ループ+最後にifならdo{}while使えば?
0469デフォルトの名無しさん
NGNG0470デフォルトの名無しさん
NGNGtime(&(*timeAdd)); が意味不明、間違えじゃないけど
time(timeAdd); でいいのでは?
0472デフォルトの名無しさん
NGNG0473デフォルトの名無しさん
NGNG{
(printf, "hello C");
return 0;
}
こういう言語仕様だったら見た目がもっとカッコイイソースが書けたのにね。
0474デフォルトの名無しさん
NGNGいい加減にスレ違い、板違いなんで消えろ
0475デフォルトの名無しさん
NGNG((int main) ((int argc) (char **argv))
(printf "hello C")
(retrun 0))
0476デフォルトの名無しさん
NGNGイイ!!
そういう感じのコンパイラ作ってみるよ。
0477デフォルトの名無しさん
NGNG((printf) ("hello C"))
((retrun) (0)))
0478デフォルトの名無しさん
NGNGlispで我慢してろ。Cに手を出すな。
0479デフォルトの名無しさん
NGNG#define END }
並に、氏んでいいよ。
0480デフォルトの名無しさん
NGNG0481デフォルトの名無しさん
NGNGcygwinでは
manは無いけどsleep()は何故かあった。
しかもなにもインクルードしないのに使えてしまって不思議
sleep(1)は1秒止まるし
0482デフォルトの名無しさん
NGNG(((( ;゚Д゚))) ガクガクブルブル
0483デフォルトの名無しさん
NGNGMS-DOSプロンプトの話なんだが、Cを実行した後の大量のデータがほしぃ場合、
スクロールしてしまって、始めの方のデータ見れない・・
これどうやってみるんだろ?
0484デフォルトの名無しさん
NGNG0485デフォルトの名無しさん
NGNG出力をファイルにリダイレクトして、後から見れ。
0486デフォルトの名無しさん
NGNG0487デフォルトの名無しさん
NGNG0488デフォルトの名無しさん
NGNGで、画面に出力する内容をa.txtに保存する。
foo.exe >>a.txt
で、a.txtにどんどん追加する。
がんがり。
0489デフォルトの名無しさん
NGNG詳しくやり方を教えてください・・・スマソ
0490デフォルトの名無しさん
NGNG>>488
0491デフォルトの名無しさん
NGNGで1ページずつみれるよ。
0492デフォルトの名無しさん
NGNG×:Cを実行した後の大量のデータがほしぃ場合
○:コンパイルエラーの最初の方のエラーを見たい場合
0493デフォルトの名無しさん
NGNGできました。ありがとうございます!
0494デフォルトの名無しさん
NGNG0495デフォルトの名無しさん
NGNG人によります。
漏れはおすすめしない。
0496デフォルトの名無しさん
NGNG0497デフォルトの名無しさん
NGNGむしろ、アルゴリズムとデータ構造の本を読んだほうが幸せになれることも……
0498デフォルトの名無しさん
NGNGお勧めはなんですか?
0499デフォルトの名無しさん
NGNGどっちかて言うとA定食の方が美味しいよ。安いしね。
0500デフォルトの名無しさん
NGNGprintfだってstrcpyだって(ヘッダーファイルを)インクルードしなくても使えるだろ。C++じゃあるまいし。
0501デフォルトの名無しさん
NGNG0502デフォルトの名無しさん
NGNG4月バカはもう終わりましたよ
0503デフォルトの名無しさん
NGNGもしかして宣言しないと関数を呼び出せないと思っている?
0504デフォルトの名無しさん
NGNG0505デフォルトの名無しさん
NGNG( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>504
0506デフォルトの名無しさん
NGNGいかようにすればよろしいのでしょうか?
何分厨房ではございますがご教授のほど
おながいいたします。
0507デフォルトの名無しさん
NGNG0508デフォルトの名無しさん
NGNG16進数の44を10進数に変換したいの?
0509デフォルトの名無しさん
NGNG16進の44を10進数に変換といことではなくて
16進の44を10進で44としたいのです。
16進で55があったら10進では85ですよね?
そうではなくて例え、16進で44というデータが
あっても、それを強引に10新の44と
プログラムに思いこませたいのです。
わかりづらい説明ですが、おながいいたします。。。
0510デフォルトの名無しさん
NGNG{
return ((val & 0xf0) >> 4) * 10 + (val & 0xf);
}
0511デフォルトの名無しさん
NGNGナゾ。
0512デフォルトの名無しさん
NGNGアリガトンゴザイマス
カンゲキ・・・
シフトかぁ。。。
>>511サソ
なんかしんねぇけど
A-Fは入ってこないというナゾの仕様なんです。
0513デフォルトの名無しさん
NGNG0514デフォルトの名無しさん
NGNG0515デフォルトの名無しさん
NGNG0516デフォルトの名無しさん
NGNGプログラムは何を根拠に入って来るデータを16進だと判断するの?
0517デフォルトの名無しさん
NGNG0518デフォルトの名無しさん
NGNG0519512
NGNGダンプファイルがありまして、
それを関数に渡すんですが
その関数が10進で来ることを予期しており
ヘキサじゃダメというだけの理由でございます。
0520デフォルトの名無しさん
NGNG中身を保持したまま配列の数を5000から5005などに増やしたいときは
いったん別に仮配列を用意してコピーしてから元配列を開放、
また新たに元配列にメモリを確保して仮配列からコピー
という方法しかないのでしょうか?
0521デフォルトの名無しさん
NGNGchar *foo = malloc( 5000 ) ;
...
{
char *neon = malloc( 5005 );
memcpy( neon, foo, foolength );
free (foo);
foo = neon;
}
0522デフォルトの名無しさん
NGNG配列確保→新しい配列のポインタ取得
古い配列 → 新しい配列 にデータ転送
古い配列解放
古い配列のポインタを指す変数=新しい配列のポインタ
または、manpage realloc
0523デフォルトの名無しさん
NGNG0524522
NGNG0525デフォルトの名無しさん
NGNG0526522
NGNGwww9.plala.or.jp/sgwr-t/lib/realloc.html
0529デフォルトの名無しさん
NGNGputs関数の存在意義って何ですか?
Printfで全て間に合うような気がしますが・・・
0530デフォルトの名無しさん
NGNG速度は?
0531デフォルトの名無しさん
NGNG0532デフォルトの名無しさん
NGNGわずかにタイプ速度が(ry
0533デフォルトの名無しさん
NGNGprintfね・・・
>>532
タイプの速度ってだいたい
一個なら1秒も変わらんし
複数ある場合はほとんどコピペじゃないのか?
0534デフォルトの名無しさん
NGNG0535デフォルトの名無しさん
NGNGprintf("%s\n", s);
だったら puts を使うなあ。
0536デフォルトの名無しさん
NGNGputsの方が速い。
でも処理速度が問題にならなくて、別の箇所でprintf使ってるなら
俺ならprintfで統一する。
0537デフォルトの名無しさん
NGNG530==534は、本質に切り込む問いかけしているぞ。
ま、なんだ。
勘のイイ奴なら何をどう調べればよいか分かるもんだが。
0538デフォルトの名無しさん
NGNG多機能さを実現するためのコスト(printfの場合は書式の
解決処理ね)が、無駄というか、邪魔になる場合がある。
でもって、printfは処理が遅くて、putsは早い。
数百回の処理じゃ違いは体感できないが、何十万回も
繰り返し処理する場合は、その差が顕著になる場合があるよ。
0539デフォルトの名無しさん
NGNGコンソールのスクロールの方が
圧倒的に遅くなると思ふ。
0540デフォルトの名無しさん
NGNG0541デフォルトの名無しさん
NGNG0542デフォルトの名無しさん
NGNGほざく技術者がいっぱいいるのですが、あんたら馬鹿ですか?
トオモウ事が多いです…
0543デフォルトの名無しさん
NGNG思うだけじゃなくて、本人に家。
0544デフォルトの名無しさん
NGNG1行目にデータ件数を書いて、2行目以降にデータを記述したファイルから、
乱数で出した数字番目の行のデータを取り出して表示させたいのですが、
fgetやfscanfを使って繰り返し読み込ませて目的の行まで進める、
という方法以外に何かいい方法ないですか?
0545デフォルトの名無しさん
NGNG・一気に全部読んで、改行をキーにして探す。
・一行のデータ量が固定なら、計算で長さを出す。で、ファイルポインタを移動させる。
・データ構造を工夫する。
・その他。(他のレス待ち含む)
0546デフォルトの名無しさん
NGNG取り出すときは乱数で行数を添え字にしてポインタを取り出しfseekのあとfgets
ここから下は余談
高速化のためにこの配列をファイルに記録しておき、
次からはテキストファイルと配列を収めたファイルのタイムスタンプを見て、
テキストファイルの方が新しければ配列に取り込み、それをファイルに記録、とかやる。
# おれはわりとよくこういうことをやる
0547デフォルトの名無しさん
NGNGデータ数が少ないならこれが速い
0548デフォルトの名無しさん
NGNG0549デフォルトの名無しさん
NGNGアレって一回ファイルをメモリ上に展開するのか?
0550デフォルトの名無しさん
NGNGhoge_##__typeof__(__p)(__p)
として、__p の型に応じて後始末をしてくれるマクロを作ろうとしてるんですが、
うまくいきません(hoge___typeof__ は未定義だと言われる)。
どうすればうまくいきますか?
0551デフォルトの名無しさん
NGNGr+bモードで開いて、ファイルポインタを走査させて比較するみたいに・・
0552デフォルトの名無しさん
NGNGいいえ、DBを使ってSQL発行した方が楽でしょう。
>>546の余談でやってるのって要するにインデックスだし...
0553デフォルトの名無しさん
NGNG0554デフォルトの名無しさん
NGNGアクセスされるまでロードしない。
仮想メモリに似た方式。
0556544
NGNG色々な方法があるんですね。試してみます。ありが�d
0557デフォルトの名無しさん
NGNG__typeof__(__p) なんてのは聞いたことがないので
これがプリプロセッサで処理されるのか
コンパイラで処理されるのかは分からないが、
前者であったにしろ、それが展開される前に
トークンが結合されてることは確かだろう。
よって、直接 hoge_int(p) とか呼ぶのが吉。
C++ が使えるならデストラクタだの
オーバーロードだのテンプレートだの利用できてええんだがな...。
0559デフォルトの名無しさん
NGNG__typeof__()が通常のマクロと同じように扱えるのなら、
#define dcat(a, b) a##b
#define cat(a, b) dcat(a, b)
#define hoge(__p) cat(hoge_, __typeof__(__p)) (__p)
0560550
NGNGありがとうございます。でもダメでした。
cpp してみたら hoge___typeof__() に展開されていたので、
プリプロセッサではなくコンパイラで扱っているみたいです。
0561デフォルトの名無しさん
NGNGint num = 0x11223344
char a[sizeof(int)];
memcpy(a,&num,sizeof(a));
といった例文なんですが、参考書によるとnumが16進数だから
11223344からは2行ずつ数値をコピーすると書いてます。
なんで2行で4バイトもコピーされちゃうんですか?
すみません、超初心者なもので
0562デフォルトの名無しさん
NGNG0563デフォルトの名無しさん
NGNG0564デフォルトの名無しさん
NGNG>なんで2桁で4バイトもコピーされちゃうんですか?
いいえ、1バイトです。
0565デフォルトの名無しさん
NGNGmemcpy()はメモリ領域srcの先頭nバイトをメモリ領域destにコピーする。コピー元の領域とコピー先の領域
が重なってはならない。重なっている場合はmemmove(3)を使うこと。
memcpyと、2桁づつコピーされることは関係ない。
16進数では、2桁で0から255までの数値を表現できるが、
それがたまたま1バイト(8ビット)で表現できる数値の範囲と一致するだけ。
0566デフォルトの名無しさん
NGNGnumに与えられた数値の先頭の0xから16進数であることが
わかるので、11223344からは2桁ずつ「16*2=32(ビット)=4(
バイト)」、数値がコピーされます
とあるのですが、わたしが根本的に勘違いしているのかも
0567デフォルトの名無しさん
NGNG8bits *4=32bits=4bytes なら分かるが。
0568デフォルトの名無しさん
NGNG0569デフォルトの名無しさん
NGNG0570デフォルトの名無しさん
NGNG16*2=32はよくわかりません。char型に2桁ずついれるプログラム
なので、やっぱり8ビットずつですよね・・・たぶん
0571デフォルトの名無しさん
NGNG0572デフォルトの名無しさん
NGNGint は最近の環境では4バイトなのが普通です。
char a[sizeof(int)];
sizeof(int) は int のサイズを与えます。
つまり、4です。
char は1バイトですので、
ここでは1バイト×4=4バイトの領域を占める配列が作られます。
memcpy(a, &num, sizeof(a));
これは、&num の指す領域から a の指す領域へ
sizeof(a) バイトだけコピーします。
a のサイズは4バイトなので、
要するに num から a へと情報をコピーします。
memcpy が内部でどういう方法でコピーしているか、
ということは特に規定されていません。
実質的に一般的に使われてるアルゴリズムはあるでしょうが、
昔の環境ならいざ知らず、int が4バイトの環境では
それを考慮しても2バイトずつというのはないですよね。
char a[2 + sizeof(int)];
memcpy(a + 2, &num, sizeof(int));
なら2バイトずつになるかもしれませんが...。
マジックナンバーを使わないようにしたり、
サイズが同じでも敢えてデスティネーションのサイズを指定したりと
結構行儀のいいことしてるのに、何でなんでしょ。
0573デフォルトの名無しさん
NGNG某氏によればそれは悪本だそうです(’’
0574デフォルトの名無しさん
NGNG0575デフォルトの名無しさん
NGNG>573そう思います。初心者向けの本のはずなのに、関数の例文に
いろんなこと突っ込んで、もう最悪です。ほかの本やネット講座のわかりやすさ
にびっくりします
0576デフォルトの名無しさん
NGNG0577デフォルトの名無しさん
NGNG0578デフォルトの名無しさん
NGNG0579デフォルトの名無しさん
NGNG0580デフォルトの名無しさん
NGNG10-10-10のこたえを教えてください。よろしくおねがいします。宿題なんです。
まじめです。
0581デフォルトの名無しさん
NGNGぬるぽ
0582デフォルトの名無しさん
NGNG1-1=日
10-10-10=?
わかった!
マソコマークかな?
0583デフォルトの名無しさん
NGNGmemcpy とか memmove, memset などは
malloc などで取得した領域が物理的に連続でなくても
きちんと取得した領域について処理してくれるんですよね?
0584デフォルトの名無しさん
NGNGそんなOSがこっそりやってる処理まで気にしたら禿げます。
0585デフォルトの名無しさん
NGNG0586デフォルトの名無しさん
NGNG0587デフォルトの名無しさん
NGNGとやってもピカピカ光だけで音が出ません。
何ででしょうかね?
バグ?
0588デフォルトの名無しさん
NGNG0589デフォルトの名無しさん
NGNG0590デフォルトの名無しさん
NGNGhttp://camellia16.fc2web.com/gpoint.html
0591デフォルトの名無しさん
NGNGいったいどこがまちがってるかわかりません。
Help!
(初項 1)
#include<stdio.h>
intk;
intA[101];
A[1] = 1;
voidmain()
{
for( k = 2 ; k == 100 ; k++ )
{
A[k] = 2 * A[k-1] + 3;
}
printf("%d",A[100]);
}
0592591
NGNGタブって2chじゃ認識されないのね・・・・・
0593デフォルトの名無しさん
NGNG> for( k = 2 ; k == 100 ; k++ )
これじゃ一度もループしないね。
0594デフォルトの名無しさん
NGNG0596デフォルトの名無しさん
NGNGstatic int a(void);
# cat a.c
#include "a.h"
static int a(void)
{
return 'a';
}
# cat main.c
#include "a.h"
int main(void)
{
printf("a→%c", a());
return 0;
}
一体どこがマズイのですかね?
0597デフォルトの名無しさん
NGNG0598デフォルトの名無しさん
NGNG( ´∀`)< もうねアホかと馬鹿かと
0599デフォルトの名無しさん
NGNG0600デフォルトの名無しさん
NGNGそのプログラムのプロセスIDを得る方法はありますでしょうか?
0601デフォルトの名無しさん
NGNGもしUNIXの話なら、↓で聞くことをすすめる
http://pc2.2ch.net/test/read.cgi/tech/992057422/
0602デフォルトの名無しさん
NGNGそちらで聞いてみます。どうもありがとうございます。
0603デフォルトの名無しさん
NGNG0604デフォルトの名無しさん
NGNGk < 101
は(マジックナンバーが気に食わないけど、せめて)
k <= 100
の方が意味はわかりやすいかと。
> int k;
> int A[101];
>
> A[1] = 1;
>
この辺りも(せめて)main文の中に入れる、できれば等比級数を求める別に関数を作って
やればもっといいと思われです。
>intをlongにかえても29項目までしか計算できませんね・・・・
多倍長 でぐぐるか?
0606デフォルトの名無しさん
NGNG0607デフォルトの名無しさん
NGNGはぁ? 質問に k == 100 ってあったからマジックナンバー使っただけ。
まあ、k <= 100のほうが分かり易いのは確かだが。
0608デフォルトの名無しさん
NGNG( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>1
0609デフォルトの名無しさん
NGNG( `Д´) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V・∀・)/
(_フ彡 / ←>>608
0610580
NGNG0611デフォルトの名無しさん
NGNGルート権限でそんな作業するな
0612デフォルトの名無しさん
NGNGint main(void)
{
int i, ch;
while((ch = getchar()) != EOF)
putchar(ch);
for(i=0; i<10; i++)
printf("ぬるぽ ", i);
return(0);
}
実行すると"ぬるぽ "が3回しか表示されなくて困っています。
なぜなのか教えて下さい。
0613デフォルトの名無しさん
NGNG演算子の優先順位とか結合方向とかで調べるだ
0614デフォルトの名無しさん
NGNGprintfの引数が変だよ。
0615デフォルトの名無しさん
NGNGそれは本質的な問題ではない。変ではあるが、間違いではない。
>>612
普通に10回出力されるぞ。
取り敢えず
出力をリダイレクトしてみるとか
改行してみるとか
明示的にフラッシュしてみたらどうだ?
0616デフォルトの名無しさん
NGNG>printf("ぬるぽ ", i);
",i"消したら?いらないよ。
0617デフォルトの名無しさん
NGNG偉そうに間違ってないか?
0618612
NGNGファイルにリダイレクトすると正常に出力されていました。
また、前に改行を1つ入れると問題無くなります。
しかし、その改行はどこへ消えたのか気になるような…
フラッシュは効果が無い様です。
0619612
NGNGXPで実行してみると問題ありませんでした。
0620デフォルトの名無しさん
NGNG詳しいことはわからないけど
0621デフォルトの名無しさん
NGNGstruct hoge{
int a,b
};
main(){
struct hoge h1,h2;
h1.a=3;h1.b=4;
h2=h1;
}
みたいなのはコンパイル通りますか?
memcpyした方がいいんでしょうか?
0622デフォルトの名無しさん
NGNG0623デフォルトの名無しさん
NGNG通りません。memcpyしたらスタックが破壊されます。
0624デフォルトの名無しさん
NGNGstruct hoge{
int a,b;
};
main(){
struct hoge h1,h2;
h1.a=3;h1.b=4;
h2=h1;
if (h2==h1){
printf("hello");
}
}
比較演算子はさすがにダメみたいですた
0625デフォルトの名無しさん
NGNGmemcpy (&h1,&h2);がダメってこと?
やっぱり
代入はgcc では通ったけど
copyhoge(hoge dest, hoge src){
dest.a=src.a;
dest.b=src.b;
}
とするのが正しいんでしょうか
0626デフォルトの名無しさん
NGNGだった
0627デフォルトの名無しさん
NGNG>>623死ね
0628デフォルトの名無しさん
NGNGふつー代入します。その方が見やすいでしょ?
0629デフォルトの名無しさん
NGNGint main()
{printf("ぽ",printf("る",printf("ぬ")));}
0630デフォルトの名無しさん
NGNGint ch;
while((ch=getchar())!=EOF)
putchar(ch);
って、while文から抜けるにはどうしたらよいのですが?
どこかでEOFは普通-1だと聞いたので、-1と入力してみても抜けられません。
ご教授お願いします。
0631デフォルトの名無しさん
NGNGUNIXならCtrl+D、WindowsならCtrl+Zで抜けられるんじゃない?
0632あぼーん
NGNG/:\.____\
|: ̄\(∩´∀`) \ <先生!こんなのがありました!
|:在 |: ̄ ̄ U ̄:|
http://saitama.gasuki.com/aomori/
0633あぼーん
NGNG! i iノノリ)) 〉
i l l.´ヮ`ノリ <先生!こんなのがありました!
l く/_只ヽ
| ̄ ̄ ̄ ̄ ̄|
http://muryou.gasuki.com/koumuin/
0634630
NGNGご回答ありがとうございます。
でもそれだと>>612さんみたいに、抜けたあとに何か出力したい場合は働きませんよね?
それがちゃんと出力されるように抜けたいのですが・・・。
0635デフォルトの名無しさん
NGNGそれはMS-DOSプロンプトのせいでしょ・・・・
main関数の最後にfflush(stdout);を追加しても表示されないならあきらめて。
0636デフォルトの名無しさん
NGNG( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>629
0637630
NGNGfflush(stdout);を追加してもダメでした。
あきらめるしかないですね。ありがとうございました。
0638デフォルトの名無しさん
NGNG働きませんよね?ってなにが?
0639デフォルトの名無しさん
NGNG#include <stdlib.h>
void nu(void);
void ll(void);
void po(void);
int main()
{
atexit(po);
atexit(ll);
atexit(nu);
return 0;
}
void nu(){printf("ぬ");}
void ll(){printf("る");}
void po(){printf("ぽ\n");}
0640デフォルトの名無しさん
NGNG間違っている所はどこですか?
0641デフォルトの名無しさん
NGNG#define p (*printf)
#define i if
#define a &&
#define o ||
#define f (int(*)(int))
int main(){
i(p("ぬ","る")o p("ぬ")){i(p("る","の"),0){i(p("ポ")o p("ン")o p("酢","飲んだ"));
}}return (*(f)NULL)(p("もう駄目ぽ"+8));}
0642デフォルトの名無しさん
NGNGgetchar()の戻り値は'-'にしかならない。
EOFを戻らせるためには、入力ストリームをクローズするしかない。
#unixならCtrl-D、DOS系ならCtrl-Zと言うのはクローズするためのキーコード。
で、何故か入力をクローズするとDOS系の場合出力バッファの更新がおかしくなるようだ。
なので対策としては、
・リダイレクトする。
・改行('\n')を挟んでみる。
辺りを試してみてはどうだろう。
それでだめなら、EOFを入力終了の判断に使用せず、
特定のキーコードの組み合わせを終了の判断に使うようにするなどの
仕様の見直しが必要だろう。
0643デフォルトの名無しさん
NGNG参考書通りにソースを書いてもコンパイル時に
warning: no newline at end of fileという警告が出ます。
これは一体なぜなのでしょうか?
0644630
NGNGとりあえず自分で作ってみました。
#include <stdio.h>
int main(void){
int ch;
char p;
while(1){
if((p=(char)ch=getchar())!='c') putchar(ch);
else break;
}
printf("Hello World.\n");
return 0;
}
このコーティングってマズイでしょうか?
0645デフォルトの名無しさん
NGNGCの規格ではソースは改行で終わってなくてはならないから。
・・・だと思う。
0646デフォルトの名無しさん
NGNG{
>>639::main()
abort();
}
0647デフォルトの名無しさん
NGNG( ´∀`)< ぬるぽ
0648デフォルトの名無しさん
NGNG最後のほうしか表示されないのはなんでですか?
0649デフォルトの名無しさん
NGNG>if((p=(char)ch=getchar())!='c') putchar(ch);
なにがしたいんだかよくわからんのだが、
char pの意味ってあるわけ?
俺ならこう書くな。
while((ch =getchar()) != 'c')
putchar(ch);
ちなみに、関数がcharを返す時は、自動的にintに変換されるので、
型キャストする必要はないはずです。
0650デフォルトの名無しさん
NGNG前の方のは流れていくから見えないんでしょ?
パイプすりゃよかんべ。
program | more
でよし。
0651デフォルトの名無しさん
NGNG>最後のほうしか表示されないのはなんでですか?
↑これ教えて下さい・・・。
0652644
NGNGすみません。
勝手に''で囲まれた文字はchar型でないと代入出来ないと思っていたので。
自分がしたかったのはwhile文のgetcharからCtrl+zしないで抜けることです。
Hello World.はプログラムを終了せずに抜けたかを確認するためのデバッグライトとしてつけました。
0653デフォルトの名無しさん
NGNG0654デフォルトの名無しさん
NGNG>>最後のほうしか表示されないのはなんでですか?
>↑これ教えて下さい・・・。
お願いします。。
0656デフォルトの名無しさん
NGNGprintf("halo, %s", "ABC"[2]);
どちらの書き方が一般的ですか?
0657デフォルトの名無しさん
NGNG>>>最後のほうしか表示されないのはなんでですか?
>>↑これ教えて下さい・・・。
>お願いします。。
無視しないでおせーてw
0658デフォルトの名無しさん
NGNGDOS窓で
>実行したいファイル名 | more
ってやればよろし。
0659デフォルトの名無しさん
NGNGあぼーん
0660デフォルトの名無しさん
NGNG最後に「-- 続く --」
ってなるだけで全部は表示されないけど・・・。
これはしかたのないことなんですか??
0661デフォルトの名無しさん
NGNGリターンを押せば続きが見れます。
0662デフォルトの名無しさん
NGNG一般的なのはコレ。
printf("halo, C");
0663デフォルトの名無しさん
NGNG全部を表示するだけの広い表示領域が無かった場合に、どうなれば満足なの?
0664デフォルトの名無しさん
NGNGThank You!
0665デフォルトの名無しさん
NGNG全部見れれば満足。。
0666デフォルトの名無しさん
NGNGprintf("halo,""2[ABC]");
printf("halo, %s", "ABC");
printf("halo, %s", ABC);
printf("halo, %c", ABC[2]);
などではだめ?
0667デフォルトの名無しさん
NGNG0668デフォルトの名無しさん
NGNG禿どう
0669デフォルトの名無しさん
NGNGと ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>647
0670デフォルトの名無しさん
NGNG0671デフォルトの名無しさん
NGNG一番最後の行を改行すればいいんだよ。
main(){
/*hogehoge*/
}/*ここで改行*/
0672デフォルトの名無しさん
NGNGあの後楽園とかにあるようなどんどん上がっていって一気に下がるやつ。
ああいうので見れるくらい長いのがいいね。
速すぎて読めないってのはナシで。
0673643
NGNGわざわざ心配していただいてありがとうございます。
まだ解決してないんですよー。
プログラムによってその警告が出たり出なかったりなのですが。
改行ってprintf("\n");のことですよね?
0675デフォルトの名無しさん
NGNG( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>1
0676デフォルトの名無しさん
NGNG↑ このスレのように、テンプレに↓これが無いからいけないんだ。
あと、ぬるぽに投票してください。
http://pumpkinnet.to/ranking/words/
∧_∧
( ´∀`)< ぬるぽ
0677デフォルトの名無しさん
NGNGdoubleとおなじ?
0678デフォルトの名無しさん
NGNG違う環境もありうる。
double <= long double
0679デフォルトの名無しさん
NGNG{
char Name[17];int HP;int MP;//1
}
Chara[8];//2
0は構造体タグ。1はメンバー。2はなんと呼ぶのですか?ある本には構造体名と
書いてあったのですが。2がメンバーのほうが正しい気もしますが。
0680デフォルトの名無しさん
NGNG0681デフォルトの名無しさん
NGNG2はメンバーではないだろう
struct SMAP
{
int inagaki;
};
たぶん
struct CharaData//0
{
char Name[17];int HP;int MP;//1
};
struct CharaData Chara[8];//2
となるところをいっぺんに書いたんじゃね?
0682デフォルトの名無しさん
NGNG構造体名になるのはtypedef がある場合と思う。
0683682
NGNG0684デフォルトの名無しさん
NGNGそういうもんだっけ?
0685684
NGNGリンクエラーじゃなくて、コンパイルエラーになる。
「ソースが空です」ってメッセージがでる。
0686AGENT-GC
NGNG現在のMicrosoftの最新のC++コンパイラはなんっすか?
0687デフォルトの名無しさん
NGNGスレ違い。ここはC言語のスレです。
0688AGENT-GC
NGNG0689デフォルトの名無しさん
NGNGMSの製品の事はMS関連のスレなり、MSのサイト覗けYo
0690デフォルトの名無しさん
NGNGスレ違い。ここはぬるぽのスレです。
0691デフォルトの名無しさん
NGNGC言語にはクラスの概念がないのですが、どうしてですか?
0692デフォルトの名無しさん
NGNG0693デフォルトの名無しさん
NGNGなぁネタだろ?
0694デフォルトの名無しさん
NGNGC言語はVB以下?
0695デフォルトの名無しさん
NGNG0696デフォルトの名無しさん
NGNGクラスの有無が言語の優劣だとでも?
まぁ、まともなプログラミングもできない奴なら言語の優劣を測りたがるのも無理ないか。
0697デフォルトの名無しさん
NGNG0698デフォルトの名無しさん
NGNG一応レスしとくと、C いうのはアセンブラの代替としてのシステム記述用に、
簡易・高速・軽量を極めて作られた言語。
その当時にはオブジェクト思考という概念などなく、そしてそのまま仕様が
ANSI でほぼ確定されたわけだ。
微調整した C99 なんてのもあるけど、骨格は昔の C と変わらない。
VB は Microsoft の独自言語で、ANSI 規格と違って拡張しようと思ったらすぐ
拡張できる状況にあったので、新技術を手当たり次第詰めこむ形で成長し、クラス
をも取り入れるに至ったわけだ。
・・・成功してるかどうかは知らないけどね。
クラスも導入したいが C の簡易・高速・軽量性も捨てがたい、と C を袂を分けて
派生したのが C++。
しかし、C++ がこれまたあまりにも節操のない新技術追加が為され、古い機能の廃止
もほとんどしなかったため、とんでもなくややこしい言語になってしまった。
これをもっと簡潔にしよう、というわけでできたのが Java や C#。
今は D も策定中。
0699デフォルトの名無しさん
NGNG0701デフォルトの名無しさん
NGNGつーかD言語は現存するわけですが。
http://www.digitalmars.com/d/index.html
0703デフォルトの名無しさん
NGNGリリースも何も、digitalmarsが勝手にやっている事だろう。
他のコンパイラメーカは見向きもしない。
0704デフォルトの名無しさん
NGNGそこのページに言語機能の比較があるんだが、
http://www.digitalmars.com/d/comparison.html
Multiple Inheritance D:No C:No C++:Yes C#:No Java:No
・・・さすがは C++ だ・・・w
0705デフォルトの名無しさん
NGNGchar conf[10], opt[20];
sscanf(str, "%s=%s\n", conf, opt);
で、configファイルを読みたいんですが、
この場合、conf[10]="hoge" で\0が語尾につかないわけですが、
適切な場所に\0をいれるにはどうすればいいですか?
0706デフォルトの名無しさん
NGNGマクロを取り除いた。それだけ。
0707デフォルトの名無しさん
NGNGconf[4] = '\0';
0708デフォルトの名無しさん
NGNGscanfの書式指定は空白文字を区切りと認識するので、
"%s=%s"で"hoge=12"を読むと最初の%sで文字列を全部読んでしまうのでは?
"%s = %s"とか"%[a-z]=%[0-9]"みたいにするか。
0709デフォルトの名無しさん
NGNG0710デフォルトの名無しさん
NGNGchar opt[]だから。
0711705
NGNG参考になりました。
>>708みたいな正規表現も使えるんですね。
ちょっと色々実験してみますね。
0712デフォルトの名無しさん
NGNG0713705
NGNG今、K&R読み直しました。
別に正規表現というわけじゃないんすね。
質問しておいてなんですが、sscanfはなんか汎用性に欠けるっていうか、
perlみたいな文字列リテラルの扱い方法があるといいんだけど。
0714デフォルトの名無しさん
NGNG0715デフォルトの名無しさん
NGNG0716705
NGNGいま、新しいライブラリ作ってまふ・・・
0717デフォルトの名無しさん
NGNG0718デフォルトの名無しさん
NGNG0719デフォルトの名無しさん
NGNG「貴様ら!オブジェクト指向を教えろ!! 」に帰れ
0720デフォルトの名無しさん
NGNG0721デフォルトの名無しさん
NGNG( ´∀`)< ぬるぽ
0722デフォルトの名無しさん
NGNG( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>721
0723デフォルトの名無しさん
NGNG( ´∀`)< ぬるぽに聞け!
0724デフォルトの名無しさん
NGNG( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>723
0725デフォルトの名無しさん
NGNG( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>1
0726デフォルトの名無しさん
NGNGX Toolkit Intrinsics 読め。
0727デフォルトの名無しさん
NGNG( ´∀`)< アルセーヌ・ルポンに聞いてちょ
0728デフォルトの名無しさん
NGNG-----------------------------------------------------------
#include <stdio.h> /*stdio.hファイル宣言*/
int main()
{
short x1,x2; /*符号付きのshort*/
unsigned short y1,y2; /*符号無しのshort*/
x1=-32768;
x2=32767;
printf("x1=%d x2=%d \n",x1,x2);
y1=1;
y2=65535;
printf("y1=%d y2=%d \n",y1,y2);
}
-----------------------------------------------------------
x1= -32768 x2= 32767
y1= 0 y2= 65000
と表示させたいのですが。
x1= -32768 x2= 32767
y1= 1 y2= -1
となってしまいます。
short以外を使ったほうがいいのでしょうか、longを使用したら違う結果が出ました。
レベル低くて申し訳ありませんが、ヒントを頂ければと思います。
0729デフォルトの名無しさん
NGNGprintf("y1=%d y2=%d \n",y1-1,y2-535);
0730デフォルトの名無しさん
NGNGint を使え。
-1になったのは、桁溢れしたため。
0731729
NGNGじゃあprintf("y1=%d y2=%u \n",y1-1,y2-535); これで。
0732デフォルトの名無しさん
NGNGint hash(char *key,int sz){
unsigned char *t=key;
int h;
for(h=0;*t;t++){
h=(128*h+*t)%sz;
}
return 0;
}
というものがあります。
この関数のunsigned char *t=keyというのは、
keyが格納する実引数のアドレスをtに渡しているということなのでしょうか?
また、tをポインタのポインタとして宣言して、この文を記述した場合は
仮引数であるkeyのアドレスを格納を格納出来るのでしょうか?
ご教授お願いします。
0733732
NGNG0734デフォルトの名無しさん
NGNG内部変数は変わるよな・・・
性的変数は変わらない・・・
ということは外部変数も変わらないのか??
0735デフォルトの名無しさん
NGNGkeyの中身をtに入れているだけ。
別の変数に待避しているんだよ。
0736デフォルトの名無しさん
NGNG0737デフォルトの名無しさん
NGNGよく考えればわかるぞ。
keyは、アドレス。
*keyは、文字列。
t=key は、アドレスの代入。
つまり、*tは、文字列。
文字列はそれぞれコードを持っている。
例えば、
printf("%d \n", 'a');
とかやってごらん。
0738デフォルトの名無しさん
NGNGスタックについて考えてみろ。
その前に、まずデバッグして実際に目で追って見ろ!
0739728
NGNG6行目を
unsigned int y1,y2; /*符号無しのint*/
に変更しましたが、結果が一緒でした。
>>729様
ありがとうございます、目指す形に出来ました。
y1= 0 y2= 65000 の65000は何故かshortを使うと65000になるみたいな書き方が本にされていたので書いたのですが。
汎用的に使えるようにしたかったためこうなりました。
%uは16bitの数字を表示する書式指定文字列と考えていいのでしょうか。
x1,x2は%dで上手くいっているのは何故でしょうか、あまり気にしなくていいのでしょうか。
-----------------------------------------------------------
#include <stdio.h> /*stdio.hファイル宣言*/
int main()
{
int x1,x2; /*符号付きのint*/
unsigned int y1,y2; /*符号無しのint*/
x1=-32768;
x2=32767;
printf("x1=%d x2=%d \n",x1,x2);
y1=0;
y2=65535;
printf("y1=%u y2=%u \n",y1,y2);
}
-----------------------------------------------------------
「よくわかる最新C言語の基本と仕組み」という本のP74あたりを参考にしているのですが、書いてある通りに書いてもちゃんと動いてないような気がします。
少し古いのでそのせいかもしれませんが・・。
0740デフォルトの名無しさん
NGNG0741デフォルトの名無しさん
NGNG0742734
NGNG形しか思い浮かばない・・・
そかデバッグっていう方法があったな!ペコリ~(o_ _)o))
0743デフォルトの名無しさん
NGNG*keyを文字列だとは思わない方がいい
0744デフォルトの名無しさん
NGNG自動変数はスタックに積まれる。
もしくは、レジスタに格納される。
0745728
NGNGやはり誤植っぽいですね。
ありがとうございます、shortって変数なので切り捨てて短くするのかもなんて思っていました・・。
0746デフォルトの名無しさん
NGNG> %uは16bitの数字を表示する書式指定文字列と考えていいのでしょうか。
違う。符号なし整数(unsigned int)として十進数字列に変換。
0747734
NGNGデバッグしてみたら外部変数のアドレス変わらなかったです。
使うときにスタックの↑から取り出すんだ・・・?
なら後に入れればいれるほど早い??ということになるっけ・・
というか・・・ブラウザが変ってなんやねん!
0748デフォルトの名無しさん
NGNG0749デフォルトの名無しさん
NGNG後から積めば、その関数の仕事が終われば、後に入ったものから順におろされる。
まぁ、メモリを食わないって事になるのかのぉ。
0751ERROR:ブラウザ変ですよん。ってなに?
NGNG結構Cやってきたけど、あまり内部的なこと考えてなかったです。
考えないといけないですね〜
0752732
NGNGなるほどー。
ってことは(128*h+*t)%szの*tってのは、
tに格納されている変数の先頭アドレスが指し示す文字をコードで表し、
それをハッシュテーブル生成に使っているということなのですよね?
それと、コードは本の裏とかに載ってるANSI(ASCll)コード表ってやつが規格なのでしょうか?
0753728
NGNG-----------------------------------------------
#include <stdio.h> /*stdio.hファイル宣言*/
int main()
{
char x;
char moji1='C';
char moji2='言';
char moji3='語';
x='a';
printf("変数xの中身は %c\n",x);
printf("変数moji1からmoji3を表示します %c",moji1);
printf("%c",moji2);
printf("%c",moji3);
}
-----------------------------------------------
で
-----------------------------------------------
変数xの中身は a
変数moji1からmoji3を表示します C言語
-----------------------------------------------
と表示されるはずが
-----------------------------------------------
変数xの中身は a
変数moji1からmoji3を表示します Cセ
-----------------------------------------------
と表示されています。
日本語(2バイト)には何か特別な事が必要なのでしょうか。
0754ERROR:ブラウザ変ですよん。ってなに?
NGNG宣言の時は
char moji2[2]="言"
char moji3[2]="語"
ってするべきじゃん?
教え方へたくそでごめん
0755デフォルトの名無しさん
NGNGポインタ型で宣言された変数などは必ずmallocとかを使って領域確保しなければいけないのでしょうか?
char *s="Hello World.";
という記述をよく見かけますが、領域確保しなくて大丈夫なのですか?
構造体へのポインタとかだとちゃんと領域確保している場合が多いような気がするのですが。
0756ERROR:ブラウザ変ですよん。ってなに?
NGNG"言"を'言'としたために
2Byteから1Byteに減ったためだよ。
2Byte文字をアスキーコードに直したら
0xff 0x12 (適当)のようなもんだから0x12が消えたんかな・・?
0757デフォルトの名無しさん
NGNGchar *s="Hello World" は
char s[]="Hello World" みたいなもんで
勝手に領域確保してくれる...らしい。
だからプログラム中で領域解放してないでしょ・・・?
0758755
NGNG確かにそうですね。
でも、そうしたら構造体の領域確保はやっぱり疑問が残りますよね。
ノード構造とかしてるプログラムは絶対領域確保してるし・・・。
0759デフォルトの名無しさん
NGNG"Hello World"と、char *sは分けて考えれ。
・"Hello World"の文字列が確保される。
・*sは、"Hello World"のポインタとして初期化される。
0760デフォルトの名無しさん
NGNG関数に領域を操作するためのポインタを渡しているのですが
初期化されていないポインタを渡すな ゴルァ!! と
怒られます
こういった場合
ポインタの宣言の時にNULLで初期化するのが普通なのでしょうか?
0761728
NGNG#include <stdio.h> /*stdio.hファイル宣言*/
int main()
{
char x;
char moji1='C';
char moji2[2]="言";
char moji3[2]="語";
x='a';
printf("変数xの中身は %c\n",x);
printf("変数moji1からmoji3を表示します %c",moji1);
printf("%c",moji2);
printf("%c",moji3);
}
-----------------------------------------------
としてみましたが
-----------------------------------------------
変数xの中身は a
変数moji1からmoji3を表示します Cxv
-----------------------------------------------
と表示されます・・。
何がいけないのでしょうか。
0762755
NGNGあ、なんとなく分かりました。
文字列リテラルの場合は"Hello World"だけで実体としてメモり確保されるんですね。
でも、構造体の場合はどうなのでしょうか?
理解力がなくて申し訳ないです。
0763デフォルトの名無しさん
NGNGchar *my_malloc();
p=my_malloc();
ってすればいいのでは?
これなら怒られない。
0765デフォルトの名無しさん
NGNG2Byte以上なんで%sをつかいましょー
printf("%s",moji2);
0766デフォルトの名無しさん
NGNGdanger
0767デフォルトの名無しさん
NGNGだからchar moji[3]="言"
というかchar moji[]="言"
がいいかも。コンパイラに任せちゃえ
0768755
NGNG構造体でも実体があれば領域確保しないでよいのですか?
具体的にどういう場合に領域確保をするのかを説明して下さると嬉しいです。
0769デフォルトの名無しさん
NGNGcharとかintが集まったのが構造体だから。
0770デフォルトの名無しさん
NGNG可変長配列がほしいときとか
0771デフォルトの名無しさん
NGNGリンクリストとか何とかツリーとか、基礎的なアルゴリズムを
解説してある本を読むと、ああ、なるほどと思うかも。
0772755
NGNGじゃあ必要に応じて拡張していきたい場合は領域確保というような理解でよいのでしょうか?
何度も何度もすみません。
0773728
NGNG-----------------------------------------------
#include <stdio.h> /*stdio.hファイル宣言*/
int main()
{
char x;
char moji1='C';
char moji2[3]="言";
char moji3[3]="語";
x='a';
printf("変数xの中身は %c\n",x);
printf("変数moji1からmoji3を表示します %c",moji1);
printf("%s",moji2);
printf("%s",moji3);
}
-----------------------------------------------
で出来ました。
char moji2="言";
でも大丈夫ですね。
下手に指定しない方が失敗が少ないのでしょうか。
char moji2[3]="言";
の場合はnull分余計に一つ確保しておかないといけないんですね。
0774デフォルトの名無しさん
NGNGそだね。
0777デフォルトの名無しさん
NGNG別にそれでもいいけどさ
char moji[N] = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
だった場合、文字数(N)数えるの面倒じゃねえ?
0778デフォルトの名無しさん
NGNG0779728
NGNG一応下の方に
char moji2="言";
と書いてありますです。
char moji2[]="言";
のほうが無難なのでしょうか、あまり変わらないのかな・・。
たしかに
char moji2[3]="言";
は汎用性が無いので避けていた方が良さそうですね。
0780デフォルトの名無しさん
NGNGで、ちゃんと2ハイ゙ト分保存さるるの?
0781デフォルトの名無しさん
NGNG大丈夫じゃありません。
0782デフォルトの名無しさん
NGNG関数の引数や戻り値には構造体を使わない方がいいですか?
struct D func(struct D);
よりも、
struct *D func(struct *D);
の方がいいですか?
0783デフォルトの名無しさん
NGNGwchar_t wc=L'ぬ';
0784デフォルトの名無しさん
NGNG速度が問題にならないのであれば別にいいんじゃない?
でも、構造体は大抵ポインタで渡すのが普通。
戻り値に構造体のポインタを返すには
その構造体の実体はグローバル変数か、static変数である必要があるので普通はしない
0785デフォルトの名無しさん
NGNG0786デフォルトの名無しさん
NGNG0788デフォルトの名無しさん
NGNG0789デフォルトの名無しさん
NGNG0790デフォルトの名無しさん
NGNG0791デフォルトの名無しさん
NGNGいや、単にscaleをスカルと読む人なんだと思うぞ。
0792デフォルトの名無しさん
NGNG適材適所。
昔のCと違って、構造体を値渡しすること自体に問題はない。
ポインタ渡しでは内容を破壊できるが、それが気になるならconstにすればいい。
0793デフォルトの名無しさん
NGNGこのstrには"0x123456"が入っています。
このstrに0x123456が入っていると
〜な処理をする。という風にするには
if ((strcmp(str, "0x123456") == 0) {
というにすればよろしいのでしょうか?
それとも、
if ((strcmp(str, "123456") == 0) {
とするものなのでしょうか?
何分初心者で分かり辛い質問かと思いますが
ご教授お願いします。
0794デフォルトの名無しさん
NGNG>このstrには"0x123456"が入っています。
本当なら確保したメモリからはみ出てます。
よって両者とも間違い。
単に3バイトの整数を比較したいのなら1バイトずつ調べるか4バイトの整数型にキャストしてビット演算とかした方が良いと思う。
0795デフォルトの名無しさん
NGNGろーくわぁーる
0796デフォルトの名無しさん
NGNGどうしたら良いんでしょう?OSはMEです。
0797デフォルトの名無しさん
NGNGミ田 + R
command
0798デフォルトの名無しさん
NGNG〜な処理;
}
0799デフォルトの名無しさん
NGNGエンディアンは大丈夫?
0800デフォルトの名無しさん
NGNG頭が腐っているのか?
・整数型に直接castすることはできない。
・4バイトアクセスが安全にできる保証はない。
・エンディアン依存になる。
なので、どう考えても1バイトずつ比較するべきだろう。
0801デフォルトの名無しさん
NGNGエンディアン指摘されて逆ギレ?まぁ、なんにせよ>>800おめ。
0802デフォルトの名無しさん
NGNG3バイトを比較する段階でエンディアン云々所の騒ぎではないと思う。
0803デフォルトの名無しさん
NGNG嘘800?
0804デフォルトの名無しさん
NGNGhttp://www.google.co.jp/search?hl=ja&inlang=ja&ie=Shift_JIS&c2coff=1&q=%83%8D%83P%81%5B%83%8B+%83%8D%83J%81%5B%83%8B&lr=
0805792
NGNG勉強になりますた。
色々ぐぐってみまっす。
0806デフォルトの名無しさん
NGNG騙るな。
0808デフォルトの名無しさん
NGNG0809デフォルトの名無しさん
NGNG0810デフォルトの名無しさん
NGNGCを捨てて(使いこなせてもいないくせに)
C++>>>C とか
Java>>>C とか言うんだろ?
0811デフォルトの名無しさん
NGNG0812デフォルトの名無しさん
NGNGそれだと parse error before `>' でした。
int C,Ruby,Java;
C>Ruby>C++>Java;
だとコンパイルできますた
0813デフォルトの名無しさん
NGNG未定義
0814デフォルトの名無しさん
NGNG#include <stdlib.h>
typedef struct {
char ch0;
char ch1;
char ch2;
}INT;
int main(void)
{
int *p;
INT in;
p = malloc(sizeof(char*) * 3);
if ( p == NULL ) {
printf("Memory Error\n");
}
printf("%p\n", &in.ch0);
printf("%p\n", &in.ch1);
printf("%p\n", &in.ch2);
p[0] = (int)&in.ch0;
p[1] = (int)&in.ch1;
p[2] = (int)&in.ch2;
printf("%p\n", p[0]);
printf("%p\n", p[1]);
printf("%p\n", p[2]);
free(p);
return 0;
}
0815デフォルトの名無しさん
NGNG0816デフォルトの名無しさん
NGNG0817デフォルトの名無しさん
NGNG確保した領域はアドレス変数じゃないみたいなんですけど、
うまいやり方ありますか。
0818デフォルトの名無しさん
NGNGp[1] = (int)&in.ch1;
p[2] = (int)&in.ch2;
なんでint型にキャストしているんだ?int *の間違いか?
0819デフォルトの名無しさん
NGNG0820818
NGNGint **p;
0821デフォルトの名無しさん
NGNGtypedef struct {
int ch0;
int ch1;
int ch2;
}INT;
p[0] = &in.ch0;
p[1] = &in.ch1;
p[2] = &in.ch2;
(22) : warning C4047: '=' : 間接参照のレベルが 'int ' と 'int *' で異なっています。
確保した領域がアドレス変数として確保されればいいんだけど
たんなる変数として確保されているんだよね。
warningなしでスマートにいきたいんですが
0822デフォルトの名無しさん
NGNGpがint *だからいけないの。int **にする。
0823ホント初心者です
NGNG#include <stdlib.h>
int main(void)
{
float a,b;
a=2.1;
b=3.2;
printf("%f",a%b);
return EXIT_SUCCESS;
}
これもともと整数型だったのをfloatに変えてみたら動かないんですけど、なぜですか?
0824デフォルトの名無しさん
NGNG0825814
NGNG感謝、感謝。
0826デフォルトの名無しさん
NGNG0828デフォルトの名無しさん
NGNG0830デフォルトの名無しさん
NGNGってポインタのポインタだよね?
なんか意味あるの?
0831デフォルトの名無しさん
NGNG0832デフォルトの名無しさん
NGNG構造体をポインタだけで高速にソートしたいときとかに普通に
使われるよ。
どうしてもっていうならポインタを更新したりするパターンで
int realloc_int_array(size_t sz, int **pp)
{
int *p = (int *)realloc(*pp, sizeof(int) * sz);
if (p != NULL) {
*pp = p;
return 0; /* success */
}
return -1; /* fail */
}
0833デフォルトの名無しさん
NGNGいずれにしても、問題をちゃんと整理してから質問しろよ。
0834デフォルトの名無しさん
NGNG0835デフォルトの名無しさん
NGNGC言語でFANの回転数を取得するアプリを作りたいのですが、
そもそも、FANの回転数をアプリ側から知ることはできますか?
できるならばその方法をご教示ください。
マザーのI/Oのアドレスにアクセスするのでしょうか?
それともOS自体がFANの回転数の情報を保持してたりするのでしょうか?
よろしくお願いします。
0836あぼーん
NGNG0837デフォルトの名無しさん
NGNGFANの回転数など正確にソフトで読むことは不可能だが、
モーター仕様を調べて電圧をADボードから読めば
ある程度の回転数は解るかも。
1分間で何周回ったか数えてC言語のソフトに入力するのがベストかな
0838デフォルトの名無しさん
NGNG標準Cにはそんなものありません。
0839見習中
NGNG行列(最大10×10)の固有値を
Cのプログラムで求めたいです。
世には色々な方法がありますが、
ソースが手に入って、精度も良いお勧めの方法を教えてください。
希望をいえば、matlabのeigと同じ精度(欲張ってすみません)
行列要素は、実数です。ただし、対称行列ではありません。
C言語によるアルゴリズム辞典
http://www.matsusaka-u.ac.jp/~okumura/algo/
では、全部実対称行列が対象だった。(泣)
よろしくお願いします。
0840835
NGNGマザーには、温度情報が伝わっているものが多いと思うのですが、
それを読むことはできないでしょうか?
レジスタかなんかのアドレスさえ判ればなんとかなりそうなのですが。
0841デフォルトの名無しさん
NGNG>>1 は見ましたか?
0842デフォルトの名無しさん
NGNGprintf("FANが回った数を入力してください: ");
if (scanf(" %d", &n) == 1)
printf("FANが%d回、回りました\n", n);
0843デフォルトの名無しさん
NGNGCLAPACK
0844見習中
NGNGCLAPACKってCのソースも手に入るのですか?
0845デフォルトの名無しさん
NGNGhttp://www.mscom.or.jp/~tog/anna/
ここら当たりを見れ。
0846835
NGNGすみません、恐らく
標準Cではできない事の質問は使用している開発環境のスレへGo!
で、指摘されていると思うのですが、
標準Cでできると思いますので。。
おそらくioctlかなんかで、レジスタアドレスにアクセスするのですが、
どなたか経験者がいないかと思ったまでです。
全然FANに関係ないのですが、
マルチスレッドプログラムで、共有する外部変数へアクセスするとき、
あるスレッドが外部変数へ書き込みする場合はロックするべきですが、
書き込みが行われない外部変数もロックするべきですか?
(つまり各スレッドから読み出ししか行われない外部変数)
0847デフォルトの名無しさん
NGNG固有値だけでいいのなら
NUMERICAL RECIPES in C(日本語版アリ)に載ってるよ。
固有ベクトルについては載ってないけど。
0848デフォルトの名無しさん
NGNG0849デフォルトの名無しさん
NGNGFA用PCには温度管理できるマザーもありますが
温度から回転数を計算するためには
回転数とPC内温度と室内温度のグラフを作ってから
推論する必要がありそうですね。(膨大なサンプリングが必要)
どちらにしても、C言語だけでは無理なのです。
0850デフォルトの名無しさん
NGNGCLAPACK って、FORTRAN の LAPACK を
f2c にかけただけだったような...。
0852見習中
NGNG助かります!
http://www.mscom.or.jp/~tog/anna/
みたら、3種類もありました。
一番小さい関数にします(笑)
0853デフォルトの名無しさん
NGNG非対称行列に使えるのはQR法だけだから気をつけてね。
0854デフォルトの名無しさん
NGNGその通り。
ソースをどう使うか書いてなかったから、一番手っ取り早い回答しただけ。
実際、俺も同じようにC言語で固有値求めて、DSPに移植した事有ったから、
CLAPACKじゃないソースは持ってんだけど。
さすがにコレは無断で出せないしなぁ
0855デフォルトの名無しさん
NGNGそこをなんとかおねげぇしますだ。
0857見習中
NGNGSPECIAL THANX!
そういうことですか!!
危ないところでした。
非対称行列の固有値を求める
場合の方が需要が多いと思うのだけど、
C言語によるアルゴリズム辞典 には対称行列に限定して
話を進めているんですよね。。。
テスト中に、どうしてもmatlabと値が一致しないので、
俺のバグだよなーって全部チェックしたよ。
0859デフォルトの名無しさん
NGNGそこのリンクにある「ダブルQR法」というのにかければ解けます。
お試しあれ。
0860デフォルトの名無しさん
NGNG0861デフォルトの名無しさん
NGNG対称行列に限定したのは多分簡単なヤコビ法を使っているからだろう。
固有値を求めるのは単なる繰り返しによるものだから、キャッシュが
大きいCPUの方が速く求まる。
0862見習中
NGNG固有値を任意に移動するルーチンを作ったので、
確認のために、固有値を表示させようという意図で
作っていたんです。だから、なるべく、matlabと同じでないと
説得力がないんですよ〜。
「ダブルQR法」ためしてみますね。
0863見習中
NGNGA={ 5 8 3 6 ; 2 9 4 1 9 9 8 3 ; 6 2 1 5]
だめだぁ。
0864854
NGNGMATLABと同じ結果が欲しいならCLAPACK。
CLAPACKは、LAPACK(FORTRANで作られた物)をC言語に変換したもの。
MATLABで採用されているのはLAPACK。
FORTRANから変換されたものなので、使い方に癖は有るけど。
0865見習中
NGNGこれってソースが参照できるのですか?
当方 ダイアルアップ。30分は掛かりそう。
0867デフォルトの名無しさん
NGNG0868デフォルトの名無しさん
NGNG0869見習中
NGNGやってみます。
アドバイスありがとうです!
0870デフォルトの名無しさん
NGNG846が阿呆ってのは禿同だが、上級者なら適切に理由述べて、適切に誘導すべし。
テンプレ見て理解出来るなら、このスレにゃ書かねーわな。
0871かおりん祭り
NGNG〜oノハヽo〜 / ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ^▽^) < こんなのがございまーす♪
= ⊂ ) \_______
= (__/"(__) トテテテ...
0872あぼーん
NGNGhttp://muryou.gasuki.com/moe/hankaku10.html
http://muryou.gasuki.com/moe/hankaku09.html
http://muryou.gasuki.com/moe/hankaku08.html
http://muryou.gasuki.com/moe/hankaku07.html
http://muryou.gasuki.com/moe/hankaku06.html
http://muryou.gasuki.com/moe/hankaku05.html
http://muryou.gasuki.com/moe/hankaku04.html
http://muryou.gasuki.com/moe/hankaku03.html
http://muryou.gasuki.com/moe/hankaku02.html
http://muryou.gasuki.com/moe/hankaku01.html
0873デフォルトの名無しさん
NGNGと ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>871,872
0874あぼーん
NGNG( `Д´) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V・∀・)/
(_フ彡 / ←>>873
0875あぼーん
NGNG0876デフォルトの名無しさん
NGNG#define end }
ってやっておいて使うと、
ソースの見た目がスマートになっていいんだけど、
なんでみんな嫌うの?
0877デフォルトの名無しさん
NGNG0878デフォルトの名無しさん
NGNG{}はシンプルにして直感的だしタイピングも楽だ。
0879デフォルトの名無しさん
NGNG0880デフォルトの名無しさん
NGNG視野が狭いんですね。
0881デフォルトの名無しさん
NGNGif(a) begin
...
}
if(a) {
...
end
でもコンパイルエラーが出ませんし、
エディタの自動字下げ機能が働かなくなりますが、何か?
0882デフォルトの名無しさん
NGNG0883デフォルトの名無しさん
NGNGC言語ではないと?
0884デフォルトの名無しさん
NGNGライブラリなんてないんだろうか。
まぁそれはおいといて、言語の文法を弄ってしまうようなマクロは
避けた方がいいんじゃないだろうか。
0885デフォルトの名無しさん
NGNG#define until(b) while(!(b))
とかもだめ?
0886デフォルトの名無しさん
NGNGPerl等でもunlessなんか使うなよ。
0887885
NGNGいつもそう言われるので俺は使っちゃいないが、
unless と until を使わない納得いく理由は未だに聞いたこと無い。
有名な言語で実装されてるのに、そこまで敬遠する理由は何?
0888デフォルトの名無しさん
NGNGそれにif/unless、while/untilなど、真・偽の動作が逆転した表記が混在するのは鬱陶しいと思う。
0889885
NGNG紛らわしいことがあるのかもしれないな。
if を選んだか、unless を選んだかに意味が持たせられるが、
意味を考えずに書いたりしたコードでは混乱する原因にもなるか。
オーケイ。これからも使わないよ。
0890デフォルトの名無しさん
NGNG小一時間問い詰めたい。
エディタの色分けもきかんし(設定かえろというのか?)。
0891884
NGNG俺は単純に、C 言語では同じ方法を実現するものは一つであるほうがイイと思う。
単純に可読性が落ちるし。初心者がポインタと配列を混同するのがイイ例だ。
単純に入門書が糞なものが多いというのもあるが。
Perl はうろ覚えなんだが、たしか if (a != b) も unless (a == b) も同じだよな?
unless(a == b): a と b は等し…くない
if (a != b): a と b は等しくない(キッパリ
…の方がイイと思うな。少なくとも俺はコードから脳内妄想に変換する時に楽だ。
Perl は一つの事をするのにいくつかの方法を差し出すのが言語の思想だろう。
unless や until があるのもそのせいかと。
文法の特徴にも言語の思想は出ると思うよ。begin/end にしても、実用性重視の
C がブレースを選択したのは至極当然だろう。だってタイプが面倒だもん。
…こんなもんでどうだい。俺の解釈だけど。
0892884
NGNG適当に文法を修正して読んでくれ。
0893デフォルトの名無しさん
NGNGa == b and &foo;
a != b or &bar;
とか、もう書いてる時点でも何だか分からなくなる(w
0894デフォルトの名無しさん
NGNGVCのユーザ定義キーワードは便利だぞ。
>>891
「ちょっと長めの条件の否定」を使う場合に、
ネストが減って見やすいというのはありますえ。
あと、unless(isdigit(ch)) とか。
0895884
NGNG> VCのユーザ定義キーワードは便利だぞ。
む…こんな機能あったのか。ていうか、何のために使うんだ?まさか M$ の人間は
>>876 みたいな事を?…中の人も大変だな。
> 「ちょっと長めの条件の否定」を使う場合に、
むぅ、これは盲点。たしかにそうかもしれんが…否定演算子があるのに文法まで
いじる必要はあるんだろうか、とも思う。
まぁぶっちゃけ好みの問題だろ。
0896デフォルトの名無しさん
NGNG0897デフォルトの名無しさん
NGNG>>895
>ユーザ定義キーワード
特定のトークンに色を付けられる機能。
VC の exe と同じところに USERTYPE.DAT というファイルを作り、
その中にキーワードを列挙するだけという適当な実装方法が泣けるが、
まぁ設定のバックアップがとりやすいのは良い。
色はオプションで変えられる。
小文字の標準マクロ(offsetof など)とか、
WORD, size_t みたいな基本型みたいなもんでよく使うのに
typedef してるがために色のつかない型とか、
ちょっと強調したいのに色を付けるのに使える。
マクロのインテリセンスの無い VC6 での
スペルチェックにもなるかも。
一応普通のキーワードとは色を変えとくが吉。
0898デフォルトの名無しさん
NGNG> VC の exe と同じところに USERTYPE.DAT というファイルを作り、
そのファイルをつくるためのフォームはないんですか?(泣
0899デフォルトの名無しさん
NGNGユーザ定義キーワード。
使いやすくなってんのかな。
まだ試したこと無いや。
0900デフォルトの名無しさん
NGNGmsdev.exe(Developer Studio)と同じところに置くのね。
0902デフォルトの名無しさん
NGNGa()
{
char data[10][10];
・
・
b(data);
・
・
}
b(char get[10][10])
{
・・
x=get[2][2];
・・
}
これで合ってますか?
もし、合ってるとしたら、これは a側で作られたエリアを参照していることになるのでしょうか?
どうかごきょーじゅよろしくお願いします。
0903デフォルトの名無しさん
NGNGあっている。
0904デフォルトの名無しさん
NGNGありがと
0905デフォルトの名無しさん
NGNGトン
0906デフォルトの名無しさん
NGNGアリガトウおおお
0907デフォルトの名無しさん
NGNG凸 凸
凸
凸
凹凹凹凹凹
>>903
0908姫様をお助けしろ!
NGNG□□■■■□□
□□□ □□□
□□ □□□
゜
━
0909デフォルトの名無しさん
NGNG調べることが出来るでしょうか?
0910デフォルトの名無しさん
NGNG標準Cでは無理
0911デフォルトの名無しさん
NGNGと警告が出ます。ポインタを返すにはどうすればいいですか。
0912かおりん祭り
NGNGこんなのございま−す♪
 ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜oノハヽo〜
,.-''"¨ ̄●`' ‐(^▽^)
(,,●i,,,i,,,,,,,,i,,,,●),,)⊂ )
) ( || |
( ^▽^) (_(__)
~~~~~  ̄ ̄ ~~~~~ ~~~~~
0913あぼーん
NGNGhttp://muryou.gasuki.com/hankaku/hankaku03.html
http://muryou.gasuki.com/hankaku/hankaku04.html
http://muryou.gasuki.com/hankaku/hankaku02.html
http://muryou.gasuki.com/hankaku/hankaku01.html
http://muryou.gasuki.com/hankaku/hankaku10.html
http://muryou.gasuki.com/hankaku/hankaku09.html
http://muryou.gasuki.com/hankaku/hankaku08.html
http://muryou.gasuki.com/hankaku/hankaku07.html
http://muryou.gasuki.com/hankaku/hankaku05.html
http://muryou.gasuki.com/hankaku/hankaku06.html
0914あぼーん
NGNG0915佐々木健介
NGNG/_ |
/. \ ̄ ̄ ̄ ̄|
/ / ― ― |
| / - - |
||| (5 > |
| | | ┏━┓| / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| | | | ┃─┃| < こんなサイトを見つけた
|| | | | \ ┃ ┃/ \ 正直、スマンカッタ
| || | |  ̄ \_________
http://saitama.gasuki.com/kensuke/
0916デフォルトの名無しさん
NGNGそのエラー内容だとなんか
自動変数のアドレスを返しているみたいだが?
0917911
NGNGchar*CountTime(long miriByou)
{
long mB=miriByou;char s[11];int a;
sprintf(s,"%1d~%2d'%2d\"%2d",mB/3600000,mB%3600000/60000,mB%60000/1000,mB%1000/10);
for(a=0;a<=9;a++)if(s[a]==' ')s[a]='0';
return s;
}
0918デフォルトの名無しさん
NGNGchar s[11]の存在は関数CountTime内のみ保証する一時的なもの。
だからそんなオブジェクトへのポインタを戻り値にして
使用すべきではない、という警告
君はCの基礎学習が必要や
0920デフォルトの名無しさん
NGNG普通はそのような目的ではchar*を戻り値にしない。
0921デフォルトの名無しさん
NGNGvoid CountTime(long miriByou, char s[11]);
int main( void )
{
char str[11];
CountTime(1500, str);
printf("%s\n",str);
return 0;
}
void CountTime(long miriByou, char s[11])
{
long mB=miriByou;
int a;
sprintf(s,"%1d~%2d'%2d\"%2d",mB/3600000,mB%3600000/60000,mB%60000/1000,mB%1000/10);
for(a=0;a<=9;a++)if(s[a]==' ')s[a]='0';
}
バッファの先頭アドレスを渡す
0922デフォルトの名無しさん
NGNG標準Cでも出来るけど、かえって面倒だよ。
0923デフォルトの名無しさん
NGNGソースキボン
0924デフォルトの名無しさん
NGNGまあ同じことだが
void CountTime(long miriByou, char s[]); の方がいい。
0925デフォルトの名無しさん
NGNG#include <stdio.h>
int main()
begin
(*printf)("hello, C99-II");
end
0926デフォルトの名無しさん
NGNG0927デフォルトの名無しさん
NGNG要望スレじゃないYO、質問してください。
0928デフォルトの名無しさん
NGNG0929デフォルトの名無しさん
NGNG仮引数でのchar s[] は char *sと同じになるってことでいい?
0930917
NGNG>>918 警告が出ても思ったとおりの結果になることがあったので、
キャストとかをすれば大丈夫かと思ったのですが。
>>919 警告無しにできましたが、以下のソースでは失敗してしまいます。
>>920 どのような時に使うのですか。
>>921 参照渡しですよね。やはりこのやり方がいいのですかね。
一文で書けるといいかなと思ったのでポインタ返しを試みたのですが。
getch()+エスケープシーケンスですがコードです。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1003826049&res=59
0931デフォルトの名無しさん
NGNG>どのような時に使うのですか
受け取ったバッファの特定のアドレスを教えたい時とか・・
0932デフォルトの名無しさん
NGNG一文で書けると確かにいいだろうけど
他の関数が軒並み戻り値ではなく引数にchar*を受け取るのはなぜかを考えてくれ。
0933デフォルトの名無しさん
NGNGwhile使えばいいのに。
0934デフォルトの名無しさん
NGNGイイヨ、イイヨ〜
0935デフォルトの名無しさん
NGNG0936デフォルトの名無しさん
NGNG>for(a=0;a<=9;a++)if(s[a]==' ')s[a]='0';
sprintf(s, "%1d~%02d'%02d\"%02d", // 以下略
0937デフォルトの名無しさん
NGNGどう失敗したかくらいは書こう。
で、staticの意味くらい調べよう。
staticで確保した領域はただ一つしかないから、二度目の呼び出しで
上書きされてしまう。そのソースの使い方なら、呼び出し元で
別領域にコピーしておく必要がある。
0938デフォルトの名無しさん
NGNG#include <stdio.h>
char *CountTime(long miriByou, char s[]);
int main(int argc, char **argv)
{
char tmpBuf1[11], tmpBuf2[11];
printf("%s, %s\n", CountTime(1000, tmpBuf1), countTime(1500, tmpBuf2));
return 0;
}
char *CountTime(long miriByou, char s[])
{
long mB=miriByou;
sprintf(s,"%1d~%02d'%02d\"%02d",mB/3600000,mB%3600000/60000,mB%60000/1000,mB%1000/10);
return s;
}
0939デフォルトの名無しさん
NGNGchar *CountTime(long miriByou, char s[])
これを
char *CountTime(long miriByou, char *s)
これにしても一緒?
0940デフォルトの名無しさん
NGNG一緒。
0941デフォルトの名無しさん
NGNGchar *CountTime(long miriByou, char s[])
これを
char *CountTime(long int miriByou, char s[])
これにしても一緒?
0942デフォルトの名無しさん
NGNG一緒。
さぁ次は何かなw
0943917
NGNG>>936 初めて知りました。
>>937 時間を表示する所に ・E と表示されました。
>>938 できますね。戻り値を使用するのは警告のと同じですが、
戻り値用のアドレスを指定しているので、しっかり動くのですか?
0944デフォルトの名無しさん
NGNG関数の戻り値であるポインタは、呼び出し元が確保した配列を指している。
なので、問題がない。
最初のように、呼び出された関数内で定義された自動配列は
呼び出し元に戻るときに破棄されるので参照してはいけない。
staticな自動配列を使った場合は、その配列自体は保証されるが
呼出しごとに破壊されるので呼び出し元での取り扱いに注意が必要。
0946デフォルトの名無しさん
NGNG0947デフォルトの名無しさん
NGNG( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>946
0949デフォルトの名無しさん
NGNG0950デフォルトの名無しさん
NGNG呼び出すたびに別の値で上書きされるってこと
0951デフォルトの名無しさん
NGNGint形だったら
int i = 2147483647;
return i % 10;
って出来たのですが
double d = 4294967295;
return d % 10;
だと(error C2296: '%' : 不正な左オペランドです。)がでるんです。
0952デフォルトの名無しさん
NGNG0953デフォルトの名無しさん
NGNG0954デフォルトの名無しさん
NGNGぬるぽ
0955デフォルトの名無しさん
NGNGと ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>953-954
0957デフォルトの名無しさん
NGNGショウコリモナク
( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>956
0958デフォルトの名無しさん
NGNGダメ。桁数が大きい場合にワヤになる。
fmod で余りを求めてから fabs で絶対値をとって
floor で小数点以下を切り捨てる。
0960デフォルトの名無しさん
NGNGlong doubleだった場合もそれでいけますか?
floor とか fmod って double を引数に取るみたいなので
long double ではまた別の方法を使う必要があります?
0961デフォルトの名無しさん
NGNG0962デフォルトの名無しさん
NGNGdoubleとかって表現できる桁数<<<<有効桁数だから
一桁目が何の意味も成さないことが多いんじゃないのか?
0963デフォルトの名無しさん
NGNG表現できる桁数>>>>有効桁数
0964デフォルトの名無しさん
NGNG表現できる桁数>>><有効桁数
0965デフォルトの名無しさん
NGNG割って比を求め、その値をファイルに出力させるプログラムを
書いてみて&教えてください。
0966デフォルトの名無しさん
NGNG日本語を正しく書いて下さい。
0967デフォルトの名無しさん
NGNGいやでつ
0968デフォルトの名無しさん
NGNG0969デフォルトの名無しさん
NGNGそれ知ってたら、あとはループと、小学校レベルの四則演算だけだと思うが・・・
0970デフォルトの名無しさん
NGNG0971デフォルトの名無しさん
NGNG0972デフォルトの名無しさん
NGNG0973デフォルトの名無しさん
NGNG今回は awk とか perl がうさげ?
0974デフォルトの名無しさん
NGNG0975デフォルトの名無しさん
NGNG0976デフォルトの名無しさん
NGNGcountってナンだよ!!
0977デフォルトの名無しさん
NGNGなんかCは終わりとか言われてますけど。
0978デフォルトの名無しさん
NGNG0979デフォルトの名無しさん
NGNG習得の意義が思いつかないなら
別に覚えなくてもいいんじゃないか
とりあえず間に合ってるってことだろう
意味があると思うことをやればいい
0980デフォルトの名無しさん
NGNG読み込ませたいのですが、どうすればいいの?
0981デフォルトの名無しさん
NGNGfgetsで1行読みこむ
strtok(デリミターをスペース), atoi やらで
strtokがNULLを返すまで配列に格納する
これを10回繰り返す。
0982デフォルトの名無しさん
NGNG知ったこっちゃないが、必要になったら習得すれば?
0983デフォルトの名無しさん
NGNG最近割り算のコストが、結構高いことに気付きました。
そこで もし double a,b; で
for(〜) a=a/b;
と言うのを
b=1/b;
for(〜) a=a*b;
としたらいいじゃんと思ったのですが
問題はありますかね?
0984デフォルトの名無しさん
NGNG実測して速度と結果を見るしかないんじゃない?
0985デフォルトの名無しさん
NGNGstdなのであまり最適化されないせいかも知れませんが。
でもやはり扱う数の大小によっては結果の精度に問題が生じますね。
そんだけです。なんか変な質問ですみませんでした。
0986デフォルトの名無しさん
NGNG川〃‘〜‘)||<ぽっ
0987デフォルトの名無しさん
NGNG0988デフォルトの名無しさん
NGNGコンパイラによってはそういう最適化をすることもある。
0989デフォルトの名無しさん
NGNGと ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>986
0990デフォルトの名無しさん
NGNGマルチ氏ねマルチ氏ねマルチ氏ね
0991デフォルトの名無しさん
NGNG∧_∧ char* pbuf = (char*)malloc(SIZEOF_MY_ARRAY);
( ´∀`)< if(pbuf == ぬるぽ) {
( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/ < return だめぽ;
(_フ彡 /
}
0992デフォルトの名無しさん
NGNG0993デフォルトの名無しさん
NGNG0994デフォルトの名無しさん
NGNG0995デフォルトの名無しさん
NGNGノノノハヽ
(●´ー`)ハハヽゞ デヘヘ
ノ つ⊂(´▽`∬∬、
(__´⌒)⌒)、,,, U)つ
0996デフォルトの名無しさん
NGNG├┼┼┼┼┼┼┼┤
├┼┼●┼┼┼┼┤ ●〜┐
├┼┼┼┼┼┼┼┤ ●
├●┼┼┼┼○┼┤ ○〜〜〜〜○
├┼┼┼┼●┼┼┤
├┼┼┼┼┼┼┼┤
├┼┼┼┼┼┼┼┤
└┴┴┴┴┴┴┴┘ ○
●○ |
○┐ ●〜〜┘
●
0997デフォルトの名無しさん
NGNG|从 リ)〉
|゚ ヮ゚ノ| キタ…
⊂)} i !
|_/ヽ|」
|'
0998デフォルトの名無しさん
NGNG>>1 ∧_∧ / ̄ ̄ ̄ ̄
 ̄ ̄\ ( ´∀`)
( ) ぽ
| | | / ̄ ̄ ̄ ̄ ̄
(__)_)
┗ ┛
0999デフォルトの名無しさん
NGNG1000デフォルトの名無しさん
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。