- 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
- 75 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 21:44:06 ]
- コメントに罫線やら装飾の多いヤツは素人。
- 76 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 21:45:05 ]
- >>74
訳するとこんな感じ? /* あなたがこれを理解できるなんて期待してないです */ /* これ見ても分からないっしょ? */ /* 分かるかな〜? 分かんね〜だろ〜な〜 */
- 77 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 21:56:24 ]
- VC++ って VBA マクロ使えなかったっけ?
- 78 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 22:04:57 ]
- */の位置を気にして半角スペースを駆使するような奴は負け
端的に言えば>>59なわけだが
- 79 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 22:08:29 ]
- 40カラム〜80カラムは問答無用でコメント、という規約のプロジェクトがあった。
- 80 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 23:25:36 ]
- カラムなんて言葉を聞くと
FORTRAN を思い出して嫌になる
- 81 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 23:58:35 ]
- >>79
某大手が未だにそんな規約を持っている。 極悪なのは、関数内の最初のインデントと二段目のインデントの量が違うと言う……
- 82 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 00:16:15 ]
- つ c-set-offset
- 83 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 01:23:11 ]
- /*******************************
* 俺はよくこれを目にするんだが * たぶんずれるからポップうp * >>83 */
- 84 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 01:27:09 ]
- >>83
を使え。
- 85 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 13:01:51 ]
- 俺も>83形式だなー
但し一行目の * の数は5個固定で、その右にコメントの頭を入れるんだが。
- 86 名前:65 mailto:sage [2007/03/23(金) 20:15:44 ]
- コメントにも色々あるんもんですね
>定番のドキュメント生成ツール これってDoxygenみたいなやつですか?
- 87 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 20:32:55 ]
- doxygenは /** で始まり */ で終わるコメントにも対応しているな。
俺は大抵/*! 〜 */を使うが。
- 88 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 20:41:15 ]
- javadoc形式に対応してるんだっけか
- 89 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 00:38:26 ]
- どうして構造体はmain外のグローバルなところに書くのが多いのでしょうか
- 90 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 00:39:14 ]
- main の外で使うから
- 91 名前:・∀・)っ-○◎● mailto:sage [2007/03/24(土) 00:40:34 ]
- 関数内で定義したら関数内でしか使えないから
- 92 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 01:35:21 ]
- doxygenは///や//!にも対応しているからC99なら///で書ける。
- 93 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 12:08:14 ]
- xmlコメントにも対応してるんでしょうか?>doxygen
- 94 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 13:17:26 ]
- //コメントを/*コメントに変換するツールないかなぁ。
// printf("///"); // return 0; /* ぬるぽ */ こんな行のこと考えると結構面倒だ。
- 95 名前:・∀・)っ-○◎● mailto:sage [2007/03/24(土) 13:30:53 ]
- つPerl
- 96 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 13:35:01 ]
- >>95
Perlで書いても面倒だと思うんだけど。 そもそも今時規格に乗っ取ってないという理由で//コメントを禁止する某芝の某氏が阿呆だと思うのだが。 つーか、人には禁止しておいて自分では使ってるしおまけにprintf()で"%lf"なんか使うし……
- 97 名前:・∀・)っ-○◎● mailto:sage [2007/03/24(土) 13:37:51 ]
- そこでJIS-X 3010:2003ですよ
- 98 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 13:39:17 ]
- エディッタなりIDEなりの機能使ってマクロ組めばいいよ
エンター押した瞬間にその行の文字列評価して置き換えるようにすりゃ手軽
- 99 名前:・∀・)っ-○◎● mailto:sage [2007/03/24(土) 13:41:26 ]
- 他人の書いたコードの整形を自分好みに直すためだけにxyzzy使ってる
- 100 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 13:48:54 ]
- 取り敢えず、//→/*と$→*/を変換して>94に挙げたような怪しげな行をリポートするスクリプトをawkで作った。
リポート行を(コンパイラのエラーと同じように)xyzzyで取り込んでタグジャンプすれば後は手作業で何とか、かな。 >>97 kwsk >>98 30ファイル30000行もあるとやってられない。 >>99 私も普段使っているのがWin2kなのでWinSCPのエディタをxyzzycliにしてLinuxのファイルも整形して読んでる。 #編集はvimですることが多いけど。
- 101 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 13:52:50 ]
- //コメント禁止って酷いよね・・・
- 102 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 14:01:15 ]
- /* */ 使われてるから、全体的に広くコメントアウトしたい場合、#if 0 〜 #endif を使うが
そんな環境に限って VC6.0 だったりするから色が変わってくれない
- 103 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 14:11:53 ]
- そういうスクリプトや小物ツールを自前でサッと組めるようになりたい・・・
- 104 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 15:04:29 ]
- >>103
生の//を変換するだけで、/* // */ とか "//" を考慮しなくていいならawkでこれだけ。 一応、/* *//* */は大丈夫。 awk '/[^*]\/\// || /^\/\// {sub("// *", "/* "); sub(" *$", " */");} {print;}' 実際には他にも、3個以上の/の連続ををどうするとか、//で終わる行をどうするとか、 行頭//が複数行続いたらどうするとか、考え始めると切りがない罠。
- 105 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 15:26:10 ]
- /**********************************/
はまだいいとして、 右側をそろえて */ するのって意味あるんかいな? 本当に重要な内容を書きにくくするだけなんだが。 100歩譲っても /********************************** * ほげほげ **********************************/ あるいは /////////////////////////////////// // ほげほげ /////////////////////////////////// って社内で言ったら「右をそろえたほうが見やすい」といわれた。
- 106 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 15:29:47 ]
- 社内にはプロポーショナルフォントで組んでる変態とかいるから、
行頭のインデント以外は桁をそろえるようなことはしないなあ。
- 107 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 15:41:32 ]
- 右端を揃える奴はキモイ
どれぐらいキモイかっていうと GNUのコーディング規約の中括弧の1000分の1くらい
- 108 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 15:47:44 ]
- 入門編にいる僕にはわかりません><
- 109 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 16:04:10 ]
- 最近のエディタならコメント部分の色が変わるのが普通なんだからわざわざ
/********************************** * ほげほげ **********************************/ とかやってコメントを目立たせる必要はないんじゃまいか。 /* * ほげほげ */ で充分ですよ。解ってくださいよ。
- 110 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 16:06:19 ]
- >>105
漏れのところでは、「右側を揃えたいなら揃えてもいいから、間違ったコメントを書くな」という方針にした。 で、実際に不適切なコメントをリリース版に残した香具師には右側揃え禁止措置を取った。 ……そして誰も右側を揃えなく(揃えられなく)なった。
- 111 名前:・∀・)っ-○◎● mailto:sage [2007/03/24(土) 16:17:29 ]
- >>100
ISO C 1999のJIS版 //コメントは仕様に入ってるし%lfも全力でおk
- 112 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 22:36:53 ]
- >>109
色がついてなくても、下ので十分だよ。 行頭になんか印がついてれば、すぐわかるだろ。
- 113 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 22:38:19 ]
- /*
これでもいいかゐ? */
- 114 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 22:40:30 ]
- それで十分
- 115 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 22:42:56 ]
- >>113
それはだめ。
- 116 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 22:45:32 ]
- なんで?(^ω^;)
- 117 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 22:49:15 ]
- /*
* じゃあこれからコメントの標準はこれで。 */
- 118 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 03:33:32 ]
- >>116
grep で引っかかったときにコメントかどうかが判らないから。 とはいえ、1行でも全部みれば判るけどね。
- 119 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 04:25:36 ]
- おまえら楽しそうだなw
おれも楽しいけどw
- 120 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 05:17:34 ]
- #ifdef _DEBUG
#define DEBUG_ONLY #else #define Paste(a, b) a##b #define DEBUG_ONLY(fn) Paste(/, *) fn Paste(*, /) #endif こんなマクロを作ったんだが、これって邪道?
- 121 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 05:26:30 ]
- >>120
自己レスだがどう考えてもこっちの方がいいです。 本当にありがとうございました。 #ifdef _DEBUG #define DEBUG_ONLY #else #define DEBUG_ONLY(fn) #endif
- 122 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 07:55:21 ]
- 漏れはこんなの作ってみた。
#ifdef DEBUG #define IF_DEBUG 1 && /**< 常に有効 */ #else #define IF_DEBUG 0 && /**< 常に無効(このマクロの右辺は生成されない) */ #endif 警告は出ちゃうけどね。
- 123 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 12:59:08 ]
- 俺はいつもこれ使ってる。
release 時は最適化で消えるはず。 #ifdef NDEBUG #define DEBUG if(1); else #else #define DEBUG if(0); else #endif
- 124 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 13:00:58 ]
- 俺は C で書く時は // は使わんな。
-ansi -pedantic -Wall で警告すら出ないように ガチガチに書くようにしてるから、 // 使うとエラーになる。
- 125 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 13:12:05 ]
- そこで-std=c99ですよ
- 126 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 13:48:50 ]
- わざわざCで書く理由ってのは移植性やpoorな環境の問題、レガシーコードの
保守などがメインだと思うんだが…… C99なんて使う機会あるか? C99使えるぐらいならC++が使えないか?
- 127 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 13:57:34 ]
- int (*f(int argc, char* argv[]))(int argc, char* argv[]), (main);
↑ こういう変態な書き方ってどうやったら読めるんすか? っていうか何やってるんすかこれ?
- 128 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 16:49:49 ]
- >>127
mainの再宣言のようだけど
- 129 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 21:23:21 ]
- Filename_ni_comment_wo_kakeba_iijyo.c
- 130 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 21:48:45 ]
- /*
読み込んだ実数値と0.1との和・差・積・商を表示 */ #include<stdio.h> int main(void) { double num; printf("実数を入力してください:"); scanf("%1f",&num); printf("0.1を加えると%fです。\n",num+0.1); printf("0.1を減じると%fです。\n",num-0.1); printf("0.1を乗じると%fです。\n",num*0.1); printf("0.1を除すと%fです。\n",num/0.1); return(0); } なぜかどんな実数を入力しても0を入力された扱いになってしまいます。 どこが悪いのでしょうか?
- 131 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 21:49:58 ]
- >>130
www.linux.or.jp/JM/html/LDP_man-pages/man3/scanf.3.html %lf
- 132 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 21:50:07 ]
- %1f
%lf
- 133 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 21:50:17 ]
- %1f
- 134 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 21:52:01 ]
- >>131-133
ありがとうございます!!! ってか0とOを間違えるくらい恥ずかしい…orz
- 135 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 23:28:41 ]
- なんだ、floatで精度指定してんのかと思ったらdoubleだったんだ。
- 136 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 13:22:37 ]
- C言語ゲームを作成中です。他スレから移動です。
6つのファイル公開中しています(読みやすくしたつもりです。>_<;) ここならCの意見を・・・記述スタイル、変数名など・・・ 一通り完成しましたが、大幅に改修している初期の段階の内容です。 現段階は自機が動いて弾を撃つまでです。その他の内容はReadme.txtより コンソールシューティングゲーム gamdev.org/up/img/9215.lzh
- 137 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 13:28:35 ]
- >6つのファイル公開中しています(読みやすくしたつもりです。>_<;)
先ず、日本語の勉強をすべきかと。
- 138 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 14:19:18 ]
- C++ じゃん・・・と思ったら、中身はほとんど C だな。
グローバル変数使い過ぎというのが先ず目につく。クラス化汁。 Console みたいに内部変数にすると不便だというなら、 Singleton パターンを使えば、そのクラスのインスタンスを1つに保証できる。 関数でデータ処理させる際のオーバーヘッドが気になるなら inline 関数にすればいい。 (って、C のスレの回答じゃないな、これじゃ) 名前のローマ字はまあいいとして、player のメンバ名が気になる。 px, py, pspd の p は player の、 ptx, pty, ptflg の pt は player の tama の略だと思うけど、 プレイヤーの情報と弾の情報が同じレベルで混在してるのはどうなのかと思う。 struct tama { float x, y; char fHassha; }; struct player { float x, y, spd; struct tama tama; }; という風に切り分けた方がいいんじゃないかな。 x, y も、座標構造体やらクラスやらにした方がいいと思う。 GetRandom は、もうちょい double でキャストしないと、オーバーフローが怖い。 (eny + ei)->ex は eny[ei].ex じゃダメなのか? まあ、このあたりは趣味も関わってくる話かもしれんが。 SYori は Syori だよね? 0, 1 のフラグは、char じゃなくて bool にしようぜ(って、これも C じゃないな)。 InitFunc の中身は全部機能別に関数化した方が読みやすいかもと思った。 まあ、関数化してない部分は短いから、別にいいかもしれんが。
- 139 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 14:31:39 ]
- ゲームの場合、綺麗に書く必要はそれほど無いので、
とにかくゲームとして仕上げることが大事。 一本完成すると自信になる
- 140 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 15:24:54 ]
- >>136
ヘッダファイルの読み込み順を意識しないといけないのは嫌いだ
- 141 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 15:56:31 ]
- レス有り難うございます^^
>>137 すまそ >_<; >>138 C言語は一定のレベルになると、まったくわかっていない!調べます。 構造体、double、(eny + ei)->ex は eny[ei].ex とか・・・あと変数名も検討する 自機と自機弾は分けようかとしたが・・・現在は暫定ような感じです。t は弾の略です^^ PlayerSYoriですよね!直しました。気づかんかった… 機能別関数化は大きくなった時など考えていきます。 クラス、インスタンス、Singleton パターンinline 関数この辺は Cの後に挑戦したいと思っています! >>139 確かに…結構挫折が多かったのでよくわかりますorz 一つ完成させるのが大事! 一応一通り形はできたのですが・・・(そのほうが質問しやすいと思ったから) しかし、理解せずに進んだため信じられんほど、時間が かかり過ぎた >_<;毎日泣きそだった。ぐぐりまくってもわからんし… >>140 見直してみます>< まずは、グローバル、構造体、ヘッダーをみてみます。
- 142 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 17:06:35 ]
- >>136
向こうのスレを見ている者だが、最初に比べると随分上達したな。 個人的にはローマ字命名はちょっと…だが。
- 143 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 17:44:57 ]
- >>141
どのスレから来たんだい?
- 144 名前:デフォルトの名無しさん [2007/03/28(水) 18:50:32 ]
- ある人が書いたソース見ていたら、ヘッダファイルに以下のような部分を
見つけました。 #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #ifdef _MSC_VER #include "resource.h" #endif 私の疑問は、 "resource.h" というファイルを探したのですが、 見当たらなかったのですが、エラーなくコンパイルできます。 その理由がわかりません。教えて下さい。
- 145 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 18:58:55 ]
- 必要とされてないからでしょう
- 146 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 19:50:41 ]
- >>144
#ifdef _MSC_VER #include "resource.h" #endif もし _MSC_VER が定義されていたら resource.h をインクルードする _MSC_VER が定義されていないならインクルードしない 君の環境では_MSC_VER が定義されていないので resource.h がなくても問題ない
- 147 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 20:08:08 ]
- K&RのP270に
「宣言中の最初の添え字は配列が消費するメモリ量を決めるのには役立つが、 添え字の計算には関係しないということである。」 という文があるのですが int array[2][4][6]; と宣言した場合の2,4,6はそれぞれ配列の要素数を決めているだけで *(array[2][4]+6)のシンタックスシュガーな訳ではないってことですか?
- 148 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 20:14:08 ]
- 「最初の添え字」つまり、その例では2のこと。4,6は関係する。
- 149 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 20:35:08 ]
- arrayの各要素のメモリ内での位置を計算するのに2は必要ないというだけの意味。
- 150 名前:147 mailto:sage [2007/03/28(水) 20:36:24 ]
- >>148
添え字の計算には関係しない、の意味がよくわからないんですが array[1][2][3]は*(array[1][2]+3)に読み替えられて、array[1][2]は配列だから (array[0]+1)[2]になるんですよね?
- 151 名前:147 mailto:sage [2007/03/28(水) 20:39:32 ]
- すいません更新してませんでした
>>149 どういう風に必要ないのかいまいちよく分からないです…
- 152 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 20:41:33 ]
- たとえばarray[1][3][5]のアドレスはarrayの先頭要素から、
(1)*4*6+(3)*6+(5)要素サイズ分だけ離れていると計算できるから、 最初の添え字のサイズである2は計算に必要とされない。 array全体のサイズを決めるためには2も必要。
- 153 名前:152 mailto:sage [2007/03/28(水) 20:49:36 ]
- 152の説明だと正確ではないか。
array全体が一塊で割り当てられているときは152の計算でいける。 まあ、そうでなくて、 array = (int***)malloc(2*sizeof(int**)) array[.] = (int**)malloc(4*sizeof(int*)) array[.][.] = (int*)malloc(6*sizeof(int)) みたいになっていたとしても、やはり最初の添え字サイズは必要ない。
- 154 名前:147 mailto:sage [2007/03/28(水) 20:50:43 ]
- >>152
あ、最初の添え字の数-1までしか必要とされないって意味ですか
- 155 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 20:54:15 ]
- >>153
たいていのコンパイラはint array[2][4][6];って宣言してたらまとまった領域を割り当てると思うがな
- 156 名前:デフォルトの名無しさん [2007/03/28(水) 20:57:33 ]
- 147 の質問に対して153のメモリ確保の説明は、関係ないんじゃあないのか?
147は int array[2][4][6]; と宣言した場合の質問をしているんだよな。
- 157 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 20:59:30 ]
- >>154
「添え字の計算」というのは例えばarray[0][1][2]みたいにindexが与えられた時に それはメモリ上のどこにあるのかを計算するって意味だ その計算には配列の最初の次元の大きさは必要ないよってK&Rは言っている
- 158 名前:152 mailto:sage [2007/03/28(水) 21:02:03 ]
- >>155-156
うん、そうだね。いらないことを気にしすぎて余計なことを書いた。
- 159 名前:147 mailto:sage [2007/03/28(水) 21:06:46 ]
- >>157
あ、array[1][3][5]の添え字計算だと(1)*4*6+(3)*6+(5)みたいに 当然(式の中の)最初の添え字の1も含めて1,3,5は当然使うし 元の宣言にある4と6も使うけれど、同じく元の宣言の中にある2は使わないってことですね ようやく分かりました、皆さんどうもありがとうございます
- 160 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 21:10:18 ]
- 要するにint a[5];でa[x]とアクセスするのに、
5という情報は要らない(要るのはintという型情報)、ってだけ。
- 161 名前:デフォルトの名無しさん [2007/03/30(金) 01:20:50 ]
- ↓のようなことって技術的に可能ですか?
何分↓スレに専門知識を持った人間がおらず、真偽が分からなかったので ここで質問させていただきました 558 名前: 麒麟です ◆qJFjoQ6aTk 投稿日: 2007/03/29(木) 22:06:29 ID:ENSP49sq そうだ 一応書いておくわ CとかJavaとか言語でわけてる現状がそもそもおかしいから ソースコード翻訳機作ってやってるよ おまえも参加しろwww 役に立たない下っ端を使えるようにする秘策だぞwwww 561 名前: 麒麟です ◆qJFjoQ6aTk 投稿日: 2007/03/29(木) 22:12:11 ID:ENSP49sq 意味分からないのか?? コンパイラじゃなく ソースコードをそれぞれに変換するってことだぞ 意味分からないかな?? 564 名前: 麒麟です ◆qJFjoQ6aTk 投稿日: 2007/03/29(木) 22:14:33 ID:ENSP49sq たとえば Cで書いたコード100万行を 自動変換で Javaコードに変換するって奴だwwwwww 分かるかな??? ttp://human6.2ch.net/test/read.cgi/dame/1174933496/l50
- 162 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 01:26:14 ]
- >>161
多少手作業部分やなんらかの制限等は生まれるだろうが、 いったいどこに本質的に不可能だとされる可能性があるんだ?
- 163 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 01:26:47 ]
- しまった。マルチにマジレスしちまった。orz
- 164 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 01:31:45 ]
- 実例の1つとしてあげておくけど、初期のC++コンパイラは、
まずCへ翻訳してからコンパイルしていた。
- 165 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 01:47:21 ]
- 言語的には難しくない、100万行のlibcのみ依存のソフトなら自動変換できる。
でも、たとえば、Win32とか、BarkleySocketに依存していたら、 ライブラリの流儀をJavaに直すのは難しすぎる。 ましてやハードを叩いてたりすると。
- 166 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 01:49:53 ]
- >>164-165
お前らなにマルチにマジレスしてんだ?
- 167 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 17:38:14 ]
- ちゃんと動いたプログラムのソースに、大きな配列を追加してBCCでコンパイルしたら、
全く関係ない所でアプリケーションエラーで終了するようになったのですが、 メモリ不足でしょうか。mallocとか面倒だけどしないとだめでしょうか。 ><わかんないんです。おしえてください。
- 168 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 17:41:38 ]
- >>167
エラー貼ってみて
- 169 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 17:44:12 ]
- >>167
ソースplz
- 170 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 18:07:21 ]
- >>167
アプリケーション エラー エラーが発生したため、(ファイル名).exeを終了します。プログラムをもう一度開始する必要があります。 エラーログを作成しています。 >>169 3000行超えちゃうので無理です>< とりあえずグローバル変数宣言だけで50行で、 int型の要素が100個ぐらいの配列と、 char型で256文字入る配列を4個ほど宣言してあります。
- 171 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 18:09:22 ]
- どこかにアップロード汁
- 172 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 18:09:57 ]
- グローバル変数多過ぎだろ。
- 173 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 18:15:31 ]
- >>172
グローバル変数にしないと各関数の引数に変数や配列のポインタを 10個ぐらい渡さないといけなくなっちゃうんで… 大小まとめて数えて関数を30個ほど作ってあるので大変です…。
- 174 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 18:17:28 ]
- >>170
10分の1くらいにおさえたら、どうか?
- 175 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 18:17:42 ]
- >>173
釣りうぜえ さっさとソース&エラーうpしろやクズが
|

|