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/
前
C言語なら俺に聞け 144
https://mevius.5ch.net/test/read.cgi/tech/1514025223/
次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
C言語なら俺に聞け 145
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 9381-qput)
2018/02/19(月) 22:13:58.98ID:9/te2eSJ0497デフォルトの名無しさん (ササクッテロレ Sp6f-ywpa)
2018/03/15(木) 10:49:38.59ID:c+umNtGLp マジックナンバー使うな。
498デフォルトの名無しさん (ワッチョイ 1323-hKdO)
2018/03/15(木) 11:01:51.80ID:OczprsBK0 >>496
シグナルは悪い文明! 粉砕する!
シグナルは悪い文明! 粉砕する!
499デフォルトの名無しさん
2018/03/15(木) 12:00:46.26500デフォルトの名無しさん (アウアウカー Sad3-Y9Jj)
2018/03/15(木) 12:19:33.36ID:KGbgKLI3a >>494
エラー処理が抜けてる。
エラー処理が抜けてる。
501デフォルトの名無しさん (アウアウカー Sad3-Y9Jj)
2018/03/15(木) 12:21:39.25ID:KGbgKLI3a >>496
そうそう。しかしその辺はOSや接続先によって違うかも。
そうそう。しかしその辺はOSや接続先によって違うかも。
502デフォルトの名無しさん (ワッチョイ 25d4-N79+)
2018/03/15(木) 16:10:59.70ID:CR6uT/FI0 >>494
これの受信側read()のコードを求むm(__)m
これの受信側read()のコードを求むm(__)m
503デフォルトの名無しさん (ワッチョイ ddd2-0FUd)
2018/03/15(木) 16:16:36.38ID:umqIWKjV0 【守銭奴】 株・FX・トレーダー <キリストW再臨″> 史上初テレパシー演説 【救世主】
https://rosie.5ch.net/test/read.cgi/liveplus/1521080734/l50
https://rosie.5ch.net/test/read.cgi/liveplus/1521080734/l50
504デフォルトの名無しさん (ワッチョイ d7ea-fr1+)
2018/03/15(木) 17:42:18.79ID:v5sVsR9k0 プロトコルなんか無しに来たものを読みきるだけの話なら
allocsz = blocksz = 512
buff = malloc(allocsz);
use = 0;
for (;;) {
w = read(FIFO, buff+use, allocsz-use);
if (w == 0) { /* もう来ない */
break;
} else if (w > 0) {
use += w:
if (use >= allocsz) {
// 器が尽きた
allocsz += blocksz;
buff = realloc(buff, allocsz); // 手抜きで realloc
}
} else { /* エラーケアしてね */ }
}
buff に use バイトだけ収まってる
allocsz = blocksz = 512
buff = malloc(allocsz);
use = 0;
for (;;) {
w = read(FIFO, buff+use, allocsz-use);
if (w == 0) { /* もう来ない */
break;
} else if (w > 0) {
use += w:
if (use >= allocsz) {
// 器が尽きた
allocsz += blocksz;
buff = realloc(buff, allocsz); // 手抜きで realloc
}
} else { /* エラーケアしてね */ }
}
buff に use バイトだけ収まってる
505デフォルトの名無しさん (ワッチョイ fbee-Iqdo)
2018/03/15(木) 17:56:13.79ID:lf1N2aO70 >buff = realloc(buff, allocsz)
リークするからやめなよ。
リークするからやめなよ。
506デフォルトの名無しさん (ササクッテロレ Sp6f-ywpa)
2018/03/15(木) 18:05:35.40ID:c+umNtGLp ヒープなんか使わずに配列にして自己管理せい。
507デフォルトの名無しさん (アウアウカー Sad3-Y9Jj)
2018/03/15(木) 18:12:47.89ID:yyzFA25Ma ヒープに配列用のメモリを確保しているわけで・・・
>>505
ん?realloc() はリークするのか?
ん?realloc() はリークするのか?
509片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd2f-5vKF)
2018/03/15(木) 18:24:18.46ID:mTrAuuczd >>508
割り当てに失敗したらリークするよ。
割り当てに失敗したらリークするよ。
511デフォルトの名無しさん (ワッチョイ 21b3-fr1+)
2018/03/15(木) 18:43:54.61ID:T5+tR1ew0 戻りを別の変数で受けて確認してから代入
512片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd2f-5vKF)
2018/03/15(木) 18:51:29.92ID:mTrAuuczd 前、ANSI準拠のreallocは、mallocとfreeの代わりになるって話をしたよな。
だから、最初のmallocは、NULLに対するreallocで置き換えできるんだよ。
だから、最初のmallocは、NULLに対するreallocで置き換えできるんだよ。
513片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd2f-5vKF)
2018/03/15(木) 18:52:49.68ID:mTrAuuczd それから、この場合はintよりもsize_tを使った方がいい。
514デフォルトの名無しさん (アウアウカー Sad3-Y9Jj)
2018/03/15(木) 20:39:48.98ID:yyzFA25Ma >>512
最初だけ、な。
最初だけ、な。
515デフォルトの名無しさん (アウアウカー Sa09-agSD)
2018/03/15(木) 23:54:08.20ID:NmT4VXxza 素朴な疑問なんですが、Cでメンバ関数を関数ポインタで定義して、そのメンバ関数から引数なしにメンバ変数を参照することってできませんか?
516デフォルトの名無しさん (ワッチョイ e19f-hKdO)
2018/03/16(金) 00:14:09.63ID:LkWvbaD00 >>515
メンバ関数ってなんですか?
メンバ関数ってなんですか?
517デフォルトの名無しさん (ブーイモ MM3f-WReF)
2018/03/16(金) 01:02:32.36ID:w3tL3lE3M >>515
https://mevius.5ch.net/test/read.cgi/tech/1434079972/39
メンバ関数 h() を返す メンバ関数 g() を定義
メンバ関数へのポインタ f を定義
メンバ関数へのポインタ f にメンバ関数 g() の返り値を代入
ここでメンバ関数へのポインタ f にはメンバ関数 h() が格納されている
->* 演算子を使用してメンバ関数へのポインタ f が指すメンバ関数 h() を実行、 h() ではメンバ変数 C::a を出力する
https://mevius.5ch.net/test/read.cgi/tech/1434079972/39
メンバ関数 h() を返す メンバ関数 g() を定義
メンバ関数へのポインタ f を定義
メンバ関数へのポインタ f にメンバ関数 g() の返り値を代入
ここでメンバ関数へのポインタ f にはメンバ関数 h() が格納されている
->* 演算子を使用してメンバ関数へのポインタ f が指すメンバ関数 h() を実行、 h() ではメンバ変数 C::a を出力する
519デフォルトの名無しさん (ブーイモ MM3f-WReF)
2018/03/16(金) 02:08:17.17ID:w3tL3lE3M >>518
スレタイ見ろ
スレタイ見ろ
520デフォルトの名無しさん (ワッチョイ 4fb3-LmTb)
2018/03/16(金) 04:14:48.79ID:3pmuZEr10 ポインタ構造体変数をポインタ変数で扱いたい時って
&p(ポインタ変数構造体変数)-> member(メンバ名)
みたいにわざわざ一回通常変数に直してからアドレスになおさないかんの?
&p(ポインタ変数構造体変数)-> member(メンバ名)
みたいにわざわざ一回通常変数に直してからアドレスになおさないかんの?
521デフォルトの名無しさん (ワッチョイ 6102-hKdO)
2018/03/16(金) 05:57:40.20ID:PrpOQ5WH0 (&p)->memberなんてまずやらん
p.memberで同じことができる
p.memberで同じことができる
522デフォルトの名無しさん (ワッチョイ 4fb3-LmTb)
2018/03/16(金) 06:50:12.92ID:3pmuZEr10 >>521
それやったらコンパイラにそんな構造体変数ないぞって言われた
それやったらコンパイラにそんな構造体変数ないぞって言われた
523デフォルトの名無しさん (ブーイモ MM3f-WReF)
2018/03/16(金) 08:05:49.18ID:w3tL3lE3M >>522
質問するときは変数の宣言も使う文脈も省略せずに書け
質問するときは変数の宣言も使う文脈も省略せずに書け
524デフォルトの名無しさん (ブーイモ MM61-X854)
2018/03/16(金) 08:16:43.56ID:6+mGA4RRM525デフォルトの名無しさん (ササクッテロレ Sp6f-ywpa)
2018/03/16(金) 10:27:00.36ID:DfshN/+jp 型教えないと何やっても無理だろ。
あと。下手に型変換させると、奇数バイトからワード処理とかさせてしまい、石によっては例外処理が走るか暴走するよな。
あと。下手に型変換させると、奇数バイトからワード処理とかさせてしまい、石によっては例外処理が走るか暴走するよな。
526デフォルトの名無しさん (アウアウカー Sad3-+EIL)
2018/03/16(金) 11:29:31.94ID:07ayGtU0a cのコンパイラ作るのにアセンブラの知識は必要?
527デフォルトの名無しさん (ワッチョイ 9f8a-/CVT)
2018/03/16(金) 11:38:22.80ID:ObjPIdw20 今なら、LLVMがあるからコード生成はそちらに任せるという
選択肢があるね。
選択肢があるね。
>>526
コンパイルというくらいだから、最後に機械語に落とし込むのにアセンブラの知識は必要になるのではないか?
コンパイルというくらいだから、最後に機械語に落とし込むのにアセンブラの知識は必要になるのではないか?
529デフォルトの名無しさん (ワッチョイ d7ea-fr1+)
2018/03/16(金) 12:01:10.57ID:rupS10t30 C++ to C コンパイラとか 生成物が機械語で無いのもあるんじゃね?
(昔そういうの欲しかった)
(昔そういうの欲しかった)
530デフォルトの名無しさん (アウアウカー Sa09-agSD)
2018/03/16(金) 12:19:28.27ID:56A/2jiga532デフォルトの名無しさん (ワッチョイ d7ea-fr1+)
2018/03/16(金) 12:43:32.01ID:rupS10t30 C言語の範囲では 構造体のメンバ中に関数のポインタをもつまで
C++言語のメンバ関数の機構(暗に this ポインタが渡ってくる) のを
C言語でやりたけりゃ自前で引数に渡すしかない&その関数はポインタを引数で受けなきゃいけない
C++言語のメンバ関数の機構(暗に this ポインタが渡ってくる) のを
C言語でやりたけりゃ自前で引数に渡すしかない&その関数はポインタを引数で受けなきゃいけない
533デフォルトの名無しさん (アウアウカー Sad3-Y9Jj)
2018/03/16(金) 12:47:14.28ID:0ILmeguTa >>529
C++の初期のコンパイラはそういうやつだった。つまり、Cへのコンバータだった。
C++の初期のコンパイラはそういうやつだった。つまり、Cへのコンバータだった。
534デフォルトの名無しさん (ササクッテロレ Sp6f-ywpa)
2018/03/16(金) 13:59:12.95ID:DfshN/+jp ああ、各ファイルの先頭に構造体の領域宣言とか関数にいちいち構造体のポインタが追加されるんだよな。
535デフォルトの名無しさん (アウアウカー Sad3-Y9Jj)
2018/03/16(金) 14:00:33.86ID:ITdJ1YV3a そういや昔々のX68000のBASICにもCへのコンバータがあったな。
536デフォルトの名無しさん (ササクッテロレ Sp6f-ywpa)
2018/03/16(金) 14:26:36.05ID:DfshN/+jp 俺は、6502アセンブラコードをCに変えるコンバータ作ったけどな。
537デフォルトの名無しさん (ワッチョイ 4d04-Ue6H)
2018/03/16(金) 15:25:35.34ID:relEB8IL0 アセンブリをprintfにパースするのって大変なのかな。
538デフォルトの名無しさん (アウアウカー Sa09-agSD)
2018/03/16(金) 15:57:57.02ID:ScqC3AYEa >>531
ではどういう言葉なら齟齬なく伝わりましたか?
ではどういう言葉なら齟齬なく伝わりましたか?
539デフォルトの名無しさん (アウアウカー Sad3-Y9Jj)
2018/03/16(金) 16:00:12.76ID:HNnsk+Eya >>538
コード断片で示すのもよい、誰かがコードを補完してくれるだろう
コード断片で示すのもよい、誰かがコードを補完してくれるだろう
541デフォルトの名無しさん (エムゾネ FF2f-0FUd)
2018/03/16(金) 16:25:31.83ID:3ma6aQHvF アスペとの会話ってつかれるよな
542デフォルトの名無しさん (ワッチョイ 6102-hKdO)
2018/03/16(金) 16:57:51.61ID:PrpOQ5WH0 Cスレで「メンバ関数」だぜ?
それをアスペとか、どんだけボキャ貧なんだよ
それをアスペとか、どんだけボキャ貧なんだよ
543デフォルトの名無しさん (エムゾネ FF2f-0FUd)
2018/03/16(金) 16:59:08.32ID:3ma6aQHvF >> 542
おまえがアスペか
おまえがアスペか
544デフォルトの名無しさん (アウアウカー Sa09-agSD)
2018/03/16(金) 20:29:17.66ID:56A/2jiga >>544
・関数ポインタとは別に「メンバ関数」というテクニカルタームが C++ にあった
・C/C++ の区別がついていない人の質問も、ここではよくみかける
という背景があって小さな誤解が発生したまでのこと、気にするでない、苦しゅうないぞ
・関数ポインタとは別に「メンバ関数」というテクニカルタームが C++ にあった
・C/C++ の区別がついていない人の質問も、ここではよくみかける
という背景があって小さな誤解が発生したまでのこと、気にするでない、苦しゅうないぞ
546デフォルトの名無しさん (ドコグロ MMdf-tgc5)
2018/03/16(金) 21:13:51.61ID:nemrSVupM >>526
どうやってコード生成部分を作るつもりなんだよ...
どうやってコード生成部分を作るつもりなんだよ...
547デフォルトの名無しさん (アウアウカー Sad3-AQFW)
2018/03/16(金) 21:59:39.71ID:PPQOkRTja マシン語があれば充分のんじょのいこの
548デフォルトの名無しさん
2018/03/16(金) 22:33:58.96 Cコンパイラがマシン語を出力しなきゃいけないって誰が決めたの?🙄
549デフォルトの名無しさん (ワッチョイ 8781-hKdO)
2018/03/16(金) 22:51:53.37ID:SxfrRBUw0 ラノベ出力してくれるコンパイラってステキ
550デフォルトの名無しさん (ワッチョイ 13b3-tgc5)
2018/03/16(金) 22:53:03.55ID:d0lIgzUw0 誰も決めてないしマシン語じゃなくてアセンブラのソース出すコンパイラはいくらでもあるし
551デフォルトの名無しさん (ワッチョイ 9f8a-/CVT)
2018/03/16(金) 23:46:17.13ID:ObjPIdw20 VHDL出してもいいよね〜
552デフォルトの名無しさん
2018/03/17(土) 00:28:10.69 シェルスクリプトとまでは言わないからPerlスクリプトを出力して欲しい
553デフォルトの名無しさん (ワッチョイ 5b9f-JSsP)
2018/03/17(土) 03:07:05.34ID:ZFtG2t0c0 C++の非仮想関数 == Cの普通の関数
C++の仮想関数 == structの項(vtbl)の項
C++の仮想関数 == structの項(vtbl)の項
554デフォルトの名無しさん (アウアウエー Sa93-0FUd)
2018/03/17(土) 04:35:29.26ID:YYJgzE2Qa >>553
違うね
違うね
555デフォルトの名無しさん (ワッチョイ 9f8a-/CVT)
2018/03/17(土) 07:17:45.03ID:qzfhHg+K0 >>553
上の方の関数。普通の関数pointerで保持出来るの?
上の方の関数。普通の関数pointerで保持出来るの?
556デフォルトの名無しさん (ワッチョイ 6102-hKdO)
2018/03/17(土) 07:35:06.72ID:zYYcg2u/0 C++のextern "C"関数 == Cの関数
Cに普通じゃない関数ってあるんだっけ
Cに普通じゃない関数ってあるんだっけ
557デフォルトの名無しさん
2018/03/17(土) 07:51:22.83558デフォルトの名無しさん (ワッチョイ 9f8a-/CVT)
2018/03/17(土) 08:58:53.90ID:qzfhHg+K0559デフォルトの名無しさん
2018/03/17(土) 09:00:39.42 >>558
「上の方の関数」すなわち「Cの普通の関数」を
「普通の関数pointerで保持出来るの?」
→Cの普通の関数は、普通の関数ポインタで保持できます
質問文に忠実に答えただけだが、何か問題でも?
「上の方の関数」すなわち「Cの普通の関数」を
「普通の関数pointerで保持出来るの?」
→Cの普通の関数は、普通の関数ポインタで保持できます
質問文に忠実に答えただけだが、何か問題でも?
560デフォルトの名無しさん (ワッチョイ 11b5-ywpa)
2018/03/17(土) 13:08:05.54ID:8xjJdoU40 Cにゃメンバーって言語レベルの概念は無いから、そういうのはコーディング時に人様がメンバーのつもりになる書き方を明示的にやらないとならないんだよな。
561デフォルトの名無しさん (ワッチョイ 21b3-fr1+)
2018/03/17(土) 13:47:23.11ID:8tKqJ0BR0 namespace のことを脇においとけば
非仮想関数って FILE 構造体と その関数だべ
非仮想関数って FILE 構造体と その関数だべ
562デフォルトの名無しさん (ワッチョイ 4d04-Ue6H)
2018/03/17(土) 13:51:13.91ID:V9AqDEvW0 LLVMはまずパースレイヤーが中間言語出力して中間言語を解釈するレイヤーが各種コードに吐き分けるということができる。
3段階のコード最適化ができるはずだったが、ちょっと迷走してる。
3段階のコード最適化ができるはずだったが、ちょっと迷走してる。
563デフォルトの名無しさん (ワッチョイ a3e2-hKdO)
2018/03/17(土) 16:56:54.32ID:x+XAbvy+0 >>557
struct A
{
void func() {} //C++の非仮想関数
};
void (*ptr)(); //普通の関数pointer
ptr = &A::func; //まさかできると思った?
struct A
{
void func() {} //C++の非仮想関数
};
void (*ptr)(); //普通の関数pointer
ptr = &A::func; //まさかできると思った?
565片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdd7-5vKF)
2018/03/17(土) 18:25:10.24ID:6umCop+Md クラス内部の関数をstaticにすると、、、
566片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdd7-5vKF)
2018/03/17(土) 18:26:02.67ID:6umCop+Md 普通の関数みたいに参照できる。
567デフォルトの名無しさん (ワッチョイ a3e2-hKdO)
2018/03/17(土) 20:05:40.42ID:x+XAbvy+0 ここはCスレということをお忘れなく
568デフォルトの名無しさん (ワッチョイ 7761-7BQk)
2018/03/18(日) 08:12:11.88ID:5MZOkfmV0569デフォルトの名無しさん (ワッチョイ 7761-7BQk)
2018/03/18(日) 08:14:12.57ID:5MZOkfmV0 ちょっと間違えました。
上の投稿は無視してください
上の投稿は無視してください
570デフォルトの名無しさん (アウアウウー Sab1-hKdO)
2018/03/21(水) 22:30:20.44ID:Pk5+CKOYa ニキ
配列で array[i] と i[array] て同じナンスカ?
後者の違和感すげーあるんスけどこういう風に書くことのメリットってかどっちが普通なんでしょうか
配列で array[i] と i[array] て同じナンスカ?
後者の違和感すげーあるんスけどこういう風に書くことのメリットってかどっちが普通なんでしょうか
571デフォルトの名無しさん (ワッチョイ 4d04-Ue6H)
2018/03/21(水) 22:33:57.97ID:MsjTjvgF0 ポインターはINTに変換できる事もある。
んで、arrayはhogeっていうアドレス値を持ってる。
iはhageていう数字を持ってる。
生の数字でhoge+hage=i+arrayである。
まぁ、後者の書き方は普通しない。
んで、arrayはhogeっていうアドレス値を持ってる。
iはhageていう数字を持ってる。
生の数字でhoge+hage=i+arrayである。
まぁ、後者の書き方は普通しない。
572デフォルトの名無しさん (ワッチョイ 1ff3-hKdO)
2018/03/21(水) 22:34:54.75ID:DQv7yGEy0 アセンブラではオフセット[レジスタ]が普通
どっちが普通なんてくだらねえことだ
どっちが普通なんてくだらねえことだ
573デフォルトの名無しさん (ワンミングク MM7f-/CVT)
2018/03/21(水) 22:36:13.14ID:D2465Z9CM offsetofマクロの実装を見て見なされ
オフセット値の算出にポインタ使っているでしょ
オフセット値の算出にポインタ使っているでしょ
574デフォルトの名無しさん (ブーイモ MM7f-UjD3)
2018/03/22(木) 00:04:45.10ID:dLiR/Xt3M a[b] は *(a+b) のシンタックスシュガー
577デフォルトの名無しさん (ワッチョイ 9ab3-a4pf)
2018/03/22(木) 04:56:30.90ID:0SzB6c710578デフォルトの名無しさん (アウウィフ FFc7-OLeD)
2018/03/22(木) 09:40:57.08ID:Q2/ylW7bF BDS-Cとかあったな
579デフォルトの名無しさん (ササクッテロル Spbb-c/f+)
2018/03/22(木) 10:22:59.95ID:lT3wziJ7p >>570みたいなのは、キャストしないと使えねーだし。
580デフォルトの名無しさん (ワッチョイ 339f-zkh5)
2018/03/22(木) 13:44:55.99ID:suw09sJq0 >>579
え?使えるよ。単に *(i + array) になるだけだし。
え?使えるよ。単に *(i + array) になるだけだし。
582デフォルトの名無しさん (アウアウウー Sac7-zkh5)
2018/03/22(木) 14:36:34.98ID:tPQcb8ora SEHって何かと思ったらMS独自のやつか
583デフォルトの名無しさん (ドコグロ MM92-a4pf)
2018/03/22(木) 19:43:32.85ID:qO2s+USWM >>583
C と C++ は違う言語だろう?(棒読み)
C と C++ は違う言語だろう?(棒読み)
585デフォルトの名無しさん (ドコグロ MM92-a4pf)
2018/03/22(木) 21:06:38.53ID:qO2s+USWM >>584
そんなものまで持ち出さないと自我が壊れちゃうのか? w
そんなものまで持ち出さないと自我が壊れちゃうのか? w
586デフォルトの名無しさん (アウアウウー Sac7-zkh5)
2018/03/24(土) 19:49:48.79ID:wXlHUBLAa ニキやっぱFEぐらいのC過去問なら余裕の満点すか?
587デフォルトの名無しさん (ワッチョイ c779-AwYn)
2018/03/24(土) 22:33:50.23ID:glVyz9hR0 >>573
>オフセット値の算出にポインタ使っているでしょ
そうか?
offsetofの結果は整定数式になる必要があるが、
ポインタ演算を使った式が整定数になる保証がないので別の手段を使っている場合がある。
>オフセット値の算出にポインタ使っているでしょ
そうか?
offsetofの結果は整定数式になる必要があるが、
ポインタ演算を使った式が整定数になる保証がないので別の手段を使っている場合がある。
588デフォルトの名無しさん (ワンミングク MM8a-Gtgj)
2018/03/24(土) 22:37:51.52ID:M0MLze13M >>587
具体的に
具体的に
589デフォルトの名無しさん (ワッチョイ 339f-zkh5)
2018/03/25(日) 00:05:52.92ID:r2Id4T4+0 >>586
例えばどんなの?
例えばどんなの?
590デフォルトの名無しさん (ワッチョイ f397-zkh5)
2018/03/25(日) 07:25:18.09ID:S7OmeNGW0 Visual Studio 2017
#define offsetof(s,m) ((size_t)&(((s*)0)->m))
gcc 7.2.0
#define offsetof(TYPE, MEMBER) __builtin_offsetof (TYPE, MEMBER)
clang 6.0.0
#define offsetof(t, d) __builtin_offsetof(t, d)
borland 5.5.1
#define offsetof( s_name, m_name ) (_SIZE_T)&(((s_name _FAR *)0)->m_name)
#define offsetof(s,m) ((size_t)&(((s*)0)->m))
gcc 7.2.0
#define offsetof(TYPE, MEMBER) __builtin_offsetof (TYPE, MEMBER)
clang 6.0.0
#define offsetof(t, d) __builtin_offsetof(t, d)
borland 5.5.1
#define offsetof( s_name, m_name ) (_SIZE_T)&(((s_name _FAR *)0)->m_name)
591デフォルトの名無しさん (ブーイモ MMba-Gtgj)
2018/03/25(日) 15:04:40.75ID:9t80sXyiM592デフォルトの名無しさん (ワッチョイ 4e81-zkh5)
2018/03/25(日) 15:25:31.63ID:wNhLkN4j0 メモリーの仕切り壁に落書きするポインタ
9と3/4番線ホームから出発する列車を指し示すポインタ
あれば便利かも知れないが(何がだ)
9と3/4番線ホームから出発する列車を指し示すポインタ
あれば便利かも知れないが(何がだ)
593デフォルトの名無しさん (ワッチョイ f397-zkh5)
2018/03/25(日) 17:42:21.62ID:S7OmeNGW0 鉄道に例えるならポイント(線路の分岐)を制御するデコーダに与える信号がCのポインタだ
594デフォルトの名無しさん (アウウィフ FFc7-OLeD)
2018/03/25(日) 18:06:41.94ID:qleen6XJF それじゃ型が考慮されてない
595デフォルトの名無しさん (ワッチョイ c779-AwYn)
2018/03/25(日) 18:24:31.28ID:EKcNWVxa0 >>591
その前に、まずはポインタ演算を使った結果が整定数になることが保証されている例を出してくれ。
当然規格は読んでいるよね。6.6p6より
> An integer constant expression shall have integer type and shall only have operands
> that are integer constants, enumeration constants, character constants,
> sizeof expressions whose results are integer constants, and floating constants that are the
> immediate operands of casts.
その前に、まずはポインタ演算を使った結果が整定数になることが保証されている例を出してくれ。
当然規格は読んでいるよね。6.6p6より
> An integer constant expression shall have integer type and shall only have operands
> that are integer constants, enumeration constants, character constants,
> sizeof expressions whose results are integer constants, and floating constants that are the
> immediate operands of casts.
596デフォルトの名無しさん (ワッチョイ f397-zkh5)
2018/03/25(日) 18:28:29.51ID:S7OmeNGW0 汎整数型定数をポインタにキャストまたは暗黙に変換した式は定数式(たとえば空ポインタ定数は定数式)
その定数式を整数にキャストし直した式が定数式でなくなる根拠はない
その定数式を整数にキャストし直した式が定数式でなくなる根拠はない
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 [蚤の市★]
- 【地震】青森県で震度6強 長周期地震動も 津波注意報すべて解除 ★7 [ぐれ★] [ぐれ★]
- 【速報】気象庁は津波注意報すべて解除 [蚤の市★]
- 【サッカー】58歳カズ「オファーが来ている」 J3福島と近日中にも交渉 早ければ年内にも決断 [征夷大将軍★]
- 「3.11の余震とは別か」「長時間避難できる場所を」 識者の見方 [蚤の市★]
- 【実況】博衣こよりのえちえち朝こよ🧪
- さかまた「過呼吸になった」かなた「耳聞こえない」ござる「声出ない」まつり「ご飯食べれない」
- 【画像】カリカリ女、脱いだらすごい😨 [632966346]
- 早大名誉教授「高市内閣の高支持率はデータ操作か、支持している日本人がアホなのか」👈核心を突いてしまう [868050967]
- 時々ロシア語でデレるアーリャさんより常に日本語でデレる俺の方がよくね?
- 膝掛け使ってる男いるでしょ
