C言語なら俺に聞け<34>
レス数が1000を超えています。これ以上書き込みはできません。
0001ま た 未 定 義 か
NGNGhttp://www.catnet.ne.jp/kouno/c_faq/c_faq.html
・comp.lang.c FAQ(英語の原文)
http://www.eskimo.com/~scs/C-faq/top.html
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/
推薦図書/必読書のためのスレッド PART6
http://pc3.2ch.net/test/read.cgi/tech/1033207156/
・前スレ <33> http://pc3.2ch.net/test/read.cgi/tech/1032606064/
コンパイラ、過去ログなどのリンクは>>2-5 あたり
0002デフォルトの名無しさん
NGNGgcc
http://gcc.gnu.org/
【Win32用の開発環境のみ。】
gcc-cygwin
http://www.redhat.com/software/tools/cygwin/
gcc-mingw
http://www.mingw.org
Digital Mars C++
http://www.digitalmars.com/
Open Watcom
http://www.openwatcom.com/
Borland C++ Compiler 5.5.1
http://www.borland.co.jp/cppbuilder/freecompiler/
【ライセンスや機能などに問題あり】
Microsot C/C++ 13.0.9466(VC.NET)
http://www.microsoft.com/japan/msdn/netframework/downloads/
LCC-Win32
http://www.cs.virginia.edu/~lcc-win32/
CINT
http://root.cern.ch/root/Cint.html
めじろ++98
http://www.vector.co.jp/soft/win95/prog/se075910.html
0003デフォルトの名無しさん
NGNGスレ立ておつです
0004デフォルトの名無しさん
NGNGhttp://www.cmt.phys.kyushu-u.ac.jp/~M.Sakurai/prog/progf.html
http://www.bloodshed.net/index.html
【注意】
Cmachineは一般的なCと挙動が違いすぎるので動作の保証はできません。
まともな処理系を使いましょう。
0005デフォルトの名無しさん
NGNGゆかいなみかたーにんじゃでござるー
にんじゃでござるー
0006デフォルトの名無しさん
NGNG33 http://pc3.2ch.net/test/read.cgi/tech/1032606064/
32 http://pc3.2ch.net/test/read.cgi/tech/1031905402/
31 http://pc3.2ch.net/test/read.cgi/tech/1031340950/
30 http://pc3.2ch.net/test/read.cgi/tech/1030786546/
29 http://pc3.2ch.net/test/read.cgi/tech/1029605182/
28 http://pc3.2ch.net/test/read.cgi/tech/1028495798/
27 http://pc3.2ch.net/test/read.cgi/tech/1027160374/
26 http://pc3.2ch.net/test/read.cgi/tech/1026048820/
0007デフォルトの名無しさん
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/1003/10034/1003418249.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
0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNG特定の言語専用スレではそうかも・・・
未定義のせいだ。
0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNG0012デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNGとてもいい傾向だ。まさしく2chでのスレのあり方についての
見本である。
0015デフォルトの名無しさん
NGNG確かに、phpやjavaだと質問するまでもないもんな・・・
ライブラリも豊富やし。
//Cでライブラリつーと、漏れはglibたまにつかっとるが。
Cスレは結構見てるんだけど回転速すぎ。
厨房質問は隔離シル!
0016デフォルトの名無しさん
NGNGどんな型でも扱えるqsortという関数がありますよね?
あれは要素を交換するときは1バイトずつ要素の大きさ分交換すればいいんですか?
とりあえず交換するための関数を下のように書いてみたんですが。
static void swap(unsigned char *v1,unsigned char *v2;size_t n)
{
unsigned char t;
for(;n--;v1++,v2++)
t=*v1,*v1=*v2,*v2=t;
}
0017デフォルトの名無しさん
NGNG交換させる関数なんて作る必要ないよ?
配列要素の型のサイズを入れるだけ。
0018デフォルトの名無しさん
NGNG余談だけどv1++,v2++よりv1[n] v2[n] のほうが早いらしい
0019デフォルトの名無しさん
NGNGそんなの環境によるだろ
0020デフォルトの名無しさん
NGNG0022デフォルトの名無しさん
NGNGコンパイルはできました。きちんと動きました。
ただ、本当にこの方法でよいのかと思い質問しました。
0023デフォルトの名無しさん
NGNGコンパイラがすげえ賢かったら
実際にインクリメントされるレジスタは一個だけかもしれない
0025デフォルトの名無しさん
NGNGqsort(array, count, sizeof(*array), CompareFunc);
のような感じ。
18はネタだろ。
0026デフォルトの名無しさん
NGNGqsortを実装するときのことを聞いているんですが・・・
0027デフォルトの名無しさん
NGNGはあ?
もしかしてコールバック関数のこと?
0028デフォルトの名無しさん
NGNGqsortを自分でつくるときの要素の交換方法です。
型が決まっていればその型の変数を定義してそれを介して交換すればOKなんですが。
もしかして、qsortと同じ働きをするものを自分で作りたいの?
0030デフォルトの名無しさん
NGNGそうです!
というかもうつくりました。
ただ、本当にこんな方法でいいのかと・・・
0031デフォルトの名無しさん
NGNG>型が決まっていれば
だからサイズを渡すんだろう?
0032デフォルトの名無しさん
NGNGそういう意味ね。
同じようにコールバックで実装すればいいじゃん。
ただしこの場合でもコールバック関数の方では
あらかじめ型を知っておく必要がある。
0033デフォルトの名無しさん
NGNG移動させてるんじゃないの?
003432
NGNG0035デフォルトの名無しさん
NGNGその型というのは型のサイズのことですよね?
>>16で書いた関数のnがそれにあたります。
0036デフォルトの名無しさん
NGNGそのためのバッファの大きさがコンパイル時に決まらないのでmemcpyは使えないかと・・・
また失敗は許されないから、mallocも使えないし。
003718
NGNG19の言うとおり環境依存だけど
nはレジスタに置かれて
Pentium系だと
v1[n],v2[n]は*v1,*v2と速度的に同じくなる
++v1,++v2 がなくなる分だけ早いよ
0038デフォルトの名無しさん
NGNG決まっているというのは、常に同じ型を扱うという意味です。
003925
NGNG> Pentium系だと
> v1[n],v2[n]は*v1,*v2と速度的に同じくなる
> ++v1,++v2 がなくなる分だけ早いよ
そうとは限らん。
コンパイラがソースと同じバイナリを吐き出すとは
限らない。極端に言えばどちらでも同じコードが
生成されるかもしれない。
0040デフォルトの名無しさん
NGNGん、そりゃもちろんそうです
0041デフォルトの名無しさん
NGNGあーなるほど解ってなかった。とりあえず "qsort.c" でぐぐると
実装例が出てくるね。たしかに可変サイズのバッファなんか使ってないようだ
0042デフォルトの名無しさん
NGNG他にやるとすれば、intのサイズずつ処理するとか。
0043デフォルトの名無しさん
NGNG0044デフォルトの名無しさん
NGNGわかりました。ありがとうございます。
添え字を使うか今と同じポインタを使うかは自分の環境で速いほうを使いますね。
実用レベルのライブラリで do { statement; } while(0) 形式のマクロが使われてるのって始めて見た。
俺が気が付いてなかっただけで意外とあるのかも…。てっきりDQNプログラマ用の構文だと思ってたのに。
004644
NGNG0047デフォルトの名無しさん
NGNG俺は結構よく見かけるよ。
0048デフォルトの名無しさん
NGNGなんにつかうのそれ
breakでぬけたりしたいの?
0049デフォルトの名無しさん
NGNGあれだ、ブロックにして関数の途中でも変数を定義できるようにすると・・・・
0050デフォルトの名無しさん
NGNGスコープ作りたいってことか
俺は使わないけど、
#define print_10(string) \
do { \
int i; \
for(i = 0 ; i < 10 ; ++i) { \
printf("%s\n", string); \
} \
} while (0)
0052デフォルトの名無しさん
NGNGと思ったところではじまらないしおわらないわな
0053デフォルトの名無しさん
NGNGネタ?だよね?
0054デフォルトの名無しさん
NGNGあのさあ、、、
もう突っ込む穴も無くなった。
0055デフォルトの名無しさん
NGNG0056デフォルトの名無しさん
NGNG明示したいとか理由があるんでしょ。
0057デフォルトの名無しさん
NGNGこれもちゃんと書いときなさい!
プログラマ必読・作ってわかるCプログラミング(通称 アヒル本)
http://www.amazon.co.jp/exec/obidos/ASIN/477411328X/
0058とりあえず手持ちの
NGNGdo{\
struct z{char v[sizeof(x)]}t;\
t = *(struct z*)&(x);\
*(struct z*)&(x) = *(struct z*)&(y);\
*(struct z*)&(y) = t;\
}while(0);
0059デフォルトの名無しさん
NGNG最後にセミコロンを付けてしまうと、
do{}while(0) を使う意味がなくなる
と思いますが?
0060デフォルトの名無しさん
NGNG一般的にデクリメント命令の方がインクリメント命令より
使用クロック数が少ない。
0061デフォルトの名無しさん
NGNGネタだよね? 一般的にって何?
俺が使ってるCPUはどちらも変わらない。
0062(x,y)
NGNG0065○
NGNG参考書とかの例題見ても、これなら使う必要ないよな、とか思ってしまうのですが。
0066デフォルトの名無しさん
NGNG0067デフォルトの名無しさん
NGNG0068デフォルトの名無しさん
NGNGたくさんありすぎて書ききれないな。
たとえば、あらかじめサイズが予測できない
文字列に対して何らかの加工をする関数を
作ろうと思ったら、ポインタが使えないと不可能だね。
0069デフォルトの名無しさん
NGNGqsort の話で無くて申し訳ないけど、、、
*BSD のライブラリに入っている heapsort は malloc を使っていて、
malloc に失敗したら潔くあきらめる(-1 を返す)。 おかげで、扱いが
面倒だけど、キーが同じ要素がたくさんある場合など qsort に比べて
性能が宵場合が少なからずあるので、状況によって使いわけている。
(heapsort はそのアルゴリズム上、要素1個分のメモリが確保できると
交換(と言うか書き込み)の回数が相当減るので、そういう実装も仕方が
無いのよね。)
0070デフォルトの名無しさん
NGNG使う必要はありません。全部グローバル変数でOKです。
0071デフォルトの名無しさん
NGNGあるですか? FreeBSD で C の勉強してまふ。ないなら、それっぽい
処理方法をおしえてくらさい。
0072デフォルトの名無しさん
NGNG0073デフォルトの名無しさん
NGNGperlでいうところのsubstrが何をする関数かわからん。
文字列のオブジェクトから文字列を切り出して切り出した文字列のオブジェクトを作成して返すんだろうか?
007573
NGNGそれはC標準ではサポートされていない。
0076デフォルトの名無しさん
NGNG0077デフォルトの名無しさん
NGNG007873
NGNGchar *substr(char *s, int from, int to) {
char *pTemp = (char*)malloc(sizeof(char) * ((to - from) + 2));
if(pTemp) {
strncpy(pTemp , &s[from] , to - from + 1);
pTemp[to - from + 2] = '\0';
}
return pTemp;
}
0079デフォルトの名無しさん
NGNG{
char *p= s= s + from;
while (to--)
++s;
*s= '\0';
return p;
}
008071
NGNGぬぉっ。さんくす! 試してみて、漏れライブラリに追加しておきます。
# いい人だね。
008178
NGNGfromは0から始まるのでおきおつけて
0082デフォルトの名無しさん
NGNGねぇ、なんでこんなアフォなことするわけ ?
> while (to--)
> ++s;
s += to; でいいと思うんだけど。
つーか >>79 のプログラムなら、
char *substr(char *s, int from, int n)
{
s += from;
s[n] = '\0';
return s;
}
で十分だよ。
まあ、これでは substr("abcd", 1, 2) とかやるとアウトだし、あんまり実用的じゃねーな。
0083デフォルトの名無しさん
NGNG#define UNIX 1
int main(void){
printf(&UNIX["\t%six\n"], (UNIX)["have"] + "fun" - 0x60);
return 0;
}
なぜunixと表示されるのか、誰か解説してください。
0084デフォルトの名無しさん
NGNG0085デフォルトの名無しさん
NGNG&UNIX["¥t%six¥n"] == &"¥t%six¥n"[UNIX] == "%six¥n"
(UNIX)["have"] == "have"[UNIX] = 'a'
'a' + "fun" - 0x60 = "fun" + 1 = "un"
0086デフォルトの名無しさん
NGNG'a' + "fun" - 0x60 == "fun" + ('a' - 0x60) == "fun"[1] == "un"
0087デフォルトの名無しさん
NGNG× "fun"[1]
○ &"fun"[1]
0088デフォルトの名無しさん
NGNG最終的にprintf("%six\n", "un");
になるってことでOK?
0089デフォルトの名無しさん
NGNGそうだね。
printf(&1["\t%six\n"], (1)["have"] + "fun" - 0x60);
printf("\t%six\n" + 1, "have"[1] + "fun" - 0x60);
printf("%six\n", "fun" + 0x61 - 0x60);
printf("%six\n", "un");
009052
NGNGどこがネタだかわかんないんだけど
何かおかしなことを言っているんだったら
具体的に指摘をしてください
今日一日考えたけどわかりませんでした
0091デフォルトの名無しさん
NGNG53がネタかCでインライン関数が使えないと思っているだけ。
0092デフォルトの名無しさん
NGNGC99はまだ広まっていないよ・・・
0093デフォルトの名無しさん
NGNGつうことじゃないの?
0094デフォルトの名無しさん
NGNGコンパイラの拡張機能を勝手に標準だと思っているか、
すべてのコンパイラがC99に準拠していると思っているか、
CとC++の違いをわかっていない、
つまり自分がネタを披露していることに気づいていない
ということですな。
0095デフォルトの名無しさん
NGNG0096デフォルトの名無しさん
NGNG最初から使えたと思っていなければあんなレスはできないはず。
0097デフォルトの名無しさん
NGNG0098デフォルトの名無しさん
NGNG0099デフォルトの名無しさん
NGNG使えると思っている奴って、ある意味すごいな。
実用レベルのライブラリは一生作れないだろうけど。
0100デフォルトの名無しさん
NGNG誰でも知っていることでえらそーにグダグダ書いて。
使ってるコンパイラによるんだから揚げ足取りやっててもおわんねーだろ。
0102デフォルトの名無しさん
NGNGだからinlineを使うのがまずいと言われていることに
気づいているのだろうか。
0103デフォルトの名無しさん
NGNGいつから使えたかというのは2次的なことで。
0104デフォルトの名無しさん
NGNGj=i+50;
とは書けないんでしょうか?
超厨房質問でしょうがよろしくお願いします。
0105104
NGNG代入式って何で
i+50=j;
とは書けないんでしょうか?
超厨房質問でしょうがよろしくお願いします。
0106デフォルトの名無しさん
NGNGかけないわけないでしょ。
きちんとjとiを定義した?
0108デフォルトの名無しさん
NGNGその結果どうなることを期待してるの?
0109107
NGNG0110デフォルトの名無しさん
NGNGだったらマクロでも同じ事じゃん。
まあネタだったんからどっちでもいいや。
0111デフォルトの名無しさん
NGNG0112104
NGNGすいません。書き間違いです。
>>107-108
=の演算子は「右辺値を左辺値に代入する」っていう決まりなんですか?
内心i+50の結果がjに入るのを期待したんですが・・・
0113デフォルトの名無しさん
NGNG=は左にあるものに右の結果を代入する演算子だぞ(^_^;)
0114104
NGNGありがとうございます。勉強不足でした。
0115デフォルトの名無しさん
NGNGつまり、x = yと書くとき、
「x の値が y に入るか、y の値が x に入るかが不定だったらいいなあ♥」
ってことか?
0116デフォルトの名無しさん
NGNGそれが不定だったら俺はCを捨てる(笑)
0117デフォルトの名無しさん
NGNG0118デフォルトの名無しさん
NGNGキミは今すぐPrologを使え。
0119デフォルトの名無しさん
NGNG0120デフォルトの名無しさん
NGNGんで、代入方向を明示的に指示するのには x<=y, x=>y などとするんだな。
もちろん、ifなどの条件式と通常の部分での間違いを防ぐために
012152
NGNGあーそういうことでしたか
了解しました
0122デフォルトの名無しさん
NGNG0123デフォルトの名無しさん
NGNG0124デフォルトの名無しさん
NGNGx << y; // xにyを代入
y >> x; // yにxを代入
0125デフォルトの名無しさん
NGNGビット操作で0に初期化するのとどっちが早いですか?
0126デフォルトの名無しさん
NGNGコンパイラとCPUに聞け。
0127デフォルトの名無しさん
NGNG環境による。
でもその程度ならよほどタコなコンパイラでない限り
どちらも同じコードになると思う。
0128デフォルトの名無しさん
NGNGちなみにビット操作で0にするって、どうするの?
0129デフォルトの名無しさん
NGNGZ80じゃあるまいし。。
0130デフォルトの名無しさん
NGNGそれ、よくやってたなぁ。今じゃ役に立たない知識だけど。
0131デフォルトの名無しさん
NGNGまじでそんなコードを書く人がいるの?
同じ数同士XORを取れば確かに0になるが・・・・
0132デフォルトの名無しさん
NGNGていうか、最適化時に xor にしないコンパイラなんて存在するんだろうか
0133デフォルトの名無しさん
NGNGVC++6.0はXORにするみたいだな。
0134デフォルトの名無しさん
NGNG大昔はそうするのが常識だったんだ。
0135デフォルトの名無しさん
NGNGxor a
0136デフォルトの名無しさん
NGNG>>132の言う通り。
適当なプログラムコンパイルした後
アセンブラにどう変換されているのか試してみれ。
0137デフォルトの名無しさん
NGNGそうなんだ。
そんなに問題になるほどの差があったのかな・・・
>>136
やってみました。>>133がそれです。
アセンブラはよくわからないけど、これくらいならなんとか。
eaxレジスタにあるもの同士でXOR取ってまたeaxにいれるんですよね?
0138デフォルトの名無しさん
NGNGgccでは最適化すると、XOR使ったソースでも 0をロードするアセンブラ
吐くようだ。
0139デフォルトの名無しさん
NGNG結構有ったのよ。
有名なところでスーパーマリオをROMの中に詰め込む苦労話とか、
その当時はみんな同じような苦労をしていた。
それが今や、、Str[10]で足りると思うんだけど、余裕もって
Str[1000]で宣言しとくか! とかやってる俺。
0140デフォルトの名無しさん
NGNGあ、おれも・・・
256とか1024とか、256の倍数で取っている。本当は30くらいでよいのだけれど(^_^;)
0141デフォルトの名無しさん
NGNG面倒だから,全部1000にしているよ
0142fuck!
NGNGThere is almost no run-time error checking. In particular, arguments passed to functions are not type-checked, and array offsets are not compared with the bounds of the array.
There is no real string type. So the syntax is convoluted for common tasks like appending one string to another. Also, there are subtle differences between "char stuff[]" and "char *stuff" that are hard for a beginner to debug.
The necessity for function prototypes means you have to put essentially the same information in two places, so every time you make certain changes you need to edit multiple files.
Possibly the fascistic insistence on prototypes was some sort of attempt to compensate for the lack of *run-time* error-checking.
Personally, I think the syntax is pointlessly convoluted.
while ((*dest++ = *src++) != '\0') {
seems so far removed from any English-language representation of what's happening that the assembler code is literally easier to understand.
Likewise, the "#include <stdio.h>" seems silly. It would be much more general to have syntax more like "#include "%LIB%/stdio.h"
0143fuck!
NGNGThe language does not really support multidimensional arrays.
The comment characters require two keystrokes. Even worse, they don't nest, so it's hard to quickly comment out sections of
code when you're debugging -- unless of course you don't put actual comments in your code, until "I finish debugging and do the cleanup".
Also, personally I would like comments that last to the end of the line (like the semicolons in assembler).
And why do preprocessor commands use the "#" character, that everyone else uses as a comment? Seems like a last-minute kludge to me.
These "void pointers" seem to me like a kludge bolted onto a confession of defeat. What is the point of declaring the type of parameters when you don't know what it is??
On P142 of K&R (2nd ed) there's a sentence that sounds to me like sarcasm: "The question of the type declaration for a function like malloc is a vexing one for any language that takes its type-checking seriously."
Obviously C does not take type-checking seriously, and clearly K&R are hardly vexed at all by having to recommend a kludge that kicks type-checking in the groin.
0144英語わからん
NGNG0147135
NGNGPentium 4 なら 0.5 クロック命令だね
0149135
NGNG命令長は xor なら 2 バイト、即値なら movzx で 3 バイトだから
0151デフォルトの名無しさん
NGNGfor(i=0;i<10-1;i++)
{
box[i]=box[i+1];
}
*pbox=box;
for(i=0;i<10-1;i++)
{
pbox[i]=pbox[i+1];
}
ポインタを使ったほうが早い?
0152デフォルトの名無しさん
NGNG環境による。
というか何それ? ほとんど同じじゃん。
0153デフォルトの名無しさん
NGNGは
pbox=&box;
だよね。
素直にmemmoveでもいいんじゃない?
0154デフォルトの名無しさん
NGNG命令長とかクロック数はどこで調べられますか?
0155デフォルトの名無しさん
NGNGIntelの日本語サイトに資料があると思うよ。
0156デフォルトの名無しさん
NGNGmemcpyってつかってはいけないんですたっけ?
memmove>memcpy?
0158デフォルトの名無しさん
NGNGこれからポインタの本ちょっと見返してみるよ
0159135
NGNG命令長は Intel のリファレンス PDF を見るといいよ。(これ必携)
ttp://www.intel.co.jp/jp/developer/design/pentiumiii/manuals/index.htm
IA-32 インテル(R) アーキテクチャ・ソフトウェア・デべロッパーズ・マニュアル
上巻、中巻、下巻
クロック数は、CPU によって違うから一概にはいえない。
0160デフォルトの名無しさん
NGNGありがとうございます。
今ISDNで必死にダウンロード中です。(笑
ところでZ80とかの純粋なCISCならともかく
P4みたいなパイプライン付きCISCや
RISCのプロセッサでは正確な実行時間は
把握できるものなのでしょうか。
0161デフォルトの名無しさん
NGNGタスク切り替えとかはどう考えるつもりだ?
0162デフォルトの名無しさん
NGNG正確な実行時間は推測できないとかいう話だよな。
0163デフォルトの名無しさん
NGNGクロックインフレのご時世にはそんなことは無意味だった気がする・・
0164デフォルトの名無しさん
NGNG0165デフォルトの名無しさん
NGNG0166デフォルトの名無しさん
NGNG無意味ってことは絶対にないけど、そういう作業は
コンパイラがガンガンやってくれるからね。
人間がやるべきは、CPU 命令単位の最適化よりも
アルゴリズムの最適化であることは間違いない。
MMX を使った画像処理のループとかになると、
やっぱり CPU の資料は手放せないけどね
0167デフォルトの名無しさん
NGNGそういったものも含めて変わった事が色々出来るみたいだけれど。
0168デフォルトの名無しさん
NGNG別に特殊じゃない(と思う)けど、MMX 使おうと思ったら
Intel の MMX 最適化コンパイラでも使わない限りは
インラインアセンブラで書くことになるでしょ。
コンパイラはアセンブラで書いた部分の最適化は
やってくれないから、自分でペアリングやクロック数を
考えたりしながら最適化することになるわけで。
0169デフォルトの名無しさん
NGNGvolatile と unsigned signed enum が読めません。
どう読むのですか?
0170デフォルトの名無しさん
NGNGhttp://www.okakogi.go.jp/People/miwa/program/c_lang/c_furoku.html
0171デフォルトの名無しさん
NGNGまず英和辞典で調べろ。
ちなみに enum は enumeration の略だ。
0172デフォルトの名無しさん
NGNGbreak ブレーク
case ケース
char キャラ チャー,キャラクタ
const コンスト
continue コンティニュー
default デフォルト
do ドゥー
double ダブル
else エルス
enum イナム エナム
extern エクスターン
float フロート
for フォー
goto ゴートゥー
if イフ
int イント インテ,インテジャ
long ロング
register レジスタ
return リターン
short ショート
signed サインド
sizeof サイズオブ
static スタティック
struct ストラクト
switch スイッチ
typedef タイプデフ タイプデファイン
union ユニオン うにおん
unsigned アンサインド
void ボイド
volatile ボラタイル,ボラティル バラトル
while ホワイル
0173デフォルトの名無しさん
NGNG揮発性 volatile
0174mem
NGNG今読んでいる本のところで
float balance[10][5];
float *p;
p=(float *) balance; ←←
*(p + (3*5)+1)
←←の所がよくわかりません。
float *(balance);
でわおかしいのですか?
基本的なことで申し訳ないのですが、
どなたかよろしくお願いいたします。
0175デフォルトの名無しさん
NGNG専用スレがあったぞ
http://pc3.2ch.net/test/read.cgi/tech/1033365088/
0176デフォルトの名無しさん
NGNG型キャストでス・・・・・・・
0177デフォルトの名無しさん
NGNGバイナリファイルのコピーを行っているのですが、
コピー後のファイルの末尾にゴミ(0xff)がついてしまいます。
これが付かないようにするにはどうすれば良いんでしょう
0178デフォルトの名無しさん
NGNG多分 EOFのゴミです。if (feof(fp)) を使って EOFをスキップすれば
いいはず。
0179デフォルトの名無しさん
NGNGスマソ。feof(stdin)だね。
0180デフォルトの名無しさん
NGNGEOFをスキップするように書き換えたらうまくいきました。
ほんとうにありがとうございました
0181デフォルトの名無しさん
NGNGちなみに getc()もEOFを返すことができるので、int型の変数に読み込み、
if ((i = getc()) == EOF) でスキップすることもできる。これなら feof()は
必要ない。
char型の変数に読み込むとうまく行かないので注意。
0182デフォルトの名無しさん
NGNGを関数値の型を書かないとint型と見なされてしまうそうなんですが、本当でしょうか?
また、なぜint型と見なされるのでしょうか?
お願いします。
0183デフォルトの名無しさん
NGNG0184デフォルトの名無しさん
NGNG0185デフォルトの名無しさん
NGNGANSI-C以前のCがそうだったから。
0186デフォルトの名無しさん
NGNG↓これじゃだめなの?
void main(void)
{
char c[10];
double d[10];
int cnt;
for ( cnt=0; cnt < 10; cnt++ )
{
d[cnt] = (double)(c[cnt]);
}
}
0187デフォルトの名無しさん
NGNGどうもでした
0188デフォルトの名無しさん
NGNG0189デフォルトの名無しさん
NGNG0190デフォルトの名無しさん
NGNGダウト。atofはchar *からdoubleへの変換では?
0191デフォルトの名無しさん
NGNGダメ。
mainの戻り値はint
0192デフォルトの名無しさん
NGNGそういう本題とズレたことはやめた方が・・・
誰か(オレモナー)が突っ込むと長くなるし。
0193デフォルトの名無しさん
NGNG突っ込め突っ込め。議論は活発な方がよい
0194デフォルトの名無しさん
NGNGな配列を
a[3],a[4],a[5],a[0],a[1].a[2]
に入れ替える効率のいい方法を教えてください
0195デフォルトの名無しさん
NGNGまずはその部分がボトルネックになっているかを調べろ。
0196デフォルトの名無しさん
NGNG1.バッファを用意する
2.ループで条件を付けてa[i]をバッファに代入
3.バッファをa[]へコピー。
環境依存で型が分かればそれ以外も無くはない。
0197デフォルトの名無しさん
NGNGTypeOfA a[6];
int i;
for (i = 0; i < 3; i++) {
TypeOfA t = a[i];
a[i] = a[i + 3];
a[i + 3] = t;
}
0198デフォルトの名無しさん
NGNG0199デフォルトの名無しさん
NGNG0200200
NGNG0201デフォルトの名無しさん
NGNG突っ込みが鋭いな。
漏れは全然気づかなかたよ(w
0202デフォルトの名無しさん
NGNG「ハンドルされていない例外はgrcve.exeにあります:
0xC0000005:Access Violation。」
という表示が出ます。
どういう意味なのでしょう?
それに、どうしたらバグがとれるのでしょうか?
0203デフォルトの名無しさん
NGNGとりあえず確保した領域を越えて書き込んでいないか確かめろ
char array[5];
array[100]='a';
とかな。
0204デフォルトの名無しさん
NGNG不正なアドレスを参照しようとした。
不正なアドレスに書き込みしようとした。
メモリを2回解放した。
ハンドルを余分に解放した。
のどれかと思われ
0205202
NGNGありがとうございます
0206デフォルトの名無しさん
NGNGuwa〜、怪しい。
ちゃんとどこが悪いのか掴んだんだろーな。
たまたま、動いてるだけかも知れんぞ。
0207デフォルトの名無しさん
NGNGsz = 100;
p=malloc(sizeof(sz));
こんなことしてないだろうな?
0208デフォルトの名無しさん
NGNG>>205 それをバグがなくなったとは思うのは
気が早いと思われ。
0209デフォルトの名無しさん
NGNGお世話になりマウス。m(^_^)mペコ。
0210デフォルトの名無しさん
NGNGstrtokで数値でできた文字列を分割したあと
数値の入れ方がわからないんだけど誰か教えて下さい.
0211デフォルトの名無しさん
NGNG意味が良くわからないのだが、printf("%p", pointer);ってことか?
0212210
NGNG数値で出来たテキストファイルを数値配列に読み込み
計算をしたいと言う意味です.
0213デフォルトの名無しさん
NGNG0214デフォルトの名無しさん
NGNGなんじゃないのか?
数値変数 = (数値変数)文字列ポインタ;
なのか??
0215デフォルトの名無しさん
NGNGっていうのがいまひとつ分からんが、
↓こんな感じかい?
char *tok;
int num;
tok = strtok(str, sepa);
num = atoi(tok);
0216デフォルトの名無しさん
NGNG0217210
NGNGありがとうございます.
早速やってみます.
0218210
NGNG下のソースはエラーが出るんですが何がいけないですか?
while(fgets(buf,1000,fp1)!=NULL){
p=strtok(buf," ");
data[a][b]=atof(p);
do{
b++;
p=strtok('\0'," ");
if(p){
data[a][b]=atof(p);
}
}while(p);
a++;
}
0219デフォルトの名無しさん
NGNGどこでどういうエラーが出るのかくらい書いたら?
0220デフォルトの名無しさん
NGNGこれどーなのよ。
第一引数は、文字列でしょ。'\0'は、NULLだべ
0221デフォルトの名無しさん
NGNGカーソル移動したり、画面クリアするやつなんですけど。
0222210
NGNGのところでエラーが出ます.
本で見たらこうなってたのでやってみました.
ただファイルへの書き込みではうまくいくんですけど.
0223デフォルトの名無しさん
NGNGライブラリじゃないですが、↓こんなのどうでしょ。ソースコードつき
なので、さんこうになるのでは?
http://www2.plala.or.jp/mita/download/hi/info.html
0224デフォルトの名無しさん
NGNGcursesをキーワードに検索すべし。
0225デフォルトの名無しさん
NGNGその本がC言語を主題として書いてるのなら、捨てたほうがいいと思う。
0226210
NGNGそれでエラーの位置なのですが,
while(fgets(buf,1000,fp1)!=NULL){
p=strtok(buf," ");
data[a][b]=atof(p);
do{
b++;
p=strtok('\0'," ");
if(p){
data[a][b]=atof(p);ここでエラーになります.
}
}while(p);
a++;
}
何がいけないのですか?
0227220
NGNGstrtok('\0'," ");
の第一引数のNULLは、「次のトークンを探す」場合にそうしてするみたい。
m(__)m
0228210
NGNG0229デフォルトの名無しさん
NGNGhttp://www.catnet.ne.jp/~kouno/c_faq/c5.html#13
0230デフォルトの名無しさん
NGNGstrtok()は、トークンが見つからないと、NULLを返すので、
atof(NULL)
となってしまうので良くないのでは?
0231デフォルトの名無しさん
NGNGstrtok('\0'," ");
ではint型の '\0' を第一引数として渡しているので間違い。
strtok(0, " ");
か
strtok(NULL, " ");
に変更すべし。
0232230
NGNGif(p)があるから、atof(NULL)とはならないのかぁ〜〜〜〜〜〜。m(__)m
にしても・・・、strtok()の結果って、ホントに数字の羅列になってるのかな?
データの中に、空白文字が複数連続して書かれてあったらどうなるんだろ?
スレ汚してごめんなさい。m(__)m
aかbがdataのサイズを超えているのではないかな?
どう見ても b = 0 が抜けているが。
つーか、なんでどういうエラーなのかを言わんのだ?
0234デフォルトの名無しさん
NGNGコンパイルエラーだったら怒るぞ
0235210
NGNG「?????のメモリが????を参照しました.
メモリがwrittenになることが出来ませんでした.」
です.
自分でもいろいろやってみるのですが,エラーなんです.
教えてください.
0236デフォルトの名無しさん
NGNG>>233さんのいってることは確認したかい?
0237デフォルトの名無しさん
NGNG何したいんだ?
0238デフォルトの名無しさん
NGNG○ p=strtok(p," ");
誰も突っ込まんから一応突っ込んでおく。
whileが無限ループになってるからいつかはエラー出るだろうなあ。
0239210
NGNGそれでただ読み込んでファイルに書き込むことは出来ました.
よって読み込みの段階での間違えは無いと思います.
つまりatofのところ(226で書いたところ)でうまくいかないみたいです.
何が間違っているのでしょうか?
0240デフォルトの名無しさん
NGNGで、dataはどのくらいのサイズ設定してあるんだ?
仮にdata[10][10]としてあったときに、b=10のときエラーになることくらいは分かってるよね?
10*10と仮定すると、
if( a < 10 && b < 10 ){
data[a][b]=atof(p);ここでエラーになります.
}
ってやれば回避できる。
0241デフォルトの名無しさん
NGNG人の話きけよ…
0242210
NGNGすいません.
書き込んでいる最中に増えていました.
そのとおりにやってもエラーが出ます.
あとサイズ設定はかなり大きくとっているので(300,100)大丈夫です.
0243デフォルトの名無しさん
NGNG俺がstrtokで作るとこうなる・・・かもしれない↓
for (a = 0; fgets (buf, sizeof (buf), fp1) != NULL; a++) {
char *p = strtok (buf, " ");
for (b = 0; p != NULL; b++) {
data[a][b] = atof (p);
/**/printf ("(%d,%d) = %g\n", a, b, data[a][b]);
p = strtok (NULL, " ");
}
}
しかし、バグはバグとして、そもそもsscanfを使わない理由は?
0244デフォルトの名無しさん
NGNG0245243=244
NGNG#include <stdlib.h>
をやりわすれたのにコンパイルエラー出なかったのが不思議。
(結果は出鱈目だった)
0246デフォルトの名無しさん
NGNG0247デフォルトの名無しさん
NGNG0248デフォルトの名無しさん
NGNG(サイズが不定なのか固定なのかわからん)
0249デフォルトの名無しさん
NGNG0250デフォルトの名無しさん
NGNGwhile(p){〜}でいいじゃん。
pを確認してから、strtokを取るってわかりやすいし。結構行数はしょれる。
>○ p=strtok(p," ");
何でpとpなんだ?
b=0;の適当なところでの処理は必須。
' '半角スペースが2個連続している所とかは無いのか?
あれば、strtokに掛ける前に処理しておいた方が良いと思うが。
strtok(NULL, " ");がいいな。
全角スペースは混ざっていないよね?
などなど
0251デフォルトの名無しさん
NGNGプログラムを実行して、WWW上のどこかに飛ばすにはどうしたらいいでしょうか?
初心者用のサイトは大方見たのですがドコも詳しく書いてなくて、
どなたか、お願いします。
0252デフォルトの名無しさん
NGNGそこにサイトがあったら、飛ばせ。
0253デフォルトの名無しさん
NGNGprintf("Location:どこか\n\n");
これをCGIとして実行。
0254デフォルトの名無しさん
NGNG何を飛ばすのか、そもそも「飛ばす」とはどんな処理・動作・結果を指しているのか?
具体的に書けや (#゚Д゚)ゴルァ!!
0255デフォルトの名無しさん
NGNG> 何を飛ばすのか
電波
0256251
NGNG回答ありがとうございます。
言い方悪くてすいません。
exeを実行語、ヤフーなりgoogleなりIEが開いて表示する
って言うのをやりたいです。
>252
おもしろそうなので詳しく調べて見ます!!
>253
個人的に使いたいのでCGIは無理ですが、勉強になりました。
もしもCGIを使う事になったら使用させていただきます!!
>254
ごめんなさい(T_T
次からはもっと詳しく書かせていただきます!!
0257デフォルトの名無しさん
NGNGIEコンポーネントを使うことになるから、↓のすれがよさげ
IEコンポーネントを使い倒すスレ
http://pc3.2ch.net/test/read.cgi/tech/982930049/l50
0258デフォルトの名無しさん
NGNG最初の1回だけなら、
ShellExecuteでIEのフルパスと対象のURLを書けばイイかも
0259デフォルトの名無しさん
NGNG0.01fを%fでやると0.010000ってなっちゃいますよね?
0260デフォルトの名無しさん
NGNG%gは?
0261デフォルトの名無しさん
NGNGVC++を買う必要はありますか?
今の環境はBCCに専用のエディタを組み合わせてます。
0262デフォルトの名無しさん
NGNGその今の環境でできないの?
0263デフォルトの名無しさん
NGNG根性があれば必要ない
プラットフォームSDKはBCCに含まれてるから
がんばってMSDNライブラリに検索かけまくる
(抜けがあるけど・・・)
0264デフォルトの名無しさん
NGNG> VC++を買う必要はありますか?
ない
ウィンドウズプログラムの作り方
http://www.neco.nu/gohodoji/bccfaq/bccfaq.html#windowsprogram
# -Wオプションを付けるのを忘れるな
0265デフォルトの名無しさん
NGNGこの辺りからリンクされているツールを使うと、BCCでも比較的
楽にWinアプリも作れると思う。
http://hi-tag.hoops.jp/prgmemo/cpp_try00.html
0266デフォルトの名無しさん
NGNGtypedef struct test {
char test1[10];
char test2[10];
} test;
typedef struct value {
char test1[10];
char test2[10];
test test3[10];
} value;
として、
value a[10];
と宣言して、
a[0].test3[0].test1[0] = 'a';
というのは、できないのでしょうか?
0267デフォルトの名無しさん
NGNG0268デフォルトの名無しさん
NGNGVC++6.0で簡単なウインドウを作るプログラムを作ろうと思ったんですが、
新規作成→WIN32Application→新規作成→C++ソース、と普通にやって
#include<windows.h>をするとエラーがでます。エラーの場所はなんか
winnt.hというところに出ます。そんな所いじってないのになぜでしょうか。
教えてください!
0269デフォルトの名無しさん
NGNG教えて欲しいくせに「C言語なら俺に聞け」スレに書き込むのか。
ふ〜ん。つまらんネタだな。
0270デフォルトの名無しさん
NGNG?
0271デフォルトの名無しさん
NGNGとりあえずこちらへ
http://pc3.2ch.net/test/read.cgi/tech/1022499000/
0272デフォルトの名無しさん
NGNG初期化するにはどうしたらいいでしょうか?
0273デフォルトの名無しさん
NGNGchar [MAX2] の先頭を指すポインタだから
char hoge[MAX2];
Numbox = hoge;
0274デフォルトの名無しさん
NGNGchar (*Numbox)[MAX2] = {0};
最近はなんとかっつー規定でゼロクリアしてくれるぞ。
駄目ならsizeofでmemsetだ
0275272
NGNGC言語だけですっけ?
0276デフォルトの名無しさん
NGNGANSIのことか?
0277デフォルトの名無しさん
NGNG0278デフォルトの名無しさん
NGNGおいおい、何言ってんだ?
配列へのポインタだぞ。書くとしたら、
char (*Numbox){MAX2] = NULL;
char (*Numbox){MAX2] = &hoge;// <- char hoge[MAX2];
char (*Numbox)[MAX2] = (char (*)[MAX2])malloc(10*sizeof(char (*)[MAX2]));
だろうが。
0279デフォルトの名無しさん
NGNGchar (*Numbox)[MAX2] = (char (*)[MAX2])malloc(10*sizeof(char [MAX2]));
だな。
0280デフォルトの名無しさん
NGNGconst char *a=abc;
*a=10;
OK?
0281デフォルトの名無しさん
NGNGconst char *a = &abc; ・・・・
0283デフォルトの名無しさん
NGNG&が要るかどうかはhogeの型によるだろ。たとえば
char hoge[10][MAX2];
だったら &は不要。
0284283
NGNGchar hoge[MAX2];
と最初に書いてあった。ごめん。
0285デフォルトの名無しさん
NGNG0286デフォルトの名無しさん
NGNG0287デフォルトの名無しさん
NGNG0288デフォルトの名無しさん
NGNGファイルのステタースを確認したいのですが、
使い勝手のいい関数はあるでしょうか?
用途なんですが、ファイルに書き込む作業で、多人数が同時に
アクセスする可能性があるので、ファイルロックのような
機能を持たせたいと考えております。
どなたか教えて下さい
0289デフォルトの名無しさん
NGNGslen=strlen ( argv[2] );
と宣言したとして、
その確保した先頭のアドレスに
char ZERO = '0';
を入れたいんですけどドウスレバヨロシイノデショウカ?
0290デフォルトの名無しさん
NGNGargv[2][0] = ZERO;
0291289
NGNGアリが�d
コソパイルできたけどcore dump吐キヤガッタ
ヽ(`Д´)ノ ウワァァン!!
ガンバッテミマス
0292デフォルトの名無しさん
NGNGhttp://www.linux.or.jp/JM/html/LDP_man-pages/man2/flock.2.html
ただ、ファイルロックを行わないツールで書き込まれたらどっちみちアウト
0293デフォルトの名無しさん
NGNG解凍ありがとうございます。
私もFlockには目をつけていたのですが何故か使えません。
UNIXではないんですが…
ヘッダーが無いとVCがおっしゃるので。
ショートカットのリンク作るやつでやろうかなとか考えてます。
ありがとうでした。
0294デフォルトの名無しさん
NGNGlinuxのflock()って排他ロックしても書き込まれちゃうの?
>>293
「UNIXではない」から使えないんでしょ。Winなら
http://www.microsoft.com/japan/developer/library/jpwinpf/_win32_lockfileex.htm
これかな。
0295ポチョムキン
NGNG生じたときロボット制御の画面が崩れてしまいます。bash等の場合の
標準エラー出力の解決法はwebで見かけたのですが、gnuplotでは
うまくできませんでした。
gnuplotの標準エラーを出力させないようにするにはどうしたら
よいのでしょうか?
どなたかアドバイスしていただけると助かります。
よろしくお願いします。
0296デフォルトの名無しさん
NGNGpopen("(gnuplot > /dev/tty) >& /dev/null", "w");
じゃダメかい?
0297デフォルトの名無しさん
NGNG0298デフォルトの名無しさん
NGNG#include<stdio.h>
#include<stdlib.h>
int main()
{
char file[64];
char buf[256];
FILE *fp;
if(null==(fp=fopen("test.txt","w")))
{
printf("File Open Error!\n");
exit(1);
}
else
{
buf[0]='1';
while(buf[0] !='0')
{
printf("文字列を入力してくれ_");
gets(buf);
fputs(buf,fp);
fputs("\n",fp);
}
}
fclose(fp);
}
とVC++でコンパイルしたんですがエラーになってできません。
デバッグ情報みてもよく意味が分かりません。
どなたか分かる人いませんか?
0299デフォルトの名無しさん
NGNG298.c
298.c(9) : error C2065: 'null' : 定義されていない識別子です。
298.c(9) : warning C4047: '==' : 間接参照のレベルが 'int ' と 'struct _iobuf *' で
異なっています。
そのまんまだと思うけど…
0300288
NGNG超初心者ですみません・・・
0301デフォルトの名無しさん
NGNG0302298
NGNG0303ポチョムキン
NGNG0304ポチョムキン
NGNGばっちりでした。ありがとうございました。
0305デフォルトの名無しさん
NGNGというのはありませんでしょうか(できればフリーで)
0306デフォルトの名無しさん
NGNGエスケープシーケンスでいいやん
0307デフォルトの名無しさん
NGNGWindows2000のDOSプロンプトでは使えません
0308デフォルトの名無しさん
NGNGつかえるぞよ
0309デフォルトの名無しさん
NGNG何か常駐ソフトが必要なのでは?ansi.sysとか。
0310デフォルトの名無しさん
NGNGwin2kのコマンドプロンプトでは使えない、
と言う話では無かろうな。
0311デフォルトの名無しさん
NGNG0312デフォルトの名無しさん
NGNG代わりに Console API を使う必要あり。
16bit プログラムなら ansi.sys を組み込めば使用可能。
って、数日前にもどっかで書いたような。
0313デフォルトの名無しさん
NGNGいや使えるかどうかしらんけど、
vimとか動いてるからたぶん使えるんだろう。
0314デフォルトの名無しさん
NGNGBCC32の付属ライブラリじゃだめなのか?
エディタ制作中の初心者がいろいろ使っていたぞ。
0315デフォルトの名無しさん
NGNG0316デフォルトの名無しさん
NGNGlinuxのflockはflockをよんだ時に、ほかのプロセスが排他ロックをしていたらロックが解除されるまで待つというだけ。
flockを呼ばずに書き込みを行えば書き換えられてしまう。
ひとつのプログラムからしか書き換えないようなファイルに対しては有効。
0317デフォルトの名無しさん
NGNGEOFをスキップするように書きかえると0xffをEOFと誤診しているような
非常に怪しい挙動を起こすのですが、何かいい方法は無いでしょうか。
0318デフォルトの名無しさん
NGNGきちんとint型でうけとっているか?
0319デフォルトの名無しさん
NGNGcharで受け取っていたのが原因でした。
初歩的なミスに回答して頂いて有難うございました。
0320デフォルトの名無しさん
NGNG>>181
補足すると、EOFはchar型では表せないint型の定数。正しくはint型という
わけではないが、getchar()がint型を返すため、EOFもint型だと考えれば
便利。
0321デフォルトの名無しさん
NGNG●●●●●●●●「オセロさえ納期内に作れない=OO役立たず 」祭り●●●●●●●
/| | |_____ΦΦΦΦΦΦΦΦΦΦΦ||ΦΦΦ
| | | ̄ ̄ ̄ /| ||
| | | / /|TTTTTT TTTTTTTTTT||TTTTT
| /\ | /|/|/|^^^^^^ |三三| ^^^^^^^^^^^||^^^^^^^
| / / |// / /|
| / / |_|/|/|/|/|
| / / |文|/ // /
|/ /. _.| ̄|/|/|/ Λ_Λ
/|\/ / / |/ / (___)
/| / / /ヽ /〔 非OO 〕〕つ
| | ̄| | |ヽ/l `/二二ヽ
| | |/| |__|/ Λ_Λ / /(_)
| |/| |/ ( ´∀`) (_) Λ_Λ
| | |/ // / ^ ̄]゚ (` )
| |/ ゚/ ̄ ̄_ヽ ⊂〔〔 非OO 〕
0322デフォルトの名無しさん
NGNGOO?
0323デフォルトの名無しさん
NGNGObject Orientedかなあ?なんでCスレに?
0324デフォルトの名無しさん
NGNG0325デフォルトの名無しさん
NGNGc="Asadayo"[2];
c=i"Asadayo";
0326デフォルトの名無しさん
NGNG0327デフォルトの名無しさん
NGNGgnum;
gSeachcat();
とかでいいんでしょうか?
0328デフォルトの名無しさん
NGNG0329デフォルトの名無しさん
NGNG0330デフォルトの名無しさん
NGNG0331デフォルトの名無しさん
NGNG0332デフォルトの名無しさん
NGNG本当のところはわからんけど
現在の仕様で未定義とされてる部分を、エラーからの復帰方法とか細かく定めたら、
それにスマートに対処する方法がない環境では複雑になったり遅くなったり、
全く対応できなかったりするからじゃなかろうかと
0333デフォルトの名無しさん
NGNGああなるほど。
様々な環境で使えるようにするためにはそうするしかないわけか。
0334デフォルトの名無しさん
NGNG0335ネターリ
NGNG式が成立しません!
これに手を加えず成立させるにはどうすればいいれすか?
0336デフォルトの名無しさん
NGNG0337デフォルトの名無しさん
NGNG88 - 66 = 11
#else
(void)0
#endif
;
0338デフォルトの名無しさん
NGNGせめて 88 - 66 = 22 とかけよ・・・
0339デフォルトの名無しさん
NGNG88 - 66 = 11 + 11
手は加えてませんよ。
11を加えたんです。
0340デフォルトの名無しさん
NGNG{
A const& operator -( int ) const{ return *this; }
bool operator =( int ) const{ return true; }
};
A() - 88 - 66 = 11
C++ならなんとか・・・なるかな?
0341デフォルトの名無しさん
NGNG88 - 66 = 11
0342デフォルトの名無しさん
NGNG記号定数は英字か_で始まらないといけないんだYO!
0343デフォルトの名無しさん
NGNG0344デフォルトの名無しさん
NGNGCOMMENT(88 - 66 = 11)
0345デフォルトの名無しさん
NGNG素直に /* 88 - 66 = 11 */ じゃだめ?
0346デフォルトの名無しさん
NGNG0347デフォルトの名無しさん
NGNGソウイエバソウダネ
0348デフォルトの名無しさん
NGNGreturnで抜けるのと、
exitで抜けるのでは、
なにか違いがあるんでしょうか?
0349デフォルトの名無しさん
NGNGないよ
0350デフォルトの名無しさん
NGNG違いはない。
http://www.catnet.ne.jp/kouno/c_faq/c11.html#16
0351デフォルトの名無しさん
NGNGちょっとある。
exit()は一応関数コールなので、スタックがぎりぎりだとあぼ〜んする
ことあり。と言ってもほとんどそんな事は皆無だが。
0352デフォルトの名無しさん
NGNGつい最近、同じような質問を見た記憶が。
035310000000
NGNGそのフォルダに入っているファイルの名前をすべて挙げるには
どうすればいいでしょうか?
0354デフォルトの名無しさん
NGNGCの標準関数にはフォルダにアクセスする関数はない。
OS依存ではいくつか方法はあるけど、私には君のOSはわからない
03551000000
NGNGあいさつも無しにお礼です、ありがとう。
答えてくれて。
私はwin98SEだけど基本的にwin全般での方法はありませんか?
NTとか3.2とかはいいんですけど・・
0356デフォルトの名無しさん
NGNGpopen("ls", "r")もしくはpopen("dir", "r")でがんがれ。
0357デフォルトの名無しさん
NGNGまとめてください。、何を詠んだあと何を読めばいいですか?
勉強方法の王道でおねがいします
0358デフォルトの名無しさん
NGNGそんな大仕事をおまえのためにやれと?
0359デフォルトの名無しさん
NGNGまとめを。スレの1に書いといてくれれば。もっと、いいです、、
0360デフォルトの名無しさん
NGNGお勧めの書籍スレがあるから、そこに書いてある本を
かたっぱしから読めばいいかも。
0361100000
NGNGあいさつも無しに、うれしいです。
調べてみたところ私には全くの未知の関数でしたので
勉強してみます、パイプという言葉をCの中で知りませんでしたし。
それでわ。
0362デフォルトの名無しさん
NGNGそういう質問してる時点で、王道から激しく外れてるが。
0363デフォルトの名無しさん
NGNG> すいません・・でも・・有名な。。本の紹介でいいんで。。
スレの1に書いてあることも読めん奴はいくら本を読んでも
身に付かないと思うが...
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/
推薦図書/必読書のためのスレッド PART6
http://pc3.2ch.net/test/read.cgi/tech/1033207156/
0364デフォルトの名無しさん
NGNGだまされてるよ。
0365デフォルトの名無しさん
NGNGだね。パイプじゃなくてバイブだよ!>>361
0366356
NGNGruby坊は去れ
0367デフォルトの名無しさん
NGNGひどいもんだ。見てきてみ。
0368デフォルトの名無しさん
NGNGくやしいか?ああ?
0369デフォルトの名無しさん
NGNG可哀想な367
はやく自殺するなりなんなりしてくれ。
0370Default
NGNGするにはどうすればいいのですか?
0371デフォルトの名無しさん
NGNGまたその質問かよ。
それに環境書けって言われてただろ。
進歩のない奴はだめだ。
0372デフォルトの名無しさん
NGNG別の処理をしながら時々キーボードの入力をチェックする
0373Default
NGNGすみませんでした。
スレ立てるまでも無い・・・スレにも一応書いたのですが。
よろしくおねがいします。
0374Default
NGNGキーボードの入力のチェックってどうやるんですか?
0375デフォルトの名無しさん
NGNGGUI使ってるのか、使ってないのかも書くように。
使ってるのなら、そのライブラリもな。
0376Default
NGNGえーと、GUIを使ってて、Xlibを使ってます。
HPを調べてマウスの使い方は分かったのですが、キーボード
はわかりませんでした。
0377あ
NGNGそっか、わからなかったか。
、、、で?
0378デフォルトの名無しさん
NGNGruby坊氏ね
0379あ
NGNG確かに仕事で今はruby使ってるが。
唐突にそんなこと言われても
ムカツクよりも「
なんだこいつ??」
みたいな感じだな。
0380あ
NGNG0381デフォルトの名無しさん
NGNGXlib キーボード
というキーワードをgoogleにかけたら
http://x68000.startshop.co.jp/~68user/xprogram/xlib-2.html
なんてものがでてきたが?
にしても、x68000とは。
0382デフォルトの名無しさん
NGNGXlibならキーチェックする方法あるだろ。
それ使えばいいじゃん。
0383デフォルトの名無しさん
NGNGあの有名なruby基地外によく似てるがな。
0384デフォルトの名無しさん
NGNGiovfsscanf.cの中に
extern u_long strtoul __P((const char*, char**, int));
extern long strtol __P((const char*, char**, int));
こんな宣言があるんだが、これってコンパイラ通るのか?
0386デフォルトの名無しさん
NGNG__Pって、何かのマクロ?
0387デフォルトの名無しさん
NGNG0388デフォルトの名無しさん
NGNG#define _P(x) (x)
#else
#define _P(x) ()
#endif
とかやってんじゃないの?
0389デフォルトの名無しさん
NGNG●●●●●●●●恒例・「オセロさえ納期内に作れない=OO役立たず 」祭り●●●●●●●
http://pc3.2ch.net/test/read.cgi/tech/1032985885/l50
/| | |_____ΦΦΦΦΦΦΦΦΦΦΦ||ΦΦΦ
| | | ̄ ̄ ̄ /| ||
| | | / /|TTTTTT TTTTTTTTTT||TTTTT
| /\ | /|/|/|^^^^^^ |三三| ^^^^^^^^^^^||^^^^^^^
| / / |// / /|
| / / |_|/|/|/|/|
| / / |文|/ // /
|/ /. _.| ̄|/|/|/ Λ_Λ
/|\/ / / |/ / (___)
/| / / /ヽ /〔 非OO 〕〕つ
| | ̄| | |ヽ/l `/二二ヽ
| | |/| |__|/ Λ_Λ / /(_)
| |/| |/ ( ´∀`) (_) Λ_Λ
| | |/ // / ^ ̄]゚ (` )
0390デフォルトの名無しさん
NGNGための対策かな
0391デフォルトの名無しさん
NGNG/⌒ヽ)
[ 祭 _]
三___|∪
(/~∪
三三
三三
0392デフォルトの名無しさん
NGNG0393デフォルトの名無しさん
NGNGstdio.h
#ifndef __P
#if defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus)
#define __P(args) args
#else
#define __P(args) ()
#endif
#endif /*!__P*/
0394デフォルトの名無しさん
NGNG0395age
NGNG0396デフォルトの名無しさん
NGNGそりゃそうだ。スタートアップスクリプトを書き換えて好きな関数から呼び出そう!
0397デフォルトの名無しさん
NGNGmallocで確保できる容量の制限とか、
デカイ容量確保すると危険とかってあるんでしょうか?
0398デフォルトの名無しさん
NGNGDOSなら、普通mallocで64KB以上のメモリは確保できないし
それ以下でも失敗することがある。
0399デフォルトの名無しさん
NGNG失敗したらNULLが返るだけだからきちんと戻り値をチェックすれば問題ないと思うけど。
0400デフォルトの名無しさん
NGNG0401デフォルトの名無しさん
NGNG0402デフォルトの名無しさん
NGNG0403デフォルトの名無しさん
NGNGプリプロセッサのdefineディレクティブで定義されるもののことをマクロというようだ。
正式な言葉なのかただの慣習なのかはしらんが。
0404401
NGNG0405デフォルトの名無しさん
NGNGmalloc() したときに, 確保できたものとして NULL を返さないような
環境もみたいだけど(自分では試してない), そういう環境では
もっと他の対策を取らないといけないのかも.
0406デフォルトの名無しさん
NGNGハア?
0407デフォルトの名無しさん
NGNGヲイヲイ、そんな危険な仕様のmalloc()なんか使い物にならないぞ。
捨ててしまえ。
0408デフォルトの名無しさん
NGNGLinuxなんかそうだよ。
あまりに巨大なサイズを要求するとNULL返すけど、
小さい場合は触った瞬間にSEGVであぼーん。
よーするに、アドレス空間が使えることは保証するけど、
それに物理的な裏付けがあるという保証はない、と。
0409405
NGNG私なりの現状の理解では overcommit を認めるように実装された mmap(2) とか sbrk(2) で
実装された malloc(3) では, (もし malloc が確保した領域がちゃんと使えることを
保証するような実装になってなければ) malloc 時には NULL を返さないけど, その領域に
アクセスしたところで, 天罰が下る, ということで OK ?
私はこの辺の議論をする知識が欠けているから, みんなでこのスレなりの
議論をしてくれ.
ttp://search.luky.org/fol.2001/msg00337.html
ttp://home.jp.freebsd.org/cgi-bin/thread?mesid=%3c199910040604%2ePAA01232%40bluemoon%2eelec%2eryukoku%2eac%2ejp%3e
0410デフォルトの名無しさん
NGNG冗談だろ?
それでは使えないじゃないか。
0411デフォルトの名無しさん
NGNGhttp://search.luky.org/fol.2001/msg00337.html
http://home.jp.freebsd.org/cgi-bin/thread?mesid=%3c199910040604%2ePAA01232%40bluemoon%2eelec%2eryukoku%2eac%2ejp%3e
0412デフォルトの名無しさん
NGNG> Linux 2.2以降では、/proc/sys/vm/overcommit_memory に1を書き込むと
> overcommit動作をするようになりますが、デフォルトではovercommitしません。
ほう。知らなかった。
まぁ、そんなにでかいメモリ使うアプリ書いたこともないけど。
041388 - 66 = 11
NGNGモニターをひっくり返せアホ!
11 = 99 - 88
0414デフォルトの名無しさん
NGNGエラー:左辺値が必要
0415デフォルトの名無しさん
NGNG11をひっくり返したら、LLになるだろ。
LL=99-88
になるから、全く合法。
(変数宣言はねーねどな。)
0416デフォルトの名無しさん
NGNG( ´Д`)/< センセー、 ; がないので成立しません。 BASICでもやってろ!
_ / / / \____________
\⊂ノ ̄ ̄ ̄ ̄\
||\ \
||\|| ̄ ̄ ̄ ̄ ̄||
|| || ̄ ̄ ̄ ̄ ̄||
0417デフォルトの名無しさん
NGNG手を使わずにモニターひっくり返すのは結構難しいですね。
自分が上下逆に見ればいいだけでは?
どっちにしろコンパイルできないが。
0418デフォルトの名無しさん
NGNG335によれば、
>88 - 66 = 11
>式が成立しません!
である。「式」として成立するかはセミコロンによらない。
たとえば、if( LL = 99 - 88 )の括弧の中も「式」である。
ちなみにセミコロンが要るのは、式文。
>expression-statement:
> expression(opt) ;
0419デフォルトの名無しさん
NGNG0420416
NGNGこの部分が式であっても、その式を含む文を
完成するためにはセミコロンが不可欠になる
(逆さでは無理)という意図で書いたんだが、
なるほど確かに335に「式として成立」と書いてあるんだな。
出所不明なので 413-415 しか読んでなかった。
0421デフォルトの名無しさん
NGNG∧_∧∩ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ´Д`)/< センセー、 ; がないので成立しません。 BASICでもやってろ!
_ / / / \____________
\⊂ノ ̄ ̄ ̄ ̄\
||\ \
||\|| ̄ ̄ ̄ ̄ ̄||
|| || ̄ ̄ ̄ ̄ ̄||
0422デフォルトの名無しさん
NGNG0423デフォルトの名無しさん
NGNGmain()
{
int a,b;
for(a=0;a<10;a++){
for(b=0;b<a;b++){
printf("*\n");
}
printf("\n");
}
ちゃんとできません。おしえてください
0425デフォルトの名無しさん
NGNG0426デフォルトの名無しさん
NGNGAPI=アピ=アップルパイの略。
0427デフォルトの名無しさん
NGNGスレ違い
http://yougo.ascii24.com/gh/04/000481.html
0428デフォルトの名無しさん
NGNG代替法を教えてくらさい。
int i;
scanf("%d",&i);
printf("%d",i);
としたときに i に文字列を入れられると怖いんです。
0429デフォルトの名無しさん
NGNGint i;
char buf[30];
fget(buf,sizeof buf,stdin);
i=atoi(buf);
printf("%d",i);
エラーチェックしたかったらstrtolなりsscanfなりを。
0430429
NGNG0431デフォルトの名無しさん
NGNG0432デフォルトの名無しさん
NGNGたとえば恒例の a=a++; などのやつな。
これらをきちんと動作定義しようという動きは無いのか?
それと、定義しないならしないで なぜWarningなりErrorなりを
コンパイルは吐かないんだ?
納得のいく説明しろ
0433デフォルトの名無しさん
NGNG0434デフォルトの名無しさん
NGNG根拠は?
0435デフォルトの名無しさん
NGNGこれってどういう意味なんですか?
0436デフォルトの名無しさん
NGNG0437デフォルトの名無しさん
NGNG未定義や不定に関しては、プログラムをどう書き直しても解決しないわけで、
Warningを出すとうるさいからじゃない?。
>>433
有名なC FAQを見ればわかるよ
0438デフォルトの名無しさん
NGNGC++スレで聞いたほうがいいのでしょうか?
0439デフォルトの名無しさん
NGNG> a=a++; これは決まった処理するだろ
またこれかよ。いいかげん覚えろ、ヴァカ。
>>432
> それと、定義しないならしないで なぜWarningなりErrorなりを
> コンパイルは吐かないんだ?
厨房は、C なんか使うなってことだ。
0440デフォルトの名無しさん
NGNG(double*) (&a)と読めばわかるかも
0441デフォルトの名無しさん
NGNG*p = a++;
警告の出せる処理系を見てみたいもんだ。
0442デフォルトの名無しさん
NGNGなるほどー。thxです。
0443デフォルトの名無しさん
NGNG未定義や不定の処理を修正すれば解決するだろ。
>>439
>> それと、定義しないならしないで なぜWarningなりErrorなりを
>> コンパイルは吐かないんだ?
> 厨房は、C なんか使うなってことだ。
答えになってないな。脳味噌入ってるか?
0444デフォルトの名無しさん
NGNGこの話題いいかげん飽きた。
未定義でも自分で大丈夫だと思えば使えばいいじゃん。
誰も止めない。勝手にしろ。
0445デフォルトの名無しさん
NGNG自分の使う環境で動作が確認されれば
だろ。
0446デフォルトの名無しさん
NGNG441は読んだか?
0447デフォルトの名無しさん
NGNG0448デフォルトの名無しさん
NGNG0449デフォルトの名無しさん
NGNG0450デフォルトの名無しさん
NGNG自分が大丈夫だと思っていれば、他人が大丈夫じゃないと思っていても
使っていいのか? ずいぶんと勝手な奴だな。協調性が無いんじゃないか?
>>446
全部出せとは言ってないよ。
0451デフォルトの名無しさん
NGNGなにかあるんだろうか…
0452デフォルトの名無しさん
NGNG引継ぎ。
0453デフォルトの名無しさん
NGNG0454デフォルトの名無しさん
NGNGstruct{
unsigned char b1:1;
unsigned int b2:1;
unsigned long b3:1;
}BITS;
とかしたら、メモリイメージってどうなるんでつか?
あと、やっぱりBITS.b3はunsigned long型なんでつか?
よくわかんない。
0455デフォルトの名無しさん
NGNG0456デフォルトの名無しさん
NGNGC言語に限らず言語仕様に文句がないなんて、
良くわかってない初心者か、信者くらいなもんでしょう。
0457デフォルトの名無しさん
NGNG0458デフォルトの名無しさん
NGNG>> 厨房は、C なんか使うなってことだ。
> 答えになってないな。脳味噌入ってるか?
お前が、答えを読み取れないだけだろ ?
0459デフォルトの名無しさん
NGNGっていうのは
改行キーを吸収してくれますか?
0460デフォルトの名無しさん
NGNG0461デフォルトの名無しさん
NGNG32bits マシン(int=long=32)と仮定すると、(□/■は1バイト)
■□□□ char (□はPADDING)
■■■■ int
■■■■ long
16bits マシン(int=16,long=32)と仮定すると、(□/■は1バイト)
■□■■ char, int
■■■■ long
となるだろう。
ビットフィールドは実装依存であり、(○/●は1ビット)
●○○○○○○○ かもしれないし、
○○○○○○○● かもしれない。
0462デフォルトの名無しさん
NGNGお前、文章読めるか? 答えになってないだろ。
答えが読み取れるというのなら言ってみろ。
どうせ、「お前には言ってもわからないよ」とか言い訳するのが関の山だろ。
if( fpBin != NULL ){
fwrite(buf,1,strlen(buf),fpBin);
fclose(fpBin);
}
書きこんだファイルがバイナリモードなのに,テキストファイルを見たら,ちゃんと書かれているのはなぜでしょうか?
普通なら,人間には理解しにくい字がバイナリで書かれているはずなんですが
0464デフォルトの名無しさん
NGNGおまえが答えを読み取れてないだけだろ。
日本語がよめねーの?
アフォにはここにきてほしくねーな。
日本語学校でもいってろ!!
0465デフォルトの名無しさん
NGNGバイナリモートとテキストモードの違いを調べてみれ
0466デフォルトの名無しさん
NGNGおまえが調べろ!
0467デフォルトの名無しさん
NGNGやはり、言い訳するのがやっとか(w
これ以上やっても無駄だから放置するにかぎるな。
0468デフォルトの名無しさん
NGNG0469デフォルトの名無しさん
NGNGやはり日本語が理解できないのか(w
これ以上やっても無駄だから無視するにかぎるな。
0470デフォルトの名無しさん
NGNGmain()
{
int *p,i=10;
p=&i;
printf("%d\n",*p);
return 0;
}
4行目と6行目は*付いてる。5行目に*が付かないのはなぜですか?
0471デフォルトの名無しさん
NGNGp 指し示す先(iのアドレス)
*p 指し示す先の値(iの値)
0472デフォルトの名無しさん
NGNGバイナリモードとテキストモードは改行文字の扱いに違いがあるだけでそ。
というか"\n"が0x0Aなのがバイナリモード
"\n"がUNIXだと0x0A,DOSだと0x0D0x0Aになるのがテキストモードでそ。
0473470
NGNGわかるようなわからんような・・
宣言してないものを使って変な感じがするのですが
0474デフォルトの名無しさん
NGNGint *p;はint型へのポインタの宣言。
p=&i;はpにiのアドレスを入れる。
printfの行の*pはpに入っているもの(iのアドレス)が指すものを参照する。
0475474
NGNG×int *p;はint型へのポインタの宣言。
○int *p;はint型へのポインタpの定義。
0476デフォルトの名無しさん
NGNG0478439
NGNG> >>458
> お前、文章読めるか? 答えになってないだろ。
> 答えが読み取れるというのなら言ってみろ。
元々 C 言語は、高級アセンブラみたいな発想で作られてるから、「コンパイルしたコードがわからん奴は使うな」と言うことだ。
その昔は、int とポインタを相互にがんがん代入し合っても文句一つ言われなかった事ぐらい知ってるか ?
まあ、最近はアセンブラも読めない奴が C/C++ なんかを使うようになったから、いろんな警告を出すようになったけどね。
未定義の場合に警告を出せと言うのはいいけど、>>441 のようにできないケースがある。できるものだけやれと言う思想はわかるけど、できないなら全てやらないという思想もある。
大方の C の処理系製作者は「ウザイ警告出すぐらいなら、プログラマの裁量に任せた方がいいな」と考えて後者を採用してるんだろな。
それが嫌なら、自分で作れよ。コンパイラじゃなくても、lint みたいな奴でもいいんだからさ。
> どうせ、「お前には言ってもわからないよ」とか言い訳するのが関の山だろ。
そんなことは言わんけど、上に書いたことぐらい理解できない厨房は C なんか使わないほうが身のためだよ。
0479デフォルトの名無しさん
NGNGif(hf != INVALID_HANDLE_VALUE){
char buf[256];
DWORD read;
printf("オープン成功\n");
ReadFile(hf,buf,sizeof(buf),&read,NULL);
buf[read]='\0'; //バイナリモードでは,改行コードがないから?
printf("buf=%s",buf);
CloseHandle(hf);
}
buf[read]='\0';は何をしているんでしょうか?
0480デフォルトの名無しさん
NGNGif(hf != INVALID_HANDLE_VALUE){
char buf[256];
DWORD read;
printf("オープン成功\n");
ReadFile(hf,buf,sizeof(buf),&read,NULL);
buf[read]='\0'; //バイナリモードでは,改行コードがないから?
printf("buf=%s",buf);
CloseHandle(hf);
}
buf[read]='\0';は何をしているんでしょうか?
0481デフォルトの名無しさん
NGNGところで
> ReadFile(hf,buf,sizeof(buf),&read,NULL);
の第三引数は sizeof(buf)-1 にしないとまずいですね。
0482デフォルトの名無しさん
NGNGプログラマの裁量に任せるというのならWarningなんてすべて出さなければ良い。
警告がウザイなら、ワーニングレベルを下げればいいだけの話だろ。
だいたい、未定義の動作のコードをプログラマの裁量にあわせてどうなるって言うんだ。
書いた奴の力量がわかる以外なんの意味も無いだろ。
0483デフォルトの名無しさん
NGNG未定義や不定はCの『美徳』
これでよろしいかな?
0484デフォルトの名無しさん
NGNGで、おまえは誰にどうしてほしいわけよ。
ここでわめいてたって何も変わらんぞ。
0485デフォルトの名無しさん
NGNG0486デフォルトの名無しさん
NGNG0487デフォルトの名無しさん
NGNG別にここでどうしてほしいとも思わないよ。何かしてほしいならしかるべきところに言う。
ただ「未定義や不定でWarningやErrorにならない納得できる理由は無い。」という結論にしたいだけだ。
>>483は『美徳』という言葉が引っかかるが、それ以外に理由は無いという点で納得できる。
0488デフォルトの名無しさん
NGNG0489デフォルトの名無しさん
NGNGwarningにしてはいけない仕様は無いだろ。
0490デフォルトの名無しさん
NGNG0491デフォルトの名無しさん
NGNG0492デフォルトの名無しさん
NGNGこのスレでそういう結論が出れば納得かー。
生粋の2ちゃんねらだな。
0493デフォルトの名無しさん
NGNG日系ソフトウェアのサンプルプログラムなのだが・・・
-1するのは,最後の配列の次に代入しないため?
(255に\0を入れるため?)
0494デフォルトの名無しさん
NGNGしかたないだろ。他に納得のいく理由を言えないのだから。
0495デフォルトの名無しさん
NGNG0496デフォルトの名無しさん
NGNG日経系の記事を間に受けちゃダメ(T_T)
>-1するのは,最後の配列の次に代入しないため?
> (255に\0を入れるため?)
ビンゴ。データが256バイト以上あると、readは256になる。
んで buffer[read]=0 とやるとバッファオーバーランだね。
0497デフォルトの名無しさん
NGNG0498デフォルトの名無しさん
NGNG> ただ「未定義や不定でWarningやErrorにならない納得できる理由は無い。」という結論にしたいだけだ。
未定義で警告やエラーになるケースはいくらでもある。(もちろん処理系依存だけど、例として return 文のない関数 (void 型は除くよ) の戻り値とか)
要は、a = a++; なんて言うコードを見つける労力とそれに見合う利益を見比べて、多くの処理系では警告やエラーにしなくていいと思ってるだけだよ。別に規格で決まっているわけじゃないし、嫌なら...
> それが嫌なら、自分で作れよ。コンパイラじゃなくても、lint みたいな奴でもいいんだからさ。
と言うだけのことなんだよ。まあ、こいつは...
> 別にここでどうしてほしいとも思わないよ。何かしてほしいならしかるべきところに言う。
とわめくことしかできない DQN みたいだから、何言っても無駄みたいだけどね。(しかるべきとこってどこだよ、言ってみな。ププッ。)
0499デフォルトの名無しさん
NGNGそれで納得してぐだぐだ言わなくなるのなら快く同意してあげようじゃないか。
0500デフォルトの名無しさん
NGNG≡≡≡( ・ω・)ノ500
0501デフォルトの名無しさん
NGNG未定義で警告にならない例ってのはコンパイラを作っているところの趣味(たまに技術不足?)ってだけだろ。
最初(>>432か?)から、ただの趣味。特に警告にならない理由なんて無いって答えればよかったんだよ。
>>432も馬鹿だけど煽りだけで的確な返答が出来ない奴も馬鹿だね。
親切にありがとん
0503デフォルトの名無しさん
NGNG0504デフォルトの名無しさん
NGNGし〜〜〜っ、それいっちゃダメ。>>501 は、今満足感でいっぱいなんだから。いらんこと言うとまた暴れだすかもしれないしね。
0505デフォルトの名無しさん
NGNGし〜〜〜
煽るだけならだまっとれ。
0506デフォルトの名無しさん
NGNG0507デフォルトの名無しさん
NGNGダメ?
0508デフォルトの名無しさん
NGNGダメ。
char *strcpy(const char *d, char *s)
{
char *s1 = s;
while((*d++ = *s1++) != '\0')
;
return s;
}
とかで警告でまくる。
まずは...
・同一式中で同一変数に対して書き込みが2回以上あるケース
・同一式中で同一変数に対して読み込みと書き込みが1回以上あるケース
・代入文で、同一変数に対して両辺で書き込みを行っているケース
は警告するとかじゃだめかなぁ。
0509デフォルトの名無しさん
NGNG改行コードじゃないよ。0は文字列終端。
0510デフォルトの名無しさん
NGNG0511デフォルトの名無しさん
NGNG0512デフォルトの名無しさん
NGNG0513デフォルトの名無しさん
NGNG0514デフォルトの名無しさん
NGNG0515デフォルトの名無しさん
NGNG0516432=馬鹿
NGNG「コンパイラの仕様」 だとバッチリ定義されてるんだよねー
ってのが言いたかった。 なんてね。
いやマジでコンパイラで弾いてほしいよな。
マジでエラーやワーニングにしない理由が和姦ねーよ
0517デフォルトの名無しさん
NGNG0518デフォルトの名無しさん
NGNG> マジでエラーやワーニングにしない理由が和姦ねーよ
>>498
> 要は、a = a++; なんて言うコードを見つける労力とそれに見合う利益を見比べて、多くの処理系では警告やエラーにしなくていいと思ってるだけだよ。
これでもダメか ?
>>517
デバイス ? コンパイラ依存だろ ?
0519デフォルトの名無しさん
NGNGネットワークサーバなのでビデオメモリなぞ持っていない罠。
コンソールもシリアルコンソールだったりして。
0520デフォルトの名無しさん
NGNGANSI の「未定義」ってのはそういう事です。つか RTFM だ莫迦。
0521デフォルトの名無しさん
NGNG517 は 516 に割り込まれました
0522名無しさん@XEmacs
NGNGa = a++;
こんな文を書く人が実際にいるんですか?
0523デフォルトの名無しさん
NGNG未定義です
0524デフォルトの名無しさん
NGNGダメだ。
if(a=b) に警告出すくせによー
怠慢だ。
0525デフォルトの名無しさん
NGNG0526デフォルトの名無しさん
NGNG0527デフォルトの名無しさん
NGNGif(a=b) の検出はすごく簡単だぞ。
0528デフォルトの名無しさん
NGNGその画像の中から目的の色(オレンジ)を探し出すプログラムを作りたいんですが
よく分からないんです・・・
今までに関数やポインタ、ファイルの入出力くらいしか学んだことが無くて・・・
位置からご教授願えないでしょうか?
よろしくお願いしますm(_ _)m
0529デフォルトの名無しさん
NGNG> if(a=b) の検出はすごく簡単だぞ。
それにいっぱい奴やるいるからな。
>>524 も、気に入らないなら自分で作ればいいんだよ。
0530デフォルトの名無しさん
NGNG+ 激しく意味不明 +
0532デフォルトの名無しさん
NGNG>ちょっと変だな。
ご謙遜を、、
すごく変ですよ。
0533デフォルトの名無しさん
NGNGおまいら激しく面白い
0534デフォルトの名無しさん
NGNGコンパイラに「 LValue じゃない!」って怒られたんだけど・・・
void f(int *a, int *b, int c, int d)
{
int i;
for(i=0;i<10;i++) *((c<d)?a:b)++=1;
}
0535デフォルトの名無しさん
NGNGC++であれば合法
0536デフォルトの名無しさん
NGNG頭大丈夫か ?
int a;
a++ = 1;
とやってんのと一緒だぞ。
0537534
NGNGへ?どして?
0538536
NGNG> へ?どして?
ごめん、頭大丈夫じゃないのは俺だ。* と ++ の結合順序勘違いしてた。
>>534
>>535 が言うように、C だとダメで、C++ だと OK。
0539デフォルトの名無しさん
NGNGじゃだめなの?
0542539
NGNG何でループのなかで比較繰り返しているの???
効率悪くなーい??
0543539
NGNG0544デフォルトの名無しさん
NGNG最適化かければ比較は外でやると思う
0545536
NGNG> for(i=0;i<10;i++) (c<d)?*a++=1;:*b++=1;
> じゃだめなの?
そりゃダメだろ、文法エラーだ。(';' が余分だよ。)
>>540
C は、条件演算子の結果は、左辺値になれない。(GCC とかの、拡張機能でサポートしていた記憶がある。)
だから、
int a, b, c;
a ? b : c = 1;
なんて式は、C ではダメだけど、C++ では合法。
0546534
NGNGじゃあ、こんなのも駄目なの?
(基本的に今回の例と大差が無い様な気がするけど)
void f(int a, int b, int c[])
{
c[ a < b ? 0 : 1 ] = 1;
}
0547デフォルトの名無しさん
NGNGa?b:c=1;ってaが真ならbを返し、偽ならcに1を代入してそれを返すという式にならない?
a?b:(c=1);としないとだめ?
0548デフォルトの名無しさん
NGNG0549548
NGNG0550デフォルトの名無しさん
NGNG-pedantic 付けてみな。
0551デフォルトの名無しさん
NGNG> a?b:c=1;ってaが真ならbを返し、偽ならcに1を代入してそれを返すという式にならない?
ならない。代入より条件演算子の方が優先順位が上。
>>546
物凄く大差がある。>>534は
「代入式の左辺の中で左辺値になれないものを使うこと」が
マズいのではなくて、「左辺値になれないもの( c<d?a:b )に
左辺値を要求する演算子( ++ )を適用していること」 が問題。
*( c ? a++ : b++ ) = ... なら問題なし。
0552デフォルトの名無しさん
NGNG> じゃあ、こんなのも駄目なの?
> void f(int a, int b, int c[])
> {
> c[ a < b ? 0 : 1 ] = 1;
> }
これは、大丈夫。( a < b ? 0 : 1 ) の部分は、左辺値じゃないから。
左辺値なのは、c[...] の部分だからね。
>>547
そう言うこと。
0553デフォルトの名無しさん
NGNG(a?b:c)++; NG
正しい?
0554デフォルトの名無しさん
NGNG?と:の間ならOKなのか。。。
0555デフォルトの名無しさん
NGNGGTKを使えば画像を読み込んで表示することができるんではないでしょか。
0556534
NGNGもしかして今回の例でケチをつけられた所は
++ 演算子を使用している部分なの?
たとえば
*((c<d)?a:b)=1;
だったら問題が無かったのか?
0557デフォルトの名無しさん
NGNG> たとえば
> *((c<d)?a:b)=1;
> だったら問題が無かったのか?
そう言うこと。
0559デフォルトの名無しさん
NGNGえっとGTKをどのように使えばよいでしょうか・・・?
GTKはウィジェットをすこしつかったことがあるだけなんでよく分からないんです(汗;
0560528
NGNG0561デフォルトの名無しさん
NGNG初心者をからかってたのしかったですか?
0562デフォルトの名無しさん
NGNG> 初心者をからかってたのしかったですか?
何を言いたいの ? 単なる煽りか ?
0563557
NGNG初心者は適当にあしらっておけばいーんだよ
0564デフォルトの名無しさん
NGNG2ちゃんねらは性格歪んでるな(藁
0565デフォルトの名無しさん
NGNG話の内容が自分には理解できなくて悔しかったですか?
0566デフォルトの名無しさん
NGNG0567デフォルトの名無しさん
NGNG0568デフォルトの名無しさん
NGNG0569デフォルトの名無しさん
NGNG0570デフォルトの名無しさん
NGNG> 俺は一応ブラだけ着けてます。
パンティーは ?
0571デフォルトの名無しさん
NGNG0572デフォルトの名無しさん
NGNG0573デフォルトの名無しさん
NGNGどなたかご存知ないですか?
0574デフォルトの名無しさん
NGNG0575デフォルトの名無しさん
NGNG0577デフォルトの名無しさん
NGNGなにかいい関数はありませんか?
0578デフォルトの名無しさん
NGNGchar ss[256];
sprintf(ss,"%3d",n);
ss[0]=1;
ss[1]=2;
ss[2]=3;
ss[3]=?;
ssの配列に入っている数字は,あってます?
文字列としては入っているんでしょうか?
int num=ss[0];
などはだめなんでしょうか?
0579デフォルトの名無しさん
NGNG>>575を見て思いつかんのか…
x |= (1L << bit);
0580デフォルトの名無しさん
NGNG何をしたいのかわからん。
まず、
ss[3]には'\0'が入ってる。
次に、
int num=ss[0];
をやっても構わんが、たぶん君の思ってる値とは違うものが入っているだろう。
0581デフォルトの名無しさん
NGNG> ssの配列に入っている数字は,あってます?
合ってない。
あんたの環境がわからないから答えようがないけど、多分...
ss[0] = 49; ss[1] = 50; ss[2] = 51; ss[3] = 0;
になってると思う。
> 文字列としては入っているんでしょうか?
そう言うこと。
> int num=ss[0];
> などはだめなんでしょうか?
何を期待しているのかは知らないけど、num = 1 になることを期待してるならダメ。
0582デフォルトの名無しさん
NGNG>>577 は、ネタだと思うが...。第一、ONN って何だよ ?
0583デフォルトの名無しさん
NGNGぐぐれ、話はそれからだ
0584デフォルトの名無しさん
NGNGnt num=atoi(ss[0)]
もあかんですよね?;
0585デフォルトの名無しさん
NGNG0586デフォルトの名無しさん
NGNG> nt num=atoi(ss[0)]
一行中に、三つ以上間違いがある投稿は、ネタとみなす。
0588デフォルトの名無しさん
NGNG3つ…?
ぷっ、指摘されて気付いた。笑いますた。
0589デフォルトの名無しさん
NGNGリターンの後に動的に確保したメモリを解放するにはどうすれば良いんでしょうか
0590デフォルトの名無しさん
NGNGもあかんですよね?
0591デフォルトの名無しさん
NGNG0592デフォルトの名無しさん
NGNGネタでなければ一回コンパイルしてから、
書き込んだほうがいい。
0593デフォルトの名無しさん
NGNGfor (p = (char *) v, end = (char *) v + nmemb*size; p < end; p += size)
...
こういうループで調べていくのは分かったんですが。。。
0594デフォルトの名無しさん
NGNG0595デフォルトの名無しさん
NGNGメモリを確保して返す関数なら解放用の関数も作れ
0596デフォルトの名無しさん
NGNGbuf = malloc(size);
:
memcpy(buf, p1, size);
memcpy(p1, p2, size);
memcpy(p2, buf, size);
:
free(buf);
て感じじゃないの。swapするときにいちいちmalloc、freeしてたら遅くなるから、
qsort呼ばれたときにbufを確保して使いまわして、終わったときにfreeだろうな。
他に方法あるかな。
0597デフォルトの名無しさん
NGNGこのスレの >>16から読め。
0598589
NGNGconst char *buffer;
BOOL APIENTRY DllMain(HINSTANCE hInstance, DWORD ul_reason_for_call, LPVOID pParam)
{
switch (ul_reason_for_call) {
case DLL_PROCESS_ATTACH:
buffer=malloc(16);
break;
case DLL_PROCESS_DETACH:
free(buffer);
break;
}
return TRUE;
}
__declspec(dllexport) const char *WINAPI res_c(){
strcpy(buffer,"てすと");
return(buffer);
}
0599589
NGNGあと追加質問で、DllMain()の
buffer=malloc(16);
を res_c()で行うのはOKですか?
0600デフォルトの名無しさん
NGNGうむむ。windowsに詳しくないのだが、それ、リエントラントじゃないのでは。
共有ライブラリでリエントラントでないのはまずいんじゃないの。
0601デフォルトの名無しさん
NGNGThreadとか、ライブラリにグローバル変数使う事については知らない。
0602600
NGNGあ、そうなんですか。失礼しました。
ただ、マルチスレッドでは問題が起きそうだね。
res_cを呼んだスレッドがあって、返ってきた物を使う前に
別のスレッドがres_cを呼んじゃって書き換えられるという
ことは十分ありうる。
0603デフォルトの名無しさん
NGNGsizeof(c)
って可能なんですか?
どういう動作をしているんでしょうか?
0604デフォルトの名無しさん
NGNG0605デフォルトの名無しさん
NGNG仮に文字列の書き換えがres_c内だけでしか行われて
いないなら、別スレッドで書き換えられても問題なし。
しかし、それ以前に >>598のやっていることは
あまり意味がないというか、一体何がやりたいんだ?
> buffer=malloc(16);
> を res_c()で行うのはOKですか?
これをやるならわかるけど。
0606デフォルトの名無しさん
NGNGつまり80ね
0607デフォルトの名無しさん
NGNGsizeof(char)*80
と毎回やっていた俺はあほですか?
自動で文字列数(配列数)を調べてくれるって事?
char型=1だからできる技なんですよね?
0609デフォルトの名無しさん
NGNG0610デフォルトの名無しさん
NGNGAnsiStringって型みたいだが、本当にCか?
0611デフォルトの名無しさん
NGNG>char型=1だからできる技なんですよね?
んなこたーない
0612607
NGNG0613デフォルトの名無しさん
NGNGint a[80]; なら sizeof(a) は sizeof(int)*80 になるよ。
> と毎回やっていた俺はあほですか?
80を #define しているなら別にいいんでないかな
たとえば
char c[80]; を
char* c = malloc(80);
に書き換えたときのために。
0614デフォルトの名無しさん
NGNGString?C#か?
0615デフォルトの名無しさん
NGNGC++Builderですか?
AnsiStringに>>を適用すると、改行文字も含めてファイルの中身を
全部読んでしまいますからねえ。
私はchar[]に一度読み込んで、S(buf)などのコンストラクタを呼び出して
いますがスマートじゃないですね・・・・・
0616デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1028553308/
0617デフォルトの名無しさん
NGNGstd::stringなら、getline(strm, str); という形式が使える。
0619607
NGNGえぇ、C++Builderです。
TStringListで読み込むと、一行だけ必要なのに時間がかかると思うし・・・
簡単に言うと、Delphiの
var
F: TextFile;
S: String;
begin
AssignFile(F);
Reset(F);
Readln(F, S);
CloseFile(F);
を、C++でできないかな
0620デフォルトの名無しさん
NGNGdelphi知らんけど。
gets()じゃいかんの?
0621デフォルトの名無しさん
NGNGAnsiStringにはpush_back()がないから、back_inserterも使えんしな。
getlineも使えない。
std::string str;
S = "";
getline(ifs, str); //もしくはホワイトスペースで区切られてもよいなら ifs >> str;
S.printf("%s", str);
とやって、一度std::stringに読み込んだ文字列をAnsiStringにコピーしてはどうか。
0622Default
NGNG57: XLookupString((XKeyEvent *)&event,string,sizeof(string),&key,NULL);
58: if ( string[0] == 'q' ){
59: goto FINISH;
60: }
のようにして文字キーの押されたのは取得できたのですが、文字キー以外のキー
の取得しかたがわかりません。どうやればいいんですか?
矢印キーを取得したいです。
0623デフォルトの名無しさん
NGNGもう一度分かりやすく書きます。
std::ifstream(F, "text.txt");
std::string str;
AnsiString S;
std::getline(F, str);
S.printf("%s", str); // std::stringをAnsiStringにコピーする
F.close();
0624デフォルトの名無しさん
NGNGstd::ifstream(F, "text.txt");
std::string str;
AnsiString S;
std::getline(F, str);
S.printf("%s", str.c_str()); // std::stringをAnsiStringにコピーする
F.close();
"%s"に対してstd::stringを適用した時はoperator*が呼ばれるわけで
すが、これがCスタイルの文字列を返すことは保証されてないわけで、
c_str()メンバ関数を適用すればいいかと。
0625デフォルトの名無しさん
NGNGAnsiStringって知らないんだけど、
AnsiString S(str.c_str());
って出来ないの?
0626デフォルトの名無しさん
NGNGできるようです。
コピーはprintf、初期化にはコンストラクタと使い分ければいいかな。
0627デフォルトの名無しさん
NGNGまともな文字列くらすなら、
operator=(const AnsiString&)/operator=(const char *)くらいは
用意されてると思うのだが・・・
つーか、ここCすれだよな。
0628デフォルトの名無しさん
NGNG(void *(*)(void *))func <-- funcは関数
なんで(void *)funcだけじゃだめなんですか?
0629デフォルトの名無しさん
NGNGvoid*にキャストする式。
(void *(*)(void *))funcは、funcのアドレスを
void*をとり、void*を返す関数ポインタにキャストする式。
型が違う。
0630デフォルトの名無しさん
NGNG関数へのポインタへのキャスト。
0632デフォルトの名無しさん
NGNGがーん、変なのが残ってた。
キャストか。キャストだよな。代入はできないよな…
0633デフォルトの名無しさん
NGNGmallocしなくても出来るだろ。
void memswap(char *p1, char *p2, size_t len)
{
while (len-- > 0) {
char t = *p1;
*p1++ = *p2;
*p2++ = t;
}
}
0634デフォルトの名無しさん
NGNG外出。
0635デフォルトの名無しさん
NGNG遅いコードだなおい・・・
0636デフォルトの名無しさん
NGNGXLookupString 後に key に入っている KeySym を使いましょう。
0638デフォルトの名無しさん
NGNGなんでqsortの要素の交換方法なんてマイナーな話題が二度も同じスレででるんだろう。
0640デフォルトの名無しさん
NGNGネタじゃないんなら>>1のリンク読め
0643デフォルトの名無しさん
NGNGまず
>&numとnumが同じなの?
なんでこんなふうに思っちゃったのかが問題だ
0644D級初心さ
NGNG#include <stdio.h>
#include <conio.h>
int main()
{
int num[]={1,2,3};
printf("%d %d %d %d",num, &num, *(&num), **(&num));
getch();
return 0;
}
ってやったんですけど、結果が
688760 688760 688760 1
ってなりました。どうして、numと&numがおんなしなんですか?
0645デフォルトの名無しさん
NGNG0646デフォルトの名無しさん
NGNGnum は配列そのものを表すが配列の先頭要素のアドレスへの暗黙の変換がある
しかしポインタを%dで受け取るのは止めようぜ
0647デフォルトの名無しさん
NGNG0648デフォルトの名無しさん
NGNG*(num+1)=5;
と、使えますもんね。
0649デフォルトの名無しさん
NGNGhttp://piza.2ch.net/tech/kako/967/967985026.html
の62を見て
0650デフォルトの名無しさん
NGNGこれが初代?
しかしこの痛い1でよくこれだけ長寿のスレができたもんだな・・・
0651デフォルトの名無しさん
NGNGこのスレの「俺」ってそこの1だったんだね。目から鱗が落ちました。
0652デフォルトの名無しさん
NGNG私は、ソースの書き方に ほんの少々のこだわりを持ってCのプログラミング
をしています。でも同僚に言わせると「その書き方は邪道」と言われて
今悩んでいます。みなさんの意見を聞かせてください。
{は、その行の末尾に付ける
if(a==b){
c=d;
e=f;
}
理由 {を単独で1行にすると、1画面で見えるコードの行数が少なく
見にくい。と思う。
一部が異なるだけで、同じ内容が構文が連続するときは、1行中でも
複数の命令可
if(a==1){ printf("NEC\r"); c=sub(1); }
if(a==2){ printf("FUJITSU\r"); c=sub(2); }
if(a==5){ printf("IBM\r"); c=sub(5); }
if(a==6){ printf("DELL\r"); c=sub(6); }
if(a==8){ printf("COMPAQ\r"); c=sub(8); }
if(a==9){ printf("APPLE\r"); c=sub(9); }
理由 COPY&Pasteで複写して、必要な部分のみ変更すれば早く書ける
ぱっと見に、何をしているのかがわかりやすい。
1行には1命令で書くと、リストが長くなり、見にくい、と思う。
どんなもんでしょうか。
0653デフォルトの名無しさん
NGNG{は}とそろえたほうがどこからどこまでが対応するブロックかわかりやすいでしゅ
行末につけるとアンチK&Rにキモがられましゅ
if ( a==1 ) printf( "NEC\r" ), c=sub(1);
とかできるかもしれましぇん
0654デフォルトの名無しさん
NGNG特にクレームつけられたことはないね
> {は、その行の末尾に付ける
センスと好みの問題なのでどうでもいい。
> 一部が異なるだけで、同じ内容が構文が連続するときは、1行中でも
> 複数の命令可
同じような内容が3箇所以上出てくることに疑問を持たないのは
どうかと思う。
0656デフォルトの名無しさん
NGNGはBASIC臭がするからイヤだ。
0657デフォルトの名無しさん
NGNGコーディングスタイルを語るのもいいが、
その前にコードの設計を見直した方がいい。
0658デフォルトの名無しさん
NGNGif (a == b)
{
do something;
}
と
if (a == b) do something;
{
other things;
}
の区別がしにくいので、特に制御構文の場合は
if (a == b) {
do something;
}
にしてる
逆に関数の宣言とか、実行文中に現れないヤツは
void func_hoge(int arg)
{
do something;
}
にしてる
こっちのほうがよっぽど汚い(藁)
0659デフォルトの名無しさん
NGNGfor(〜){
for(〜){
〜〜〜〜
} }
やっぱダメ?
0660デフォルトの名無しさん
NGNG)))))))))))
とかで終えるのを思い出した。
0661デフォルトの名無しさん
NGNGLispじゃないC系言語で
}}}}}
ってのを見た時には憤死するかと思った
0662デフォルトの名無しさん
NGNGやめてほしい(^_^;)
0663デフォルトの名無しさん
NGNGDWORD型、例えば 0x007fffff の7の部分に入れたいのですが
どうすればいいのでしょうか?
例えばrandで3が出たら 0x003fffff にするといった具合です。
できれば0〜15まで整数を発生させて0〜fに置き換えたものを
7以外の部分にも入れられるといいのですが・・・
0664デフォルトの名無しさん
NGNG0665デフォルトの名無しさん
NGNGDWORD v = 0xfffffUL | (r << 20);
printf( "result: %x\n", v);
0666デフォルトの名無しさん
NGNGhttp://www.catnet.ne.jp/kouno/c_faq/c13.html#16
0667デフォルトの名無しさん
NGNGいくつか解がある。DWORDの型がわからんが、
たぶんunsigned longのtypedefだろうと仮定する。
乱数の値はr(0 <= r < 10)とするよ。求める値をvに代入する。
まず無理やりな解から。
char buf[7];
sprintf(buf, "%dfffff", r);
v = strtoul(buf, NULL, 16);
これはやってることがアフォなんでやらないように(w
で、正当な答は
v = ((DWORD)r << 20) | 0xfffff;
他にもあるかな。
>できれば0〜15まで整数を発生させて0〜fに置き換えたものを
>7以外の部分にも入れられるといいのですが・・・
意味がよくわからない。0x00000000〜0x009fffffの乱数を
発生させたいという意味だろうか。だとすると0〜15の乱数を発生させる
やりかたがわかるのならできるんじゃないかな?
0668デフォルトの名無しさん
NGNG桁数分繰り返せば出来る、と言うのが適当なのか?
シフトを1回に一桁づつすればとか
ヒントになるようなならないようなことも書いておく。
0669デフォルトの名無しさん
NGNGc == EOF のあと、もういちど c = fgetc(fp) とやった場合、
c == EOF になることは保証されますか?
0670デフォルトの名無しさん
NGNG0671うんっちっち坊や
NGNGポインタを知らずして、ゲームは今まで作ってきました。
特に問題なかったのですが、今資格のために正しいC言語を
勉強してるのですが、ポインタがいまいちわかりません。
どういうものなのか、どういうときにつかうのか。簡単におしえてください。
0672うんっちっち坊や
NGNGAという数値データがあって
1つはAそのもの。もうひとつ*zは
A+5の値を毎回表示とかってときに使うんですかね?
言葉ヘタクソですけど。
*z=&A+5
A 1,2,3,4,5,6、・・
*z 6、7、8、9、10、11・・ みたいな。
でも
*zを使わないでも
Z=A+5
でも一緒だし、なんか数が変になっちゃう例ってないですか?
そういうときに使うんですよね?
0673デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1030901827/l50
あたりを読め
0674デフォルトの名無しさん
NGNGFILE *fp;
fp = fopen(filename, "r");
とか
void f(int *ap) {
…
}
int a[10];
f(a);
とか
0676デフォルトの名無しさん
NGNGのですが,atoiを使ってるのですが,うまくいきません.
なんか他に方法ありますか?
取り込むデータは
char data;
で定義しています.
0677676
NGNGあと.atoiを使うと,"char"を "const char*"に出来ないとか出ます.
0678デフォルトの名無しさん
NGNG文字列で取り込んでいるの?
0679デフォルトの名無しさん
NGNGchar data;
int idata;
idata = data;
0680デフォルトの名無しさん
NGNG> って?ポインタ入ってないんですが
関数の引数がポインタなんだと思うが。
0684デフォルトの名無しさん
NGNG以下のプログラムの???を埋め、
int型の数値を入れ替えるswap関数を作ってみろ
#include <stdio.h>
void swap( ???, ??? )
{
???
}
int main(void)
{
int a = 10, b = 20;
printf("a = %d, b = %d\n", a, b); /* a = 10, b = 20 */
swap( ???, ??? );
printf("a = %d, b = %d\n", a, b); /* a = 20, b = 10 */
retrun 0;
}
0685デフォルトの名無しさん
NGNGint &b
*a^=*b^=*a^=*b;
&a
&b
0686675
NGNG「配列とポインター」の章にございました。
http://www.catnet.ne.jp/kouno/c_faq/c4.html#8の質問に
; が落ちてました。>厨が何ぬかすか
0687デフォルトの名無しさん
NGNGハズレ
> int &a
> int &b
int *a
int *b
0688デフォルトの名無しさん
NGNG0689676
NGNG1バイト文字です.データが8ビットなんで.
>679
試してみたらうまくいってるみたいです.ありがとうございます.
0690デフォルトの名無しさん
NGNG文字と文字列の違いがわかっちょらんな
0691デフォルトの名無しさん
NGNG違う。
文字と数値をわかっていない。
0692663
NGNGありがとうございます
>>667
例えば 0x7f3c90 は
7f → 音の強さ 00〜ff
3c → 音 3c=ド (3d=ド# 3e=レ 3f=レ# 40=ミ 41=ファ....)
9 → 1001(b) = 音を鳴らす (1000(b) = 音を止める)
0 → チャンネル番号
ということだそうです。(下のページより)
ttp://hp.vector.co.jp/authors/VA007941/program/no2090.html
で、上のデータ 0x7f3c90 は音程が3cなわけですが
音程を3eや40などに変えたい場合、どうすればいいのでしょうか?
(ランダムの話しは忘れてください(汗)
0693デフォルトの名無しさん
NGNGで、出来ない?
0694デフォルトの名無しさん
NGNG(((a) & ~0xff00UL) | (((b) & 0xff) << 8))
x = ONTEI_HENKOU(0x7f3c90, 0x3e);
0695デフォルトの名無しさん
NGNG&の方が適しているし手間かけて済まん。
0696デフォルトの名無しさん
NGNG汎用の関数作って使いまわしたほうがよくないか?
音程以外にも変えたいだろうし。
#define OFFSET_PITCH 8
#define OFFSET_VELOCITY 16
#define OFFSET_NOTE_ONOFF 4
DWORD set_byte(DWORD data, unsigned char value, int offset) {
return (data & ~(0xff << offset)) | (value << offset);
}
DWORD set_nibble(DWORD data, unsigned char value, int offset) {
return (data & ~(0xf << offset)) | (value << offset);
}
DWORD set_pitch(DWORD data, unsigned char pitch) { // 音程を変える
return set_byte(data, pitch, OFFSET_PITCH)
}
DWORD set_velocity(data, unsigned char velocity) { // 強さを変える
return set_byte(data, velocity, OFFSET_VELOCITY);
}
DWORD set_note_on(data) { // 音を鳴らす
return set_nibble(data, 0x9, OFFSET_NOTE_ONOFF)
}
DWORD set_note_off(data) { // 音を止める
return set_nibble(data, 0x8, OFFSET_NOTE_ONOFF)
}
みたいな感じで。チャンネルを指定するやり方は自分で考えてくれ。
行数多すぎだバカ、と文句言われたので詰めるのに苦労した(w
0697デフォルトの名無しさん
NGNG(1)次の4つの記号 ┏ ┓┗ ┛を用いて4角を出力する rect() 関数を作成しましょう. ? 出力例 ┏┓ ? ┗┛
(2)さらに┃を利用して, 4角の縦のサイズを変えられるように rect() 関数を変更しましょう.
Hint. rect(int n) というように引数 n を取って, n の数だけ ┃┃ を出力します.
だれかこの問題を解いてください!
0698デフォルトの名無しさん
NGNG×:Cの質問です!
○:Cの宿題です!
よってスレ違い
宿題手伝いますYO!!
http://pc3.2ch.net/test/read.cgi/tech/1029422194
0699デフォルトの名無しさん
NGNGどういうふうにやればいいと思う? というか君、Cを学ぶ気ある?
あるんなら、ヒントだけにしとくし、全くないのなら、答え書いちゃうけど。
0701デフォルトの名無しさん
NGNG0702デフォルトの名無しさん
NGNG・もっと自分の頭で考えましょう
0703デフォルトの名無しさん
NGNG他のスレにも書き込んでおいて知らなかったはないだろ。
0704デフォルトの名無しさん
NGNG2chにあるまじきレスですな。
0706デフォルトの名無しさん
NGNG0707697
NGNGmain() {
printf("┏┓\n");
printf("┗┛");
}
はこれで表示されることがわかったのですが、(2)がわかりません。
ヒントだけでいいのでお願いします!
0709デフォルトの名無しさん
NGNG0710デフォルトの名無しさん
NGNGrect関数じゃないじゃん
0712デフォルトの名無しさん
NGNGマルチやめれ!
http://pc3.2ch.net/test/read.cgi/tech/1029422194/531
0713697
NGNG悪気はなかったんです。
0714デフォルトの名無しさん
NGNG> ヒントだけでいいのでお願いします!
[重要ヒント]
forを使う。
0715デフォルトの名無しさん
NGNGint main(void){
int i,hoge;scanf("%d",&hoge);printf("┏┓\n");
for(i=0;i<hoge;i++){printf("┃┃\n");}
printf("┗┛\n");return 0;}
/*この変数hogeの数値を変更することによって┃┃の長さは変わる*/
0716デフォルトの名無しさん
NGNGvoid rect(int n) {
printf("┏┓\n");
swich(n) {
case 10:printf("┃┃\n");
case 9:printf("┃┃\n");
case 8:printf("┃┃\n");
case 7:printf("┃┃\n");
case 6:printf("┃┃\n");
case 5:printf("┃┃\n");
case 4:printf("┃┃\n");
case 3:printf("┃┃\n");
case 2:printf("┃┃\n");
case 1:printf("┃┃\n");
}
printf("┗┛\n");
}
0717デフォルトの名無しさん
NGNG0718デフォルトの名無しさん
NGNG0719デフォルトの名無しさん
NGNGやっと俺が教えれる問題だったので。
0720デフォルトの名無しさん
NGNG0721697
NGNG感動しました。
これを応用していろいろ頑張ってみます。
0722デフォルトの名無しさん
NGNGついでにマルチはしないように。
0723697
NGNGOKです
0724デフォルトの名無しさん
NGNG{
int i;
printf( "┏┓\n" );
for( i=0; i<n; i++ ) printf( "┃┃\n" );
printf( "┗┛\n" );
return;
}
0725デフォルトの名無しさん
NGNG0726デフォルトの名無しさん
NGNGprintf("input n ");
scanf("%d",&n);
rect(n);
return 0;
}
0727デフォルトの名無しさん
NGNGgetcher()
0728デフォルトの名無しさん
NGNGif (スペースキーが押されたか) {
押された。
}
OSによって違う
0729デフォルトの名無しさん
NGNG間違い
処理系によって違う
0730デフォルトの名無しさん
NGNG>>370-
0733デフォルトの名無しさん
NGNGn[1]=1 n[2]=2 n[1]+n[2]=3みたいな感じで。。
0734デフォルトの名無しさん
NGNGfor(i=0; i<n; i++)//n個のデータのときはこう
sum+=n[i];
0735733
NGNGありがとうございました
0736デフォルトの名無しさん
NGNGint nn=0;
for(ii=0; ii<i; ii++ ){
nn = n[ii];
}
0737734
NGNGn[],n一緒に使えないじゃん。直しといて。逝って来ます。
0738デフォルトの名無しさん
NGNG>>734から2分遅れの上に間違ってる
> nn = n[ii];
nn += n[ii];
0739デフォルトの名無しさん
NGNG>>733 の「各々の実数を」と言うところは、直さなくていいのか ?
0740_
NGNG和宛ゲームの作成!
仕様:ある任意の数(固定)をプレイヤーは当てます。任意の数字は1〜100
答えられる回数は10回。プレイヤーは答えるたびにあとチャンスはn回
です。との情報を受ける。
外れた場合は入力した数字が任意の数字より大きいか小さいか知らせる。
10回のチャンスがなくなるまでつづく。
以上
0741デフォルトの名無しさん
NGNG課題丸投げするなボケ!
0742デフォルトの名無しさん
NGNGこんな切り出し方するヤシは放置。何様だ?
0743デフォルトの名無しさん
NGNG0744デフォルトの名無しさん
NGNG0745デフォルトの名無しさん
NGNG絶対、解けるじゃん。
0746デフォルトの名無しさん
NGNG確かにそうだな。まあいいよ。ネタは放置。
0747デフォルトの名無しさん
NGNG#include <stdlib.h>
#include <time.h>
main() { int r, input, count = 10; srand( time(NULL) ); r = rand()%100; do{
printf("アト%dカイ\n",count); scanf("%d", &input); if( r == input ) break;
printf("%sイデス\n",input > r ? "オオキ" : "チイサ"); }while( --count );
if( count == 0 ) printf ("ザンネンデシタ\n"); else printf("セイカイデス\n"); return 0;}
0748デフォルトの名無しさん
NGNG七行スレにでも投稿する?
0749デフォルトの名無しさん
NGNG0750デフォルトの名無しさん
NGNG惜しい
0751まーヴぉー
NGNGわかりやすい!?あふぉか!!!
しかも出来たばっかだしw
http://s1.buttobi.net/hiloshi/
0752デフォルトの名無しさん
NGNGmain(){int r,i,c=10;srand(time(NULL));r=rand()%100+1;do{printf("アト%dカイ\n",c);
scanf("%d",&i);if(r==i)return puts("セイカイデス"); printf("%sイデス\n",i>r?"オオキ":
"チイサ");}while(--c); return puts("ザンネンデシタ");}
0753デフォルトの名無しさん
NGNGスレ違い
0754デフォルトの名無しさん
NGNGワラタ。
つーか、イカスじゃねえか。そのサイト。
YOっしゃ。削除依頼だしてこい。
0755デフォルトの名無しさん
NGNG下手な解説サイトより、笑えてイイ。
つづきはあるのか?
0756740
NGNGヴァカどもばかりだな、ここは・・・
0757デフォルトの名無しさん
NGNG0758749
NGNG小数点以下第1位までなら解けるってとこか
0759デフォルトの名無しさん
NGNGよし、じゃぁ、含まれる。
なぜなら、テストで0点取ったことがあるから。
まさにしzうぇんたい。
0760デフォルトの名無しさん
NGNG0762デフォルトの名無しさん
NGNG0が含まれると主張している人たちもいた
電波系というわけでなく・・・
0763デフォルトの名無しさん
NGNG無理数だったらヤだな…
0764デフォルトの名無しさん
NGNG無理数は無理っす
とかいったりして ギャハー
0765デフォルトの名無しさん
NGNG0766デフォルトの名無しさん
NGNGっていう定義じゃないの?
定義だから議論の余地なしだと思っていたのですが…
>>751
>2chに宣伝したっけ予想以上の反響が!
宣伝かYO!
0767デフォルトの名無しさん
NGNGすげー面白かったYO!
この調子で進んでいってほしいYO
とりあえず、ヲチして間違っていると思われるところは
どんどんつっこみを入れていくことにしよう
0768デフォルトの名無しさん
NGNG> 何も言わずに、「cd my documents」と入力しろ
普通「指定されたパスは見つかりません」と表示されるが、
君は本当にコンパイルできたのか小一時間問いつめたい。
「cd "my documents"」
じゃないのか?
0769デフォルトの名無しさん
NGNG本体を更に縮めてみるテスト。関係ないのでsage。
#include<stdio.h>
#include<time.h>
main(){int r,i,c=10;r=time(0)*79%100+1;do{scanf("%d",&i);printf("%sイデス\n",r-i?
"セイカ":i<r?"チイサ":"オオキ");}while(--c);return puts(c?"":"ザンネンデシタ");}
0770デフォルトの名無しさん
NGNG多分マイドキュメントに保存しろと言いながら、自分では他のところに保存しいるんでしょ。
0771デフォルトの名無しさん
NGNGなんでrand使うのやめたんだ?(^_^;)
0772769
NGNG短くしたいから。
0773デフォルトの名無しさん
NGNGあれは時間がclock_t型で表せる最大の数を超えたら間違った値が返ってくるんですか?
0774デフォルトの名無しさん
NGNG表現できる限界を超えても正しい値が返ってくるすげぇ実装方法があったら教えてプリーズ
0775デフォルトの名無しさん
NGNGGENKAI TOPPA
KYOなら出来る
0776773
NGNGよく見たら-1が返るって書いてあった。
以前見たときは書いてなかった気がしたけど、、、、
0777デフォルトの名無しさん
NGNG0778デフォルトの名無しさん
NGNGそもそも論理的にこの文章は矛盾しているかと・・・
0779デフォルトの名無しさん
NGNG0780デフォルトの名無しさん
NGNG0781デフォルトの名無しさん
NGNG0782デフォルトの名無しさん
NGNG0783デフォルトの名無しさん
NGNGこんなところでKYOスレの住人に会えるとは思わなかった・・
0784デフォルトの名無しさん
NGNGこれ位しか思いつかない。
strをcharでnum個だけ埋める。
#define fillstr(str, num, char) {int i;for (i=0;i<num;i++) str[i]=char; str[i]='
\0';}
もっと良い方法があったら教えて。
0785デフォルトの名無しさん
NGNGmemset
0786デフォルトの名無しさん
NGNG親切なやつ教えてやれよ↓
0787デフォルトの名無しさん
NGNGmemset(s, ch, strlen(s));
は?
0788デフォルトの名無しさん
NGNGmemset(str, char, num); str[num] = '\0';
0790デフォルトの名無しさん
NGNG0791デフォルトの名無しさん
NGNGそんなことが必要な時はあまりないけど。
0792デフォルトの名無しさん
NGNGそう?そういうケースは結構あると思うけどな。
どうでもいいが無意味な空行はやめてくれ。
ウケると思ってるのかしらんが、読みにくくてウザイだけだ。
0793デフォルトの名無しさん
NGNGごめんなさいね。
でも最後の行は無駄ですね。「どうでもいいが無意味な空行はやめてくれ。」だけで十分だと思います。
0794デフォルトの名無しさん
NGNGまあいいだろう。
でも最後の行は無駄ですね。謝るなら謝るだけにしろ。この糞が。
0795デフォルトの名無しさん
NGNG0796デフォルトの名無しさん
NGNG0798デフォルトの名無しさん
NGNG少年マガジンで連載中の江戸時代を舞台とした超能力漫画。
刀からカマイタチが巻き起こり、火を噴いたりするのはもちろん
絶対零度以下の冷気や最近はブラックホールも出ました。
彼らはいつもいろいろな限界を突破します。
0799デフォルトの名無しさん
NGNG1、文字の色を変えるにはどうやればよいですか。
2、printf関数のようなものを作りたいのですが、引数が"で囲まれているようなものはどうやるのですか。
0800デフォルトの名無しさん
NGNG1についてですができません。
2についてですが、作れません。
0801デフォルトの名無しさん
NGNGconio.hのgetch関数の内容を教えて下さい。
0802デフォルトの名無しさん
NGNG1
printf("<FONT COLOR=\"#ff0000\">赤です。</FONT>\n");
2
const char *
0803デフォルトの名無しさん
NGNG1文字取得
0804デフォルトの名無しさん
NGNG1についてですが、環境依存ですができます。「エスケープシーケンス」でgoogle
2についてですが、引数が""で囲まれている場合は文字列とみなされアドレスが渡されます。
0805デフォルトの名無しさん
NGNGバカ?
0807デフォルトの名無しさん
NGNGキーを押すとすぐに反応する。
エコーなしに一文字読む。
エコーありはgetche。
だったかな。
0808デフォルトの名無しさん
NGNGお願いです。
次はkbhit関数の内容を教えて下さい。
0809デフォルトの名無しさん
NGNGその次はoutp関数の内容を。
0810デフォルトの名無しさん
NGNGWSAStartup関数の内容、使い方、サンプルソース。
0811デフォルトの名無しさん
NGNG0812デフォルトの名無しさん
NGNG0813デフォルトの名無しさん
NGNG0814デフォルトの名無しさん
NGNG一応、マジレスしとくか
http://msdn.microsoft.com/library/en-us/winsock/winsock/wsastartup_2.asp
0815デフォルトの名無しさん
NGNG手で握ってさしたりすくったりするだけだろ
0816812
NGNG0817デフォルトの名無しさん
NGNGこれを読め、
http://www.sigoto.co.jp/hotel/tablemanners/manners/teblemanners6.htm
082060cm浮き上がるストレート
NGNGキー入力があるまでgetch()の所でプログラムが止まります。
キーが押されるとバッファからキーの番号取り出し、それを戻り値として返します。
取り出したキーはバッファから消えます。
使い方の例を書きます。参考にしてください。
1、終了間際にgetch()を書いて何かボタンを押すと終了するようにする。
void main( void )
{
・・・
printf("何かボタンを押してください。終了します。");
getch();
return;
}
2、ロープレなどで、1を押すと城へ行く、2を押すと町へ行く等と
ユーザーの入力によって分岐させたいとき、
scanf()やgets()の代わりにgetch()を使うとEnterキーを省略できる。
scanf("%c",&key); → key=getch();
if( key == '1' ) 「城へ行く処理」;
if( key == '2' ) 「町へ行く処理」;
3、アクションゲームなどプログラムが止まると困ってしまう場合は、
kbhit()をいっしょに使う。kbhit()はバッファにキーがあるかを調べて
バッファにキーがあると1以外を返し、無いと0を返す。
if( kbhit() != 0 )
{
key = getch() ;
if( key == '+' ) 「ジャンプの処理」;
if( key == '6' ) 「右へ移動する処理」;
}
0821デフォルトの名無しさん
NGNG0823デフォルトの名無しさん
NGNGすっげーいい。とくにアクションの例が。
実験してみるよ。
0824デフォルトの名無しさん
NGNGDOS窓グラフィックはどうなった?
0825デフォルトの名無しさん
NGNGフリーソフトでおすすめのものってありますか?
0826デフォルトの名無しさん
NGNGLSIC試食版
0827デフォルトの名無しさん
NGNG>>2あたりも読めないような奴に勧められるものはない
0828デフォルトの名無しさん
NGNGフリーなPC-UNIX入れれば?
0829デフォルトの名無しさん
NGNGweb板の方が寂しいのでこちらでCGIに関するC言語のサーバー設定を聞いても
いいでしょうか?こちらの方が詳しそうな人が多そうなので…
だめなら消えます。
0830デフォルトの名無しさん
NGNG0831デフォルトの名無しさん
NGNG激しくスレ違いな気がするが、質問ならageて。
0832デフォルトの名無しさん
NGNGwarning C4553: '==' : 演算子にプログラム上の作用がありません。'=' を意図しましたか?
0833829
NGNG思いっきりスレ違いは覚悟しておりますが、多分詳しい人多そうなので
教えて下さい。
IISでCGIを動かしたところperlは動くのですがCは動かないのです。
昨日までは動いていたのですが設定をいじったところ、今日は動かなくなりました。
ローカルでコンパイルしたものを.CGIに変えてあげています。
その際、C言語だと特別な設定が必要なのか教えて下さい。
本当にスレ違いでマルチで申し訳ないのですが、ここしかもう頼るところが
ありません。お願いします。
0834デフォルトの名無しさん
NGNG>昨日までは動いていたのですが
では必ず動くはず。
>設定をいじったところ、今日は動かなくなりました。
その変更を元に戻してください。
これで解決できなかったら、Webプログラム板に逝ってください。
0835デフォルトの名無しさん
NGNG>昨日までは動いていた
昨日は,全ての条件について試したのかな?
動くと思っていても,どこかに落とし穴があるかも
なんてね
0836デフォルトの名無しさん
NGNGthx!>教えてくれた人
0837------------------さん
NGNG例えば /* 関数とポインタをつかった勉強プログラム */
#include <stdio.h >
void z(int *g)
{
if (*g<50)
*g=50;
}
int main (void)
{
int a=10;
int b=20;
int c;
printf("c=?");
scanf ("%d",&c);
z(&c); /* すなわち g=&c */
printf("a=%d\n",a);
printf("b=%d\n",b);
printf("c=%d\n",c);
return (0);
}
0838------------------さん
NGNGで、なにもポインタを使わなくても以下のようにできてしまうような気がするのですが
#include <stdio.h >
void z(int c)
{
if (c<50)
c=50;
}
int main (void)
{
int a=10;
int b=20;
int c;
printf("c=?");
scanf ("%d",&c);
z(c);
printf("a=%d\n",a);
printf("b=%d\n",b);
printf("c=%d\n",c);
return (0);
}
0839デフォルトの名無しさん
NGNG0840nanashi
NGNG2番めに小さい値および3番目に小さい値を印字するプログラムを作れ。ただし、
データがつきたことをあらわすために、0または負の数を入力することにする。
このアルゴリズムのを書いてください。流れ図でも箇条書きでもよいです。
0841------------------さん
NGNGポインタつかわないと
void z(int c)のcと下のcは別物あつかいみたいになってしまう??
0842デフォルトの名無しさん
NGNGただし丸投げする前にすこしは自分で考えろ。
0843nanashi
NGNG0844------------------さん
NGNGあー自分でわかりました。
0845デフォルトの名無しさん
NGNG0846デフォルトの名無しさん
NGNG(・∀・)?
0847デフォルトの名無しさん
NGNGくすっ。コボラーしねよ。
0848デフォルトの名無しさん
NGNG0849デフォルトの名無しさん
NGNGコボルする奴。
0850デフォルトの名無しさん
NGNGlimits.hを調べるべし
0851デフォルトの名無しさん
NGNG最大値、2番目に大きい数、3番目に大きい数を初期化する
カウンタを初期化する
1. 0か負数が入力されるまで繰り返し
1.1.入力値が1番目に小さい数かどうか調べ、
1番目に小さい数未満の場合、1番目に小さい数と入力値を交換する。
1.2.入力値が2番目に小さい数かどうか調べ、
2番目に小さい数未満の場合、2番目に小さい数と入力値を交換する。
1.3.入力値が3番目に小さい数かどうか調べ、
3番目に小さい数未満の場合、3番目に小さい数と入力値を交換する。
1.4.カウンタをカウントUPする
2.データの個数と最小値、2番めに小さい値および3番目に小さい値を印字する
※1.1.〜1.3.は処理が非常によく似ているので関数にするのが望ましい
0852デフォルトの名無しさん
NGNG交換した後、ずらす処理が必要では?
0853デフォルトの名無しさん
NGNG1番目に数値が入るとき、入れる前に、
2番目の値を3番目に、1番目の値を2番目に入れたりせなあかんよ。
0854デフォルトの名無しさん
NGNGいくら読んでも腑に落ちなくて、困り果ててのカキコです。
以下のプログラムは123と表示するだけのものなのですが、説明文に
よるとmain()がfunc2()を呼び出し、次にfunc2()がfunc1()を呼び出す
となっています。問題はfunc2()がfunc1()を呼び出すというところです。
どうしてfunc2()がfunc1()を呼び出してくれるのですか?
たぶんすごく初歩的なことなのでしょうけれど理解できません。
これは単にそういう約束だと思えばいいのでしょうか。
教えてください。
#include <stdio.h>
void func1(void); /*プロトタイプ宣言*/
void func2(void);
int main(void) /*プログラムの開始位置*/
{ func2(); printf("3 ");
return 0; }
void func2(void)
{ func1(); printf("2 "); }
void func1(void)
{printf("1 ");}
0855デフォルトの名無しさん
NGNG...
> void func2(void)
>{ func1(); printf("2 "); }
~~~~~~~
func1()を呼び出しせって書いてあるやん。
0856デフォルトの名無しさん
NGNGfunc2()関数の中にfunc1()の呼び出しがあるから。
void func2(void)
{
func1(); ←ここ
printf("2 ");
}
0857デフォルトの名無しさん
NGNGmainがfunc2を呼び出してるのは理解できて
func2がfunc1を呼ぶ出すのは理解できないのか?
・・・・不思議だ・・・
0858デフォルトの名無しさん
NGNGおかげさまで、だいぶ分りました。なんていうか数字の順番で物事を考える
癖が抜けきらないというか・・・・・。一番の次は二番だろという
ような。
つまりmainは直後のfunc2()を呼び出し、その下のvoid func2(void)
に行きvoid func2(void) はfunc1();で1番下のfunc1();に
流れて最後に1まで行って表示して、またfunc2()戻って今度は2を
表示して、それでmainが最後に3を表示するということで、いいんですか。
0859デフォルトの名無しさん
NGNG合ってます。
0860デフォルトの名無しさん
NGNG定義順と呼び出し順に相関関係はないよ
0861デフォルトの名無しさん
NGNGvoid mona(void); /*プロトタイプ宣言*/
void giko(void);
int main(void) /*プログラムの開始位置*/
{ giko(); printf("2ちゃんねる");
return 0; }
void giko(void)
{ mona(); printf("ギコ "); }
void mona(void)
{printf("モナー ");}
なら問題なく理解できたと言うことなのかなぁ。
0862854
NGNGそのようですね。さっき試したら問題なく表示されました。
まだプログラムの流れをすんなり掴めていないみたいなので、
もっとたくさん練習してそういうことが分るようにがんばります。
0863851
NGNG頭の悪いお前らは、交換してしまえばずらす必要がないことが
理解できないようだな。じゃあこのソースを見ても無駄か(w
#include <stdio.h>
#include <limits.h>
static void swap(int *n, int *m);
int main(void)
{
int n, min1, min2, min3;
int cnt = 0;
min1 = min2 = min3 = INT_MAX;
while(scanf(" %d", &n) == 1 && n > 0) {
if(n < min1) swap(&n, &min1);
if(n < min2) swap(&n, &min2);
if(n < min3) swap(&n, &min3);
cnt++;
}
printf("cnt = %d, min1 = %d, min2 = %d, min3 = %d\n",
cnt, min1, min2, min3);
return 0;
}
static void swap(int *n, int *m)
{
int tmp;
tmp = *n; *n = *m; *m = tmp;
}
0864デフォルトの名無しさん
NGNGtypedef struct fooA {
int tmp ;
fooB *whole ;
} fooA ;
typedef fooB {
fooA instance1 ;
fooA instance2 ;
} fooB ;
このような場合、どのように宣言するとコンパイルが通るのでしょうか。
0865デフォルトの名無しさん
NGNGtypedef struct fooA {
int tmp;
fooB* whole;
} fooA ;
typedef struct fooB {
fooA instance1;
fooA instance2;
} fooB;
0866デフォルトの名無しさん
NGNGint tmp ;
struct fooB *whole ;
} ;
struct fooB {
struct fooA instance1 ;
struct fooA instance2 ;
} ;
0868デフォルトの名無しさん
NGNG0869デフォルトの名無しさん
NGNG…アルゴリズム変わってないか?
0870デフォルトの名無しさん
NGNGどうせWindowsだろうからコレでも使っとけ
ttp://www.mars.dti.ne.jp/~suzunari/suz/suzsoft/regini_readme.htm
0871デフォルトの名無しさん
NGNG誰か教えてくれませんか?
0872デフォルトの名無しさん
NGNG0873デフォルトの名無しさん
NGNG言葉の意味はそれぞれどんな意味があるんですか。
0875デフォルトの名無しさん
NGNGargument_value
0876デフォルトの名無しさん
NGNG0877デフォルトの名無しさん
NGNG0878デフォルトの名無しさん
NGNG0879デフォルトの名無しさん
NGNGmain()を最初に処理する
0880デフォルトの名無しさん
NGNG0881デフォルトの名無しさん
NGNGギコBASICを参考にしろ
0882875
NGNG0883デフォルトの名無しさん
NGNG0884デフォルトの名無しさん
NGNG0885デフォルトの名無しさん
NGNG0886デフォルトの名無しさん
NGNG0887デフォルトの名無しさん
NGNGこっちのスレで聞くがよいかと。
『コンパイラ・スクリプトエンジン』 相談室 2
http://pc3.2ch.net/test/read.cgi/tech/1021136715/
0888デフォルトの名無しさん
NGNGってなに
0889デフォルトの名無しさん
NGNG> std::
さぁ?Cにはそんなものないよ
0890デフォルトの名無しさん
NGNGC++だけならまだいいです。どうも
0891デフォルトの名無しさん
NGNGずらしてるじゃん
0892デフォルトの名無しさん
NGNGつか、リングバッファ使えばいいのでは?
0893892
NGNG0894デフォルトの名無しさん
NGNG{
int m,n;
n=3;
m=n++
printf("%d-%d",n,m);
return 0;
}
が、4-3となる理由がわからん。だってn=3っていってるのになぜに4って言うの?
俺ってバカ?
租借して租借して説明してくれる人。おながいします。
0895デフォルトの名無しさん
NGNGでnがインクリメントされてる
0896デフォルトの名無しさん
NGNG> 4-3となる理由がわからん。
俺は m=n++ の最後にセミコロンがないのにコンパイルできる理由がわからん。
0897デフォルトの名無しさん
NGNG++n;
上記はどちらも n に1を足しなさいという意味
m=n++;
まず n の値を m に代入してから n に1を足すという
意味
m=++n;
まず n に1を足してから、その値を m に代入しなさい
という意味
0898デフォルトの名無しさん
NGNGでもなんでn自体の値が変わるのかがわかりません。
だってnは3っていったじゃん。
;忘れました。ごめんなさい。ごめんなさい。ごめんなさい。
0899デフォルトの名無しさん
NGNG>>895は読んだ?
0900デフォルトの名無しさん
NGNGまずプログラムの基本ができてない気がする。
数学では n=3 と書いたら紛れも無く n=3 だが、プログラムでは
n の値は刻一刻と変化すると考えてください。
n = 3;
m = n + 5;
n = m;
printf("n = %d",n);
こう書いたら、上から順番に解釈されていって n = 8 と表示される。
0901デフォルトの名無しさん
NGNGありがとう。ございます。
とってもありがたい説明です。
なんだかやる気が出てきました。
ほかの皆さんもありがとう。ちゅっ
0902デフォルトの名無しさん
NGNG0903デフォルトの名無しさん
NGNGm=n++;
↓
m=n;
n++;
n=++n;
↓
m=n+1;
0904デフォルトの名無しさん
NGNGおい、間違えてるぞ
0905デフォルトの名無しさん
NGNG> n=++n;
?? また、未定...。
0906デフォルトの名無しさん
NGNGなんか違うな
0907デフォルトの名無しさん
NGNGm=++n;
↓
++n;
m=n;
だろが
0908デフォルトの名無しさん
NGNG0909デフォルトの名無しさん
NGNG0910デフォルトの名無しさん
NGNG次スレの副題に付けるか?
C言語なら俺に聞け「また未定義か」 <1>
0911デフォルトの名無しさん
NGNG0912デフォルトの名無しさん
NGNGおれが書いてやる
FILE* fp = fopen("システムファイル", "w");
fputs("ぐちゃぐちゃ", fp);
fclose(fp);
どうよ?
0913デフォルトの名無しさん
NGNG君の将来よりはまし
0914デフォルトの名無しさん
NGNGありがとうございます!
0915912
NGNG0916デフォルトの名無しさん
NGNG0917デフォルトの名無しさん
NGNG0918デフォルトの名無しさん
NGNGもちろんプログラム言語の話だよ。
0919デフォルトの名無しさん
NGNG0920デフォルトの名無しさん
NGNGC言語を習い始めて1時間経った人よりお馬鹿です。(合掌)
0921デフォルトの名無しさん
NGNG次にイヤンB
ウハウハのC
最後はムフフDで合掌。
0922デフォルトの名無しさん
NGNGスタックをモデルにしたプログラム作ってけろ ^^
0923デフォルトの名無しさん
NGNGちょっとづつな。
int
0924名無しさん@XEmacs
NGNG0925デフォルトの名無しさん
NGNG0926デフォルトの名無しさん
NGNGはじめてのC
0927デフォルトの名無しさん
NGNG54*12/+
0928デフォルトの名無しさん
NGNGAda > Basic > C > Delphi ??
波瀾万丈の言語歴だね
0929デフォルトの名無しさん
NGNGchar mona[10];
char giko;
int ret;
ret = fread ( &giko,sizeof(giko),1,fp );
printf ("%d\n",ret );
としたときretに0しか入りません。
引数でファイル渡していて、そのファイルには確実に
数バイト書き込まれているはずなのに"0"しか返ってきません。
freadって読み込んだバイト数を戻り値として返すんですよね?
0930デフォルトの名無しさん
NGNGfreadが返すのは読み込んだ要素数だ。
0931デフォルトの名無しさん
NGNGその部分だけを見ると間違ってないみたい。
あとはfopenとか、その後の処理がどうなっているかだね。
0932デフォルトの名無しさん
NGNG0933デフォルトの名無しさん
NGNGchar *str="abcdefghi";
int val;
zonu=(char*)malloc(func()+1);
strncpy(zonu,str,func());
便宜上func()は3を返すとします。つまり
zonu=(char*)malloc(4);
strncpy(zonu,str,3);
このあとstrncpyだとヌルが
自動付加されないんですが
どうすればヌルを付けれますか?
0934デフォルトの名無しさん
NGNGcallocで0で初期化しといたら?
0935デフォルトの名無しさん
NGNGうまく逝きました。サンクスレス
0936デフォルトの名無しさん
NGNG0937デフォルトの名無しさん
NGNGstrncpyってsourceの文字列がdestinationの
バッファサイズ未満の場合, 残り全部を\0で埋めるんだよね
なぜなんでしょう?
0938デフォルトの名無しさん
NGNG・C FAQ 日本語訳
に書いてるよ。
0939デフォルトの名無しさん
NGNGサンクス
疑問なのはこちらです
>>strncpy()の関連する奇妙なところは、
>>指定された長さになるまで\0を埋めることである
strcpyみたいに1個だけ\0を埋めるだけじゃ駄目なのかなぁ?
0940デフォルトの名無しさん
NGNGどのような書籍がお奨めでしょうか
TCP/IPプログラミング
などいろいろな本があるみたいですが
いろいろあるのでうかつに買えません
教えてください
0941デフォルトの名無しさん
NGNG(1)メモリ上のデータの先頭アドレスを「ポインタ」と呼ぶのですか?
倉薫の本を読むと、書籍の前半では、ある変数の(先頭)アドレスを記憶させる変数が「ポインタ」と説明が
してあるのに、文字列処理関数群の説明当たりでは、コード中に書き込んであったり、gets()で取得した文字列の
先頭アドレスが「ポインタ」みたいな説明になっています。とにかくデータの先頭アドレスを「ポインタ」というので
すか?
(2)gets()などで文字列を習得すると、メモリの特定領域に記憶されるわけで、それをプログラムで利用
するときには先頭アドレスが必要だと言うことは分かります。しかし、ソースコード内に「文字列リテラル」みたいな
形で文字列が書き込まれているとき、その先頭アドレスの取得が必要なのですか?
そもそも、コンパイル後のリテラルの扱いはどうなっているのですか?一般のコードの中に埋め込まれているのですか?
0942デフォルトの名無しさん
NGNGアドレスを入れる変数がポインタ型
関数にポインタ「型変数」を渡すと書いてあってもおかしくないのでは
0943デフォルトの名無しさん
NGNGCPUがどんな風に働いてるのかを勉強したらすぐわかると思うわれ(レジストリな)
ポインタって言葉は、「アドレスを渡すとか、アドレスを扱う」ってニュアンスだとわかりやすいんじゃね?
ちなみに、gets()関数の引数には、ポインタを返すって決まりだったと思う
文字列関係のポインタは、基本的に先頭アドレスを渡す。
おそらく図柄を見てイメージができてるとわかると思うんだがなー
0944デフォルトの名無しさん
NGNG文字列リテラルは別のところに集められるのが普通。
コンパイル後のバイナリをバイナリエディタなどで見るとわかると思う。
(アセンブラわかるのならアセンブラコード見てもいいと思うけど)
プログラム実行時には実行ファイルから文字列リテラルをメモリ内に読み
込んでその先頭アドレスを使用する。
0945デフォルトの名無しさん
NGNGレジストリ?
0946944
NGNG0947デフォルトの名無しさん
NGNGfunction(文字列のポインタ、文字列のポインタ)
↓
function(str,"なんなのこれ")
みたいな説明になってるんだけど、変数strの識別子が先頭アドレスを表すことは分かるけど、
”文字列”を直接関数に引数で渡すと、ポインタを渡したってことになるわけ?
0948デフォルトの名無しさん
NGNGそうなる。
0949943
NGNGすまん・・・レジスタな
0950デフォルトの名無しさん
NGNG「ポインタ」「ポインタ変数」が別扱いのものと同義語のものがある。
0951デフォルトの名無しさん
NGNGshort *arr_pt;
short i,j,num;
arr_pt = array;
for(i = 0; i < 4; i ++)
{
num = arr_pt[i];
printf("%d\n",num);
}
出力は 0123。
ポインターは銭湯アドレスつっても、
どこでもさせるようです。
char *string = "AHO";
文字列リテラルはテキストセグメントに確保さるようですが、
以後は別段stringをつかってください。
0952デフォルトの名無しさん
NGNGダブルコーテーションで囲まれた"文字列定数"←は
つまりコンパイルの時点で(強引な表現をすれば)exeに埋め込まれるわけで
関数に文字列定数を渡すようなコーディングをした場合は
その文字列定数が、文字列定数が埋め込まれた場所を指すconst charポインタに
置き換えられていると思えば良いのではないかな
0953デフォルトの名無しさん
NGNGどうでもいいけど、どうしshort?
0954デフォルトの名無しさん
NGNG951の書き込みは全体的に良く分から
0955デフォルトの名無しさん
NGNG初耳・・・どんな意味で?
0956951
NGNG引っ張り出した本に書いてありますた。
--------------------
スタックセグメント // ローカル変数とか
↓
↑
ここから--------------
ヒープ // mallocにより動的確保
BBS // グローバル変数(初期値なし0)
データ // グローバル変数(初期値あり)
-----------------ここまで、データセグメント
テキストセグメント // プログラムのコード部分が
// おさめられている読み出し専用領域
てなふーに割り当てられるっちゅ−よーなことらしいです。
シランでもいいと思いますた。
0957デフォルトの名無しさん
NGNGそれは個別の実装の話だから一般論として語るもんじゃないよ。
0958デフォルトの名無しさん
NGNGわすれてた。
0959デフォルトの名無しさん
NGNGシランでもいいかどうかは時と場合によるが。
ついでに言うと、BSSだと思うが。BBSじゃなくて。
0960デフォルトの名無しさん
NGNGうぅ、
言われてみればLinux固有だと気がつきました。
あほなこと語ってしまいましたすみません。
0961デフォルトの名無しさん
NGNG次スレよろしこ
0962デフォルトの名無しさん
NGNGarr_ptはarrayの先頭のアドレスを受け取っただけ。
arrayを宣言したときにその後ろに連続してデータが入るので、
arr_pt[i]で辿る事が出来る。
0963962追加
NGNG0964デフォルトの名無しさん
NGNG0965デフォルトの名無しさん
NGNGそうですよね。
ぽいんたーっていうと、ふつーそれしか思い当たらないので
>>941さんが銭湯アドレスって言葉にこだわって混乱してるのかと思って
ぽいんたーは銭湯アドレスを取得したら、
メモリー領域にアクセスするのに使えると思えばわかりやすいかと思ったら
なおさらわかりずらかったです。
それよりも、>951で不可解なのは、
変数 j の使い道だと思います。
0966デフォルトの名無しさん
NGNGs/租借/咀嚼/g
:)
0967デフォルトの名無しさん
NGNG入力ではselectを使いたいんだけど、出力はfprintfを使いたい。
つまり、このままではファイルポインタとファイルディスクリプタが
同居してしまうのですが、こういうばあいの
どこまでの操作なら安全でどこからの操作が危険か
というガイドラインはありますか?
そもそもFILE*使うなよ、というのはありますが まあそれは置いといて。
0968デフォルトの名無しさん
NGNGgetchar ();
printf ( "%s",str );
}
fpで示すファイルを一行づつ読みこんで
Enter押すまで止めておくプログラムです。
例えばファイルの中身が
123
4567
89
10
というもだとしてこのプログラムを実行すると
123
4567
1行スペースが空いてしまいます。
fgetsが復改文字も読みこむのが原因ですよね?
スペースの空かないプログラムを作りたいのですが・・・
strlenで長さを測って、最後尾の"\n"を取ればいいと思うのですが
各行で長さがちがうので困っております。
ご教授おながいします!
0969デフォルトの名無しさん
NGNGファイルポインタから対応するディスクリプタ取り出せるよ。それ使えばOK
0970デフォルトの名無しさん
NGNGその方法を教えてください。
逆はfdopenでできますけど。
0971970
NGNG0973デフォルトの名無しさん
NGNG> fgetsが復改文字も読みこむのが原因ですよね?
いや、復改文字がエコーバックされるのが原因
でも、改行が取りたかったら
str[strlen(str) -1] = '\0';
とかしろ
0974デフォルトの名無しさん
NGNGありがとうございます!
・・・・やっぱりFILE *からFDを得る関数があったんだ・・・・
0975デフォルトの名無しさん
NGNG新スレたてました。
0976デフォルトの名無しさん
NGNG0978デフォルトの名無しさん
NGNG0979デフォルトの名無しさん
NGNG0980デフォルトの名無しさん
NGNG0981デフォルトの名無しさん
NGNG0982デフォルトの名無しさん
NGNG0983デフォルトの名無しさん
NGNG0984デフォルトの名無しさん
NGNG0985デフォルトの名無しさん
NGNG// 終わらせるな!ヴォケ
0986デフォルトの名無しさん
NGNG// エラー出すなヴォケ
0987デフォルトの名無しさん
NGNG0988デフォルトの名無しさん
NGNG{
0989デフォルトの名無しさん
NGNG0990デフォルトの名無しさん
NGNG//ループお椀ね円だよ!
0991デフォルトの名無しさん
NGNG0992デフォルトの名無しさん
NGNG0993デフォルトの名無しさん
NGNG>>987で終わってるじゃ名井
0994デフォルトの名無しさん
NGNG0995デフォルトの名無しさん
NGNG0996デフォルトの名無しさん
NGNG0997デフォルトの名無しさん
NGNG0998デフォルトの名無しさん
NGNG0999デフォルトの名無しさん
NGNG1000デフォルトの名無しさん
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。