トップページ > プログラム > 2015年04月04日 > GZJxoxqq

書き込み順位&時間帯一覧

4 位/172 ID中時間01234567891011121314151617181920212223Total
書き込み数00000000000110210001323014



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
【初心者歓迎】C/C++室 Ver.94【環境依存OK】©2ch.net
【初心者歓迎】C/C++室 Ver.95【環境依存OK】 [転載禁止]©2ch.net
★★Java質問・相談スレッド172★★ [転載禁止]©2ch.net
C++相談室 part116 [転載禁止]©2ch.net

書き込みレス一覧

【初心者歓迎】C/C++室 Ver.94【環境依存OK】©2ch.net
314 :デフォルトの名無しさん[sage]:2015/04/04(土) 11:29:40.27 ID:GZJxoxqq
>310
>そんじゃあ構造体の領域空にしたいときどうすんの

Cは知らんがC++では
v = unko{}; // value-initialize
または
new(&v) unko{};
【初心者歓迎】C/C++室 Ver.95【環境依存OK】 [転載禁止]©2ch.net
387 :デフォルトの名無しさん[sage]:2015/04/04(土) 12:04:14.16 ID:GZJxoxqq
>>385
basic_ostreamに
basic_ostream<charT, traits> & operator<<(const void * p);
が有るんだからいけるんじゃね
★★Java質問・相談スレッド172★★ [転載禁止]©2ch.net
772 :デフォルトの名無しさん[sage]:2015/04/04(土) 14:34:03.07 ID:GZJxoxqq
入門書には書かれていないのでは?
言語仕様15章あたりか。破壊は起きない。

15.7.2 Evaluate Operands before Operation
The Java programming language guarantees that every operand of an operator (except the conditional operators &&, ||, and ? :) appears to be fully evaluated before any part of the operation itself is performed.
★★Java質問・相談スレッド172★★ [転載禁止]©2ch.net
773 :デフォルトの名無しさん[sage]:2015/04/04(土) 14:51:06.24 ID:GZJxoxqq
あとは15.7.1に似た例がある。
 int a = 9;
 a += (a = 3);
一つ目のaの読み出し→二つ目のaの代入→一つ目のaの更新
の順に行われる。
【初心者歓迎】C/C++室 Ver.95【環境依存OK】 [転載禁止]©2ch.net
389 :デフォルトの名無しさん[sage]:2015/04/04(土) 15:14:43.29 ID:GZJxoxqq
>>388
そりゃcout<<&c は printf("%s", &c); 相当だからね。
printf("%x", &c) がやりたいなら
cout << hex << reinterpret_cast<std::intptr_t>(&c)

ちなみに%Xはサイズ指定が不正なので誤り。
%pもvoid*以外のchar*を渡してはいけない
【初心者歓迎】C/C++室 Ver.95【環境依存OK】 [転載禁止]©2ch.net
398 :デフォルトの名無しさん[sage]:2015/04/04(土) 19:51:24.75 ID:GZJxoxqq
>>391
ISO/IEC 9899:2011 p7.21.6.1
The argument shall be a pointer to void.

%pの引数はvoidへのポインターでなくてはならない
【初心者歓迎】C/C++室 Ver.95【環境依存OK】 [転載禁止]©2ch.net
400 :デフォルトの名無しさん[sage]:2015/04/04(土) 20:05:19.59 ID:GZJxoxqq
>>399
どこを読んだらそうなるのよ
argumentは実引数ですよ
C/C++のポインターは型によってサイズも表現も
同じであることは限らないというのに
【初心者歓迎】C/C++室 Ver.95【環境依存OK】 [転載禁止]©2ch.net
402 :デフォルトの名無しさん[sage]:2015/04/04(土) 20:23:42.18 ID:GZJxoxqq
>>401
>つまりvoidへのポインタとして処理する。
>こう考えるのが正しいよね?(´・ω・`)

そうだな
規格上 実引数はvoidへのポインターでなければならないから
当然fprintfはvoidへのポインターとして解釈する。
だからchar*を渡してはならないのだが、何を言いたいのかわからん。

char*が8バイトでvoid*が16バイトの処理系があったとしたら
void*にキャストして渡さないと明らかに誤作動するだろ?
【初心者歓迎】C/C++室 Ver.95【環境依存OK】 [転載禁止]©2ch.net
404 :デフォルトの名無しさん[sage]:2015/04/04(土) 20:34:35.68 ID:GZJxoxqq
>そんな現実は宇宙の果てまで行っても、
>あり得ないから気にしなくてもいいよ?(´・ω・`)

なるほど。規格上は許されていないことは理解できたんだな
C++相談室 part116 [転載禁止]©2ch.net
456 :デフォルトの名無しさん[sage]:2015/04/04(土) 21:13:47.50 ID:GZJxoxqq
IBMの人と話すとCOBOLが現役と思ってる人が結構いて
カルチャーショックを受けるわ
【初心者歓迎】C/C++室 Ver.95【環境依存OK】 [転載禁止]©2ch.net
408 :デフォルトの名無しさん[sage]:2015/04/04(土) 21:34:30.98 ID:GZJxoxqq
ISO/IEC 9899:2011 p7.21.6.1
『The argument shall be a pointer to void.』
どういう思考をしたらchar*の実引数を渡しても良いと解釈できるのよ
『void』の所は等幅フォントだぞ
【初心者歓迎】C/C++室 Ver.95【環境依存OK】 [転載禁止]©2ch.net
420 :デフォルトの名無しさん[sage]:2015/04/04(土) 22:09:05.21 ID:GZJxoxqq
ISO/IEC 9899:2011のshallは処理系またはプログラムへの要求
であると4章の冒頭で定義されているよ。
結論としてそうなるとか意志という話ではなくて
それが守られなかったら"behavior is undefined"になる
という強い要求事項だし
shallは処理系だけの要求ではない
【初心者歓迎】C/C++室 Ver.95【環境依存OK】 [転載禁止]©2ch.net
423 :デフォルトの名無しさん[sage]:2015/04/04(土) 22:12:56.89 ID:GZJxoxqq
>>419
argumentってのは関数呼び出しの括弧内に書かれる式と3.3で規定されてるの。
だから『The argument shall be a pointer to void.』
は処理系への要求じゃなくてプログラムへの要求。
【初心者歓迎】C/C++室 Ver.95【環境依存OK】 [転載禁止]©2ch.net
426 :デフォルトの名無しさん[sage]:2015/04/04(土) 22:41:08.38 ID:GZJxoxqq
>>424
なるほどそんな規定があったのね。ありがと。
char*はvoid*と同じ表現になるので
>>402はint*とかの例じゃないと駄目だね。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。