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/te2eSJ0539デフォルトの名無しさん (アウアウカー 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 汎整数型定数をポインタにキャストまたは暗黙に変換した式は定数式(たとえば空ポインタ定数は定数式)
その定数式を整数にキャストし直した式が定数式でなくなる根拠はない
その定数式を整数にキャストし直した式が定数式でなくなる根拠はない
597デフォルトの名無しさん
2018/03/25(日) 18:29:11.25598デフォルトの名無しさん (ワッチョイ c779-AwYn)
2018/03/25(日) 18:53:41.81ID:EKcNWVxa0 >>596
>その定数式を整数にキャストし直した式が定数式でなくなる根拠はない
でもそれは整定数式ではないよね。
規格にはキャスト前の型が算術型でなければならないとある。
> Cast operators in an integer constant expression shall only convert arithmetic types to integer types, except as part of an operand to the
> sizeof operator.
>その定数式を整数にキャストし直した式が定数式でなくなる根拠はない
でもそれは整定数式ではないよね。
規格にはキャスト前の型が算術型でなければならないとある。
> Cast operators in an integer constant expression shall only convert arithmetic types to integer types, except as part of an operand to the
> sizeof operator.
599デフォルトの名無しさん (ワッチョイ 03b3-/hfl)
2018/03/25(日) 19:02:02.77ID:z318xA/90 (配列等で)連続が保障されてるときには要素数が求まるようにはなってるけど
連続性のないポインタの差分は鼻から悪魔だったような
規格? みてない
連続性のないポインタの差分は鼻から悪魔だったような
規格? みてない
600デフォルトの名無しさん (ワッチョイ f397-zkh5)
2018/03/25(日) 19:05:21.84ID:S7OmeNGW0601デフォルトの名無しさん (ワッチョイ d78a-Gtgj)
2018/03/26(月) 07:31:09.27ID:Sl5sXtlN0 で、587は逃げたのか
602デフォルトの名無しさん (ワッチョイ 9ae9-YOip)
2018/03/26(月) 09:52:06.25ID:5fqWa8qC0 今日からC言語を始めたのでよろしくです
603デフォルトの名無しさん (ササクッテロル Spbb-c/f+)
2018/03/26(月) 10:39:34.46ID:9cQp/9Bmp ご愁傷様
604デフォルトの名無しさん (ワッチョイ 5b61-3KaU)
2018/03/26(月) 11:35:27.48ID:0ihjlnG/0 a[b*c];
のようにしてもassemblyコードがアドレッシングモードじゃなくて
掛け算してしまうんですけどどうしたらアドレッシングモードで計算するように
なりますか?
のようにしてもassemblyコードがアドレッシングモードじゃなくて
掛け算してしまうんですけどどうしたらアドレッシングモードで計算するように
なりますか?
605デフォルトの名無しさん (ワッチョイ ba60-fzSc)
2018/03/26(月) 11:54:06.58ID:dvRuSlEv0 >>604
b と c とを使って何をしたいのでしょうか?
b と c とを使って何をしたいのでしょうか?
606デフォルトの名無しさん (アウーイモ MMc7-APr9)
2018/03/26(月) 12:03:06.83ID:EmWkiz+YM607デフォルトの名無しさん (ワッチョイ 5b61-3KaU)
2018/03/26(月) 12:09:23.11ID:0ihjlnG/0 struct a{
int a;
int b;
};
struct a x[100];
void *v=x;
void *h(int n, int s){
return ((char *)v+n*s);
}
struct a *i(int n){
return &x[n];
}
同じことをしているのにhは掛け算するのにiは掛け算をアドレッシングモードでしているので
処理速度の差が生まれてしまいます。
int a;
int b;
};
struct a x[100];
void *v=x;
void *h(int n, int s){
return ((char *)v+n*s);
}
struct a *i(int n){
return &x[n];
}
同じことをしているのにhは掛け算するのにiは掛け算をアドレッシングモードでしているので
処理速度の差が生まれてしまいます。
608デフォルトの名無しさん (ワッチョイ 5b61-3KaU)
2018/03/26(月) 12:12:26.75ID:0ihjlnG/0 自己解決しました。
609デフォルトの名無しさん (アウーイモ MMc7-APr9)
2018/03/26(月) 12:12:50.68ID:EmWkiz+YM struct aにキャストしてから計算すればいいという話ではなくて?
610デフォルトの名無しさん (ワッチョイ 5b61-3KaU)
2018/03/26(月) 12:18:06.83ID:0ihjlnG/0 nかsは定数じゃないと駄目みたいでした。
611デフォルトの名無しさん (アウーイモ MMc7-APr9)
2018/03/26(月) 12:31:41.16ID:k+G5ovIGM sがなんだかわからないけど
void *h(int n, int s){
return ((struct a *)v+n*s);
}
じゃだめなん?
s=1ならi()と同じだと思うけど。
void *h(int n, int s){
return ((struct a *)v+n*s);
}
じゃだめなん?
s=1ならi()と同じだと思うけど。
612デフォルトの名無しさん (ワッチョイ 5b61-3KaU)
2018/03/26(月) 12:37:07.82ID:0ihjlnG/0 struct a *は8バイトなので8を入れればよいのです。
613デフォルトの名無しさん (アウーイモ MMc7-APr9)
2018/03/26(月) 12:40:49.01ID:v3bCx+j3M ブロックサイズみたいなイメージかな。
だったらsizeof(struct a)にしたほうがよいかと。
だったらsizeof(struct a)にしたほうがよいかと。
614デフォルトの名無しさん (アウアウカー Sac3-t4/V)
2018/03/26(月) 13:35:11.46ID:ioIbXl47a615デフォルトの名無しさん (ワッチョイ 8bb3-c/f+)
2018/03/26(月) 14:37:40.54ID:g7RAb+fM0 最適化されたらおんなじじゃね?
616片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdba-OUTG)
2018/03/26(月) 14:44:36.91ID:42MV7MT1d struct a*のサイズは32-bit 環境だと4だよな。64ビットだと8バイト。
617片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdba-OUTG)
2018/03/26(月) 14:47:59.15ID:42MV7MT1d ポインタを操作するなら、size_tとかptrdiff_t使った方がいいな。
618デフォルトの名無しさん (アウアウアー Sa06-APr9)
2018/03/26(月) 15:00:59.23ID:+d/fyZgca >>616
ここでは構造体の実体の配列だからsizeof(struct a)で大丈夫。
int1つのサイズは典型的には4byteだけど、IP64だのあまり見ない
データモデルでは8byteのこともあるから、構造体のサイズを使うときは
sizeofがよい(MAY)、ではなくてsizeofにすべき(ほぼMUSTのSHOULD)。
ここでは構造体の実体の配列だからsizeof(struct a)で大丈夫。
int1つのサイズは典型的には4byteだけど、IP64だのあまり見ない
データモデルでは8byteのこともあるから、構造体のサイズを使うときは
sizeofがよい(MAY)、ではなくてsizeofにすべき(ほぼMUSTのSHOULD)。
619デフォルトの名無しさん (ワッチョイ 3708-zkh5)
2018/03/26(月) 17:51:14.16ID:wby0cWXW0620デフォルトの名無しさん (ワッチョイ 9ae9-YOip)
2018/03/26(月) 17:52:53.38ID:5fqWa8qC0 本買うならどれがいい?
本より優れたサイトがあるならそれでもいいぞ
本より優れたサイトがあるならそれでもいいぞ
621デフォルトの名無しさん (ワンミングク MM8a-Gtgj)
2018/03/26(月) 19:16:37.53ID:b1dSvJWqM622デフォルトの名無しさん (ワッチョイ 5b61-3KaU)
2018/03/27(火) 07:05:39.20ID:VOv2iUaR0 struct a{
bool a:1;
uint32_t b:31;
uint16_t c;
};
struct a{
uint32_t b;
uint16_t c;
bool a;
};
上の構造体が12バイツでしたが8バイツの理由がわかりません、上を8バイツにしたいです。
bool a:1;
uint32_t b:31;
uint16_t c;
};
struct a{
uint32_t b;
uint16_t c;
bool a;
};
上の構造体が12バイツでしたが8バイツの理由がわかりません、上を8バイツにしたいです。
623デフォルトの名無しさん (ワッチョイ a304-h0dl)
2018/03/27(火) 07:14:25.16ID:6oSpwfuc0 C言語のboolって何バイト?
C++だとINTと等価なことがそれなりにあるんだけど。
C++だとINTと等価なことがそれなりにあるんだけど。
624デフォルトの名無しさん
2018/03/27(火) 07:32:57.91 >>622
よく分からないんだけど、2つ構造体を書いてるのは何を意図してるの?
よく分からないんだけど、2つ構造体を書いてるのは何を意図してるの?
625デフォルトの名無しさん (ワッチョイ a393-4ZrE)
2018/03/27(火) 07:57:42.10ID:tnecWY6M0 >>622
俺の環境ではどっちのsizeofの値も8バイツを返したから環境依存だろう。
#pragma か __attribute__ で詰め込めるかも知れんけど、
ビットフィールドを狙って使える指定方法があるかどうか。
詰めたら詰めたで6バイツや7バイツになっちゃう危険もあるし。
>>623
<stdbool.h> にどう書いてあるかだろうな。
これも試したら sizeof(bool) に1を返した。
<stdbool.h> の実体を思しきファイルを覗いたら
#define _Bool signed char
#define bool _Bool
の連鎖になってた。typedefでないのが少々意外。
#ifdef で定義済か未定義かを判定できるようにするためだろうか。
俺の環境ではどっちのsizeofの値も8バイツを返したから環境依存だろう。
#pragma か __attribute__ で詰め込めるかも知れんけど、
ビットフィールドを狙って使える指定方法があるかどうか。
詰めたら詰めたで6バイツや7バイツになっちゃう危険もあるし。
>>623
<stdbool.h> にどう書いてあるかだろうな。
これも試したら sizeof(bool) に1を返した。
<stdbool.h> の実体を思しきファイルを覗いたら
#define _Bool signed char
#define bool _Bool
の連鎖になってた。typedefでないのが少々意外。
#ifdef で定義済か未定義かを判定できるようにするためだろうか。
626デフォルトの名無しさん (ワッチョイ 9761-fzSc)
2018/03/27(火) 08:47:18.29ID:/RdC4ccn0 >622
uint32_t b; がバイト境界にひっかかったせいじゃね?
uint32_t b; がバイト境界にひっかかったせいじゃね?
627デフォルトの名無しさん (ワッチョイ 3e23-zkh5)
2018/03/27(火) 08:57:59.42ID:9ekvYNlc0 コレナンデ境界
628デフォルトの名無しさん (ワッチョイ d78a-Gtgj)
2018/03/27(火) 09:51:51.20ID:GW1/xmrB0 アライメント
629デフォルトの名無しさん (ワッチョイ 3708-zkh5)
2018/03/27(火) 10:02:58.62ID:i2YWXGc+0 alignment
Емельяненко
なんで日本人は「ん」を飛ばすかねえ
Емельяненко
なんで日本人は「ん」を飛ばすかねえ
630デフォルトの名無しさん (ワッチョイ 9761-fzSc)
2018/03/27(火) 10:04:40.74ID:/RdC4ccn0 間抜けな回答してるな>オレ
||
||
∧||∧
( / ⌒ヽ
| | |
∪ / ノ
| ||
∪∪
-━━-
||
||
∧||∧
( / ⌒ヽ
| | |
∪ / ノ
| ||
∪∪
-━━-
631デフォルトの名無しさん (ワッチョイ b6a1-fzSc)
2018/03/27(火) 10:37:30.96ID:UpIjn8oG0 >629
>なんで日本人は「ん」を飛ばすかねえ
「全て」の日本人が「ン」を飛ばすわけではありません。
「或る」日本人が「ン」を飛ばすだけです。
ところで、ロシア語の
Емельяненко(エメリャネンコ)
とはどういう意味ですか。手元の「ロ日辞典」をひいても
でていないので
>なんで日本人は「ん」を飛ばすかねえ
「全て」の日本人が「ン」を飛ばすわけではありません。
「或る」日本人が「ン」を飛ばすだけです。
ところで、ロシア語の
Емельяненко(エメリャネンコ)
とはどういう意味ですか。手元の「ロ日辞典」をひいても
でていないので
632デフォルトの名無しさん (ワッチョイ 5b61-3KaU)
2018/03/27(火) 11:17:02.05ID:VOv2iUaR0 struct a{
bool x:1;
uint32_t y:31;
};
しらべたらこれの大きさが8バイツでした
sizeof(struct a)とやったらそうなったのでアラインメントのもんだいではありません。
どうしても4バイツにしたいです
bool x:1;
uint32_t y:31;
};
しらべたらこれの大きさが8バイツでした
sizeof(struct a)とやったらそうなったのでアラインメントのもんだいではありません。
どうしても4バイツにしたいです
633デフォルトの名無しさん (ササクッテロル Spbb-c/f+)
2018/03/27(火) 11:20:50.14ID:949beg24p 型を揃えるか、ブラグマ指定する、
634デフォルトの名無しさん (ワッチョイ a304-h0dl)
2018/03/27(火) 11:22:01.11ID:6oSpwfuc0 もしかして変数を分解しようとしてる?
Unionってしってるかー?
Unionってしってるかー?
635デフォルトの名無しさん (ササクッテロル Spbb-c/f+)
2018/03/27(火) 11:24:10.52ID:949beg24p 構造体宣言に
__attribute__((packed))
を挟む
__attribute__((packed))
を挟む
636デフォルトの名無しさん (ワッチョイ a304-h0dl)
2018/03/27(火) 11:26:05.22ID:6oSpwfuc0 C++なら、無名うにおんとかつかえて楽なんだけど、Cは一々名前がつくので面倒。
637デフォルトの名無しさん (ササクッテロル Spbb-c/f+)
2018/03/27(火) 11:26:08.96ID:949beg24p 両方uint32_tにすりゃいいだろ。
638デフォルトの名無しさん (ワッチョイ 5b61-3KaU)
2018/03/27(火) 11:26:51.67ID:VOv2iUaR0 struct a{
uint32_t a:1;
uint32_t y:31;
};
こうやったらできました
ビットフィールドを勘違いしていたのが原因みたいです。
uint32_t a:1;
uint32_t y:31;
};
こうやったらできました
ビットフィールドを勘違いしていたのが原因みたいです。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★6 [ぐれ★]
- 「日の丸にバツ印」掲げた大学生 あいまいな国旗損壊罪に「怖い」 The Mainichi [少考さん★]
- 高市内閣「支持」64%「不支持」19% NHK世論調査 ★2 [少考さん★]
- 【音楽】BARBEE BOYS・KONTAが事故で四肢麻痺を公表、新体制で活動は継続 [少考さん★]
- 高市首相「多様なコメの増産を進める」 方針転換への懸念払拭狙いか ★2 [どどん★]
- 中国「捜索レーダー起動は各国の通常の手法」 火器管制用か回答せず [蚤の市★]
- 初めて顔パックしたけど凄いなこれ
- ぺこーら、地震で同僚が次々配信を止めるなか強行し続けるので悪目立ちするwww [268244553]
- 巨大地震 [957955821]
- 胃腸弱い奴は社会的弱者←ガチ
- 【🏡】岩手ビックウェーブ🏄うおおおおおおおおおおお🌊
- 千晴の住所教えてよ!
