- 1 名前:デフォルトの名無しさん [2012/05/04(金) 04:05:26.52 ]
- C言語の入門者向け解説スレッドです。
★前スレ C言語なら俺に聞け(入門編)Part 100 toro.2ch.net/test/read.cgi/tech/1333108892/ ★過去スレ 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++の宿題片付けます 157代目 toro.2ch.net/test/read.cgi/tech/1335517816/ ★C++言語については避けてください。C++対応明記スレへどうぞ ★分からない事をなるべく詳しく書いて下さい。 ★ソースコードを晒すと答えやすくなるかもしれません。 # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること # サイズが大きい場合は宿題スレのアップローダ等を利用してください ★開発環境や動作環境も晒すと答えが早いかもしれません。 ★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。 長くなりそうなコードはcodepadに貼り付けてもいいでしょう codepad.org/ ideone.com/
- 51 名前:デフォルトの名無しさん [2012/05/05(土) 14:45:42.23 ]
- 質問おねがいします
for文の中で、下のように10倍、100倍、1000倍、10000倍のような計算を 変数”i ”を使って一つに纏める簡単な方法はありますか? よろしくお願いします。 for(i = 1・・・ x = x * 10; -----------ここから下を省略したい-------------------- x = x * 100; x = x * 1000; x = x * 10000;
- 52 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 14:52:11.70 ]
- >>51
この程度がわかんなかったら 後々の学業に支障をきたすレベル 有体に言えば脳障害と見間違う程にひどい
- 53 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 14:53:54.19 ]
- for (i = 1; i < N; i *= 10)
{ x = x * i; }
- 54 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 14:56:40.57 ]
- i *= 10;
- 55 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 14:57:15.92 ]
- >>52
お前が脳障害だろ。 >>51 まず日本語を勉強しろ。
- 56 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 14:57:57.95 ]
- >>55
ホンモノの脳障害の糞詰まりのクソ野郎がお出ましかw 巣にこもってでてくんなアホ
- 57 名前:デフォルトの名無しさん [2012/05/05(土) 14:58:11.12 ]
- >>52
ごめんなさいorz プログラムのプの字も知らず、あるきっかけで数日前にC言語というものを触り始めたばかりですorz >>53 ありがとうございます。 "i*"が味噌なんですね? ちょっとやってみます
- 58 名前:51 [2012/05/05(土) 14:59:27.28 ]
- >>55
すみませんどこか日本語おかしかったでしょうか?
- 59 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 15:00:03.52 ]
- やりたいことと例示している内容が違ってる気がする
32bit整数だとオーバーフローしてるし
- 60 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 15:01:36.33 ]
- >>51
x = x * 10; -----------ここから下を省略したい-------------------- x = x * 100; x = x * 1000; x = x * 10000; をそのまま解釈すれば x = x * 10000000000; だが、お前がしたいこととは違うんじゃないのか? 日本語ができないならせめて元のコードを示せ。
- 61 名前:51 [2012/05/05(土) 15:04:07.61 ]
- >>59>>60
ああ、そういうことですか 100億なんて数字は使わないし、計算できないですもんね 本当はこうでしたすみません x = x * 10; -----------ここから下を省略したい-------------------- x = x * 100; x = x * 1000;
- 62 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 15:06:06.55 ]
- だからそれならx = x * 1000000;
でいいだろが。
- 63 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 15:13:42.39 ]
- for (i = 10; i <= 1000; i *= 10)
{ x += (x * i); } こういうことだろうか
- 64 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 15:22:17.36 ]
- ここはこの程度と宣う>>52に自分が脳障害じゃないってことを示して欲しいとこだな。
- 65 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 15:42:05.10 ]
- やべぇw
脳みそにクソが詰まった人間同士がクソの垂れ流しあいをしてるwww 素晴らしいw 相手はズブズブのシロートなんだから やりたいことくらい察してやれよwww ンなことだからオマイラは脳みそに怪しい部分をお持ちですね とか言われんダよww
- 66 名前:デフォルトの名無しさん [2012/05/05(土) 15:42:37.04 ]
- もう全部ソースを晒せばいいと思うんだ。
- 67 名前:デフォルトの名無しさん [2012/05/05(土) 15:47:12.87 ]
- やりたいことは察してやるのではなく、引き出してやればいいのだ。
- 68 名前:デフォルトの名無しさん [2012/05/05(土) 16:36:13.95 ]
- うんこがなんか言ってるな。
- 69 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 16:38:18.94 ]
- しゃべるクソなんだからしょうがない
- 70 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 16:58:04.18 ]
- >>51
行き詰まったから質問してるんだろうけど、もっと手前で道を間違ったから行き詰まってるんだよ。 例えて言えばお前の質問は「どうやったらこの道を進めるんですか?」と言ってるようなもんだ。 行き止まりの進み方を聞いたってこっちは知らんがなとしか言えない。 そこは進めない。 「どうやったらxxに行けるんですか?」と聞いてくれれば、 xx がどこか言ってくれれば回答しようがあるんだよ。 要は「自分が行き詰まっているところ」じゃなくて「目的地」を示せってこと。
- 71 名前:デフォルトの名無しさん [2012/05/05(土) 17:14:44.10 ]
- 日本語でおk
- 72 名前:39 mailto:sage [2012/05/05(土) 20:02:31.92 ]
- >>48
というと、n個の配列を作る方法はあるのでしょうか。(n=2とは限らない)
- 73 名前:デフォルトの名無しさん [2012/05/05(土) 20:08:19.73 ]
- mallocなりcallocでええやん
- 74 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 20:08:26.24 ]
- >>72
無い そういう方法は標準では用意されてない 最初に配列の個数を決めたら後で変えることはできない こういうのを静的配列と呼ぶ 実行時に配列の長さnを変えられるのは動的配列、 Cは動的配列を標準では提供していない 「C 動的配列」で調べれば出てくる
- 75 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 20:14:41.58 ]
- コテで無能自慢するのが流行りなんかね
- 76 名前:デフォルトの名無しさん [2012/05/05(土) 20:21:28.26 ]
- 知らなかったの?おっくれてるぅ
- 77 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/05/05(土) 20:26:13.72 ]
- >>72
C99 ではかなり条件が緩和されてる。 seclan.dll.jp/c99d/c99d04.htm ただ、ポケコンだと新しい処理系を使うってのも簡単じゃないだろうし…。 普通は malloc でメモリを確保して使うんじゃないかな。 int main(void){ int n = 2; int* m = malloc(sizeof(int)*2); //ここで m を使った処理 free(m); // ←メモリの解放 }
- 78 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 20:27:13.18 ]
- コテなしの無能発言よりはまし。NGできるコテつきは良心的ともいえる。
- 79 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 20:32:00.56 ]
- >>78
自己紹介お疲れ様です これからも駄文の垂れ流し、よろしくお願い致します無能様
- 80 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 20:39:01.94 ]
- >>78
こういう内容の発言なのに自分がコテ付けてないってのは かなり自家撞着なアホwww 「わたくし、アホでございます」と宣言してるようなモンだw
- 81 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 20:48:44.01 ]
- 自己紹介はやめろ
- 82 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 21:04:27.71 ]
- ____
/ \ /\ キリッ . / (ー) (ー)\ / ⌒(__人__)⌒ \ コテなしの無能発言よりはまし。NGできるコテつきは良心的ともいえる。 | |r┬-| | \ `ー'´ / ノ \ /´ ヽ ___ / \ /ノ \ u. \ !? / (●) (●) \ | (__人__) u. | クスクス> \ u.` ⌒´ / ノ \ /´ ヽ ____ <クスクス / \!?? / u ノ \ / u (●) \ | (__人__)| \ u .` ⌒/ ノ \ /´ ヽ
- 83 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 22:42:35.88 ]
- >>51
同じく初心者が頭振り絞って考えたけど こういう事かな? #include <stdio.h> int main() { int x; int i; int j=10; printf(" 整数を入力\nx="); scanf("%d",&x); for(i=0; i<=3; i++) { x = x*10; printf("x * %d = %d\n", j,x); j=j*10; } return(0); }
- 84 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 22:47:44.92 ]
- GNUスタイルは久々に見た
初心者向けの本やサイトでそのスタイルは余りにも見かけない 本当に初心者なのかが疑問に残る 初心者が何もせずに何も見ずにそのスタイルに行きついたなら ある種の教祖的な素質がある
- 85 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/05/05(土) 23:02:00.16 ]
- >>84
へぇー。 手元にある本をざっと見たら確かにその通りだわ。 でも、俺も昔は >>83 みたいに書いてた。 初心者的には括弧の位置が対応してた方が安心できるんじゃないかなぁ。 エディタの支援がある状況だとちゃんとインデント付けてくれるけど、 初心者はそれに慣れてないわけだし。
- 86 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 23:17:37.35 ]
- 最初に使ったコーディングエディタがEmacsでショーも無い書籍を避けて進化すれば素養も昔は書いてたもクソもないよ
- 87 名前:デフォルトの名無しさん [2012/05/05(土) 23:22:42.18 ]
- 日本語でおk
- 88 名前:39 mailto:sage [2012/05/05(土) 23:23:16.24 ]
- >>73,74,77
有難うございます。とても勉強になります。 私は取り敢えず入門書を大体読み終えたのですが、まだまだですね… 以下のソースでテストしてみたところ上手く動作したので、今自分の作りたいものを作れそうです。 main(){ int n = 2; int *m = malloc(sizeof(int)*n); *m = 1; *(m +1) = 3; printf("%d, %d",*m,*(m+1)); }
- 89 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/05/05(土) 23:27:57.12 ]
- >>86
因みに俺が最初に C のコーディングに使ったエディタは Vz だったよ。 教員もめんどくさいから最近だと VC++ 選ぶと思うけどな。 C の初心者に Emacs から指導するのは手間なだけだろ。
- 90 名前:39 mailto:sage [2012/05/05(土) 23:28:20.64 ]
- free(m);
忘れてました
- 91 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/05/05(土) 23:29:00.84 ]
- >>88
free するかどうかの議論がまた始まるよー。
- 92 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 23:39:40.17 ]
- for( P=Root, Last=NULL; P != NULL; Last=P, P=P->Next )
この手のfor分は行数ケチスタイル?
- 93 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 23:45:01.47 ]
- そんな変なの見たことねぇ。
- 94 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 23:45:41.53 ]
- うん
- 95 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/05/05(土) 23:48:18.69 ]
- >>92
意味的にループのための初期化、判定、インクリメントになってるなら、 ケチとかどうとか言う類のものじゃないと思うけどな。 俺はアリだと思うし、実際に書くよ。
- 96 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 23:57:19.78 ]
- リークの意味がわかってないアホにはうんざり
- 97 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 23:58:17.23 ]
- それはコードゴルフスタイル
- 98 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 00:00:21.67 ]
- LastとRootの語をどう使い分けてんのかわけわからん
- 99 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 00:19:46.98 ]
- とりあえず変数名を大文字で始めるのは気持ち悪い
- 100 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 00:36:28.99 ]
- 気持ち悪いね
- 101 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 00:37:16.01 ]
- キャメルケース
アッパーキャメルケース ローワーキャメルケース スネークケース あなたはどれ?
- 102 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 00:46:42.90 ]
- レッドスネークカモン
- 103 名前: ◆QZaw55cn4c mailto:sage [2012/05/06(日) 00:48:36.65 ]
- >>84,85
pascal の begin / end の段付けを意識した書き方だとこうなるよね。
- 104 名前: ◆QZaw55cn4c mailto:sage [2012/05/06(日) 00:49:54.57 ]
- >>88,91
おっと信者の出番がきましたか霧
- 105 名前: ◆QZaw55cn4c mailto:sage [2012/05/06(日) 00:51:03.93 ]
- >>96
勝手にリークを定義されても霧
- 106 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 00:51:19.83 ]
- 質問おながいします
unsigned int abc; ↑ この変数の中身を指定したビットだけ取り出したり操作したりするのはどうすればいいのでしょうか? 例えば、abc = 0b0000000000000000 として、10ビット目だけを反転したり取り出したりしたい場合です。 よろしくおながいします
- 107 名前: ◆QZaw55cn4c mailto:sage [2012/05/06(日) 00:53:06.28 ]
- >>101
ごめんなさい。もしよろしければそれぞれ教えてください。
- 108 名前: ◆QZaw55cn4c mailto:sage [2012/05/06(日) 00:55:24.72 ]
- >>89
demacs が遅くて Vz も便利に使ってたけど、どこぞのemacsバインドマクロを早々にいれちゃったなあ。
- 109 名前:デフォルトの名無しさん [2012/05/06(日) 00:57:56.53 ]
- >>106
https://www.google.co.jp/search?source=ig&hl=ja&rlz=&q=C+%E3%83%93%E3%83%83%E3%83%88%E6%BC%94%E7%AE%97&oq=C+%E3%83%93%E3%83%83%E3%83%88%E6%BC%94%E7%AE%97&aq=f&aqi=g6g-m2&aql=&gs_l=igoogle.3..0l6j0i5l2.131.2350.0.2892.12.12.0.0.0.0.125.1076.9j3.12.0...0.0.
- 110 名前:デフォルトの名無しさん [2012/05/06(日) 00:58:51.17 ]
- んげ ロケール情報までURLに・・・糞Googleが
- 111 名前: ◆QZaw55cn4c mailto:sage [2012/05/06(日) 01:06:03.88 ]
- >>106
codepad.org/1GkrqfnM 最小のビットを 0 として大きい方向に1, 2, 3, ... 10 と数えたときの10番目です。 最小ビットを 1 から開始するときは mask = 1 << (10-1) にしてね
- 112 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 01:09:25.07 ]
- >>107
ローワーキャメル lowerCamel アッパーキャメル UppterCamel スネークケース snake_case キャメルケースはローワーやアッパーのジャンル名だった。 めんご
- 113 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 01:10:44.82 ]
- へぇ
google様はロケール情報まで付け足してくれるのか こりゃあいいこと知ったw ありがとうありがとう さっそく情報抜き出すよ!
- 114 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 01:13:30.53 ]
- #define GETBIT(a,b) ((a)&(b1)?1:0)
#define XORBIT(a,b) (a)^=(1<<(b1)) int main(void) { unsigned int abc=123; int bit; XORBIT(abc,10); bit=GETBIT(abc,10); return(0); }
- 115 名前:デフォルトの名無しさん [2012/05/06(日) 01:19:04.69 ]
- なんだその・は。
- 116 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 01:41:51.19 ]
- 彼の脳内にしか存在しえない
素晴らしい演算記号なのだろう きっと
- 117 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 01:51:20.12 ]
- >>115
iPhoneだとゲタに見える 文字コードいくつの文字なんだろ
- 118 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 01:52:53.96 ]
- これじゃね?
≪
- 119 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 01:57:11.76 ]
- 114です。
マイナス(-)のつもりが全角で化けてたみたい、すまん。 それと #define GETBIT(a,b) ((a)&(b-1)?1:0) は #define GETBIT(a,b) (((a)&(b-1))?1:0) の方が良いのですね。
- 120 名前: ◆QZaw55cn4c mailto:sage [2012/05/06(日) 02:02:00.60 ]
- >>119
不精せずにcodepad 等で動かしてみれば?
- 121 名前:106 mailto:sage [2012/05/06(日) 03:00:44.55 ]
- みなさんレスありがとうございます
とりあえず、>>111さんのコードに変数 x を追加して、 x = a & mask; if(x == 0){printf("10th = 0");} if(x > 0){printf("10th = 1");} これでやりたいことができました。 C言語をかじって1ヵ月しかないですが、このスレでは質問すれば有用な返答が頂けて感謝しています。 どうもありがとうございます。
- 122 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 04:34:36.13 ]
- >>121
下のif分はelseにまわした方がよくないか? というか111がやってるのと逆のシフトを行えば ifすらいらないぞ
- 123 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 06:23:57.73 ]
- 別にシフトすら要らないぞ。
printf("10th = %d\n", !!(a & mask));
- 124 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 06:27:00.01 ]
- printf("10th = %d", (a >> n) & 1);
- 125 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 12:43:15.68 ]
- すいません(つA`)教えてください。
int a,b; dobule c; a = 7; b = 4; c = b / a; と書いたのですが、 %f表記でも、cに値が入っていません。 使っているcは、オブジェクティブcなのでスレチかもしれませんが、教えていただけると助かります。
- 126 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 13:08:02.71 ]
- c言語はよくしらないけど
c = (double)a / (double)b; じゃないの?
- 127 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 13:15:14.09 ]
- >>126
ありがとうございます。 早速試してみます。助かりました。
- 128 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 14:11:17.74 ]
- お礼なんていらないよ
- 129 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 14:11:43.53 ]
- >>126
キャストは一つだけで十分 codepad.org/KyBPyoJA
- 130 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 22:33:24.41 ]
- Cソースに、関数内に特定の文字列が入っているかどうかを検索し、リストアップできるツールって知ってますか?教えてえらい人。
- 131 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 22:39:35.34 ]
- >>130
>Cソースに、関数内に特定の文字列が入っているかどうか これ、だいぶぼやっとしていて、何がしたいのかよくわからないが、、、。 grepとか範囲内検索では足りないのかな? 具体的に例を上げてくれれば、レスもらえるかも。 どっちにしてもCの話ではなさそうだが、、、。
- 132 名前:デフォルトの名無しさん [2012/05/06(日) 22:43:01.00 ]
- 質問があります。
ディレクトリの監視をするのに、inotifyだと、inotify_eventのnameに監視してるファイルを作成/削除/変更 したファイルの名前が入ってると思うのですが、kqueueの場合は、どのように監視しているファイル名を 取得すればよいのでしょうか? よろしくお願いします。
- 133 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 22:45:42.96 ]
- >>131
例えば秀丸だと、grepでは、ソースファイル名とライン数はわかるけど、grepした文字列がどの関数にはいっていたかどうかは、grep先を目視しないとわからないですよね。 私は、ある文字列が、どの関数にある、ということをそういった手間をかけないで調べたいのです。
- 134 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 22:59:37.87 ]
- >>133
>文字列がどの関数にはいっていたか その「文字列」って具体的に何? スタック変数なら、関数内だから無関係だよね。 グローバル変数なら、カプセル化がヘボすぎて、管理できなくなってるだけの気がするが。 リストアップしたくなる時点で設計が良くない気がする。 それ以外の文字列なら、用途が想像できない。
- 135 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 23:13:26.33 ]
- まァやるとしたらperlでやるけどね、
どちらにせよ関数の中の変数名を調べたいってのは プログラミングとしては末期症状だとは思う そういうのが必要になる状況てのは かなり切羽詰まっている、 有体に言えばそのソースコードはクズでしょう、捨てなさい
- 136 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 23:17:33.31 ]
- シングルスレッド前提で書いてたコードをマルチスレッド対応に書き直しとか
関数の仕様が変わったので書き直しとかかね
- 137 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 01:02:14.28 ]
- >>133
秀丸は関数一覧を表示していれば、検索でヒットした部分を含む関数もハイライトしてたよ。 grepではどうなるかわからないけど。
- 138 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 08:11:14.02 ]
- >>133
関数/変数ならクロスリファレンサを使えばいい。 ここまでその名前が出てきてないのにびっくり。 カスばかりだな。
- 139 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 08:32:35.16 ]
- 本来なら不必要だから。
- 140 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 08:35:32.45 ]
- >>138
何がしたいのかも分かってないのに偉そうな奴だな 察したのか?
- 141 名前:デフォルトの名無しさん [2012/05/07(月) 09:27:17.12 ]
- 日本語も理解できないカス>>140
- 142 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 11:13:36.95 ]
- 柴田望洋さんと猫でもわかるプログラム読んだけど、なんか極端すぎます・・・
この中間ぐらいの本や、サイト探しています 誰か知りませんか?
- 143 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 11:22:00.49 ]
- 何を紹介したって極端だと言うんだろ?
- 144 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 11:38:22.56 ]
- 大学が公開してるPDF読めば?
- 145 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 12:37:25.97 ]
- >>142
知りません >>143 うん >>144 うん
- 146 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 21:50:41.84 ]
- >>142
「苦しんで覚えるC言語」とかどう? ttp://9cguide.appspot.com/ 「C言語ポインタ完全制覇」も躓き安いところを抑えてある。 下のページを見て興味が湧いたら、どうぞ。 ttp://kmaebashi.com/programmer/pointer.html
- 147 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 23:02:33.27 ]
- Cでinterfaceってどう書くの? 純粋仮想関数的な書き方ってある?
- 148 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 23:04:20.63 ]
- 関数ポインタでごにょごにょ
- 149 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 23:09:24.14 ]
- どう書くの?って言うのは単にCでインターフェースっぽい動作をさせたいだけなのか
C++とバイナリー互換を持たせて相互運用したいのかによって変わると思う。
- 150 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 23:21:48.75 ]
- >>149
すげ レスはや。 thx C++とは関連なかとです。 typedef struct _CAGE{ void (*hoge)(....); // = 0; とか入れたいところだが無理か w int (*hage)(....); } _CAGE; こんなのを次のクラス宣言に取り込めばええだけかな?
- 151 名前: ◆QZaw55cn4c mailto:sage [2012/05/07(月) 23:44:00.58 ]
- >>147
インターフェースは、多重継承をやりたくないけれども完全排除もしたくない、というジレンマの上にある妥協の産物。 継承の仕様の一部に制限をかけただけのもの。 C でインターフェースを書くということで、一次近似できたとしても、「制限をかける」ことはできないのでは? 制限なしなんでもありのCにインターフェースとかはなじまない。
|

|