1 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/30(金) 21:01:32.89 ] C言語の入門者向け解説スレッドです。 ★前スレ C言語なら俺に聞け(入門編)Part 99 toro.2ch.net/test/read.cgi/tech/1331786500/ ★過去スレ 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++の宿題片付けます 156代目 toro.2ch.net/test/read.cgi/tech/1328276597/ ★C++言語については避けてください。C++対応明記スレへどうぞ ★分からない事をなるべく詳しく書いて下さい。 ★ソースコードを晒すと答えやすくなるかもしれません。 # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること # サイズが大きい場合は宿題スレのアップローダ等を利用してください ★開発環境や動作環境も晒すと答えが早いかもしれません。 ★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。 長くなりそうなコードはcodepadに貼り付けてもいいでしょう codepad.org/
2 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/30(金) 22:14:04.75 ] part 0x64 おめでとう!
3 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/30(金) 23:08:53.13 ] >>1 乙
4 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/30(金) 23:21:06.70 ] >>1 乙
5 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 00:22:16.85 ] 文字列の細かい操作はやっぱりC++よりCの方がやりやすいなあ え?独り言はチラシの裏に書けって?どうも
6 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 01:06:28.97 ] >>5 std::stringが使いにくいってこと? それなら同意。
7 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 01:30:32.63 ] rubyやpythonと比べたら使いづらいけど Cと比べれば全然マシだと思うけどなぁ
8 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 03:35:38.67 ] sprintfの万能さには勝てない。
9 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 04:31:39.18 ] sprintfじゃバッファオーバーフローが防げない char buff[十分なバッファ]; とかしてsnprintfの戻り値チェックとかめんどくさいっす
10 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 04:37:22.90 ] /dev/nullに書いて長さ調べるのはだめなの?
11 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 04:39:54.71 ] 数スレ前で同じような話があった気がする
12 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 05:01:42.70 ] テンプレートライブラリって普及してるの? あれってコンパイルするとマクロみたいに展開されて デバッグ凄く大変になるんじゃなかったっけ? 昔ATLとか出始めの時に使おうと思ったけど メンテナンス性が凄く悪そうな印象だったからやめた記憶がある。 なんかライブラリと自分のコードの境目が曖昧になるのって あんまり居心地がよく無い
13 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 05:07:43.04 ] 普及してる
14 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 05:32:14.91 ] >>10 どういうこと? できたらサンプルソースお願い。
15 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 12:16:01.08 ] >>14 #include <stdio.h> #include <stdarg.h> int formattedLength(const char * form, ...) { FILE * fp = fopen("/dev/null", "w"); va_list args; va_start(args, form); int len = vfprintf(fp, form, args); va_end(args); fclose(fp); return len; } int main(int argc, char ** argv) { printf("%d\n", formattedLength(argc > 1 ? argv[1] : "%g", 1. / 3)); return 0; }
16 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 16:08:20.20 ] 文字配列の初期化って0x00で初期化するのがいいの? ヌル文字で初期化ってどうなのかなあ。 0x20で初期化するのってどう?
17 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 16:16:43.78 ] 危険
18 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 17:01:47.64 ] >>16 asciiの積もりだろうから空白文字だろうけど、それで初期化することは無意味。 先頭にナル文字を書いておけば、長さ0の文字列として扱える。
19 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 22:29:08.21 ] >>15 んーと、それを簡単に書くと int len = snprintf(NULL,0,...); でしょ? int len = snprintf(NULL,0,...); int plen = len+1; char *p = malloc(plen); snprintf(p, plen, ...); /* erro check 省略 */ free(p); 毎回、snprintfを2回呼んでmalloc/freeはダサくね?って話。 とはいえ、固定長バッファで溢れたらエラーで終わりってのも微妙だし バッファを使いまわしてreallocするのも微妙
20 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 22:53:54.41 ] 天地明察の原作者が一番かわいそうだわ
21 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 22:54:09.06 ] 誤爆ごめんなさい
22 名前:営利利用に関するLR審議中@詳細は自治スレへ [2012/03/31(土) 23:02:22.15 ] asprintf使えよ
23 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 23:07:52.56 ] assprintf?
24 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 23:20:53.34 ] 処理系依存じゃん
25 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 23:32:04.01 ] うん
26 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/01(日) 01:58:27.03 ] 俺はC言語の達人 まいったか!?
27 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/01(日) 02:05:52.10 ] まいりました
28 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/01(日) 08:38:49.75 ] なにこの名前欄
29 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/01(日) 09:34:49.49 ] これもすべてQZクズのせい
30 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/01(日) 10:32:31.72 ] toro.2ch.net/test/read.cgi/tech/1333095907/46,48,50
31 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/01(日) 12:13:28.81 ] yaccで分岐ステートメントをインタープリター実装する方法がわからないので教えてください。 selection: __STATE_IF expression __STATE_THEN expression __STATE_ELSE expression とした場合にthen、else両expressionが還元されるので、 if x then a=1 else a=2のような構文がインタープリター動作の場合破綻してしまい困ってます。 これを解決する一般的な良い方法があったら教えてください。
32 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/04/01(日) 12:39:17.18 ] パースの段階では構文木を構築するだけにして、実行とは段階を分けるのが普通。 小手先のトリックを使えばなんとかならんでもないけど… 例えば cond: __STATE_IF expression __STATE_THEN ifstatement: cond expression __STATE_ELSE expression という風にふたつに分離してしまえば条件節の結果を先に得られるので、 それが真であれば else 節はよみとばす (パースだけして副作用を発生させないようにフラグを立てるとか) というような実装にできる。
33 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/01(日) 13:27:39.48 ] >>32 フラグで読み飛ばすって、具体的にどうやるか思いつかないです。 cond: __STATE_IF expression __STATE_THEN {$$=$2; if_cond=$2;} ifstatement: cond if_expression __STATE_ELSE if_expression if_expression : expression {if (if_cond) 各種;} 的なことだろうけど、このif_cond をどう使えばいいのかイメージが沸きません。 >>実行とは分けるのが普通 たしかに全体を一旦中間コード(おれアセンブラコード)へ変換するアプローチの方が 逆に簡単なような気がしてきましたorz (簡単のためにインタープリターにしようと思ったのだけど、コンパイラー作る方が逆に簡単っぽい)
34 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/01(日) 13:38:45.22 ] いま閃いたんですけど、 lexのパーサーモードに%x <if_then>や %x <if_else>を用意して 字句解析の段階でダイレクトに if_expression の読み飛ばしを指定してみてはどうかと。 gotoをラベルテーブルに対するyyin操作で実装するような感じで。
35 名前:31 mailto:sage [2012/04/01(日) 13:40:59.33 ] >>32 ありがとうございます。とてもいいヒントになりました。
36 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/01(日) 18:42:26.45 ] &((HOGE + i)->fuga) という表記って、もっとすっきり書けないんでしたっけ? (別にポインタを用意するのはナシで) もう長年使ってないから忘れてもーた…(´Д`)
37 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/01(日) 18:49:06.32 ] &HOGE[i].fuga
38 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/01(日) 18:50:14.09 ] >>36 あんま変わんね &HOGE[i].fuga
39 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/01(日) 19:10:58.83 ] FUGA* getFugaReference(HOGE* hoge, int index);
40 名前:36 mailto:sage [2012/04/01(日) 19:15:16.83 ] やっぱ直接メンバ指定すると配列になっちゃうかー dd
41 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/01(日) 21:53:47.78 ] プログラミングの勉強を始める時に色々オススメの本を教えて頂いた者です。どうしてもお礼が言いたくなり、この場を借りてお礼を言わせて下さい!あの時は本当にありがとうございました!お陰で苦手だった勉強も楽しくなってきました!本当ありがとうございます!
42 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/01(日) 22:03:41.77 ] >>41 また困ったことがあればいらっしゃい
43 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/01(日) 23:24:31.09 ] 可愛いやつだ
44 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 14:08:04.29 ] qune.cside.com/archives/001941.html > また,この本は,プログラム内の定数にマクロ定数を使えと言う。今でもそゆ古典的なことを勧めてる人がいるのかと,ちょっとびっくりしたんだけれども,何も知らない子に変なこと教えるなといいたい。 このブログにこんなことが書いてあったのだけど、普通はどうするんでしょうか。
45 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 14:17:02.13 ] ステマ乙www
46 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 14:28:03.59 ] >>44 #defineではなく、enumで、数値に名前をつける。constもつかえる 「数値は、マクロではなく定数として定義しよう。Cプログラマは、マジックナンバー の値を管理するのに伝統的に#defineを使ってきた。しかしCのプリプロセッサは 強力だが乱暴なツール(中略) CとC++では、整定数をenum文で定義できる。C++では任意の型の定数をconstで 宣言できる。 const int MAXROW = 24, MAXCOL = 80; 」 『プログラミング作法』p. 41(ブライアン・W・カーニハン、ロブ・パイク)
47 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 14:28:57.72 ] >>44 オブジェクトサイズは言語に計算させよう(中略) 2や4ではなく、sizeof(int) (中略) char buf[1024]; fgets(buf, sizeof(buf), stdin); バッファサイズは依然としてマジックナンバーだが、宣言に1回登場するだけで 済む」 『プログラミング作法』p. 43(ブライアン・W・カーニハン、ロブ・パイク)
48 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 14:38:17.48 ] >>46 C++ならいいけど、Cのconstは外部リンケージだから定数には使いにくいっていうか。 配列の要素数とか使えないところもあるし。
49 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 14:47:29.02 ] >>44 未来から来て、過去の人を笑うのは簡単。 100%バグのないプログラムもない。 人間謙虚でありたいものですね。
50 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 15:11:02.71 ] > 配列の要素数とか使えないところもあるし。 具体例ほしいなー
51 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 15:30:05.01 ] >>50 const int TBL_SIZE = 10; int tbl[TBL_SIZE]; ← エラー
52 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 15:55:08.31 ] >>51 あー、ごめん それがエラーになるような実行環境の具体例ね。
53 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 15:59:22.29 ] マクロはプリプロセッサーだけど constはコンパイラーオプションだからな
54 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 16:03:23.39 ] >>52 アホなん? codepad.org/hAuu0X9H
55 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 16:04:00.48 ] >>52 バカのくせに上から目線w
56 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 16:05:49.62 ] >>44 これもC++の仕様と混同してるだけなんじゃないの?
57 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 16:08:25.35 ] え? そいつ、C++知らねーんじゃねーの? 今時Cの本もないだろに。
58 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 16:13:34.58 ] >>54 初めて知ったわ file scopeだとダメなんだね
59 名前:営利利用に関するLR審議中@詳細は自治スレへ [2012/04/02(月) 16:14:45.52 ] >>48 にそのまま書いてあるのに、アホなん?
60 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 16:16:30.12 ] >>57 C++だとマクロよりconstやらinline関数の使用が推奨されてるから、 Cでもそうだと思ってるんじゃないの? >>44 のブログの人。
61 名前:営利利用に関するLR審議中@詳細は自治スレへ [2012/04/02(月) 16:17:13.73 ] 本 人 乙。
62 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 17:22:08.72 ] enumハックなつかしいなぁ。
63 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 17:34:19.81 ] 即値やdefineマクロを使わずイミディエイト値を用意するとなると・・・
64 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 18:19:09.30 ] #define定数をconst定数に書き換えたところで大してありがたみを感じたことって実際ないよな #defineで普通に問題なく事は進んでいくし
65 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 18:34:48.86 ] まぁデバッガで見えるのと、括弧をつけたつけないで変なことにならなくて 済むってくりだからね。
66 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 18:42:09.29 ] C++ での NULLの実装は… 任意なんだっけ? ほとんど #define でやってるように見受けられるけど
67 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 18:44:18.30 ] 関数のプロトタイプにconst付いてない場合にconst定数を引数で渡すと引数の型が違うとか言って怒られるし プロトタイプを変更したらconst付けてないのが渡せなくなるしマジうざいんだけど
68 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 19:04:12.36 ] >>67 なんか違ってないか?
69 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 19:05:06.65 ] >プロトタイプを変更したらconst付けてないのが渡せなくなるしマジうざいんだけど こう言う動作だっけ? もうC++書いてないから忘れたけど 関数の引数でconst宣言するのって 関数内部で参照先の値を変えませんよって言ってるだけじゃなかったっけ? 呼び出し側でパラメーターに非const渡せないとか有るんだけっけ?
70 名前:営利利用に関するLR審議中@詳細は自治スレへ [2012/04/02(月) 19:08:01.79 ] ス レ 違 い
71 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 19:14:20.49 ] プログラミング作法って本当に良書だよなあ さすがカニチャーハンさん 尊敬しております(^人^)
72 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 19:45:10.03 ] 間違いを突っ込まれるとスレ違いって言い出す人が現れるな。
73 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 19:46:50.63 ] どこがつっこみだよ。 ろくに知りもしないなら書くなよ。
74 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 19:47:58.77 ] constは糞でFA
75 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 19:58:05.94 ] 自分がconstの仕様を知らないのをconstが糞だって言ってごまかしてたらいつまでたっても上達できないだろ。
76 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 20:03:33.16 ] >>69 メンバ変数を書き変えませんよの const メソッドとごっちゃになってる気配
77 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 20:06:41.21 ] 単にプロトタイプと定義の両方を同時に変更してないってだけじゃね?
78 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 20:09:25.50 ] >>71 鬱になって会社辞めた時、もうプログラムなんてしない と思って「プログラミング作法」捨てたんだよな。 もったいないことした。
79 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 20:18:51.51 ] もうプログラムなんてしないなんて言わないよ絶対〜
80 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 20:26:02.51 ] デスマ はじまるよ ほら また 僕のそばで〜
81 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 20:29:00.45 ] こういうのってマヌケがよく書くよな。
82 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 20:30:43.33 ] >>71 俺も欝でITは辞めたけど、未だにプログラムは書いてる。 でも辞めた際、結構本捨てたなぁ…
83 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 20:32:32.62 ] >>42 、43 レス遅くなってすみません。色々あって職を変えることになり、覗く暇がなかったもので^^; なるべく自分で答えを見つけたいのでどうしても分からなくてどうしようもない時はまたお願いしていいですか?優しい言葉ありがとうございます!
84 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 20:51:26.12 ] C++のconstはオブジェクトを値で渡すイメージで使いたい時にとても便利 オブジェクトを実際に値で渡すとスタックを大きく消費するしそのたびにコンストラクターや コピー演算子が呼ばれてしまうが、constを付けることでオブジェクトのアドレスをスタックにコピーするだけですむのだ 関数内部でオブジェクトが変更されないことが保証されているので、 呼び出し側はあたかも引数に渡したオブジェクトをプリミティブ型のように扱うことが出来る。 いわゆる近代的な言語で設計されているStringオブジェクトやIntegerオブジェクトのようなプリミティブ型を 具象化したクラスが、非コンストメンバーを持たないことで、プリミティブ型のような動作を するのはとても興味深い。このような動作をさせるのにコンスタントオブジェクトという考え方はとても重要である。
85 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 20:52:28.25 ] 何アホなこといってんだコイツ 脳みそにウジでも湧いてんのか Cのconst語れよ低能
86 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 20:52:37.75 ] >>84 C++スレでやれ
87 名前: ◆QZaw55cn4c mailto:sage [2012/04/02(月) 20:55:39.04 ] >>84 それは const とともに & も必要じゃないかい?
88 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 21:06:38.15 ] まだC言語スレでC++を語る馬鹿がいたのか
89 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 22:06:32.90 ] つかC99で可変長配列おkになったよね? なんか>>51 とか>>54 で不安になって確認しなおしちゃったよ
90 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 23:19:32.91 ] C99でもダメじゃないのか?
91 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 23:26:18.32 ] C99では、配列宣言時には要素数に変数も使えるんじゃなかったか? 真の意味の可変長配列(スコープの途中で要素数を変更したりできるもの)ではないけど…
92 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 23:28:24.90 ] >>90 privatepaste.com/bfbce325f4
93 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 23:29:25.42 ] >>91 そう、それのこと
94 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 23:29:40.12 ] >>87 珍しくあってる。
95 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 23:31:26.78 ] >>92 いや、>>54 の話。
96 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 23:49:10.90 ] ああ、ファイルスコープか
97 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/03(火) 09:39:40.06 ] >>92 これ、ちゃんと最適化されて静的配列になるのかね。 ヘッダーファイルで#define のかわりにconst使うとすると、 static const int n = 100; とか extern const int n; とかしないといけないじゃん。 下のようにすると最適化は不可能だよね。 C99のお作法的にはどうするのが正解なんだろ。
98 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/04/03(火) 12:44:57.53 ] >>97 処理系によって、状況によって最適化されるよ。 VC や gcc は翻訳単位をまたぐ最適化もできる。
99 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/03(火) 14:27:30.29 ] C言語で2Dゲーム作るのにDXライブラリーより簡単なライブラリーってある?
100 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/03(火) 14:43:57.68 ] >>99 ncurses