問題タブ [sizeof]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - sizeofが構造体メンバーを解析しないのはなぜですか?
これがコンパイル時の計算であることは知っていsizeof
ますが、これは私には奇妙に思えます。コンパイラーは、型名または式(型を推測する)のいずれかを取ることができます。しかし、クラス内のタイプをどのように識別しますか?表現を渡すのが唯一の方法のようですが、これはかなり不格好なようです。
c - GCC でコンパイルされた AVR アーキテクチャ用に記述されたアセンブリ プログラムに C グローバル配列のサイズを取得する方法は?
以下の.c
ファイルがあります。
次のこと.S
をしたいファイルがあります。
の 2 番目の引数cpi
は、位置ではなく即値でなければなりません。しかし、残念ながらsizeof()
オペレーターC
です。両方のファイルは別々のオブジェクト ファイルにコンパイルされ、後で一緒にリンクされます。
私がそうするavr-objdump -x file.c
と、とりわけ、バッファのサイズを取得します。したがって、オブジェクトファイルで既に使用可能です。
コンパイル時にアセンブリ ファイル内のバッファのサイズにアクセスするにはどうすればよいですか?
c - sizeof(void *)とsizeof(function_type_ptr *)の同等性
sizeof(void *)とsizeof(function_type_ptr *)の同等性
sizeof(void *)とsizeof(function_type_ptr *)は等しくなければなりませんか?C(C90、C99)規格で必要ですか?
function_type_ptrは関数へのポインタです。
この質問は、あなた自身の意見ではなく、標準的な要件に関するものです。リンク、セクション番号、規格からの引用をお願いします
c - sizeof(char) != 1、または少なくとも CHAR_BIT > 8 のマシンはありますか?
マシン (またはコンパイラ) はどこにありsizeof(char) != 1
ますか?
C99標準は、sizeof(char)
標準準拠の実装では正確に1でなければならないと言っていますか? もしそうなら、セクション番号と引用を教えてください。
更新:uint32_t
バイトをアドレス指定できないマシン (CPU) を使用している場合 (最小読み取りは 4 バイト、整列)、4 バイト ( )
しかアドレス指定できない場合、このマシンのコンパイラは 4 に定義でき sizeof(char)
ますか? sizeof(char)
1 になりますが、char は 32 ビットになります(CHAR_BIT
マクロ)
Update2: しかし sizeof 結果は BYTES ではありません! CHAR のサイズです。char は 2 バイトにすることも、7 ビットにすることもできますか?
Update3: わかりまし
た。すべてのマシンにはsizeof(char) == 1
. しかし、どのマシンが持っていCHAR_BIT > 8
ますか?
c - C では、'a' が int のときに sizeof(char) が 1 になるのはなぜですか?
私は試した
printf("%d, %d\n", sizeof(char), sizeof('c'));
出力として1、4を取得しました。文字のサイズが 1 の場合、なぜ'c'
4 になるのですか? 整数だからだと思います。それで、私がそうするときchar ch = 'c';
、それがchar変数に割り当てられたときに、その4バイト値から1バイト値への暗黙的な変換がボンネットの下で起こっていますか?
c - 構造体へのポインターにスペースを割り当てる
別の投稿のリンク テキストで
構造体で同じことをしようとしていますが、sizeof 演算子に問題があるため、整数の場合は次のようにしました。
そして構造体の場合、私はこれをしました:
しかし、エラーが発生します: 構造体 TEST の不完全な型への sizeof の無効な適用。
何かご意見は?ありがとう。
c - mallocされたメモリでsizeof()を使用する
重複の可能性:
mallocとsizeofに関する初心者の質問
文字列をプログラムに読み込もうとしています。文字列が破損していることに気付いたとき、次のコードを試しました。
私のプログラムによると、100バイトを割り当てたのに、のサイズはmallocated
でした。8
このため、8バイトより長い文字列を保存しようとすると、8バイト目以降がすべて消えてしまうことがあります。なぜこれが起こっているのですか、そしてどうすればそれを防ぐことができますか?
c++ - C ++で文字列の配列のサイズを決定する方法は?
配列に含まれている値を単純に出力しようとしています。
'result'という文字列の配列があります。自動的に生成されたので、どれくらいの大きさなのか正確にはわかりません。
私が読んだことから、これを行うことで配列のサイズを決定できます。
これは正しいです?私のプログラムでは、sizeof(result)= 16およびsizeof(result [0])= 16であるため、コードは私の配列のサイズが1であることを示します。
ただし、次のように配列値を手動で出力すると、正しく表示されません。
...次に、探している結果の値が表示されます。配列は、長さ/サイズが100以上の値です。
配列のサイズ/長さを決定するのは非常に簡単なはずです...だから、うまくいけば、ここで何かが足りないだけです。
私は少しC++の初心者なので、助けていただければ幸いです。
c++ - sizeof(...) = 0 または C++ テンプレートでの条件変数宣言
次のようなものがあるとします。
これで、PoorMansTuple ごとに最大 19 バイトを浪費する可能性があります。
質問は:
1) サイズ 0 のクラスを作成する方法はありますか?
2)変数を条件付きで定義する方法はありますか? 次のようなもの:
ありがとう!
黒魔術マクロの使用は認められています。
MacOSX で g++ を使用しています。
c - ソラリスsparcとソラリスx86の構造体サイズの違い
アプリケーションをsolarissparcからsolarisx86に移植していますが、これら2つのアーキテクチャ間で構造体のサイズの違いに遭遇しました。例えば; 私は次のような構造体を持っています
sizeof(mystructT)
Solaris X86で書き込むと、396が返されます
sizeof(mystructT)
Solaris SPARCで書き込むと、400が返されます
私はただ興味があります、なぜこのようなことが起こるのですか?
編集:両方のsolarisシステムは32ビットです。