1 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 23:11:47 ] C言語の入門者向け解説スレです。 ・C++言語はスレ違いです。 ・分からない事をなるべく詳しく書いて下さい。 ・ソースコードを晒すと答えやすくなるかもしれません。 ・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。 前スレ C言語なら俺に聞け(入門篇) Part 24 pc11.2ch.net/test/read.cgi/tech/1201083176/ 教えて欲しいのではなく丸投げしたいならこちらへ C/C++の宿題を片付けます 104代目 pc11.2ch.net/test/read.cgi/tech/1202135539/
2 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 00:09:53 ] Part 1 ttp://pc8.2ch.net/test/read.cgi/tech/1146700389/ Part 2 ttp://pc8.2ch.net/test/read.cgi/tech/1153818463/ Part 3 ttp://pc8.2ch.net/test/read.cgi/tech/1160682950/ Part 4 ttp://pc8.2ch.net/test/read.cgi/tech/1162999861/ Part 5 ttp://pc8.2ch.net/test/read.cgi/tech/1165022193/ Part 6 ttp://pc10.2ch.net/test/read.cgi/tech/1167325490/ Part 7 ttp://pc10.2ch.net/test/read.cgi/tech/1170064980/ Part 8 ttp://pc11.2ch.net/test/read.cgi/tech/1171946674/ Part 9 ttp://pc11.2ch.net/test/read.cgi/tech/1173284217/ Part 10 ttp://pc11.2ch.net/test/read.cgi/tech/1174290325/ Part 11 ttp://pc11.2ch.net/test/read.cgi/tech/1176800483/
3 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 00:10:50 ] Part 12 ttp://pc11.2ch.net/test/read.cgi/tech/1178620766/ Part 13 ttp://pc11.2ch.net/test/read.cgi/tech/1179301993/ Part 14 ttp://pc11.2ch.net/test/read.cgi/tech/1181735298/ Part 15 ttp://pc11.2ch.net/test/read.cgi/tech/1182719692/ Part 16 ttp://pc11.2ch.net/test/read.cgi/tech/1184003625/ Part 17 ttp://pc11.2ch.net/test/read.cgi/tech/1185286631/ Part 18 ttp://pc11.2ch.net/test/read.cgi/tech/1187213990/ Part 19 ttp://pc11.2ch.net/test/read.cgi/tech/1190342593/ Part 20 ttp://pc11.2ch.net/test/read.cgi/tech/1192455273/ Part 21 ttp://pc11.2ch.net/test/read.cgi/tech/1194384258/ Part 22 ttp://pc11.2ch.net/test/read.cgi/tech/1196489491/ Part 23 ttp://pc11.2ch.net/test/read.cgi/tech/1201083176/
4 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 00:12:55 ] >>3 ミスった × Part 23 ttp://pc11.2ch.net/test/read.cgi/tech/1201083176/ ○ Part 23 ttp://pc11.2ch.net/test/read.cgi/tech/1198295362/
5 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 00:29:43 ] 過去スレってなんか意味あるのか。
6 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 00:46:32 ] なんだ初心者か。
7 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 00:56:21 ] ほとんどdat落ちしてるし前スレのみでいいんじゃね? ●もちなんかレアだろうし
8 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 01:01:15 ] ●なくても見れるよ
9 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 01:08:42 ] それ以前に、読むやついるのかって疑問も。
10 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 01:52:43 ] 読むことは無くても検索する事ならあるかもしれない
11 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 03:29:29 ] たかだか2レス程度の過去スレリンクにけちつけるヤツってなんなの?
12 名前:デフォルトの名無しさん [2008/02/19(火) 11:02:18 ] そういう人に限って過去スレよめっていうんじゃない?
13 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 15:51:40 ] C:\Program Files\Microsoft Visual Studio 8\VC\C> test24.c #include<stdio.h> #include"myfunc.h" { ...... } myfunc.c myfunc.h 環境 VC++ 2005 express edition コマンドプロントでのリンクの方法おすえて。
14 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 16:12:24 ] cl で拡張子まで指定すりゃリンクまでやってくれるよ。
15 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 16:14:34 ] まあLINKでもいいけど。 オプションはGUIのほうでプロパティのリンカのコマンドラインみればわかるべ。 まああれ全部指定する必要も無いかもだが。
16 名前:13 mailto:sage [2008/02/19(火) 17:19:51 ] cl teste.c myfunc.c でけますた ありがとう あいしてる・
17 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 21:16:35 ] >>12 反論できなくなると人格攻撃はじめるクセってみっともないから、直す努力したほうがいいよ。 まあ、そういう根性が染みついちゃってて、一生ゲスのまま終わっちゃうんだろうけどね。
18 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 22:09:22 ] >>17 わざわざ同じレベルまで降りてやることもあるまいに。
19 名前:デフォルトの名無しさん [2008/02/20(水) 02:03:36 ] >>17 12だがなんのこっちゃ?
20 名前:デフォルトの名無しさん [2008/02/20(水) 02:50:57 ] >>11 >たかだか2レス程度の過去スレリンクにけちつけるヤツってなんなの? ?例えば、ですが… 2ch-browserの購入installを試みては… r
21 名前:デフォルトの名無しさん [2008/02/20(水) 05:31:03 ] ポインタへの代入についての質問です。 const char**型の変数にchar **型の変数を代入するのは、 修飾型へのポインタに非修飾型へのポインタを代入することになるので してはいけない(コンパイラが警告を出す)と本に出ていたので、 #include<stdio.h> int foo(const char **p){ printf("ok\n"); return 0; } int main(int argc,char **argv){ foo(argv); return 0; } 上記のようにコーディングしてコンパイルしてみたのですが、 警告の類はでません(argcとpが参照されていないという 警告と標準ライブラリ関数のプロトタイプ宣言に関する 警告は出ます)。コンパイラはvisual studio2005に付属 しているもので/Wallオプションを付けてます。 なぜ警告がでないのでしょうか?
22 名前:デフォルトの名無しさん [2008/02/20(水) 08:32:15 ] >>21 国語の勉強してから、もう一度その本を読め。
23 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 09:23:14 ] >>21 > const char**型の変数にchar **型の変数を代入するのは、 その代入をしていないから
24 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 11:06:50 ] >const char**型の変数にchar **型の変数を代入するのは、 >修飾型へのポインタに非修飾型へのポインタを代入することになるので >してはいけない(コンパイラが警告を出す)と本に出ていたので、 いいえ、そんな大嘘ありえません。
25 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 13:55:21 ] いや、警告が出ないのは不思議。gccでも警告が出る。 VC++ならC++としてコンパイルすればエラーになるんだけど。 で、どういう問題があるんだったっけとググったら、ちょうどいい例が見付かった。 ttp://hpcgi1.nifty.com/MADIA/Vcbbs/wwwlng.cgi?print+200410/04100047.txt int main() { const char c='c'; char *x; const char **y=&x; // error // もしできたとしたら、以下の手順で c を変更できちゃう *y=&c; *x='b'; }
26 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 15:02:40 ] >>25 質問の大元では関数の引数として const 修飾を使っている
27 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 15:19:49 ] const char ** に char ** を代入することは、 「修飾型へのポインタヘのポインタ」に「非修飾型へのポインタへのポインタ」を代入することだから、 >21にあるような「修飾型へのポインタ」に「非修飾型へのポインタ」を代入することとはならないな。
28 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 17:00:03 ] ぶっちゃけ動くならコードなんかどうでもいいですよね?
29 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 17:02:13 ] メンテナンスを考えなくていいならな
30 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 17:03:52 ] 偶然動いてるのときちんと動いてるのと区別がちゃんとつくんならな。
31 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 17:04:20 ] こういうのは自分だけで使うのか、他人に提供するのかでもかわってくるしな。
32 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 21:10:12 ] >>26 x がグローバル変数なら似た事ができる。
33 名前:21 [2008/02/20(水) 22:26:14 ] >>24 >>27 そうですね、 「修飾型へのポインタヘのポインタ」に「非修飾型へのポインタへのポインタ」を代入することでした。 >>25 確かににgccでコンパイルしてみたら警告がでました。 リンク先、参考になりました。ありがとうございます。 >>26 関数に引数を渡すのは、仮引数への代入として扱われるらしいので代入と書きました。わかりにくくて すいません。 >>29 >>30 とりあえず、きちんとわかるまではエラーが出るような書き方は避けるようにしときます。