C言語のことは漏れらに聞け!!<サンキュー>
■ このスレッドは過去ログ倉庫に格納されています
0001前スレ949
NGNG・C FAQ 日本語訳
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
・comp.lang.c FAQ(英語の原文)
http://www.eskimo.com/~scs/C-faq/top.html
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/
推薦図書/必読書のためのスレッド PART6
http://pc3.2ch.net/test/read.cgi/tech/1033207156/
・前スレ <38>
http://pc3.2ch.net/test/read.cgi/tech/1035729526/
コンパイラ、過去ログなどのリンクは>>2-5 あたり
0002デフォルトの名無しさん
NGNG0003前スレ949
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
さらにコピペ
0004デフォルトの名無しさん
NGNG0005前スレ949
NGNG0006前スレ955
NGNG0007デフォルトの名無しさん
NGNGああ・・
0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNGいや、ダメすぎ。
0010955
NGNG宣伝スマソ
0011デフォルトの名無しさん
NGNG0012デフォルトの名無しさん
NGNG無駄の多い処理ですな。
0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNG適当なソースコード探してきて比較して見な。全然違う。
0016デフォルトの名無しさん
NGNG鬱だ・・・
0017デフォルトの名無しさん
NGNG今どこにいるんだと小一時間・・・
0018デフォルトの名無しさん
NGNG0019デフォルトの名無しさん
NGNGa^bはビットごとのXORですが。
べき乗(だっけ?)ならpow()で。
0020デフォルトの名無しさん
NGNGpow(a,b);
でいいんじゃなかったっけ?
違かったらスマソ。
0021デフォルトの名無しさん
NGNGchar *sp;
sp = s;
printf("s = %d\n", sizeof(s));
printf("sp = %d\n", sizeof(sp));
これが同じにならないのは何故ですか?
0022デフォルトの名無しさん
NGNG何故って…型が違うだろ?
0023デフォルトの名無しさん
NGNG0024デフォルトの名無しさん
NGNG下はポインタのサイズ(きっと4バイトだろ?)
上は配列のサイズ(512バイト)
0025デフォルトの名無しさん
NGNG何もしないのも多いと思いますし、必要ないともおもえるんですが...
0026デフォルトの名無しさん
NGNG0028デフォルトの名無しさん
NGNGできない。
だから一部の標準関数はサイズを引数として渡す。
0030デフォルトの名無しさん
NGNGお願いいたします。
0031デフォルトの名無しさん
NGNG夕方あたりにちゃんと書いたのに無視なんですか?
悲しいです。
0032デフォルトの名無しさん
NGNG本に載っていないのかな・・・
#include <stdio.h>
int main()
{
int (*myputs)(const char *);
myputs=puts;
myputs("putsと同じように使える。");
return 0;
}
003332
NGNG実際はqsortライブラリ関数なんかでうまく使われているよ
0034デフォルトの名無しさん
NGNGそれが分かってれば、前スレの終わりには関数へのポインタを使ったのがいくつかあったと思うが。
0035デフォルトの名無しさん
NGNG疑問なんだが、なぜ4バイトだと思う??
2バイトじゃないのか?
#include<stdio.h>
main()
{
int* a;
long* b;
char* c;
double* d;
puts("int* a");
puts("long* b");
puts("char* c");
puts("double* d");
printf("\n");
printf("sizeof a...%d\n",sizeof a);
printf("sizeof b...%d\n",sizeof b);
printf("sizeof c...%d\n",sizeof c);
printf("sizeof d...%d",sizeof d);
}ちなみに漏れのポインタ変数の確保するサイズは2バイト。
0036デフォルトの名無しさん
NGNGMS-DOSとか使ってる?
0037デフォルトの名無しさん
NGNG0038デフォルトの名無しさん
NGNGOSはWindowzeだけど。
0039デフォルトの名無しさん
NGNGどういうことですか?
詳しく聞きたいです。
0040デフォルトの名無しさん
NGNG「きっと」4バイト、と書いてある。
無論ポインタのサイズなどは処理系によって違う。
今ポピュラーな環境だとポインタサイズは大抵4バイトといっても
強ち間違いじゃないと思う。
ポインタサイズが2バイトの処理系というと、MS-DOSのsmall modelやら、
com (tiny) modelなんだろう。処理系で言うとLSI-C 86あたりか。
LSI-C 86の試食版でもfarポインタは扱えたと思うんで、
ポインタをfar修飾すればサイズは4バイトになる。
重ねて言うが、処理系によってこの辺は違う。
0041デフォルトの名無しさん
NGNGCPUがどんな感じにメモリを管理しているかの問題。
0042デフォルトの名無しさん
NGNG>>41
ありがとうございました。
>>40
かなりの知識の持ち主ですね。
前橋のポインタ完全制覇とか余裕そうです。
ちなみに、LSI-C(試食版)を使っております。
0043デフォルトの名無しさん
NGNGここにいる奴の半分以上は余裕だと思われ。
複雑なようでわかれば簡単と。
0044デフォルトの名無しさん
NGNG仕事にするなら完全制覇した上で就くのが当然。
それもやらんとゴミプログラマ雇ってる奴らが(以下略)
勉強がんばり〜。
0045デフォルトの名無しさん
NGNGもっと勉強します。
あと多少マルチスレッドになるんですが、
#include<stdio.h>
main()
{
char* color_name[]=
{
"hoge",
"piyo",
"hoge_p"
};
printf("%d\n",color_name); /*?*/
printf("%d\n",color_name+1); /*?+2*/
printf("%d\n",color_name+2); /*?+4*/
/*これは何故2バイトずつ進むのでしょうか?
char配列を指しているので、1バイトずつ進むと思うんですが*/
puts("");
printf("%s","aiueo");
}/*お願いします。*/
0046デフォルトの名無しさん
NGNG他にもatexitとかな。標準関数じゃないけどsignalとか。
signalのプロトタイプを初めて見たときは頭が真っ白になったよ(w
0047デフォルトの名無しさん
NGNGsnprintfが使えない人たちってどうやって回避してるのですか?
やっぱC FAQの例みたいにファイルに書いたりしてるのでしょうか?
0048デフォルトの名無しさん
NGNGcolor_nameはcharの配列ではない。charのポインタの配列だ。
配列に入っているのは(char *)だ。
0049デフォルトの名無しさん
NGNGArigatou
がんばります。
0050デフォルトの名無しさん
NGNGC言語をはじめた3ヶ月、ほぼマスターしました。
ただまだGUIを使ったPGが作れません。何からはじめたらいいでしょうか?
0051デフォルトの名無しさん
NGNG環境は?
0052デフォルトの名無しさん
NGNGsignalは標準
0053デフォルトの名無しさん
NGNG堅牢性が最重要のプログラムで、
printfに渡すパラメータが信用できないときは
ファイルに一度書くだろうな。
そうでないときは、えいやってやっちゃうこともある(w
ま、大抵snprintfが使えるのでそっちを使っちゃうけど。
0054デフォルトの名無しさん
NGNGメモリの中では
color[0]つまり*(color_name) には hogeの先頭アドレスが、
colo [1]つまり*(color_name+2)には piyoの先頭のアドレスが、
color[2]つまり*(color_name+3)には hoge_pの先頭のアドレスが、
入っているんじゃないんでしょうか?
具体的に教えていただけると助かります。
0055デフォルトの名無しさん
NGNG>>48
メモリの中では
color_name[0]つまりcolor_nameにはhogeの先頭アドレスが、
colo_name[1]つまりcolor_name+2にはpiyoの先頭のアドレスが、
color_name[2]つまりcolor_name+3にはhoge_pの先頭のアドレスが、
入っているんじゃないんでしょうか?
具体的に教えていただけると助かります。
0056デフォルトの名無しさん
NGNGその通り。で、その先頭アドレスが君のLSI-C試食版だと2バイトなのよ。
0057デフォルトの名無しさん
NGNG0058デフォルトの名無しさん
NGNGレスありがとうございます。
幸いsnprintfが使えるようですので、これを使います。
0059デフォルトの名無しさん
NGNGここ、激しく間違いネ。まだ54の方が間違いが少ないネ
0060デフォルトの名無しさん
NGNGマルチポストってなんでしょうか?
マルチスレッドとは違うスレッドでも同じことを書き込むことですよね?
006150
NGNG何からはじめたらいいでせうか?
0062デフォルトの名無しさん
NGNGPC窓から投げ捨てる。
0063デフォルトの名無しさん
NGNGキミセンスアルヨ
0064デフォルトの名無しさん
NGNGその通り。君の処理系だとポインタサイズは2バイトだったな。
だとすると、こんな感じ。
前橋のポインタ本を持ってるようだから、
(実はおれも持ってる。知り合いなので、ご祝儀に買った(w)
205ページのFig.3-19ポインタの配列を見てくれ。
このようなイメージで格納されている。
配列color_nameの要素はあくまでポインタだ。
配列にはポインタがずらずらと格納されてる。
だから、ポインタのサイズが2のとき、
要素が一つ増えると、アドレスは2増えることになる。
0065デフォルトの名無しさん
NGNG他の開発環境使った方が楽では?
0066デフォルトの名無しさん
NGNGこんなところからはじめてみては?
猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/
C言語で始めるWindowsプログラミング
http://web.kyoto-inet.or.jp/people/ysskondo/
0067デフォルトの名無しさん
NGNG知り合いなんですか???
やっぱり前橋さんは凄腕PGなのでしょうか?
0068デフォルトの名無しさん
NGNGむしろ自分の方が凄腕だと。(w
007150
NGNGありがとうございます。試してみます。
極めたらまたきます。
0072HP電卓、■に何が入るのかが分かんない
NGNG#include<stdlib.h>
struct list{ int data;
struct list *next;};
void push(int y);
int pop();
void print_stack()
struct list *head=NULL;
void push(int y){ struct list *p; p=head; head=new list; if(head==NULL){ printf("Stack overflow.\n"); exit(1);} head->data=■; head->data=■;}
int pop(){ int y; if(head==NULL){printf("Stack underflow.\n");exit(1);} y=■;head=head->next;return y;}
void print_stack(){ struct list *p; p=head; while(p !=NULL){ printf("%d",■); p=p->■;} printf("\n");}
int main(){ int x,y,z; char s[10],c; while(1){ scanf("%s",s); c=s[0]; switch(c){
case'+':x=pop()+pop(); printf("%d\n",x); push(x); print_stack(); break;
case'-':x=pop(); y=pop(); z=y-x; printf("%d\n",z); push(z); print_stack(); break;
case'*':x=pop()*pop(); printf("%d\n",x); push(x); print_stack(); break;
case'/':x=pop(); y=pop(); z=y/x; printf("%d\n",z); push(z); print_stack(); break;
case'q':case'Q':exit(1);
default:push(atoi(s));
print_stack();}} return 0;}
0073デフォルトの名無しさん
NGNGしかし、1 は何故 「課題丸投げ禁止」 を書いてくれなかったの?
関連リンクは 2 以降にして、1 は諸注意でかためて欲しかった。
0074デフォルトの名無しさん
NGNGva_end();
ってなってて引数ないじゃん?
これいいの?
0075Zetton
NGNG間違ってると思います。
正誤表はこちら
http://member.nifty.ne.jp/maebashi/seiha/seigo.html
0076デフォルトの名無しさん
NGNGいいよ
0077デフォルトの名無しさん
NGNG0078デフォルトの名無しさん
NGNGつかCじゃ無いじゃん…。
0079デフォルトの名無しさん
NGNG初めて見たとき、シグナルを送るだけなのになんで関数ポインタが必要なんだ?と思ったよ。
シグナルを送るのはraiseだよな(w
0080デフォルトの名無しさん
NGNGパッと見Cに見えるけど何なの?
0081デフォルトの名無しさん
NGNGうーん?
Cの範囲で書いていると思うけど?
なんか見落としているかな・・・
0082デフォルトの名無しさん
NGNG0085デフォルトの名無しさん
NGNGサンクス!
それにしてもとんでもなく多かった・・・。
果たしてこの本使えるのか?
っていうかなんか前橋ってむかつくな
0086デフォルトの名無しさん
NGNG前スレでも似たような事があったな。
0087デフォルトの名無しさん
NGNGなんで?
0088デフォルトの名無しさん
NGNG前スレの>>905
0089デフォルトの名無しさん
NGNGターボシーは2だったよ
0090デフォルトの名無しさん
NGNGサイズオブ・・・・・どうでもいいけど
0091デフォルトの名無しさん
NGNGへぇ、俺にTurboC++5.0Jは4バイトだが。
0092デフォルトの名無しさん
NGNG0093デフォルトの名無しさん
NGNG遅レスだが、ここは宿題すれじゃないから、
そもそも課題をここに投げちゃいかんと思う。
0094デフォルトの名無しさん
NGNGあまりに環境依存・コンパイラ依存の話題禁止
0095コンパイラ
NGNG全然わかりません(泣)
0096デフォルトの名無しさん
NGNG俺その本の第五刷持ってるよ!
23:va_end(ap);に直ってるよ。
>>91
ふ〜ん・・・買って来よ(以下略
0097デフォルトの名無しさん
NGNG0098デフォルトの名無しさん
NGNG俺は中学生なのですべて独学だ
0099デフォルトの名無しさん
NGNGスーパープログラマーKを目指している。
いつかあの鍛え上げられた肉体を手に入れ、
「なぜプログラマがそんな筋肉を……」の問いに
「必要だからだ!!」と答えるのが夢だ。
……問題は、なぜ必要なのかが分からないことだ……
0100デフォルトの名無しさん
NGNG体を鍛えておく必要がある。
とでも言っておけば?
0101デフォルトの名無しさん
NGNG■ このスレッドは過去ログ倉庫に格納されています