1 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 23:27:18 ] C言語の*入門者*向け解説スレッドです。 ★前スレ C言語なら俺に聞け(入門編)Part 60 pc12.2ch.net/test/read.cgi/tech/1264920499/ ★過去スレ makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000 ★初心者、初級者の方は他の質問スレのほうが良いかもしれません。 例えば 【初心者歓迎】C/C++室 Ver.72【環境依存OK】 pc12.2ch.net/test/read.cgi/tech/1267775473/ とか ★教えて欲しいのではなく宿題を丸投げしたいだけなら ↓宿題スレ↓へ行ってください。 C/C++の宿題片付けます 134代目 pc12.2ch.net/test/read.cgi/tech/1263824755/ ★C++言語についてはなるべく聞かないでください。C++対応明記スレへどうぞ ★分からない事をなるべく詳しく書いて下さい。 ★ソースコードを晒すと答えやすくなるかもしれません。 # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること # サイズが大きい場合は宿題スレのアップローダ等を利用してください ★開発環境や動作環境も晒すと答えが早いかもしれません。 ★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
175 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 20:40:07 ] 引数は整数になってると思うけど桁数を増やしたいって話? 20桁未満ならgccはlonglong使えるんじゃないか
176 名前:165 mailto:sage [2010/03/09(火) 21:15:02 ] >>174 試してみます。 >>175 桁数を増やすのと、 例えばint型を使っていて、 引数argv[1]がその上限を超えたときに エラーにしてくれるようなチェック方法を知りたいです。
177 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 21:45:35 ] >>176 コマンドラインオプションの解析は getopt(3)でいいんじゃない? 自分で判定するのは面倒でしょ。 パラメタを整数にするのも、strtol とかstrtoll あたりでいいかと。 上限超えたらどうなるかは、man 見れば載ってると思う
178 名前:デフォルトの名無しさん [2010/03/09(火) 23:12:10 ] ヘッダファイルで #define RED 1 #define BLUE 2 ..... #define YELLOW 100 と数百個定義しているのですが(全部定義しているわけではない) 結構順番を入れ替えます.そこでインクリメンタル的なものをつかえないかと思っているのですが, よい方法ございますでしょうか? よろしくお願いします.
179 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 23:14:01 ] enum
180 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:36:16 ] ヒープメモリとスタックメモリって読み書き速度に差はあるの?
181 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:37:55 ] >>180 スタックは頻繁にアクセスされるためCPUキャッシュに乗った状態の可能性が高い
182 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 17:09:32 ] スタックもヒープも物理的に差はない。 C言語がやりくりする一定値のメモリがスタック。OSに問い合わせしないので解放取得が速い。 ヒープはOSに問い合わせる。 スタックもプログラム開始時にOSに問い合わせて取得する。 OSはこの二つの違いは認識しない。使われていなければ、スタックでもページアウトする。
183 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 17:12:31 ] 100Mとか多めに確保したヒープにランダムアクセスしたら遅くなるが 確保できたとしてスタックでも同じ程度の速度。 はじめに一定値を確保してあるか無いかの違いだけ。
184 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 17:13:31 ] スタックはメモリプールという機能と同じってこと。
185 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 17:28:47 ] Windowsを初め、比較的新しいOSではスタックも追加確保 されるる時にOSに問い合わせます。
186 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 17:31:37 ] XPはスタックオーバーフローするが。 vistaからはそうなったか。
187 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 18:12:17 ] >>185 OSが許容するスタック上限値よりずっと低いスタック量で プロセスを起動しても、行儀の良いプログラムだったら 問題がないんでそうしてるわけですね。 少し「仕事をする」(再帰とか使ってたり、ローカル変数に 配列とか大量に確保する)プログラムだったら当然それでは 足りないからスタックオーバーフローする。そのタイミングで OSはスタックを追加してプロセスを停止させず続行するわけ です。
188 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 18:30:49 ] OS的には、変数は極力グローバル変数に確保し、再帰を使わない プログラムであることを望んでいるというわけですね
189 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 18:43:30 ] OSはスタック追加などしないぞ。OSから見たらカタックとヒープの違いはない。 MS-DOS Windwos3.1では区別はあったとおもうが。 Windwos3.1はスタックの固定領域を指定して使い切ったら駄目だった気がする。
190 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 19:00:26 ] MS-DOSにおいて、カーネルを含むプログラムの実行に確保できるメモリ空間(コンベンショナル・メモリ)は8086のアドレス空間の最大1MBである。 ほとんどのコンピュータでは、この空間にBIOS ROMやメモリマップドI/O、VRAMなどの空間も存在するため、 アクセス可能なメモリ空間は最大でも640KBから768KB程度であった。 ただし、バンクメモリやEMS、プロテクトメモリ(80286/386以降)等のコンベンショナルメモリ以外の領域・手段の利用が一般化していたため、 「貴重な」コンベンショナルメモリがこれらの領域によって圧迫されることはなかった。 日本語入力用のFEPなどの常駐型のデバイスドライバを使用すると一度に使用できるユーザーメモリはさらに減少するため、 ユーザーはEMSやXMS、HMAやUMBなどの拡張メモリの管理機能を利用して、 辞書や常駐部やMS-DOSシステムの一部をそれらへ配置し、コンベンショナルメモリの圧迫を少しでも避けることが重視されるようになった。 「とりあえず動く」という状態を作るだけであればエンドユーザーがこれらを直接操作する必要はほぼ無かったが、 「とりあえず」に飽き足らず無駄を省き最適な設定をするためには知見と試行錯誤が要求されるある種の職人芸的な資質が要求されたため、 これらの事情が「MS-DOSの環境設定は非人間的で困難なものであった」とする後世の評価を招く原因ともなった。 MS-DOS - Wikipedia
191 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 19:32:23 ] XPでもコンベンショナル・メモリのような設定あるんだがな。 デスクトップアプリケーションヒープ、非対話型サービスヒープの設定可能。 ここ変えないといくらメモリふやしても、メモリ不足改善しないことある。
192 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 20:22:20 ] Win3.1の場合、8086向けのコンパイラを若干改造した もので生成出来るコードでGUIアプリが作れるという のが基本設計 8086ではスタックの動的変更を行う一般的 方法のCPUアーキテクチャーレベルのサポートは 殆ど無いしコンパイラでもサポートしている例は 皆無。
193 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 20:26:14 ] おまえは勘違いしている。 スタックというのは、OSから見たら特別な領域でない。 スタックとヒープというのは、C言語(その他)から呼ばれているだけ。 どっちもOSに合わせたメモリ取得関数を呼び出して確保する。同じもの。
194 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 20:30:58 ] 昔のOSは区別してあった領域があるかもしれないが いまのメモリ確保はどれ使っても、OSレベルでは結局は一通りのメモリ確保しかないだろ。 レジスタとかGPUとかは別。
195 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 20:39:53 ] >>179 ありがとうございました. うまくいきました.
196 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 21:20:04 ] 暴れてる長文バカも 同じくらい環境依存なのに startupコードやセクションの話になるとサクッと黙るんだよな
197 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 23:15:37 ] >>193 WindowsはCPUレジスタそのものを管理しないって? んなことない。ないからこそ他のプロセッサ向けに移植 されていない。初期のWinNT(4.0まで)はプロセッサ が今のように分化してないから対応できたんだろうが さすがに無理になってしまって現在はIntel以外は非対応
198 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 23:19:13 ] レジスタやGPUメモリは専用命令で扱えるが スタックとヒープを区別して扱う命令はない。 OSではこれらの差はない。
199 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 23:19:18 ] おっとMovail (CE)とかは上位レイヤーや言語インターフェース の互換性があるだけでメモリアーキテクチャーはIntel版とは全然違ってると考えたいね。HD非搭載なマシンでも動作させる必要がある わけだから違って当然だけど
200 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 23:25:22 ] 入門スレであまり難しい話しないでよ
201 名前:デフォルトの名無しさん [2010/03/10(水) 23:33:17 ] >>197 alpha とかサポートやめた主な理由は商業的なことで 儲かるとなれば技術的な問題はどうとでもなったはず
202 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 01:06:16 ] >>198 何を根拠にそういうこと言い切っちゃうの? OSが無い環境もあるし、物理的にアクセス速度が違うメモリに振り分けられることもあるだろう。 結局は環境を絞らないと何も言えない。
203 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 02:11:18 ] Javaならどうだろうか?
204 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 02:36:13 ] Intelと一口に言っても、x86/x86-64とIA-64はまったく別物だしね。
205 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 02:55:40 ] CPUが特殊命令持っていて、スタック動作を速くすることが出来たとしても それが付いてないCPUでも、スタック、ヒープメモリは使えないといけない。 これより、C言語のスタックとヒープはソフトウェアとしての用語。
206 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 02:58:52 ] コンパイラの実装次第だがWindowsXP以降では、 スタックもヒープも同一のメモリ確保関数を使っているだろう。 すべてのコンパイラを知っているわけではないが。 CPUレジスタやCPUキャッシュのみをスタックに使う実装も出来ないことはないけど ないんでは。
207 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 03:24:29 ] 「スタック処理支援命令が付いていないプロセッサなどCPUと 呼んではいけない」 という意見には必ずしも賛成ではないが、付いていることを 前提とするかしないかでは、OSのカーネル開発の開発者の 集団力学には大きな影響が発生し、それがOS全体に 作業環境全体に与える影響力は計り知れず、スタック支援命令が ついたプロセッサ上のOSしか知らない俺にとっては とてもじゃないが反対だとも言えない。
208 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 04:07:46 ] ハードウェアのスタック機能と、C言語のスタックとヒープは 名前と動作は似ていても別物。 C言語のスタックメモリは複雑だろ。auto変数や関数呼び出しや再帰とか。 ハードウェアの機能に丸任せできないだろ。
209 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 04:14:51 ] >>181 で答え出てるのにまだ続けるのか
210 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 04:23:33 ] C言語に限らずプログラミングで頻繁に出現する データ構造の総称的名称としてのスタックやヒープと CPUが決定する「具体的な」ものとでは使われる コンテクストが全く違うだろうな(特に範疇性) 同じ用語を用いていてもコンテクストが全く異なる ので同じコンテクストで使われていると決めつける と何かと混乱の原因になりやすい鴨
211 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 04:48:24 ] 文字列が数値かどうか判定するのにisdigitを使うと マイナスや小数が誤判定されてしまいますが これらも正しく数値と判定させるためには自前で関数用意するしかないのでしょうか。
212 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 04:52:39 ] >>211 isdigitは数字かどうかを判定する(一般には)マクロ なんで、数値かどうかの判定を一発でするのは 無理 受け取った文字列をsscanf等で数値に直したものを 人の目を通して確認してもらうのが一番 0.9994242123123232132という文字列を数値 に直したのを表示させた時に 0.9994242123123456789 となった場合にそれが問題なのかどうかは状況に 依存。
213 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 05:41:48 ] >>211 atoiやatof等で不満なら自作するしかないね。
214 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 06:01:50 ] レスどうもです。 sscanfだと"1xyz"みたいに先頭だけ数字の文字列も数値として通ってしまうなぁ・・ と試行錯誤してたらatofで完璧でしたどうもありがとうございます。
215 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 06:10:06 ] とおもったらatofでもやはり先頭が数字だとだめでした;;
216 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 06:32:11 ] >>208 べつに、auto変数や再帰や関数の引数で特別なことはやっていないし C 言語のスタックメモリが複雑とも思えませんけれども。
217 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 07:00:12 ] >>215 じゃぁ、自作だね。 チェック関数だけ書いて後はatofに流すのが無難かなっと思うけど 用途や目的次第なのでお好きにどうぞ。
218 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 13:54:53 ] >>215 #include<stdio.h> double get_value(const char *str) { double value; int n; if(sscanf(str, "%lf%n", &value, &n)==1) { if(str[n]=='\0') return value; } return -1.0; } #define TEST(str) printf("[%s]=%f\n", str, get_value(str)) int main(void) { TEST("0.12345"); TEST(" 0.12345"); TEST("0.12345 "); TEST("1xyz"); return 0; }
219 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 15:01:30 ] 素直にstrto{l,ul,d,f,ld}を教えてやれよ
220 名前:デフォルトの名無しさん [2010/03/11(木) 18:54:28 ] スレチかもしれませんが detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1137870116 これ、答えて下さいませんか?
221 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 18:56:35 ] >>220 スライドショー フリーソフト でggrks
222 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 19:57:20 ] 断片化対策にこういうことってやっていいの? サイズ違うのにキャストしても大丈夫かな? void *my_allocate(size_t size) { return malloc(size / 4 * 4 + 4); } void my_deallocate(void *address) { free(address); } int main(void) { char *pc = (char *)my_allocate(sizeof char); *pc = 'c'; printf("%c", *pc); my_deallocate(pc); return 0; }
223 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 20:05:17 ] >>222 多いのは大丈夫 不足するのはダメ
224 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 21:59:52 ] >>222 4バイト単位で大きさ調整しても意味なさそう。
225 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 23:24:21 ] その式だと、最初から4の倍数だった時、必要なサイズより4バイト大きくなってしまう 普通はビット演算を使うと思う (size + 0x00000003) & 0xfffffffc
226 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 23:46:52 ] >225 それはsize_tが何バイトだと想定しているわけ いや、むしろ何ビットといった方が良いのかな
227 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 01:10:36 ] (size + 3) / 4 * 4 だな
228 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 01:54:07 ] >>226 それなら、0xfffffffcを~(size_t)3にでもすればいいと思う。
229 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 02:32:04 ] ~((size_t)3)かな
230 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 02:41:42 ] 昔は乗除算は必ずシフトに展開しろと教わったもんだが 今のCPUだとコストに差はないのかな (size + 3) >> 2 << 2
231 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 02:48:41 ] 演算子の強度低減ぐらいなら処理系がうまく最適化してくれるので 意図をそのまま表現するのが良いとされるようになってきたような
232 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 02:59:55 ] / 4 * 4 も >> 2 << 2 も & 0xfffffffc に最適化してくれるね
233 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 03:35:43 ] 素直に「4の倍数に切り上げ」ってコメントに書くわ どんなに簡単な処理でもコメントがあった方が読みやすいし とくに何年も前に書いたソースだと
234 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 15:01:25 ] >>233 まさかとは思うが、こんなコードは書かんでくれよ。 ++count; // カウントのインクリメント
235 名前:デフォルトの名無しさん [2010/03/12(金) 15:08:47 ] 教えてください。 システムソフト開発の会社に入ってそろそろ10年。 サポートや試験担当ということもあって、 まったく言語というものを知らずに来ました。 最近、なんかまずいかな? と思い始めて「猫C」を買って勉強しています。 でも、特に目的がないせいか、 この本やったあと次はなにを勉強すればいいかわかりません。 なにかおすすめの書籍があれば教えてください。
236 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 15:11:00 ] なにがまずいの?
237 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 15:11:31 ] 会社の言語やってるやつに聞け 実用で使われないやつやっても無用の長物 配置転換でリストラにならないように現場で使われる率高いやつ
238 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 15:13:50 ] C言語などいくらやっても徒労に終わる 基礎が出来ても完成品が出来るまでの道のりは険しい 自分でした独習など焼け石に水状態 会社でやってるのをピンポイントでやるべき
239 名前:デフォルトの名無しさん [2010/03/12(金) 15:17:38 ] ありがとうございます。 .NET(C#?)の問い合わせが多いので その言語のサンプルを読めるようになると サポートの幅は広がるよね。 とは言われました。 そうか、と思いつつ、 基本である(と思っている)C 言語の初歩本くらい やっといた方がいいのかな、 と思ってせこせこやっていました。
240 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 15:20:59 ] あとC#で何分野やってるのかも聞くといい。 GUIとかゲームとかネットワークとか。 その分野を重点してやる。
241 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 15:25:07 ] C#で開発ってXbox360かと思った。
242 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 17:16:54 ] >>239 土方を目指すのでなければCは必須
243 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 18:00:22 ] Cできたところで結局ドカタなんすけどね
244 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 18:37:40 ] switch(c->programming){ case YES: printf( "Cができるとは素晴らしいですね\n" ); default: c->status = "土方" break; }
245 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 19:05:31 ] 浮動小数を文字列に変換する方法について教えてください。 求める動作は次のとおりです: * double型を文字列に変換 * printf系などの外部関数で変換しない * 整数は整数として表示(小数点を付けない) * 小数点以下の不必要な0は付けない * 有効な精度(15桁程度?)で適当に丸める * 出力が長い場合も扱える(例えば、「12340000000000000000000」など) いろいろやってみたのですが思い通りのものが作れなかったので・・・ アイデア・ヒントいただければと 自分で作ってみたものも一応晒しておきます。 ↓だと、「456」のときに「459.9999...」となってしまいうまくいきません。 codepad.org/lEqBv5Qz
246 名前:245 mailto:sage [2010/03/12(金) 19:07:20 ] ↑の「459.9999...」は「455.9999...」の間違いでした。 申し訳ない。
247 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 19:44:29 ] 配列を関数に渡して、その値を取得したいんですが、上手くいきません どうすればいいでしょうか?
248 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 19:46:36 ] >>247 [50] を除けばいいかも
249 名前:デフォルトの名無しさん [2010/03/12(金) 19:58:47 ] すみません、取得したいというのは int test[10]; func( &test ); a = test[ n ]; というつもりでした
250 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 21:00:10 ] >>249 質問がよく判らんが、こういうことか? void func(int * test) { test[0] = 1; } void caller() { int test[10]; func(test); int a = test[0]; }
251 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 21:47:19 ] >>250 それだと関数の中で1を代入しても関数を呼ぶ側では変化しないと思うんですが 普通の変数をポインタで引数を渡して変更した値を取得するプログラムの配列バージョンみたいなのは可能でしょうか?
252 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 21:56:56 ] 変化しましたけど。。 codepad.org/OGLPv5dF
253 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 22:57:46 ] 勘違いしてました 解決しました ありがとうございます
254 名前:デフォルトの名無しさん [2010/03/12(金) 23:31:42 ] >>238 違うね 「基礎ができて」ない奴の道のりが険しいだけ 計算をしっぱなしな奴と、ちゃんと検算する習慣がある奴の違いは 小学校で受けた教育の質から来る
255 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 23:33:45 ] 基礎からやればいいじゃん 簡単なプログラム書くときでもホーア論理とか記述的意味論とか使って検証しながら書くとかさ
256 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 23:58:26 ] >>222 mallocがアライメント調整してるのに自前でもやる意味あるのかな?
257 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 00:04:47 ] 「何故かは分からんが出来たからいいや」 こういうタイプは一生伸びない。 応用できるのは何故そうなったか、つまりプロセスの部分であり、解は応用できないからである。
258 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 00:12:55 ] うるせーばか 既解決問題の証明を一生再生産してろ
259 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 00:19:19 ] こうしてHTMLは死んだ
260 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 01:23:10 ] >>256 malloc()がアライメント調整してない場合も、pragma指定かAPIで調整できる場合が多いね。
261 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 05:35:26 ] >>239 10年っていったらもう30前後なんだろ? 今更言語やっても身につかないし そんな奴は役に立たない
262 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 08:36:24 ] 確かに>>261 は役に立たない
263 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 12:47:32 ] >>261 お前使えねーな
264 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 12:52:07 ] >>261 ごめん。相当気持ち悪いな、お前
265 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 13:06:55 ] 261の人気にシット☆
266 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 13:16:18 ] shit?
267 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:04:47 ] 執刀
268 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 19:58:55 ] ファイルが存在すれば追記でオープン ってのを格好よく書くにはどうしたらいいかな あればエラー無ければ作成ってオプションならfopen()にあるけど 逆なんだよな〜access()使うの面倒くさいな〜
269 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 20:04:45 ] 質問です ネストって一般的に何重が限度ですか?
270 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 20:12:56 ] 何のネストだよ
271 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 20:14:30 ] >>268 "r+" でよくね?
272 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 20:17:32 ] >>270 if文のです
273 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 20:40:30 ] C言語の弱点はネストだな。短い文で使えばいいけど 間に沢山あるとわかりにくくなる for{}つかえときはcontinue;で括弧を引きずらないようにするといい 場合によってはgotoもいい 長い部分は関数化
274 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 20:51:43 ] >>269 ,272 > 5.2.4.1 Translation limits > The implementation shall be able to translate and execute at least one > program that contains at least one instance of every one of the > following limits: > - 127 nesting levels of blocks > - ...
275 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 20:52:04 ] >>272 みっつくらいじゃね?