[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/27 13:34 / Filesize : 231 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【初心者歓迎】C/C++室 Ver.41【環境依存OK】



1 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 23:26:08 ]
エスケープシーケンスやWin32APIなどの環境依存な物でもOK。
ただしその場合、質問者は必ず、環境を書きましょう。
※sage禁止です(と代々スレに書いてありますが自己判断で)。
【前スレ】
【初心者歓迎】C/C++室 Ver.40【環境依存OK】
pc11.2ch.net/test/read.cgi/tech/1184717430/
【アップローダー】(質問が長い時はココ使うと便利)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm

263 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 13:12:15 ]
ソースを窓から放り投げるを開始するには、まず窓を開けます。

264 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 13:12:43 ]
バッファオーバーフローであってスタックオーバーフローとは(ry

265 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 13:21:55 ]
なぜこれがコンパイルエラーになるのですか?

class A
{
public:
void hoge(int i) { MessageBox(NULL, _T("A"), _T("hoge(int)"), 0);}
virtual void hoge() = 0;
};
class B : public A
{
public:
void hoge() { MessageBox(NULL, _T("B"), _T("hoge()"), 0); }
};
int _tmain(int argc, TCHAR **argv)
{
B b;
b.hoge(1); // コンパイルエラー C2660
}

266 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 13:24:09 ]
なんでそんなこともわからないのですか?

267 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 13:29:50 ]
>>266
まぁそう言わんと。

>>265
EffectiveC++を読むことをお勧めしておきます。

268 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 13:47:53 ]
>>266
初心者だからです。例えば、以下のJavaのソースはコンパイルが通るので、C++でも同様のことが可能かを考えています。
public class Test1 {
public static void main(String[] args) {
B b = new B();
b.hoge(1);
}
}
abstract class A {
public void hoge(int i) {System.out.println("A : hoge(int)");}
public abstract void hoge();
}
class B extends A {
public void hoge() {System.out.println("B : hoge()");}
}
>>267
このあたりですか?
ttp://www002.upp.so-net.ne.jp/ys_oota/effec/chapter6.htm#36kou
265のclass Aのhoge(int)はhogeImplのようにするこで解決できました。ありがとうございます。

269 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 14:09:57 ]
>>265,268
hoge という名前の関数は B に 1 個あるので、それ以上辿って A まで探しには行かない
で、見つかった hoge() は引数が一致しないのでエラー

C++ と Java が一緒だと思ってるのが間違い

270 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 14:12:39 ]
>>269
>hoge という名前の関数は B に 1 個あるので、それ以上辿って A まで探しには行かない
なるほど。すっきりしました。ありがとうございます。

271 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 16:26:39 ]
wavファイルの再生について質問があります。
PlaySoundを使う方法は簡単にできたのですが、wavファイルを実行ファイルに組み込むことはできるのでしょうか?
できるなら、方法や資料を教えて頂けませんか?
宜しくお願いします。



272 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 16:44:38 ]
とりあえずC/C++とは関係ない

273 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 16:46:19 ]
実行ファイルの種類による

274 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 16:47:42 ]
PlaySound リソース でぐぐれば?

275 名前:271 mailto:sage [2007/08/14(火) 17:15:30 ]
PlaySoundでできるとは思っていませんでした。
本当に助かりました。ありがとうございます。


276 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 19:59:40 ]
関数テンプレートの特殊化ってできないんですか?
もしできないのなら、いずれ出来るようになる見込はありますか?

template <typename T, typename U> void func(T&) {}
template <typename T> void func<T,int>(T& u) {}

error : partial specialization `Func<T, int>' of function template

277 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 20:24:53 ]
>>268
そんなサイトあったのか、本買っちゃったよ

278 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 20:34:59 ]
>>276
テンプレートパラメータの制限は関数とクラスで微妙に違う。
ただ、パラメータを常に指定するなら↓で同じことができるはず。

template <typename T, typename U> class func_object {
 explicit func_object(T&) { ... }
};:
template <typename T> class func<T, int> {
 explicit func_object(T& u) { ... }
};

使い方
func_object<A,B>(x);
func_object<C,int>(y);

279 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 20:44:54 ]
>>277
そのサイトはヒント程度だぞ。何やら勘違いに近い記述も見られるし、本は読むべき。

280 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 20:56:11 ]
>>276
関数テンプレートの場合、完全な特殊化はできるが部分特殊化は出来ない。
代わりに関数オーバーロードが使える。

281 名前:276 mailto:sage [2007/08/14(火) 21:48:52 ]
やっぱ無理なんすか
テンプレート引数を汎用関数のtraitsとして利用したかったのですが…
変数の型を態々書くくらいなら関数オブジェクトとして作る方が良さそうですね



282 名前:261 mailto:sage [2007/08/14(火) 23:00:51 ]
>>264
え?スタックオーバーフローなんて一言も言ってませんがなにか?
              ~~~~~~

283 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 03:27:58 ]
>>282
コレは他人が装ってる釣りか?
ちょっと釣られて見ますよ

284 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 04:00:47 ]
演算子の優先順位についての注意。インクリメント(++)/デクリメント(-- --)演算子と間接参照演算子(*) の優先順位は、間接参照の方が低い。だから、
while(1){
sub( *++p );
}
というコードは頻出するが、単独の文
*++p;
は間接参照の文が無意味である。(ポインタpをインクリメントした後で、ポインタが示す値を参照し、値を捨てる)
って言う文があるのですが、
「単独の文
*++p;
は間接参照の文が無意味である。」
ってどう意味なのでしょうか?
実例を挙げていただけないでしょうか。

285 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 04:12:51 ]
>>284
間接参照演算子「*」
間接参照はポインタの先を「*」で参照すること。

int main(){
int a=10;
int *p=&a;
*p; /* <- この文意味ないべ? */
return 0;
}

286 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 05:07:32 ]
ああ、そういう意味だったんですか。
分かりました。
自分、日本語読む力が無いなぁ。

287 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 05:31:19 ]
>>284
これおかしいな。
ここで例としてあげるべきなのは *p++ であって *++p ではない。
そもそも * と 前置 ++/-- とは優先順位が同じだ。

288 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 07:12:56 ]
>>284
内容がひどいのでさらしておこう。
www.nurs.or.jp/~sug/soft/tora/tora6.htm


289 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 08:09:10 ]
>sub( *++p );
>というコードは頻出するが
こらこら、副作用があるコードを関数呼び出しで書いちゃ遺憾。
もしこのサイトにあるように頻出するとしたら、よっぽど腐った環境だ。

つーか、このサイト管理者、頭大丈夫か?
www.nurs.or.jp/~sug/soft/index.htm

290 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 08:21:09 ]
別に書いていいだろう。
未定義動作でもあるまいし。

コーディングスタイルの話としても、
宗教戦争になる程度のこうじゃないといけないとは言えない内容だな。

291 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 08:29:14 ]
>>290
その「sub()がマクロだったら」と考えてみてくれ。
いつ仕様変更でそのようなことになっても大丈夫なように副作用を発生させないのは常識だ。



292 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 08:35:04 ]
それだったら*++pではない場合にもいえてしまうんじゃないの?
マクロってなんなのかしらないけど

293 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 08:43:51 ]
なんだ、ただのもの知らずか。たとえばこんなの。
#define sub(x) (x < 0 ? -x : x)

294 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 08:44:08 ]
>>289
>こらこら、副作用があるコードを関数呼び出しで書いちゃ遺憾。
どいう意味?


295 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 08:56:22 ]
>>293
なるほど、マクロって絶対値ってことか

296 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 08:58:23 ]
そうだよ。でもここは君の居る所じゃないんだ。そろそろママの所に行っておいで

297 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 09:11:47 ]
>>296
いや、違うでしょ?

298 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 09:12:45 ]
>>297
そうだね。でもここは君の居る所じゃないんだ。そろそろママの所に行っておいで

299 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 09:14:25 ]
初心者歓迎とかスレタイにあるのに何やってるの

300 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 09:21:19 ]
>>299
そうだね。でもここは君の居る所じゃないんだ。そろそろママの所に行っておいで

301 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 09:27:40 ]
恥ずかしいからってそんな連投しなくてもいいのに



302 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 09:30:09 ]
あんああんあんああんあん

303 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 09:30:30 ]
>>301
そうだね。でもここは君の居る所じゃないんだ。そろそろママの所に行っておいで

304 名前:292 mailto:sage [2007/08/15(水) 09:35:28 ]
>>300,>>303
あなたの相手は僕でしょ?

305 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 09:36:37 ]
>>304
そうだね。でもここは君の居る所じゃないんだ。そろそろママの所に行っておいで

306 名前:292 mailto:sage [2007/08/15(水) 09:38:05 ]
マクロも知らなかった初心者に指摘されたのが悔しかったの?
プライドを傷つけてごめんね

307 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 09:42:16 ]
マクロも知らない初心者の来る所じゃないんだ。
どれだけそいつに時間とレスを割く必要があるか分かるだろう?
そんなレベルの低い奴が来ると釣りかと思う。

308 名前:292 mailto:sage [2007/08/15(水) 09:45:23 ]
>>307
マクロ知らないとは書き添えたけど質問したわけではありません
あなたの勇み足では?

309 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 09:49:39 ]
>>306の言ってる指摘ってひょっとするとコレ?
>それだったら*++pではない場合にもいえてしまうんじゃないの?
いくらなんでもマジとは思えん(だから>>293もスルーしたんだろう)。

310 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 09:50:25 ]
>>308
みんな馬鹿で、お前だけが正しいことを言ってる。
誰もお前の頭の良さについていけなくて、悔しさのあまり暴れてるだけなんだよ。

だからママの所に行っておいで。

311 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 09:52:13 ]
>>307
>どれだけそいつに時間とレスを割く必要があるか分かるだろう?
って
>そうだね。でもここは君の居る所じゃないんだ。そろそろママの所に行っておいで
の事かwアホじゃね?



312 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 09:53:52 ]
>>311
日本語でおk

313 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 09:53:59 ]
>>311アホですね

314 名前:292 mailto:sage [2007/08/15(水) 09:55:13 ]
>>309
>>293のこれだけのレスをみれば、意図的にスルーしているとはとても…

315 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 09:55:59 ]
>>314
その辺が低脳。全て293のレスだと思ってやがる。

316 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 09:57:26 ]
>>315
見苦しい言い訳

317 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 09:57:57 ]
>>315
あああなたでしたかごめんなさいね

318 名前:307 mailto:sage [2007/08/15(水) 09:58:34 ]
どうせ俺の事も>>293だと思って勇み足で回答したとでも言いたいんだろう?
マクロも知らない初心者の来る所じゃないんだと思っている奴が、
わざわざマクロも知らない初心者に答えるわけがないだろう。

319 名前:292 mailto:sage [2007/08/15(水) 09:58:49 ]
>>317は僕です
しっかり名乗ります!

320 名前:292 mailto:sage [2007/08/15(水) 10:00:03 ]
>>318
マクロくらいわかるよw
フィーリングでね

321 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 10:00:14 ]
どう見ても292の方が見苦しい言い訳。
バカなんだからバカにされたくらいでレス繰り返さなくてもいいのに



322 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 10:01:24 ]
>>320
フィーリングで分かるなら空気くらい読めるだろ?

323 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 10:02:59 ]
>>295はうまい荒らしだったな

324 名前:292 mailto:sage [2007/08/15(水) 10:03:36 ]
あ、ずっと安価間違ってた
>>291さんでした

325 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 10:03:55 ]
>>318
初心者に答えるわけがない なんてレスの無駄だから偉そうに宣言しなくてもいいよw
答えないんじゃなくて答えられないんだろ

326 名前:309 mailto:sage [2007/08/15(水) 10:16:16 ]
結局>>306の言ってる指摘ってのはコレな訳?
>それだったら*++pではない場合にもいえてしまうんじゃないの?

327 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 10:18:32 ]
>>326
かもしれないけど、なにしろ何がどう「いえてしまう」のか
まるでわからん文章だからなぁ。

328 名前:309 mailto:sage [2007/08/15(水) 10:19:46 ]
>>326
意味わからんよなー

329 名前:309 mailto:sage [2007/08/15(水) 10:23:07 ]
>>326
多分、>>289から続く
>副作用があるコードを関数呼び出しで書いちゃ遺憾。
について言ってるんだと思う。

330 名前:329=309 mailto:sage [2007/08/15(水) 10:25:08 ]
アンカーミス。>>327ね。

後、>>328誰だw

331 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 10:26:15 ]
マクロに放り込むんだり引数の評価順に左右されるような場合はマズいけど
別にこのケースは何の問題も無いわな

スタイルとして自分がそう心がけているというだけの話なら
ご立派ですねで終わりだが

実にどうでもいい




332 名前:292 mailto:sage [2007/08/15(水) 10:26:21 ]
適切な日本語ではなかったけど、脳の衰え始めている先輩方には難しかったかな?
むしろ適切であったとしてもまともにこたえる気はなさそうにおもえる

333 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 10:27:23 ]
2chで煽るのだけが生き甲斐の厨房に
煽り返す厨房か

334 名前:309 mailto:sage [2007/08/15(水) 10:44:58 ]
>>331
今は問題無いからいいって考えはどうかと思うぞ。後々の仕様変更に耐えられるコードを書く方がいい。
もっとも今回は副作用で問題が出るマクロにするのが一番悪いが。

>>332
>まともにこたえる気はなさそうにおもえる
何でそう思ったか知らんが結局質問は「副作用があるコードを関数呼び出しで書いちゃ遺憾って言ってるけど、それって*++pではない場合にもいえなくない?」って事か?

335 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 10:49:04 ]
>>331
話題がループするが、sub()がマクロなら問題だからするべきではないという話だろ。
件のサイトではsub()が何か提示されていないのだから、問題がないとは言えない。

336 名前:292 mailto:sage [2007/08/15(水) 10:54:44 ]
皆さんの話がかみ合ってないかもしれないので整理しましょう

*++pってなんですか?

337 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 11:00:13 ]
>>335
マクロにsub()なんて名前をつけてるのならそっちのが問題じゃね
マクロは大文字で目立たせるのが基本だし
subはサブルーチンのサブだろう

ま、標準ライブラリの一部の関数はマクロで実装することも許されているけどな

338 名前:デフォルトの名無しさん [2007/08/15(水) 11:13:27 ]
>>336
死ね

339 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 11:32:32 ]
すみません、教えてください。

C++でコンテナからイテレータを取り出すときに、iterator とconst_iterator とを
区別するのはどうやっているんでしょうか?

std::vector<>::iterator begin();

std::vector<>::const_iterator begin() cons;

のように、同じ関数でiterator を返したりconst_iterator を返したりしたいんですが、上手くいかない……


340 名前:339 mailto:sage [2007/08/15(水) 11:40:56 ]
ごめん、忘れてください。超間抜けなこと聞いた。

暑くて頭がボケてたみたい……

341 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 11:42:17 ]
while(1) sub( *++p );

で意味をなす単項subってどんなマクロ(関数)なんだろ



342 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 11:46:15 ]
>>337
<*grep*>:319:crt/src/minmax.h:21:#define max(a,b) (((a) > (b)) ? (a) : (b))
<*grep*>:333:crt/src/stdlib.h:166:#define __max(a,b) (((a) > (b)) ? (a) : (b))
<*grep*>:340:crt/src/stdlib.h:472:#define max(a,b) (((a) > (b)) ? (a) : (b))
<*grep*>:342:crt/src/v2tov3.h:71:#define max(a,b) (((a) > (b)) ? (a) : (b))
<*grep*>:387:include/minmax.h:21:#define max(a,b) (((a) > (b)) ? (a) : (b))
<*grep*>:399:include/stdlib.h:146:#define __max(a,b) (((a) > (b)) ? (a) : (b))
<*grep*>:406:include/stdlib.h:424:#define max(a,b) (((a) > (b)) ? (a) : (b))
<*grep*>:603:PlatformSDK/Include/WinDef.h:177:#define max(a,b) (((a) > (b)) ? (a) : (b))
なるほど、標準ライブラリにないmax()系がこんなにあるとはM$は問題だらけだね。

343 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 11:48:41 ]
>>341
きっとこんなのだよ。
#define sub(x) putchar(x)

344 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 12:04:17 ]
>>342
そうだな。実際最悪だろ。

345 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 12:06:28 ]
マクロは名前空間にもくるめないしなあ

346 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 12:08:02 ]
>>342
実際、それが問題になることがあって、
min,maxを定義しないようにするための NOMINMAX というマクロが存在する

347 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 12:08:48 ]
>>342
実際そのマクロの存在の為に、VC6の<algorithm>にはstd::max, std::minがない。
これはC++の移植性において、由々しき問題である。

348 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 12:10:11 ]
まあVC6はそれ以前に色々ダメすぎだけどな
今となっては

349 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 12:10:29 ]
>>342
Effective C++でも第1項でいきなり問題視してるじゃん。

350 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 12:41:16 ]
Effective C++(笑)

351 名前:デフォルトの名無しさん [2007/08/15(水) 12:50:00 ]
質問です。
Windows Vista買ったら、Borland C++5.01のダイアログエデイタが正常に動作しません。
Xpマシンもありますがどうすればいいでしょうか?
1.プログラムはXpマシンで作成してコピーする。
2.ダイアログの部分だけXpマシンで作成してコピーする。
3.Vistaで動作する開発環境を買って移植する。



352 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 12:57:03 ]
マルチ死ね

353 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 14:18:31 ]
>>349
ttp://kamaitachi.blogdns.net/cgi-bin/izna/manage/img0351.jpg
これか。別にそんなに問題視はしてないように見えるが。

354 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 14:21:04 ]
問題視しまくりじゃないか。

355 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 14:47:21 ]
ここで言う「マクロと関数に名前の区別」というような点は問題視してない

356 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 14:56:09 ]
確かに>337が指摘しているような「大文字ではない」ことについてはなんら言及されていないね。

357 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 15:01:51 ]
>>349>>342宛なんだから、「ここで言う」はmaxマクロに対応させないと。

358 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 15:14:41 ]
なるほど。確かにそっちはそうだな。

359 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 18:25:13 ]
今北産業。

>>284
> 「単独の文
> *++p;
> は間接参照の文が無意味である。」
> ってどう意味なのでしょうか?
> 実例を挙げていただけないでしょうか。

無意味でない例なら出せる。

volatile int* p;

とか宣言されていて、p が実はメモリマップド I/O
で読むだけでも意味がある場合がある。

>>293
> #define sub(x) (x < 0 ? -x : x)

sub(a+b) とかでおかしくなるから >>342 みたいに () 使おう。


360 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 18:29:58 ]
>>359
p が volatile int* であっても
*++p; と書いて、pがdereferenceされることは保証されてないだろ。


361 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 19:14:24 ]
>>360
すまん、よくわからんのだが「p が deference されることは保証されない」のは、特に

*++p;

に言える、と言ってる?それとも、

*p;

でも同様だと言ってる?



362 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 19:24:20 ]
>>360
とりあえず volatile な *p; については

c0x.coding-guidelines.com/6.7.3.html

の 1488-1489 辺りで「最適化で削除しちゃいかんよ」ってな事になってるが。
もっといえば

volatile int x;

x;

でも一緒。

363 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 20:19:08 ]
更にいうと

const volatile int x;

x;

でも処理系は x の読み出しを削除してはいけないし、
x の値を何かに使う場合複数回の読み出しで同じ値だと仮定してもいけない。
この場合の const は「書き込めません」っていう意味だ。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<231KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef