1 名前:デフォルトの名無しさん [2019/04/02(火) 11:23:37.62 ID:SQXqRaAc0.net] !extend:checked:vvvvv:1000:512 C言語の話題のみ取り扱います C++の話題はC++スレへ 質問には最低限の情報(ソース/コンパイラ/OS)を付ける 数行で収まらないソースは以下を適当に使ってURLを晒す https://paiza.io/ https://ideone.com/ codepad.org/ C11 www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf C99 www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf kikakurui.com/x3/X3010-2003-01.html C FAQ 日本語訳 www.kouno.jp/home/c_faq/ JPCERT C コーディングスタンダード https://www.jpcert.or.jp/sc-rules/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
604 名前:デフォルトの名無しさん mailto:sage [2019/05/21(火) 06:44:08.98 ID:UPiNM42a0.net] >>584 20年前くらいの知識で、しかも完全に理解してるわけではないので、間違っていたらゴメンだけど。 変数について言えば、Java の final 変数は、値が未定義かどうか、という情報を内部的に持っていて。 もし、変数の値が未定義の場合は、1回だけ代入できたはず。例えば final int i; System.out.println("test"); i=4; System.out.println(i); i=5; System.out.println(i); の場合、1回目の代入(i=4)は許されるけど、2回目の代入(i=5)は怒られる。 それに対して、(C89の頃のだけど)Cのconst変数は・・・ const int i; printf("test\n"); i=0; printf("%d\n",i); 1回目の代入(i=0)であっても怒られる。 みたいな感じの違いはあったような。最近のCやJavaは知らないんだけどね。 あまり自信がないので、詳しい方のレスを待ちましょう。
605 名前:デフォルトの名無しさん mailto:sage [2019/05/21(火) 06:49:56.40 ID:tdstqwiHM.net] >>585 そっちもあるけどAPI呼出し回数の削減もあるから
606 名前:デフォルトの名無しさん mailto:sage [2019/05/21(火) 07:08:29.24 ID:6muVxYSDr.net] >>585 今どきのディスクならほぼ遅延書き込みしてるといってもいいね バッファには二段階あって、 @プロセスが持ってるバッファ AOSが持ってるバッファ flush関係のライブラリ関数やシステムコールは@をAに吐き出す Aを吐き出すにはLinuxだとfsyncもしくはfdatasync
607 名前:デフォルトの名無しさん [2019/05/21(火) 09:19:53.31 ID:BVi2WQ22a.net] >>584 Cはポインタの指す先が const という指定ができるがJavaは配列の要素まで final にする指定ができなかったと思う。 つまり配列やクラスそのもののインスタンスへの参照は final にてきる。しかし参照される中身までは final にできず書き換え可能(クラスの場合はpublicのクラス変数とか、外部から書き換えられるようになっていれ