[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 12/11 11:58 / Filesize : 243 KB / Number-of Response : 1037
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C言語なら俺に聞け 145



1 名前:デフォルトの名無しさん mailto:sage [2018/02/19(月) 22:13:58.98 ID:9/te2eSJ0.net]
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/


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

545 名前:デフォルトの名無しさん mailto:sage [2018/03/16(金) 11:29:31.94 ID:07ayGtU0a.net]
cのコンパイラ作るのにアセンブラの知識は必要?

546 名前:デフォルトの名無しさん mailto:sage釣 [2018/03/16(金) 11:38:22.80 ID:ObjPIdw20.net]
今なら、LLVMがあるからコード生成はそちらに任せるという
選択肢があるね。

547 名前: mailto:sage [2018/03/16(金) 11:59:50.08 ID:GsmhGHn70.net]
>>526
コンパイルというくらいだから、最後に機械語に落とし込むのにアセンブラの知識は必要になるのではないか?

548 名前:デフォルトの名無しさん mailto:sage [2018/03/16(金) 12:01:10.57 ID:rupS10t30.net]
C++ to C コンパイラとか 生成物が機械語で無いのもあるんじゃね?

(昔そういうの欲しかった)

549 名前:デフォルトの名無しさん [2018/03/16(金) 12:19:28.27 ID:56A/2jiga.net]
>>517
Cには無理なんですね
ありがとうございます

550 名前: mailto:sage [2018/03/16(金) 12:33:16.00 ID:GsmhGHn70.net]
>>530
>>515 でメンバ関数という言葉を使うのだから C++ を仮定している、というのならば C++ では >>518 で可能
C で可能かどうかを問題にしているのであれば、>>515 のメンバ関数という言葉が自己矛盾

551 名前:デフォルトの名無しさん mailto:sage [2018/03/16(金) 12:43:32.01 ID:rupS10t30.net]
C言語の範囲では 構造体のメンバ中に関数のポインタをもつまで
C++言語のメンバ関数の機構(暗に this ポインタが渡ってくる) のを
C言語でやりたけりゃ自前で引数に渡すしかない&その関数はポインタを引数で受けなきゃいけない

552 名前:デフォルトの名無しさん [2018/03/16(金) 12:47:14.28 ID:0ILmeguTa.net]
>>529
C++の初期のコンパイラはそういうやつだった。つまり、Cへのコンバータだった。

553 名前:デフォルトの名無しさん mailto:sage [2018/03/16(金) 13:59:12.95 ID:DfshN/+jp.net]
ああ、各ファイルの先頭に構造体の領域宣言とか関数にいちいち構造体のポインタが追加されるんだよな。



554 名前:デフォルトの名無しさん [2018/03/16(金) 14:00:33.86 ID:ITdJ1YV3a.net]
そういや昔々のX68000のBASICにもCへのコンバータがあったな。

555 名前:デフォルトの名無しさん mailto:sage [2018/03/16(金) 14:26:36.05 ID:DfshN/+jp.net]
俺は、6502アセンブラコードをCに変えるコンバータ作ったけどな。

556 名前:デフォルトの名無しさん mailto:sage [2018/03/16(金) 15:25:35.34 ID:relEB8IL0.net]
アセンブリをprintfにパースするのって大変なのかな。

557 名前:デフォルトの名無しさん [2018/03/16(金) 15:57:57.02 ID:ScqC3AYEa.net]
>>531
ではどういう言葉なら齟齬なく伝わりましたか?

558 名前:デフォルトの名無しさん [2018/03/16(金) 16:00:12.76 ID:HNnsk+Eya.net]
>>538
「関数へのポインタ」では?
それが構造体のメンバとしてあるわけだし。

559 名前: mailto:sage [2018/03/16(金) 16:12:40.83 ID:GsmhGHn70.net]
>>538
コード断片で示すのもよい、誰かがコードを補完してくれるだろう

560 名前:デフォルトの名無しさん [2018/03/16(金) 16:25:31.83 ID:3ma6aQHvF.net]
アスペとの会話ってつかれるよな

561 名前:デフォルトの名無しさん mailto:sage [2018/03/16(金) 16:57:51.61 ID:PrpOQ5WH0.net]
Cスレで「メンバ関数」だぜ?
それをアスペとか、どんだけボキャ貧なんだよ

562 名前:デフォルトの名無しさん [2018/03/16(金) 16:59:08.32 ID:3ma6aQHvF.net]
>> 542
おまえがアスペか

563 名前:デフォルトの名無しさん [2018/03/16(金) 20:29:17.66 ID:56A/2jiga.net]
>>539
> Cでメンバ関数を関数ポインタで定義して
一応そのつもりで書いたんだけどなあ

アスペ基準に合わせようとした俺が悪かったのか



564 名前: mailto:sage [2018/03/16(金) 21:09:53.74 ID:GsmhGHn70.net]
>>544
・関数ポインタとは別に「メンバ関数」というテクニカルタームが C++ にあった
・C/C++ の区別がついていない人の質問も、ここではよくみかける

という背景があって小さな誤解が発生したまでのこと、気にするでない、苦しゅうないぞ

565 名前:デフォルトの名無しさん mailto:sage [2018/03/16(金) 21:13:51.61 ID:nemrSVupM.net]
>>526
どうやってコード生成部分を作るつもりなんだよ...

566 名前:デフォルトの名無しさん mailto:sage [2018/03/16(金) 21:59:39.71 ID:PPQOkRTja.net]
マシン語があれば充分のんじょのいこの

567 名前:デフォルトの名無しさん [2018/03/16(金) 22:33:58.96 .net]
Cコンパイラがマシン語を出力しなきゃいけないって誰が決めたの?🙄

568 名前:デフォルトの名無しさん mailto:sage [2018/03/16(金) 22:51:53.37 ID:SxfrRBUw0.net]
ラノベ出力してくれるコンパイラってステキ

569 名前:デフォルトの名無しさん mailto:sage [2018/03/16(金) 22:53:03.55 ID:d0lIgzUw0.net]
誰も決めてないしマシン語じゃなくてアセンブラのソース出すコンパイラはいくらでもあるし

570 名前:デフォルトの名無しさん mailto:sage釣 [2018/03/16(金) 23:46:17.13 ID:ObjPIdw20.net]
VHDL出してもいいよね〜

571 名前:デフォルトの名無しさん [2018/03/17(土) 00:28:10.69 .net]
シェルスクリプトとまでは言わないからPerlスクリプトを出力して欲しい

572 名前:デフォルトの名無しさん mailto:sage [2018/03/17(土) 03:07:05.34 ID:ZFtG2t0c0.net]
C++の非仮想関数 == Cの普通の関数
C++の仮想関数 == structの項(vtbl)の項

573 名前:デフォルトの名無しさん [2018/03/17(土) 04:35:29.26 ID:YYJgzE2Qa.net]
>>553
違うね



574 名前:デフォルトの名無しさん mailto:sage釣 [2018/03/17(土) 07:17:45.03 ID:qzfhHg+K0.net]
>>553
上の方の関数。普通の関数pointerで保持出来るの?

575 名前:デフォルトの名無しさん mailto:sage [2018/03/17(土) 07:35:06.72 ID:zYYcg2u/0.net]
C++のextern "C"関数 == Cの関数
Cに普通じゃない関数ってあるんだっけ

576 名前:デフォルトの名無しさん [2018/03/17(土) 07:51:22.83 .net]
>>555
そんなの当たり前じゃん
まさかできないと思った?

577 名前:デフォルトの名無しさん mailto:sage釣 [2018/03/17(土) 08:58:53.90 ID:qzfhHg+K0.net]
>>557
先生、非仮想なメンバー関数をcの構文では保持出来ません。
例をご教示願います

578 名前:デフォルトの名無しさん [2018/03/17(土) 09:00:39.42 .net]
>>558
「上の方の関数」すなわち「Cの普通の関数」を
「普通の関数pointerで保持出来るの?」
→Cの普通の関数は、普通の関数ポインタで保持できます

質問文に忠実に答えただけだが、何か問題でも?

579 名前:デフォルトの名無しさん mailto:sage [2018/03/17(土) 13:08:05.54 ID:8xjJdoU40.net]
Cにゃメンバーって言語レベルの概念は無いから、そういうのはコーディング時に人様がメンバーのつもりになる書き方を明示的にやらないとならないんだよな。

580 名前:デフォルトの名無しさん mailto:sage [2018/03/17(土) 13:47:23.11 ID:8tKqJ0BR0.net]
namespace のことを脇においとけば
非仮想関数って FILE 構造体と その関数だべ

581 名前:デフォルトの名無しさん mailto:sage [2018/03/17(土) 13:51:13.91 ID:V9AqDEvW0.net]
LLVMはまずパースレイヤーが中間言語出力して中間言語を解釈するレイヤーが各種コードに吐き分けるということができる。
3段階のコード最適化ができるはずだったが、ち

582 名前:ょっと迷走してる。 []
[ここ壊れてます]

583 名前:デフォルトの名無しさん mailto:sage [2018/03/17(土) 16:56:54.32 ID:x+XAbvy+0.net]
>>557
struct A
{
void func() {} //C++の非仮想関数
};
void (*ptr)(); //普通の関数pointer
ptr = &A::func; //まさかできると思った?



584 名前: mailto:sage [2018/03/17(土) 18:20:57.82 ID:qqOQsVrX0.net]
>>555
できませんね
https://ideone.com/5sW1lw

585 名前:片山博文MZ mailto:sage [2018/03/17(土) 18:25:10.24 ID:6umCop+Md.net]
クラス内部の関数をstaticにすると、、、

586 名前:片山博文MZ mailto:sage [2018/03/17(土) 18:26:02.67 ID:6umCop+Md.net]
普通の関数みたいに参照できる。

587 名前:デフォルトの名無しさん mailto:sage [2018/03/17(土) 20:05:40.42 ID:x+XAbvy+0.net]
ここはCスレということをお忘れなく

588 名前:デフォルトの名無しさん mailto:sage [2018/03/18(日) 08:12:11.88 ID:5MZOkfmV0.net]
https://ideone.com/gSWZOR
上のコードを見てください。
sprintfを続けて使うと文字が一つも出力されません
なぜですか?

589 名前:デフォルトの名無しさん [2018/03/18(日) 08:14:12.57 ID:5MZOkfmV0.net]
ちょっと間違えました。
上の投稿は無視してください

590 名前:デフォルトの名無しさん mailto:sage [2018/03/21(水) 22:30:20.44 ID:Pk5+CKOYa.net]
ニキ
配列で array[i] と i[array] て同じナンスカ?
後者の違和感すげーあるんスけどこういう風に書くことのメリットってかどっちが普通なんでしょうか

591 名前:デフォルトの名無しさん mailto:sage [2018/03/21(水) 22:33:57.97 ID:MsjTjvgF0.net]
ポインターはINTに変換できる事もある。
んで、arrayはhogeっていうアドレス値を持ってる。
iはhageていう数字を持ってる。
生の数字でhoge+hage=i+arrayである。
まぁ、後者の書き方は普通しない。

592 名前:デフォルトの名無しさん mailto:sage [2018/03/21(水) 22:34:54.75 ID:DQv7yGEy0.net]
アセンブラではオフセット[レジスタ]が普通
どっちが普通なんてくだらねえことだ

593 名前:デフォルトの名無しさん mailto:sage釣 [2018/03/21(水) 22:36:13.14 ID:D2465Z9CM.net]
offsetofマクロの実装を見て見なされ
オフセット値の算出にポインタ使っているでしょ



594 名前:デフォルトの名無しさん mailto:sage [2018/03/22(木) 00:04:45.10 ID:dLiR/Xt3M.net]
a[b] は *(a+b) のシンタックスシュガー

595 名前: mailto:sage [2018/03/22(木) 00:19:52.50 ID:2FEQ/Wa30.net]
>>435
そうともいえない

一見目的のない議論が、将来の偉材を今育てているのかもしれない

596 名前: mailto:sage [2018/03/22(木) 00:23:55.20 ID:2FEQ/Wa30.net]
>>441
知らないのか?
setjmp/longjmp は、かつては例外(exception) の標準的な実装方法だったんだよ
OS に構造化例外機能がなかったときは sjlj が主流だったんだ

597 名前:デフォルトの名無しさん mailto:sage [2018/03/22(木) 04:56:30.90 ID:0SzB6c710.net]
>>576
お前のご託はどうでもいいから
> 他の言語でライブラリレベルで実装してる例
をだしてみろよ

598 名前:デフォルトの名無しさん [2018/03/22(木) 09:40:57.08 ID:Q2/ylW7bF.net]
BDS-Cとかあったな

599 名前:デフォルトの名無しさん mailto:sage [2018/03/22(木) 10:22:59.95 ID:lT3wziJ7p.net]
>>570みたいなのは、キャストしないと使えねーだし。

600 名前:デフォルトの名無しさん [2018/03/22(木) 13:44:55.99 ID:suw09sJq0.net]
>>579
え?使えるよ。単に *(i + array) になるだけだし。

601 名前: mailto:sage [2018/03/22(木) 13:56:04.06 ID:2FEQ/Wa30.net]
>>577
mingw/gcc-3 あたりまでは SEH ではなく sjlj だったと記憶している
ググってみるとちらほら出てくる

602 名前:デフォルトの名無しさん mailto:sage [2018/03/22(木) 14:36:34.98 ID:tPQcb8ora.net]
SEHって何かと思ったらMS独自のやつか

603 名前:デフォルトの名無しさん mailto:sage [2018/03/22(木) 19:43:32.85 ID:qO2s+USWM.net]
>>581
他の言語って書いてあるのに
話そらそうと必死だな w



604 名前: mailto:sage [2018/03/22(木) 20:58:32.18 ID:2FEQ/Wa30.net]
>>583
C と C++ は違う言語だろう?(棒読み)

605 名前:デフォルトの名無しさん mailto:sage [2018/03/22(木) 21:06:38.53 ID:qO2s+USWM.net]
>>584
そんなものまで持ち出さないと自我が壊れちゃうのか? w

606 名前:デフォルトの名無しさん mailto:sage [2018/03/24(土) 19:49:48.79 ID:wXlHUBLAa.net]
ニキやっぱFEぐらいのC過去問なら余裕の満点すか?

607 名前:デフォルトの名無しさん mailto:sage [2018/03/24(土) 22:33:50.23 ID:glVyz9hR0.net]
>>573
>オフセット値の算出にポインタ使っているでしょ
そうか?
offsetofの結果は整定数式になる必要があるが、
ポインタ演算を使った式が整定数になる保証がないので別の手段を使っている場合がある。 []
[ここ壊れてます]

609 名前:デフォルトの名無しさん mailto:sage釣 [2018/03/24(土) 22:37:51.52 ID:M0MLze13M.net]
>>587
具体的に

610 名前:デフォルトの名無しさん [2018/03/25(日) 00:05:52.92 ID:r2Id4T4+0.net]
>>586
例えばどんなの?

611 名前:デフォルトの名無しさん mailto:sage [2018/03/25(日) 07:25:18.09 ID:S7OmeNGW0.net]
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)

612 名前:デフォルトの名無しさん mailto:sage釣 [2018/03/25(日) 15:04:40.75 ID:9t80sXyiM.net]
>>587
>ポインタ演算を使った式が整定数になる保証がないので別の手段を
ポインタ演算の結果が浮動小数点とか変数になる例早よう出しなされ

613 名前:デフォルトの名無しさん mailto:sage [2018/03/25(日) 15:25:31.63 ID:wNhLkN4j0.net]
メモリーの仕切り壁に落書きするポインタ
9と3/4番線ホームから出発する列車を指し示すポインタ
あれば便利かも知れないが(何がだ)



614 名前:デフォルトの名無しさん mailto:sage [2018/03/25(日) 17:42:21.62 ID:S7OmeNGW0.net]
鉄道に例えるならポイント(線路の分岐)を制御するデコーダに与える信号がCのポインタだ

615 名前:デフォルトの名無しさん [2018/03/25(日) 18:06:41.94 ID:qleen6XJF.net]
それじゃ型が考慮されてない

616 名前:デフォルトの名無しさん mailto:sage [2018/03/25(日) 18:24:31.28 ID:EKcNWVxa0.net]
>>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.

617 名前:デフォルトの名無しさん mailto:sage [2018/03/25(日) 18:28:29.51 ID:S7OmeNGW0.net]
汎整数型定数をポインタにキャストまたは暗黙に変換した式は定数式(たとえば空ポインタ定数は定数式)
その定数式を整数にキャストし直した式が定数式でなくなる根拠はない

618 名前:デフォルトの名無しさん [2018/03/25(日) 18:29:11.25 .net]
>>595
先生!
>>587で 「ポインタ演算を使った式が整定数になる保証がないので別の手段を使っている場合がある。」
って言い切ってるんだから、その「場合」とやらを僕も知りたいです!

619 名前:デフォルトの名無しさん mailto:sage [2018/03/25(日) 18:53:41.81 ID:EKcNWVxa0.net]
>>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.

620 名前:デフォルトの名無しさん mailto:sage [2018/03/25(日) 19:02:02.77 ID:z318xA/90.net]
(配列等で)連続が保障されてるときには要素数が求まるようにはなってるけど
連続性のないポインタの差分は鼻から悪魔だったような
規格? みてない

621 名前:デフォルトの名無しさん mailto:sage [2018/03/25(日) 19:05:21.84 ID:S7OmeNGW0.net]
>>598
俺は根拠がないと言ったんだが
それをすっ飛ばして整定数式ではないと言われてもねえ

622 名前:デフォルトの名無しさん mailto:sage釣 [2018/03/26(月) 07:31:09.27 ID:Sl5sXtlN0.net]
で、587は逃げたのか

623 名前:デフォルトの名無しさん mailto:sage [2018/03/26(月) 09:52:06.25 ID:5fqWa8qC0.net]
今日からC言語を始めたのでよろしくです



624 名前:デフォルトの名無しさん mailto:sage [2018/03/26(月) 10:39:34.46 ID:9cQp/9Bmp.net]
ご愁傷様

625 名前:デフォルトの名無しさん mailto:sage [2018/03/26(月) 11:35:27.48 ID:0ihjlnG/0.net]
a[b*c];
のようにしてもassemblyコードがアドレッシングモードじゃなくて
掛け算してしまうんですけどどうしたらアドレッシングモードで計算するように
なりますか?

626 名前:デフォルトの名無しさん mailto:sage [2018/03/26(月) 11:54:06.58 ID:dvRuSlEv0.net]
>>604
b と c とを使って何をしたいのでしょうか?

627 名前:デフォルトの名無しさん mailto:sage [2018/03/26(月) 12:03:06.83 ID:EmWkiz+YM.net]
>>604
何がしたいのかよくわからないけど、エスパーすると
Cソースで変数のセクションを指定して、リンカでそのセクションの配置を
期待するアドレスに配置すればいいんじゃないかな。

628 名前:デフォルトの名無しさん mailto:sage [2018/03/26(月) 12:09:23.11 ID:0ihjlnG/0.net]
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は掛け算をアドレッシングモードでしているので
処理速度の差が生まれてしまいます。

629 名前:デフォルトの名無しさん mailto:sage [2018/03/26(月) 12:12:26.75 ID:0ihjlnG/0.net]
自己解決しました。

630 名前:デフォルトの名無しさん mailto:sage [2018/03/26(月) 12:12:50.68 ID:EmWkiz+YM.net]
struct aにキャストしてから計算すればいいという話ではなくて?

631 名前:デフォルトの名無しさん mailto:sage [2018/03/26(月) 12:18:06.83 ID:0ihjlnG/0.net]
nかsは定数じゃないと駄目みたいでした。

632 名前:デフォルトの名無しさん mailto:sage [2018/03/26(月) 12:31:41.16 ID:k+G5ovIGM.net]
sがなんだかわからないけど

void *h(int n, int s){
return ((struct a *)v+n*s);
}

じゃだめなん?
s=1ならi()と同じだと思うけど。

633 名前:デフォルトの名無しさん mailto:sage [2018/03/26(月) 12:37:07.82 ID:0ihjlnG/0.net]
struct a *は8バイトなので8を入れればよいのです。



634 名前:デフォルトの名無しさん mailto:sage [2018/03/26(月) 12:40:49.01 ID:v3bCx+j3M.net]
ブロックサイズみたいなイメージかな。
だったらsizeof(struct a)にしたほうがよいかと。

635 名前:デフォルトの名無しさん [2018/03/26(月) 13:35:11.46 ID:ioIbXl47a.net]
>>612
それは違う環境に持っていってコンパイルしたら破綻するかも知れない。
やはりsizeof使うかそのまんまポインタ計算させた方が良いのでは?

636 名前:デフォルトの名無しさん mailto:sage [2018/03/26(月) 14:37:40.54 ID:g7RAb+fM0.net]
最適化されたらおんなじじゃね?

637 名前:片山博文MZ mailto:sage [2018/03/26(月) 14:44:36.91 ID:42MV7MT1d.net]
struct a*のサイズは32-bit 環境だと4だよな。64ビットだと8バイト。

638 名前:片山博文MZ mailto:sage [2018/03/26(月) 14:47:59.15 ID:42MV7MT1d.net]
ポインタを操作するなら、size_tとかptrdiff_t使った方がいいな。

639 名前:デフォルトの名無しさん mailto:sage [2018/03/26(月) 15:00:59.23 ID:+d/fyZgca.net]
>>616
ここでは構造体の実体の配列だからsizeof(struct a)で大丈夫。
int1つのサイズは典型的には4byteだけど、IP64だのあまり見ない
データモデルでは8byteのこともあるから、構造体のサイズを使うときは
sizeofがよい(MAY)、ではなくてsizeofにすべき(ほぼMUSTのSHOULD)。

640 名前:デフォルトの名無しさん mailto:sage [2018/03/26(月) 17:51:14.16 ID:wby0cWXW0.net]
>>598
おまえさんが言いたいのは、これのことか?
https://ideone.com/NITIUP

641 名前:デフォルトの名無しさん mailto:sage [2018/03/26(月) 17:52:53.38 ID:5fqWa8qC0.net]
本買うならどれがいい?
本より優れたサイトがあるならそれでもいいぞ

642 名前:デフォルトの名無しさん mailto:sage釣 [2018/03/26(月) 19:16:37.53 ID:b1dSvJWqM.net]
>>620
きつねさんとおぼえる clang
きつねさんとおぼえる clang おかわり

643 名前:デフォルトの名無しさん mailto:sage [2018/03/27(火) 07:05:39.20 ID:VOv2iUaR0.net]
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バイツにしたいです。



644 名前:デフォルトの名無しさん mailto:sage [2018/03/27(火) 07:14:25.16 ID:6oSpwfuc0.net]
C言語のboolって何バイト?
C++だとINTと等価なことがそれなりにあるんだけど。

645 名前:デフォルトの名無しさん [2018/03/27(火) 07:32:57.91 .net]
>>622
よく分からないんだけど、2つ構造体を書いてるのは何を意図してるの?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<243KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef