1 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 16:45:25 ] C言語の入門者向け解説スレです。 ・C++言語はスレ違いです。 ・分からない事をなるべく詳しく書いて下さい。 ・ソースコードを晒すと答えやすくなるかもしれません。 ・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。 前スレ C言語なら俺に聞け(入門篇) Part 9 pc11.2ch.net/test/read.cgi/tech/1173284217/ 過去スレ Part 1 pc8.2ch.net/test/read.cgi/tech/1146700389/ Part 2 pc8.2ch.net/test/read.cgi/tech/1153818463/ Part 3 pc8.2ch.net/test/read.cgi/tech/1160682950/ Part 4 pc8.2ch.net/test/read.cgi/tech/1162999861/ Part 5 pc8.2ch.net/test/read.cgi/tech/1165022193/ Part 6 pc10.2ch.net/test/read.cgi/tech/1167325490/ Part 7 pc10.2ch.net/test/read.cgi/tech/1170064980/ Part 8 pc11.2ch.net/test/read.cgi/tech/1171946674/ 関連スレ C/C++の宿題を片付けます 84代目 pc11.2ch.net/test/read.cgi/tech/1172981618/ くだすれC言語(初心者用) Part.2 pc11.2ch.net/test/read.cgi/tech/1172099763/ 【ISO/ANSI/JIS】 C言語なら俺に聞け! Part 131 pc11.2ch.net/test/read.cgi/tech/1170338926/ 【初心者歓迎】C/C++室 Ver.35【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1171888583/ 【C 関数検索 man on WWW】 www.linux.or.jp/JM/index.html
413 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 21:57:04 ] >>412 その仕様は初期のコンパイラの都合によるものと思われる でも、できるからといって使う必要はないじゃないか
414 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 23:35:53 ] char *argv[]に対して *(argv+i)って言うのはargv[i] *(*(argv+i))って言うのはargv[i][] と同じと考えておk?
415 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 23:37:44 ] 下は *(*(argv+i)) == *(*(argv+i)+0) == argv[i][0] ?
416 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 23:45:43 ] うん。 *p == p[0]
417 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 23:48:02 ] 構造体ってのは最初に宣言しないといけないの? #include <stdio.h> int main(void){ struct person{ char *sei; int age; }taro; taro.age=13; taro.sei="山田"; struct person hanako; printf("太郎の姓は%s、年齢は%dです\n",taro.sei,taro.age); return 0; } これコンパイルできないんだけど
418 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 23:50:09 ] struct person hanako; を削ってみ。
419 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 23:51:59 ] >>417 Cの場合宣言(struct person hanako; )は関数スコープの最初に taro.age=13; taro.sei="山田"; の後で宣言はダメ
420 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 23:52:17 ] >>417 コンパイルできるよ。
421 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 23:57:13 ] あれがコンパイルできるC99は残念ながら普及していないのさ
422 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 23:59:18 ] gccが普及してないとでも?
423 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 00:10:03 ] GCCは普及しているものの、社会がC99を使う風潮になっていない。 見たことあるか?C99で書かれたプログラム。
424 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 00:17:24 ] FreeBSDのソースがC99でかかれてたなー。
425 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 00:23:08 ] 拡張子をcppにすればいい
426 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 00:44:47 ] >>423 コメントが//のCのソースコードをよく見るんだが
427 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 03:02:41 ] C99で書かれたものは、C89でも書ける。 極端な事言えば、C++でusing namespace std; をグローバルで宣言して、あとはCの様に書けば 事足りる。 なんだよ、_BOOLって (w
428 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 03:09:55 ] 極端な事言えば、 で書かれたものは機械語でも書ける。
429 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 07:05:03 ] ふつうにboolにしてくれた方が使いやすい
430 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 07:51:37 ] >>423 毎日飽きるほど見てますが、何か。
431 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 08:04:55 ] >>427 >>429 <stdbool.h>
432 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 12:49:55 ] int *a; ってやったら aにはたとえば0x123456ff みたいなアドレスが入ってるんだよね? だから、a=12みたいなことはできないってことはわかったんだけど char *c c="abcdef"; みたいなことができるのはなんで? char *cって指定した時点で cには0x12345678みたいなアドレスが入ってんじゃないの?
433 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 12:54:00 ] "abcdef"は、文字列abcdefのアドレスの意味
434 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 12:54:04 ] int *aもchar *cも宣言した時点では(有効な)アドレスは入ってない。
435 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 12:59:11 ] あれ? アドレス表示しても6桁なんだけど… なんで?
436 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 12:59:55 ] a=12だってできる。
437 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 13:00:32 ] >>435 上が0なんだろ・・・
438 名前:435 mailto:sage [2007/04/05(木) 13:02:00 ] #include <stdio.h> int main() { int a = 1 ; printf ( "%x" , &a ) ; return 0 ; } で実行すると 12fed4 どういうこと?
439 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 13:02:42 ] >>437 なるほど^^ お騒がせしました
440 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 13:04:32 ] >>432 そういうC言語の仕様。 「char型の配列はダブルクォーテーションで囲む文字列(これを文字列リテラルと言う)で初期化できる」 っていうルールがあるの。ただおまいはその書き込みから色々誤解してそうなフシがあるから注記しとくと ・初期化が無い宣言の時点ではその変数の値は決まってない。 その変数を格納するためのメモリ領域に元々入ってるデータがそのまま値になる。 ・文字列リテラルで出来るのはあくまで初期化であり、代入は出来ない。 つまり、char c[] = "unko";はできるけどchar c[20]; c = "unko";はダメ。 ・ポインタに対しても同じ事が出来るけどそれはchar *cのに対して静的なリテラルのアドレスが代入されたのであって ↑のルールとは無関係。だから厳密に言えば↑のレスは的外れになる。
441 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 13:14:58 ] >>438 0x12fed4 16進表記だよ
442 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 13:22:39 ] %p ならなんとかしてくれるかもしんない。 あ。 ゼロサプレスしてたっけか?
443 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 13:45:42 ] なるほどー。 char c[20]; ってやって、初期化しなかった場合に代入したいときは scanfとかstrcpy使わないとだめなのかな? c="asdf"はできなくてstrcpy(c,"asdf")はできるんだよね。。。 なんでc="asdf"はだめでstrcpyは良いのかよくわからないけども、まぁいっか
444 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 13:54:28 ] >>443 char c[20]; char *p=c; cのアドレスをpにコピー コピーしたのは「アドレス」であってデータそのもの("ABCDE")ではない このときpには c のアドレスが入っている 次に p="ABCDE"; を実行すると p は"ABCDE"というリテラルの「アドレス」が代入され cに"ABCDE"がコピーされるわけではない c(=p)にコピーしたいのなら strcpy(p,"ABCDE"); としなければいけない
445 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 13:54:41 ] >>443 > なんでc="asdf"はだめでstrcpyは良いのかよくわからないけども、まぁいっか c="asdf"は、char型の20個の領域にアドレス(="asdf")を代入しているからだめ strcpyは、char型の20個の領域に文字列asdfをコピーしているから良い
446 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 13:56:06 ] >>443 Cでは配列間での代入はできない。また、"asdf"は'a'を指すポインタと解釈される。 従って、c = "asdf"は配列へのポインタの代入と言うことになり、当然できない。 どうしても代入したければ、要素を一つずつ代入すればよい。 #そしてそれを、ナル終端文字列専用にしたのがstrcpy()だ。
447 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 13:58:01 ] c="asdf" ← というか、そもそも、c = で使えない。(cは配列の先頭を表してるってだけ) strcpy(c,"asdf") ← c(配列の先頭のアドレス)とリテラルのアドレスを渡して、 'a','s'・・・を順次入れているだけ。
448 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 14:06:51 ] >>443 "asdf" は文字列が格納されている先頭メモリ番地 c="asdf" はアドレス値をコピーしようとしている strcpy(c,"asdf") はアドレスが指すデータをコピーしようとしている
449 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 15:45:32 ] for (i = 0; i < THREAD_COUNT; i++) { /* スレッド生成 */ if (pthread_create(&thread_id, NULL, threadFunc, (void *)thread_arg) == 0) { thread_count++; } } とやって、THREAD_COUNTの数をいろいろ変えているのですが ある一定の数以上は、必ず失敗するようになります。 自分の環境では303個めまでのスレッドは作成できますが それ以上は作成できません。 どこかでスレッドの上限というのは決められているのでしょうか?
450 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 16:32:12 ] /* 1000以下の素数を求める(第1版) */ #include <stdio.h> int main(void) { int i, no; unsigned long counter = 0; for (no = 2; no <= 1000; no++) { for (i = 2; i < no; i++) { counter++; if (no % i == 0) /* 割り切れると素数ではない */ break; /* それ以上の繰返しは不要 */ } if (no == i) /* 最後まで割り切れなかった */ printf("%d\n", no); } printf("乗除を行った回数:%lu\n", counter); return (0); } これでnoが3の時二個目のfor分のところのiが<演算子なのに3になるんですか? 3にならなければ3素数なのにprintfで表示されないですよね
451 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 16:42:23 ] no = 3, i = 2 → 割り切れない no = 3, i = 3 → i < noを満たさないのでループ終了 no == i なので3は素数
452 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 16:44:38 ] <これでも 3<3までいくんだ? <=じゃなくても
453 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 16:45:38 ] 3になったからループを抜けるわけで
454 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 16:47:32 ] ループの流れ i = 2 i < no の判定 処理 i++ i < no の判定 処理 i++ i < no の判定 処理 i++ ・ ・ ・
455 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 16:48:36 ] >>450 =452 ...か? 妥当なインデント付けて、最初のforループの中を一行ずつ追っていけば 何となく分かるかもね。
456 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 17:04:32 ] >>452 そうじゃなくて no=3 のとき iのループは3になったら抜けるわけでループ内では2までしか処理されない ループを抜けているのはiが3だからループのあとiは3になっている
457 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 17:46:40 ] printf()が負値を返すのはエラーが発生した場合とのことですが 具体的にエラーが発生するのってどんな状況のときなんですかね?
458 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 17:59:47 ] >>457 厳密には、printf()は出力に失敗するとEOFを返す。 リダイレクト先の出力がなんらかの制限のあるデバイスにでも振り向けられていなければ、 一般的には出力は必ず成功する。
459 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 18:44:50 ] てか画面以外は失敗する可能性あるよね。
460 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 18:58:02 ] >>459 画面って何? /dev/consoleのこと? 必ずしも画面とは限らないのだけど……
461 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 19:03:19 ] 要は、下位のwriteが失敗するかどうかが大体のキモだね。 printf(NULL)みたいなどうしようもないようなものをのぞけば。
462 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 19:32:07 ] >>457 普通にファイルに書いてたって空き領域がなくなることはあるだろうし リムーバブルなメディアなら途中で引っこ抜かれるかも試練。
463 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 19:40:07 ] 実は、バッファリングされているから必ずしもエラーにならない罠。
464 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 19:46:53 ] 必ずしもの使い方が間違っている希ガス
465 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 19:47:44 ] 463ではないが、必ずしもエラーになるとは限らない、かな?
466 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 19:50:25 ] 容量オーバーした瞬間にエラーにならない可能性はあるが、 失敗する可能性は十分あり得るということでFA?
467 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 21:26:44 ] すみません。前回はありがとうございます。 また質問させていただきます。 ttp://www.uploda.org/uporg763897.zip.html スパゲティですみません。 game3.hの構造体sceneDataなんですが変数dFFがメンバじゃないと出るんですが、 何ででしょうか? 要素が多すぎるんでしょうか? pはsageです。
468 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 21:31:37 ] >>467 grep で検索しても dFF はどこにも宣言されて無いようだ
469 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 21:38:51 ] 整数mからnまでの和を、公式n(n+1)/2を使わずに求めるプログラム作ったんですけど #include <stdio.h> int main(void){ int m,n,i,ans=0; printf("数値入力>");scanf("%d",&m); printf("数値入力>");scanf("%d",&n); if(m<=n){ for(i=m;i<=n;i++){ ans=ans+i; } printf("%d",ans); } else { for(i=n;i<=m;i++){ ans=ans+i; } printf("%d",ans); } return 0; } このプログラムって、答えをansという変数に代入してるんですが ansを使わずに求めるにはどうしたらいいんですかね
470 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 21:42:29 ] mかnに加算していけば?
471 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 22:01:58 ] >>469 再帰処理で #include <stdio.h> int mysum(int a,int max) { if(max<=a) return a; return mysum(a+1,max)+a; } int main(void){ int m; printf("数値入力>");scanf("%d",&m); printf("数値入力>");scanf("%d",&n); if(m<=n){ printf("m=%d\n",mysum(m,n)); } else { printf("n=%d\n",mysum(n,m)); } return 0; }
472 名前:471 mailto:sage [2007/04/05(木) 22:03:22 ] あっ printf("m=%d\n",mysum(m,n)); printf("n=%d\n",mysum(n,m)); m= と n= 消しといて
473 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 22:17:13 ] >>469 ansを思いっきり使ってるので無視してくれて構わないが簡略した int MtoN_Add(int m, int n) { int i = (m>n)?n:m, ans = 0; while( (m>n)?m:n >= i ) ans += i++; return ans; }
474 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 22:38:02 ] #include <stdio.h> int main(void){ int m,n,i; printf("数値入力>");scanf("%d",&m); printf("数値入力>");scanf("%d",&n); if(m>n) m^=n,n^=m,m^=n; for(i=m+1;i<=n;i++) m+=i; printf("%d",m); return 0; }
475 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 23:07:24 ] ハッカーの楽しみに載ってるやつかww
476 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 23:15:05 ] m^=n,n^=m,m^=n これでスワップが出来るとは知らなんだ。勉強になったぜ
477 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 23:20:22 ] 勉強するのはいいが、実用性はないに等しいから使わないようにね。
478 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 23:21:15 ] www.dd.iij4u.or.jp/~okuyamak/Information/xor_fixed_swapping.html ja.wikipedia.org/wiki/XOR%E4%BA%A4%E6%8F%9B%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0
479 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 23:42:01 ] do while文ってつかわないほうがいいの?
480 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 23:49:01 ] while文よりは利用機会は少ないと思うけど、 使わないほうがいいってことはない。 ただし、do while文の最後を } while (条件); のようにwhileが先頭に来るように改行するのは好ましくない。 こう書いてしまうと、一軒、新たに while文が始まったように見 えてしまう。 } while (条件); とするのがよい。
481 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 00:20:44 ] サイズの指定たとえば#define BUF 256とかを 複数のファイルで共有するにはどうすればいいの? ヘッダに書いちゃっていいものなの? 優しく教えてくれる東ちづる似のお姉さん回答お願いします。
482 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 00:49:06 ] 共用するヘッダに書いて#includeする。
483 名前:481 mailto:sage [2007/04/06(金) 09:21:17 ] >>482 すみません それは新しくヘッダのみのファイルを作っておくって事でしょうか?
484 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 10:15:23 ] common.hみたいな名前のヘッダファイル作って、そこに#define全部書いて 定数使うソースに#include "common.h"書けばおkって話。
485 名前:481 mailto:sage [2007/04/06(金) 10:50:30 ] >>484 そうしたいと思います。 回答ありがとおおおおおおおおおおおおおおおおおおお。
486 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 11:33:21 ] >common.hみたいな名前のヘッダファイル作って、そこに#define全部書いて 勘弁してくれ。
487 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 11:38:40 ] 今の時代、ヘッダ直しただけで毎回フルビルドになってもOKダヨー
488 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 11:51:49 ] 本当に時代は進化したなぁ
489 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 11:53:22 ] >>486 へ?何が勘弁してなの?煽りじゃなくてマジで・・
490 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 11:54:08 ] >>487 それが理由じゃない。俺様マクロが氾濫する原因になるから 利用したいソース群ごとにインクルードファイルは分けて欲しいだけだ。
491 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 11:55:15 ] つーか、>484の方針だとプロトタイプ宣言も全ソース共通のインクルードファイルでやってそうだな…
492 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 11:56:40 ] プロトタイプ宣言は普通全ソース共通のインクルードファイルに書くだろ prototype.hとか作って
493 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 12:02:45 ] 普通にモジュール化してたらそうはならないだろ
494 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 12:05:38 ] なるだろ
495 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 12:25:58 ] で結局どうやるのが正解なわけ?
496 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 12:27:57 ] >>492 勘弁してくれ。 その方針じゃ、必要のないインクルードファイルまで全部インクルードする羽目になる。 標準インクルードも片端からインクルードすることになるジャマイカ。 例えば20本くらいのソースのうち、時間(time_t)を取り扱う関数がソースAにあるとする。 それを利用するのは、ソースBとソースCだけだとする。 ソースD以下はtime_tなど全く頓着する必要はないのだが、プロトタイプが全部共通だと 全てのソースでtime.hをインクルードすることになるということだ。 time_tならそんな心配はないだろうが、環境によっては他とぶつかる可能性のある マクロを定義しているインクルードファイルもあるだろう。 #たとえばBoolという定数マクロと関数マクロがぶつかることがあるOSの標準インクルードで実際にあった。 >493が言うように、きちんとモジュール化していたらそんなことになるはずないんだがな。 #つーか、C++でクラス設計していたら有り得ないだろ。
497 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 12:38:37 ] >>496 なんとなく共通のヘッダファイルは、さけてきたけど・・・ では、そうゆう方向で >_<;
498 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 13:00:14 ] >>496 >>492 はプロトタイプ宣言だけの話じゃないの?
499 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 13:02:09 ] >>498 プロトタイプ宣言を纏めるためには、引き数や戻り値で使う型の情報が必要になる。 それらをインクルードすれば同じこと。
500 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 14:00:47 ] ポインタ型はすべてchar*に変換すればいい というか業務だとそうしてるよな?普通 そうしないとくだらない依存関係で悩むことになる
501 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 14:20:45 ] >>500 勘弁してくれ。
502 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 14:24:21 ] 16進を2進に変えるのって ただ単に桁ごとの数字を二進法にかえればいいだけですか? たとえば0x65なら6を二進にした0110と5を二進にした0101を並べて 01100101ってやりゃいいの? どんな数でもこの法則成り立ちますか?
503 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 14:30:52 ] 4進数なら 00 00 8進数なら 000 000 16進数なら 0000 0000
504 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 14:31:02 ] >>500 何の為に型が存在してるんだ
505 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 14:40:24 ] >500は釣りだろ。いくらなんでも業務で型無しプログラミングなんて有り得ない。
506 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 15:27:40 ] インターフェイスをchar *で統一するとデータ型に依存しないから、 仕様変更があった場合、修正個所少なくなる。というのはあるかもね。 作業が進んでから「データ型変更されますた」とかあるしw
507 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 15:32:15 ] そして、仕様変更でデータ型が変わってもその事実が伝達されずにそのままビルドされて納品される罠。
508 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 16:33:40 ] >>506 なんと愚かな・・・。
509 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 16:35:25 ] >>508 どこが愚かが具体的に言わないと反論になってない さらに自分の改善案も出さないとただの愚痴
510 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 16:42:29 ] >>509 >507 >504 >496 >493
511 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 16:43:06 ] >>502 2進数を3桁で区切ってその3桁を1桁づつにすると8進数、4桁で区切って1桁づつに すると16進数。というのは、2進数3桁だと8種類の重みを表現可能だからで、これを 一桁で表せば8進数ということになる。2進数4桁で16進数というのも同じこと。
512 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 16:48:26 ] >>509 反論ではありません。あまりの愚かさに衝撃を受けて出た一言です。 外人がよく言う "Oh My GOD!" に近いものです。 ああ。あなたに神の許しがありますように。
513 名前: ̄ ̄V ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ mailto:sage [2007/04/06(金) 16:49:42 ] _____ /::::::::::::::::::::::::::\ _ /::::::::::::::::::::::::::::::::::::::\ /  ̄  ̄ \ |:::::::::::::::::|_|_|_|_| /、 ヽ |;;;;;;;;;;ノ \,, ,,/ ヽ |・ |―-、 | きみ頭だいじょうぶ? |::( 6 ー─◎─◎ ) q -´ 二 ヽ | |ノ (∵∴ ( o o)∴) ノ_ ー | | /| < ∵ 3 ∵> \. ̄` | / ::::::\ ヽ ノ\ O===== | :::::::::::::\_____ノ:::::::::::\ / |