問題タブ [stdint]
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 - Cでptrdiff_tはどこで定義されていますか?
Cのどこでptrdiff_t
定義されていますか?
c - stdint.h の存在をチェックするコンパイル時
uint8_t, uint16_t
タイプを定義する従来の埋め込み C コードと、キーワード uint32_t
を使用してヘッダー ファイルで作業しています。typedef
typedefs.h
議論のために、ファイルにこれらの定義が含まれているとしましょう。
私の新しい C ソース モジュールには、stdint.h
. typedefs.h
また、階層内のどこかに含まれる他のヘッダー ファイルも含めます。予想どおり、コンパイラは複数の定義されたシンボルについて不平を言います。
タイプが定義されていない場合は、どちらかが含まれていないか、より良い場合にのみタイプtypedefs.h
を宣言するように、レガシーファイルを変更したいと思います。uint*_t
stdint.h
uint*_t
私の理解では、プリプロセッサ ディレクティブではない#ifndef
ため使用できません。typedef
uint*_t
では、それらが既に存在する場合 (またはstdint.h
既に含まれている場合)を定義しないようにコンパイラに指示するにはどうすればよいでしょうか?
注: C 仕様で定義された標準にヘッダー ファイルのガード定義が含まれている場合、これは簡単です。
FWIW、私は ARM9 プロセッサに Green Hills コンパイラ 4.24 を使用しています。
c - 一般的なアーキテクチャの最速の整数型
stdint.h
ヘッダーには、タイプに対応するためのint_fastest_t
とがありません。整数型の幅が重要ではない場合、パフォーマンスへのペナルティを最小限に抑えて最大量のビットを処理できる整数型をどのように選択しますか?たとえば、単純なアプローチを使用してバッファ内の最初のセットビットを検索している場合、次のようなループが考えられます。uint_fastest_t
{,u}int_fastX_t
当然、を使用char
すると、よりも多くの操作が発生しint
ます。ただし、32ビットシステムなどlong long
で使用するオーバーヘッドよりもコストのかかる操作になる可能性があります。int
私の現在の仮定は主流のアーキテクチャであり、の使用がlong
最も安全な方法です。32ビットシステムでは32ビット、64ビットシステムでは64ビットです。
ruby-on-rails - RailsにRMagick-gemをインストールする際の問題
私はRMagickをインストールしようと一日中チュートリアルを調べていて、かなり遠くまで進んでいると思いますが、解決方法が本当にわからない、または有用な情報が得られないというエラーに遭遇しました。
gemをインストールしようとすると、次のメッセージが表示されます。
太字の部分が重要な部分だと思います。調査を行ったところ、stdint.hはある種のヘッダーであることがわかりましたが、インストール方法がわかりません。
また、mkmf.logファイルをチェックインしたところ、この読みやすい情報が得られました。
Rubyバージョンのチェック>=1.8.5...--------------------はい
誰かアイデアはありますか?
助けてくれてありがとう!
よろしく、エミル
c - typedef 整数、特に 64 ビットを使用した Printf
次のコードを検討してください。
これは x86 で問題なく動作します。x64 では、int64_t は実際にはlong
ではなく であり、long long
x64ではlong
とlong long
が同じサイズである場合、コンパイラはエラーを生成します。
src/cpfs/bitmap.c:14: 警告: フォーマット '%lld' はタイプ 'long long int' を想定していますが、引数 6 のタイプは 'Blkno' です</p>
printf
64 ビット型を渡していることをどのように確認できますか?#define
上記のようなものを使用するよりも、ユーザータイプの仕様を標準化するためのより良い方法はありBLKNO_FMT
ますか?
visual-studio - Visual Studio 2010 の stdlib.h / stdint.h はどこにありますか?
少しグーグルで調べたところ、stdint.h
古いバージョンの Visual Studio には同梱されていませんが、Visual Studio 2010 には含まれているはずだと聞きました。
ただし、それを使用するはずのこのプロジェクトがありますが、どちらも見つからないと言われていstdlib.h
ますstdint.h
。
それはなぜですか、どうすればこれを修正できますか?
x86 Windows 7 マシンで .NET 4.0 を使用して Visual Studio 2010 を実行しています。
c - uint32_tおよびその他のstdintタイプのatoiまたはstrtoulに相当するものは何ですか?
文字列をstdint.h整数に変換する標準関数を探しています。
c - なぜこれがオーバーフローを引き起こすのですか?
C99(stdint.h)で定義されているuint64_tは8バイト(= 64ビット)の長さであると定義されているため、最大値は2 ^ 64-1になります。ただし、次のコードスニペットを試してみると、 uint64_tは、2 ^ 64-1に近くないにもかかわらず、オーバーフローします。
助けていただければ幸いです。
c - INT_FAST16_MAX は MSVC 2010 の型サイズを反映していませんか?
C99 はint_fast16_t
「整数型は通常、指定された幅以上で最も高速である」と定義し、Microsoft は MSVC 2010 でそれを 32 ビット整数として定義しています。
それでも、Microsoft は、実際の基になるデータ型を反映しないように制限を設定しました。
標準の意図は次のようになると想定されます。
そうでなければ、これは定数を完全に冗長にしますか?
編集:期待どおりの NetBSD 設定の例:
xcode - #include ヘッダー ファイルに関する名前空間の質問
Windows マシンから Mac にコードを移植しています。Xcode 3.2.5 で OS X 10.6 を使用しています
次のコードを含む api.h というヘッダー ファイルがあります。
ocip.h に
は、次の typedef を持つ#include stdint.h が含まれています。
api.h に戻ると、次のようなクラスがあります。
ocip::uint32_t m_nMode;
コンパイラは、名前空間 'ocip' の uint32_t が型に名前を付けていないことを教えてくれます。
私が間違っていることはありますか?