C言語なら俺に聞け 141 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2017/07/17(月) 21:06:47.63ID:J4JGo3XO
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/

C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf

C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html

C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/

JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/


http://mevius.2ch.net/test/read.cgi/tech/1494508803/
http://www.geocities.jp/c_cpp_cs/about_c/
2017/07/29(土) 12:09:46.80ID:14mINgXT
>>418
型ならなんでも良い
2017/07/29(土) 12:10:50.91ID:14mINgXT
>>419
最初からずっと
2017/07/29(土) 12:13:39.65ID:14mINgXT
ていうか
コンテナじゃない2分木はあるけど、
コンテナじゃないリストなんて無いだろ

初期化リストか?
2017/07/29(土) 12:22:33.90ID:EGnuLLJd
コンテナの定義に詳しくないんだけど、Lispのリストはコンテナなん?
424デフォルトの名無しさん
垢版 |
2017/07/29(土) 12:24:27.13ID:vlC06Wfm
このスレは1000までリストの話で埋まりそうだね。物凄いスピードで。
2017/07/29(土) 12:35:38.98ID:gxbujSGs
>>418
俺は>>286派だって事。(>>370もあり。)
>>364は無し。てかどうでもいいところでunion使ってもろくな事にならないし。
void*も無し。主にキャストが面倒だから。でもunionよりはvoid*を選ぶ。

とはいえここら辺は好みの問題でしかないが。
俺なら、型固定>void*>unionだね。
2017/07/29(土) 12:48:00.97ID:TYuY3Yui
>>420
単にunion使わずに(メモリー気にせずに)struct使うって話?
2017/07/29(土) 12:51:34.43ID:QBDV3ETd
あんなあおまいら・・
これ、コレクションをライブラリとして持てという
あるいはそれをどう作るかという話なんだわ
例をあげれば、AppleのCFMutableArray
Win32ならなんだ?
2017/07/29(土) 13:02:32.44ID:14mINgXT
>>426
型ごとに作るってこと
2017/07/29(土) 13:09:06.48ID:TYuY3Yui
>>425
> 俺は>>286派だって事。(>>370もあり。)
> >>364は無し。
要件違うものを持ってきてそんなことを言われてもなぁ

> てかどうでもいいところでunion使ってもろくな事にならないし。
> void*も無し。主にキャストが面倒だから。でもunionよりはvoid*を選ぶ。
unionになんかトラウマでもあるのか?
まあ好みの問題と言うのには同意する
2017/07/29(土) 13:09:40.87ID:14mINgXT
MyList(MyListDouble, double)
MyList(MyListMyListDouble, MyListDouble)
2017/07/29(土) 13:11:30.55ID:gxbujSGs
>>427
C的には、
> コレクションをライブラリとして持て
いらんわ
> あるいはそれをどう作るか
必要なら自分で作るし苦労もしない

だと思うぞ。もちろんC++使ってもいいし、今更だろ。
ただそれ以前に、現実として、動的キー(辞書)が必要な用途はあまりないだろ。
Cの担当範囲なら、ほぼ全ての場合で構造体(静的キー)と配列で間に合う。(鶏と卵ではあるが)
もちろんこれら含めて汎用化したほうが楽だが、その分遅いのがLL言語な訳で。
2017/07/29(土) 13:17:05.76ID:QBDV3ETd
>>431
まあC++使えば済む話でもあるからな
2017/07/29(土) 13:27:26.48ID:gxbujSGs
>>429
> unionになんかトラウマでもあるのか?
いやお前少しは他言語もやれよ。
unionは他言語では廃止されている。理由はいろいろまずいから。
ググれば出て来るからやってみ。

まあそれ以前に君はunionの使い方を間違っている。
あれは、リード/ライトで型が違うときに使うものであって、
型違いだがサイズが同じだから突っ込む、という為の物ではない。
というか後者ならvoid*で受けていちいちキャストするというのが正しい。
しかしこれだと型チェックできなくなるからテンプレートにしろというのがC++だ。
2017/07/29(土) 13:29:31.36ID:N+YJafLA
形別 > union > void*

こうだな
もちろんサイズにもよるが
2017/07/29(土) 13:30:38.44ID:N+YJafLA
>>433
goto嫌いと同じにおいが
2017/07/29(土) 13:32:15.53ID:N+YJafLA
何度も書くけど、
外でメモリ確保解放強制はあり得ない
2017/07/29(土) 13:33:45.21ID:N+YJafLA
>>433
サイズが同じ?
2017/07/29(土) 13:34:53.52ID:N+YJafLA
unionの使い方は1つじゃないよ
2017/07/29(土) 13:41:10.88ID:gxbujSGs
>>432
Cは大前提としてそれがあるんだよ。
不満があればC++で大体事足り、それがbetterCだ。(俺の認識では)
つまり、リストが欲しいけど自分で作るのは面倒、だったらここだけC++使うか、って場合。
2017/07/29(土) 13:53:49.23ID:E5EEKRTu
>>433
> あれは、リード/ライトで型が違うときに使うものであって、
> 型違いだがサイズが同じだから突っ込む、という為の物ではない。
まあ確かにお前はunion使わない方がいいわ w
一応言っておくけど読み書きで型が違ったら値は保証されないよ
2017/07/29(土) 13:54:39.36ID:YB2Y7dkJ
union なくなると XEvent 困るだろう
2017/07/29(土) 14:04:10.84ID:uK1pt60X
unionて、メモリを節約できるのとそのメンバが同時に使われないってことがわかりやすいくらいだよな。
>>364もべつにunion使わなくてもいいわけだし。
2017/07/29(土) 14:11:28.22ID:gp3BUyJn
バズワード使うだけあってレベル低すぎる。>>433
2017/07/29(土) 14:20:45.06ID:gxbujSGs
>>440
> 一応言っておくけど読み書きで型が違ったら値は保証されないよ
値の保証はされてるだろ。
処理系に依存する(エンディアンが見えることが多い)というだけで。

いずれにしても、これが問題だと思う>>440のような馬鹿はunionを使うべきではない。
こんなの当たり前だろ、と理解できる奴だけがunionを使っていい。
そして現実として、unionを使わなければならない機会はほぼ無いから他言語では廃止されてる。
例えば、>>441とかは今なら継承で実装される。
2017/07/29(土) 14:21:28.04ID:ULoSSJ2b
union を使ったら見通しよく書けるのか?そうなのか?不思議な気分だ
よかったらサンプルコードを書いてほしい
2017/07/29(土) 14:51:40.09ID:E5EEKRTu
>>444
> 値の保証はされてるだろ。
されないよ、鼻から悪魔
2017/07/29(土) 14:58:48.36ID:E5EEKRTu
>>445
お前さんがどう思うかは知らんが>>364みてサンプルコードがが思い付かないならunionなんて使わない方がいい
2017/07/29(土) 15:15:38.90ID:ULoSSJ2b
>>447
それだけではわからないよ、実際に union の Child や Double の値を設定するところを見たいものだ
個人的にはうまくいかないと思っている
たぶんマクロを使うことになるし、マクロを使うんだったら共用体なんか使わないほうがよかった、という結果になりそう
2017/07/29(土) 15:26:51.26ID:14mINgXT
何がわからないかわからない
2017/07/29(土) 15:35:05.11ID:14mINgXT
unionは、
普通に同時使用しないメンバに対して使われることもあるが
実際に使う環境を把握した上で
同じアドレスに対して複数のアクセス方法を
用いる場合にも良く使われる

一番あるのが、レジスタの定義
チップメーカーなどがヘッダとして提供したりする
ビットフィールドアクセスやワードアクセスなど、
複数のアクセス方法を使えるようにするため
あとは複数の型へのポインタをunionで定義したり
2017/07/29(土) 15:36:30.30ID:14mINgXT
>>364は環境に依存しない、
普通の排他メンバの使い方
2017/07/29(土) 15:41:58.78ID:14mINgXT
メモリをケチる為のunionは
時代とともに使う頻度は減っているが

複数のアクセス方法の為のunionは普通に使われる
もちろん環境依存コード
例えばWindows APIのLARGE_INTEGERも
この使い方のunion
2017/07/29(土) 15:46:20.38ID:gp3BUyJn
アセンブラじゃ共用が当たり前。だからCにある。それだけ。
x86のレジスタはまんま共用体。ワイヤー数、バス幅に制限があるんだから共用して当たり前。
本来、ハードの仕様を実装するためのもの。
2017/07/29(土) 16:09:53.11ID:N+YJafLA
なんか違う
2017/07/29(土) 16:11:44.21ID:gxbujSGs
>>449
まず大前提としてコードを再利用する仮定だ。
ベタにコピペした場合は関係ない。

>>364のunionは今なら継承で実装されることが多いはずだ。
当然Dataはテンプレート化され、
Previous,Nextへの書き込みは基底クラス、Dataへの書き込みは派生クラスに配置される。
これがC++的解決。

unionだと一見何でも書けるように見えるが、
実際は派生型を手動で扱っているのと同等なので、
共通書き込みルーチンを用意できない。これが>>448の言う、
> 個人的にはうまくいかないと思っている
で、俺もそう思う。
マクロを強引に使えば出来るかもしれんが、それなら上記C++的解決の方がマシ。

>>452
> メモリをケチる為のunionは
> 時代とともに使う頻度は減っているが
これって>>364の使い方、ということでいいのか?
それならC++的に言えば、
糞だからクラステンプレートと継承で対応できるようにして廃止した、というところだろう。

> 複数のアクセス方法の為のunionは普通に使われる
多分これ以外のunionは必要ない。
そして俺はこれについてはリート/ライトで型が違っても値が保証されていると認識している。
(一応言っておくが同じ値が読めるという意味ではない。《>>446の馬鹿は多分この勘違い》
プログラマから見て値が確定的、という意味だ。)
仕様に詳しい奴がいればよろしく。
456デフォルトの名無しさん
垢版 |
2017/07/29(土) 16:26:09.19ID:mj0H/MXI
初期化リストの話は終わったのか?
2017/07/29(土) 16:38:11.08ID:Y1dtbxTh
>>456
今union、次extern
2017/07/29(土) 16:51:08.52ID:ULoSSJ2b
>>453
たしかに遥か昔の DOS コールラッパではそうしていたけれども…なんか違うきがしないでもない
共用体の適切な使い方はおもいつかないね…
2017/07/29(土) 17:00:18.71ID:ULoSSJ2b
>>449 全部がわからない:−)
>>364 の方針で >>357 を書いてくれる人はいないものか
ちょっと想像がつかないんだ

void *data 派であるけれどもマクロの方はわかる、工藤智行氏の書籍にてさんざんやっていたからね https://www.amazon.co.jp/dp/4774100544/
2017/07/29(土) 17:05:21.12ID:zJVnUUbX
>>455
よく知らないなら黙ってりゃいいのに w
2017/07/29(土) 17:05:34.42ID:EGnuLLJd
共用体なんて使うとしたら、sdl_eventと同じように、enumとセットだろ〜?
462デフォルトの名無しさん
垢版 |
2017/07/29(土) 17:29:39.44ID:Xv3aO8mX
トリコロシ
2017/07/29(土) 17:35:09.29ID:CXR2+t0L
COBOLだとレベル番号で同じことが出来るね
2017/07/29(土) 17:35:29.83ID:zJVnUUbX
>>461
まあそうだね
もっと早くにその突っ込み入るかと思ったけどunionをとうとうと語る奴とか低レベルすぎて笑うしかない状態なのよ w
2017/07/29(土) 17:37:42.13ID:14mINgXT
>>364は自由な型じゃない
doubleのリスト
doubleのリストのリスト
doubleのリストのリストのリスト
...


他の型が必要ならunionに追加する
2017/07/29(土) 17:41:42.52ID:gxbujSGs
>>461
その場合も今は継承で実装されるのが普通で、それで何も問題ないだろ。
だからもう共用体は古いんだよ。それが俺の言った、
> JavaやC#の方が簡単だから。
> その後出てきた言語はCの駄目なところを改善している。(>>251)
であって、JavaもC#も共用体は廃止済み。
2017/07/29(土) 17:45:12.94ID:gp3BUyJn
JavaもC#もハナからOSやドライバを書く気ない。もちろんPascalで書く馬鹿もない。頓珍漢。ナンセンス。
2017/07/29(土) 17:45:49.99ID:eThbJX9n
#include <stdio.h>
typedef union {
unsigned char byte;
struct {
char bit0:1;
char bit1:1;
char bit2:1;
char bit3:1;
char bit4:1;
char bit5:1;
char bit6:1;
char bit7:1;
} bit;
} SFR;

int main(void) {
SFR sfr;
sfr.byte = 0x00; // All Clear
sfr.bit.bit7 = 1; // bit7 set
printf("%x", sfr); // sfr = 0x80
return 0;
}
2017/07/29(土) 17:50:31.58ID:14mINgXT
charが符号無しの環境?
2017/07/29(土) 17:55:22.53ID:gxbujSGs
>>467
JavaOSェ、、、

ただまあ、ハードが見えるレベルをC以外の言語で書くのは狂気の沙汰なのは同意する。
とはいえ、旧来のイベントオブジェクトがunionで出来ているのは、
・それがCの時代だったから
・古いから
であって、便利だからではない。
実際、新しいAPIは全部継承で実装されてるだろ。そういうことだよ。
2017/07/29(土) 17:58:59.45ID:zJVnUUbX
>>466
> C#も共用体は廃止済み。
何でこんな知識量でドヤれるんだろう? w
http://smdn.jp/programming/netfx/struct/1_structlayout_fieldoffset/#FieldOffsetAttribute
2017/07/29(土) 18:01:14.53ID:14mINgXT
強要隊に親を殺された?
2017/07/29(土) 18:01:47.45ID:gxbujSGs
>>471
つかお前C#知らんだろ。
それはレガシー用であって、レガシー以外でそれ使ったら殺されるぞ。
2017/07/29(土) 18:04:09.87ID:14mINgXT
実際に共用体はいろいろで使われているわけで
2017/07/29(土) 18:08:03.01ID:FQLMCr49
争いは同じレベルの者同士でしかうんたらかんたら
476デフォルトの名無しさん
垢版 |
2017/07/29(土) 18:10:06.13ID:vlC06Wfm
union 使っても
いいじゃないか
C言語だもの
2017/07/29(土) 18:10:09.26ID:zJVnUUbX
>>473
お前の糞職場は知らんけどMSはレガシー用なんて言ってないぞ
恥の上塗りかっこ悪 w
https://msdn.microsoft.com/en-us/library/system.runtime.interopservices.fieldoffsetattribute(v=vs.110).aspx
2017/07/29(土) 18:17:23.76ID:gxbujSGs
>>474
だから、レガシー以外は使われてないんだよ。
とはいえ、OSのAPIが共用体を返してくるんだから、
それを受け取れないのはまずいから手段も用意してはある、という話で。

>>364はC++/Java/C#なら継承で実装される。
その他の言語でも大体こうなる。理由は共用体がそもそも無いから。
俺は逆に、何故お前らがunionを使いたがるのかが分からんね。メリットは何もないだろ。

>>477
レガシー=obsoleteという意味ではないぞ。
2017/07/29(土) 18:26:02.72ID:eThbJX9n
C言語での組込み開発では共用体は普通に使われてる
>>468で示唆したような特殊機能レジスタの多重定義などが代表例
480デフォルトの名無しさん
垢版 |
2017/07/29(土) 18:26:39.61ID:vlC06Wfm
レガC
2017/07/29(土) 18:27:18.82ID:14mINgXT
使いどころでは使えって話
gotoといっしょ
>>364が使いどころかどうかは別として
482デフォルトの名無しさん
垢版 |
2017/07/29(土) 18:27:46.17ID:vlC06Wfm
>>479
てか、あると便利だよね。
よくわからないまま使うとハマるだけのことで。
2017/07/29(土) 18:28:35.21ID:14mINgXT
>>479
charにunsignedが無いのが気になってるわけだが
2017/07/29(土) 18:29:51.58ID:zJVnUUbX
>>478
> レガシー=obsoleteという意味ではないぞ。
バカってなんで言ってもないことに突っ込むんだろう?
みずから恥の上塗りすることもないだろうに w
2017/07/29(土) 18:30:55.63ID:gxbujSGs
>>479
それは知っているしそれはいいんだよ。
それ以外のケース、>>364みたいな使い方をお前らはやるのか?
2017/07/29(土) 18:32:39.97ID:eThbJX9n
>>483
ビットフィールド構造体の定義にはunsignedどうでもいいだろ
共用しているchar型変数の方にはunsigned付けたけど
2017/07/29(土) 18:33:12.58ID:vlC06Wfm
>>481
そうそう。わかってて使うなら gogo もありだ。

ていうかC言語だと使わないと変な書き方になってかえって読み辛くなることあるな。
try catch みたいな例外処理が書けないから。複数個所でエラーが出る可能性が
ある場合に処理を飛び越えて先に進ませる方法が for(;;) ブロックの中で break
使うぐらいしかなかったりして、ループでないのに for (;;) 使うぐらいなら goto 使った
方がまだ分かり易い。
2017/07/29(土) 18:34:01.67ID:14mINgXT
char, unsigned char, signed char
この辺は規格がいまいち

文字をunsignedにしなかったのもいまいち

あとは演算子の優先順位にも不満がある
ビット演算が弱すぎる

代入が = / 比較が ==
なのもいまいち

いろんな歴史的な理由があるんだろうけど
2017/07/29(土) 18:34:26.21ID:zJVnUUbX
>>481
> 使いどころでは使えって話
まあそういうことだね
環境も目的も制約も様々だから絶対unionでないとダメとかunionはレガシーしか使っちゃダメとか言う奴はたいていちょっとアレな人なんだと思う
まあ引っ込みつかなくなっちゃったんだろうね
2017/07/29(土) 18:35:03.24ID:14mINgXT
>>486
えっ?
本気で言ってるの?
2017/07/29(土) 18:36:30.47ID:14mINgXT
gogo

MP3関連のツールか?
2017/07/29(土) 18:54:34.75ID:F0OdFQYT
>>485
>>364 までして型をとる,というのも疑問だな‥
2017/07/29(土) 19:02:45.32ID:A0tSwWs4
バークレーソケットのソケットアドレス等で使わされてる感じだけど
自分から積極的に union を記述することは少ないな
2017/07/29(土) 19:18:41.24ID:gxbujSGs
というかマジで急にエアプ増えてね?

FieldOffsetを数字でベタ書きとか、かなり最悪のコードだぞ。(>>471内URL)
保守する場合は全部書き直しになる。(今更そこが変更されることもないはずだが)
真面目にこれを言っているID:zJVnUUbXはエアプだろ。
引っ込みつかないのはお前だ>>489

>>492
型を取るなら普通はC++的テンプレート解決だよな。
型なしがよければvoid*でいいし。
2017/07/29(土) 19:43:57.40ID:zJVnUUbX
反論できなくなってエアプとか w
分かりやすすぎるだろ
496デフォルトの名無しさん
垢版 |
2017/07/29(土) 20:48:24.50ID:vlC06Wfm
エアプってなに?
2017/07/29(土) 21:21:36.23ID:VkCqDRe3
エアプレーン
2017/07/29(土) 21:34:56.85ID:vlC06Wfm
エアーおならプ
499デフォルトの名無しさん
垢版 |
2017/07/29(土) 21:53:33.37ID:qAu/jA2x
>>468
ANSI C 規格への Microsoft 拡張機能を使用すると、ビット フィールドに対して char および long 型 (Signed と unsigned の両方) が許されます。
2017/07/29(土) 23:41:43.43ID:KxGqyxM3
知らない書き方だと思ったら、MSのCコンパイラの独自仕様なのか
どうやらそのビットフィールドをchar境界に制約するものみたいだけど、
こういう書き方だとビットフィールドの幅に見えて気持ち悪い
2017/07/29(土) 23:46:26.91ID:14mINgXT
マイクロソフト以外でも結構良くある
型指定可能なコンパイラ

enumの型指定とかも
2017/07/29(土) 23:49:52.99ID:14mINgXT
signedとunsignedはビットフィールドでも意味がある

1bitでsignedだと、符号ビットしか存在しない
値でいうと 0と-1
2017/07/29(土) 23:50:32.30ID:14mINgXT
>>486の「どうでもいい」の意味が不明
2017/07/30(日) 00:02:03.96ID:1+DcPeTw
1bitで表現できるのは0か1しかないのでは?
意味的には-1だろうが値としては1以外に表現する方法がない
2017/07/30(日) 00:25:20.56ID:FGe2lUf3
sizeof(int)==4とすると
468のsizeof(SFR)==1だが
468のcharをintに変えると sizef(SFR)==4 になる
(略)
アクセス違反でbitfieldが使えん可能性あり
2017/07/30(日) 02:07:11.27ID:LfAaUMEW
>>504
問題になるのは保存時じゃなくて読み出し時
507デフォルトの名無しさん
垢版 |
2017/07/30(日) 02:36:29.18ID:FQwxQ4LP
初学者なんだが教えて欲しい

状況:作ったプログラムが思うように動かないから途中の値をprintfで出力して検証中

コードの内容を大雑把に書くと

A[1] = 12
・・・
for( j = x - 1; j >= 0 ,--j ) (jは最初1)
・・・
if ( j != 0 )
printf( "a1=%d, j=%d\n", A[j], j )
if
 ・・・
 else
 if
printf( "a2=%d, j=%d\n", A[j], j )
   ・・・
みたいな処理をさせると出力結果が

a1=12, j=1
a2=0, j=1

階層が深くなると値が変わるんだが、何が原因かわかる人いる?
2017/07/30(日) 02:41:51.54ID:pLyoXQEm
原因はバグ。これ以上は再現するソースコードがないと分からない
2017/07/30(日) 02:45:37.97ID:LfAaUMEW
変な状態が発生する状態を保ったまま
処理を削っていく
削っていって発生しなくなったら
その削ったところに何かヒントがあるかも

1レスに収まる範囲になったらここにすべてアップ
2017/07/30(日) 03:02:39.88ID:FQwxQ4LP
そんなに簡単にバグるものかと思って聞いてみたけど、汚ねえプログラムを添削してもらうのも申し訳ないからそういうものだと納得するよ、thx
2017/07/30(日) 03:29:48.70ID:KxWScrhl
>そんなに簡単にバグるものかと思って聞いてみたけど
次はコンパイラのバグとか言い出して大騒ぎして
そのうち人間のいい加減さに絶望する

普段から人間がどれだけ間違えてるか思い知るがいい
2017/07/30(日) 04:54:25.66ID:0PJrZm1n
>>507
初心者がやりそうな間違い。

1. 配列の A の要素数が足りない。
2. A を int *A; 等と宣言しておきながらメモリ確保していない。
3. メモリ確保しているがバイト数が足りない。
4. if 文を多重に使っているが階層を誤解している。
5. 自分で変数や配列の内容を書き換えている事に気付いていない。

4は例えば if (...) ...; if (...) ...; else ...; のようになっている場合に if (...) { ...; if (...) ...; else ...; } となると勘違いしている場合。
実際は if (...) { ...; } if (...) { ...; } else { ...; } になって最初の if と次の if は別物。
インデントがおかしいと騙される。しかしCコンパイラはインデントなど見ていない。
2017/07/30(日) 04:59:02.25ID:9ZftmVJd
--j  最近は前置が流行ってるのか?
2017/07/30(日) 05:07:33.79ID:7dS2HrxN
じゃあ俺のあてずっぽうの勘だと主たる原因はフォントサイズが小さすぎること
メインの原因はA[i]が紛れ込んでいること
2017/07/30(日) 05:21:48.22ID:0PJrZm1n
>>513
http://bokko.hatenablog.com/entry/20080606/1212695409
2017/07/30(日) 05:50:22.55ID:3UqYvyNk
>>507
for( j = x - 1; j >= 0 ,--j ) (jは最初1)
--j の前が ; であるべきなのに , てことはないよな。
投稿時のtypoだろうな。

if ( j != 0 )
printf( "a1=%d, j=%d\n", A[j], j )
if
の感じから見て、元のifのthen節を{}で囲ってなかったところに
printf() を挿入したから実行条件が変わっちゃった、かな。
「ぶらさがりif文にまつわる問題」てやつ。
(>>512 の指摘 4.)
517デフォルトの名無しさん
垢版 |
2017/07/30(日) 06:32:09.81ID:bW/sP0k9
>>515
C++訛りとは限らんぞ
機械語のオートインクリメントは++が後置で--が前置になっていて
それが透けて見えるように書いていると--は前置だし
2017/07/30(日) 06:41:47.40ID:9ZftmVJd
オーバロードした++やイテレータは前置と後置で速度が違うのか。後置使うやつがいなくなるじゃないか。

C++は欠陥品だな。++Cって名前にしろよ。
2017/07/30(日) 07:03:49.82ID:1+DcPeTw
>>517
機械語の仕様や挙動はCPUの種類による
昔の話だけど8ビットCPUの頃は、インテル(ザイログ)とモトローラでは逆になっていた記憶がある
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況