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
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===== | :::::::::::::\_____ノ:::::::::::\ / |
514 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 16:50:32 ] >>500 何社か渡り歩いたけど、そうやってる会社もあった 大手電機メーカーでした
515 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 16:55:28 ] >>514 恐ろしいな。
516 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 18:08:42 ] >>506 せめてvoid* 何も事態は改善しないけど
517 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 18:30:31 ] >>516 うん。まーーーったく変わらない。
518 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 18:45:30 ] え?悪化してるような気がする。 char*ってことは、一旦シリアライザ・デシリアライザを挟もう、って意図じゃないの? いまどきのIPCがみんなXML使ってるみたいに、関数の引数もXMLにしよう、みたいな話ではないの?
519 名前: ̄ ̄V ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ mailto:sage [2007/04/06(金) 19:39:54 ] _____ /::::::::::::::::::::::::::\ _ /::::::::::::::::::::::::::::::::::::::\ /  ̄  ̄ \ |:::::::::::::::::|_|_|_|_| /、 ヽ |;;;;;;;;;;ノ \,, ,,/ ヽ |・ |―-、 | きみ頭だいじょうぶ? |::( 6 ー─◎─◎ ) q -´ 二 ヽ | |ノ (∵∴ ( o o)∴) ノ_ ー | | /| < ∵ 3 ∵> \. ̄` | / ::::::\ ヽ ノ\ O===== | :::::::::::::\_____ノ:::::::::::\ / |
520 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 19:49:00 ] >>468 ありがとう。どうやらIDEが別の似たファイルを参照していたらしいです。 解決しました。
521 名前:デフォルトの名無しさん [2007/04/06(金) 20:05:31 ] >>476 XOR使ったスワップは、同一だとちゃんと機能せんから せめて a +=b, b = a - b, a -= b とか使うようにしましょう。
522 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 20:08:53 ] 一方俺はバッファを使った…
523 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 20:12:42 ] >>521 おいおいw
524 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 20:28:42 ] 叔母風呂
525 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 20:30:47 ] 同一( &a==&b )の場合は >>521 の方法でも 0 になってしまうよ
526 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 21:24:42 ] for文の途中に return 0などがあると 関数に0を返したあとに、関数の処理は終わってしまいますか?
527 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 21:26:28 ] もちろん
528 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 21:54:44 ] #include <stdio.h> #include <math.h> int sosu(int); int main(void){ int i,m; printf("数値入力>");scanf("%d",&m); if(m<=0) return 0; printf("2 "); for(i=3;i<=m;i+=2){ if (sosu(i)==1) printf("%d ",i); } return 0; } int sosu(int n){ int i; if(n==2)return 1; if(n%2==0) return 0; else{ for(i=3;i*i<=n;i=i+2){ if(n%i==0){ return 0; } } } return 1; } 入力した数までの全ての素数を表示するプログラム作ってみたんだけど これだと横一列に表示されて見づらいので、5個ずつ表示して改行\nつけたいんだけどどうしたらいいですかね 2 3 5 7 11 13 17 19 23 29 31 37・・・といった感じです
529 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 21:59:24 ] >>528 これでどう? if (sosu(i)==1) printf("%d ",i); ↓ if (sosu(i)==1){ static int sosu_count=1; sosu_count++; printf("%d ",i); if(sosu_count%5==0) printf("\n"); }
530 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 22:00:27 ] void MyPrint(int i) { static cnt; printf("%d ", i); cnt++; if(cnt == 5) {printf("\n");cnt=0;} return; } こんな関数をprintfの代わりに使うのはどう?
531 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 22:03:25 ] できたー ありがとうございます
532 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 23:02:53 ] int main(void) って int main() と C言語は略しちゃいけないんだよね?
533 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 23:07:14 ] >>532 int main();はお勧めできませんが、 int main()ならどうでもいいと思います。
534 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 23:08:47 ] 規格をあたってみたところ、関数の定義なら問題ないと読めた。 参照したのがはJIS X3010:2003 (C99翻訳)なんで、C89とかだとどうなのかは知らんが。
535 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 23:12:11 ] C89でも同じ事です。
536 名前:デフォルトの名無しさん [2007/04/07(土) 03:51:54 ] 素数そっすうそっすうーーー #include <stdio.h> #include <stdlib.h> #include <string.h> void sieve(char *p,int d); int main() { int d = 0,i,k; char buff[256] = {'\0'}; char *p = NULL; fgets(buff,sizeof(buff),stdin); sscanf(buff,"%d",&d); if (d <= 0) {fprintf(stderr,"input positive number and less than INT_MAX number.\n");exit(1);} if ((p = malloc(d))==NULL) {fprintf(stderr,"failed to allocate %d bytes of memory.\n", d);exit(1);} memset(p, '\0', d); sieve(p,d); printf("primes up to %d\n", d); for (i = 0, k = 1; i < d; i++){ if(p[i] == 2){i++;} if (p[i]==0){printf("%-4d ", i+1); k++;} if(!(k%5)){ putchar('\n');k++;} } return 0; } void sieve(char *p,int d) { int i, j; p[0] = 2; for (i=2; i <= d/2; i++) for (j=2; j <= d/i; j++) p[i*j-1]=1; }
537 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 04:10:22 ] インデント無いとこれほどまでに読みにくくなるんだな…
538 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 12:46:42 ] C言語で駄目文字ってどういう時に発生するの?
539 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 12:50:03 ] 駄目文字って何?
540 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 12:53:25 ] Shift_JISで表したときに2バイトめに 0x5c が来る文字を俗に 駄目文字と呼ぶらしい。
541 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 13:21:08 ] 表とか?
542 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 15:21:56 ] カタカナの「ソ」とかな。 >>538 への答えとしては、扱うエンコーディングにShift_JIS(CP932など 類似品も含む)があるときは常にその必要があると思え、くらいか。
543 名前:デフォルトの名無しさん [2007/04/07(土) 15:33:49 ] sizeof演算子 の意味がわかりません。教えてください。
544 名前:デフォルトの名無しさん [2007/04/07(土) 15:54:25 ] 意味ってw 変数の使用バイトを調べる為にあるんだよ マロックとかで変数渡すときに、4って書くよりsizeof(int)って書いた方が分かりやすいからだよw
545 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 15:55:06 ] sizeof(int) : int型のサイズ(4バイトとかそんな感じ) sizeof(hoge) : 変数hogeのサイズ(char hoge[260]なら260) 前者は型のサイズが違っても対応できるように、後者はmalloc(sizeof(hoge))みたいな感じに使う
546 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 16:52:02 ] 典型的な応用例: int array[10]; for (int ic = 0; ic < sizeof(array) / sizeof(* array); ++ic) array[ic] = 0;
547 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 16:59:42 ] 質問者のレベルだと *arrayのところは、array[0]と書いた方が分かりやすいだろう。
548 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 17:30:20 ] 構造体でもパッキングの値に対応した本当のサイズが出るので sizeof は不可欠
549 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 17:54:23 ] sizeofはエロイ
550 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 18:36:20 ] inlineよかまし
551 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 18:59:45 ] >>548 いや、詰め物なくてもsizeofは使うだろ。 メンバ変数のサイズを個別に求めて、合計するわけ?
552 名前:デフォルトの名無しさん [2007/04/07(土) 19:55:09 ] 4って書くよりsizeof(int)って書いた方が分かりやすいからだよw ?intは2バイトじゃないのですか???
553 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 19:59:47 ] >>552 なんで2バイトだと思ってるの?
554 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 20:00:36 ] 釣りだろうけどマジレスするとintサイズは環境依存、一般的には 8bit, 16bit cpu では2の 32bit cpuでは4 64bit cpuでは4, 8 に分かれる。
555 名前:デフォルトの名無しさん [2007/04/07(土) 20:03:30 ] コンパイラが決めてるってことですか? どーやって決めてるんですかね?
556 名前:デフォルトの名無しさん [2007/04/07(土) 20:06:58 ] 釣りじゃないです。 勉強し始めて、一ヶ月。 わからないことばかりです。 本には、intは2バイトって書かれてるから。 環境依存? むつかしい。前途多難です。
557 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 20:08:58 ] >>556 すごい古い本つかってないか?
558 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 20:12:22 ] Javaだと身動き取れないくらいカッチリとサイズが決められてるけど、 Cのintは最低2バイトでshort以上long以下のCPUに都合の良い(が扱いや すい)幅。以上/以下とあるから、どちらかと同じであってもよい。
559 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 20:15:49 ] C99だと「最低でも32bit以上で、一番速い型」とか指定できるからいいな。
560 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 20:16:10 ] intが最低2バイトと書いてしまったが、ちゃんと書くと、 1. short: 最低2バイト、longよりは小 2. long: 最低4バイト、shortよりは大 3. short <= int <= long 1.2.からshortとlongの幅が同じになることはないので、3.の等号は 成り立つとしても片方しか成り立たない。
561 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 20:16:22 ] longとintでサイズ同じなら二つも作って紛らわしくさせんじゃねーよ! とか憤ってた学びたての頃の俺をDQNといわないで下さい
562 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 20:17:20 ] >>555 実行環境のCPUその他アーキテクチャにとって都合の良い大きさに決まる
563 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 20:19:24 ] CPUが64ビットだとややこしいな。 int=64ビット long=64ビット int=32ビット long=64ビット int=32ビット long=32ビット long long=64ビット
564 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 20:19:31 ] >>558 のカッコのなかの「が」は CPUに都合がよい、しかし扱いやすい じゃなくて(逆接になる意味がない)、 CPUに都合がよい(CPUが扱いやすい) の意です……
565 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 20:20:39 ] >>560 それ間違ってないか? 手元の本にはそんなことは書いてないが。
566 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 20:27:01 ] shortはshort int、longはlong intの略記であり、 無印intはshort intかlong intのどちらか処理系に都合がよいほうと同じ、 だっけ?
567 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 20:30:01 ] 手元の本って何だよ。JISのプリントアウトか? まぁ、もちろん規格にも>>560 のような最低hogeバイトとは書いていないけどな。
568 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 20:38:20 ] >>560 > 1.2.からshortとlongの幅が同じになることはないので、3.の等号は > 成り立つとしても片方しか成り立たない。 実際に sizeof(short) == sizeof(int) == siezeof(long) == 4 な処理系は実在する。
569 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 20:39:54 ] >>566 intがshort intとlong intのどちらかと 同じ大きさである必要があると定められてはいなかったと思う。 >>567 しかし<limits.h>の定数は少なくともxxx以上・以下でないといけないという規定があり、 そこから必然的にshortとintが16ビット、longが32ビットなければならないということが導かれる。 1バイトが8ビットである環境なら当然2バイトと4バイトになる。 「3.の等号は成り立つとしても片方しか成り立たない」は違うような気がするけど。
570 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 20:42:07 ] 知っているつもりのことでも、きちんと知らないことってあるんだなあ。
571 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 20:42:24 ] >>567 新ANSI C言語辞典って本だけど。
572 名前:デフォルトの名無しさん [2007/04/07(土) 20:52:41 ] すごい細かいんですね。 大丈夫かな?? 無理かな??不安になってきた。
573 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 20:54:37 ] 「どこでも同じとは限らない」ということだけ知ってればOK。
574 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 21:07:34 ] つまり sizeof(short)=2 sizeof(int)=3 sizeof(long)=4 な処理系があればいいんだ、過去の俺を納得させるだけの為に
575 名前:デフォルトの名無しさん [2007/04/07(土) 21:13:02 ] だからどーやってCPUがバイト割り当ててんだよ その仕組みを教えればいいだろ
576 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 21:14:09 ] 説明しきれないんだろ? 少なくとも俺はわからん
577 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 21:16:23 ] CPU < short形が2バイトだの、charが8ビットだのってのは、俺が決めてるわけじゃねーよ。
578 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 21:17:21 ] 誰がきめてんだよ
579 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 21:19:28 ] 設計者じゃねーの?
580 名前:デフォルトの名無しさん [2007/04/07(土) 21:20:05 ] 何になるの?? こんな質問方法では、だめか・・。
581 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 21:21:16 ] 設計者なわけないだろ あたらしいCPUがでたら また設計者があたらしく定義しなおすのか?
582 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 21:21:50 ] >>575 CPUを設計する人が「これは32ビットCPUだ(1バイト=8ビット)」と言えば、 コンパイラを設計する人はそのCPUで動くコードを出力するコンパイラはintを4バイトにするという具合。
583 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 21:24:49 ] コンパイラを設計するひとは CPUが新しくできるたびに設計しなおさないといけないってこと?
584 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 21:25:31 ] CPUのレジスタサイズと、コンパイラの整数型は必ずしも一致してないんだな。 32bitCPUでも、int8のコンパイラがあったり、int64のコンパイラがあったり。
585 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 21:25:33 ] すんげぇめんどくさいんですね 出来たばっかりのCPUだとプログラミングできないんじゃん
586 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 21:26:58 ] 毎度新しく決める必要はない。 たとえば80386から続くIntelの32ビットCPUシリーズはIA-32と一括りにされるという具合。
587 名前:デフォルトの名無しさん [2007/04/07(土) 21:27:27 ] なるほど