タグ

data_modelに関するnilabのブックマーク (12)

  • gccにおけるatomic操作命令の個別関数

     gccとVC x86/x64環境で開発する上で, gccとVCはどちらも非常に優れたC/C++コンパイラです. ただLinuxWindowsのどちらの環境でも動作するようなC/C++コードを書くためには, gccとVC, およびそれらが動作するOSの違いが問題になることがあります. ここではそれらの違いについてまとめていきたいと思います. なお説明を簡単にするためにマクロを多用していますが実際には可能なら別の手段をとるか, 名前がぶつからないような命名規則に則ったマクロ名をつけることをお薦めします. 対象 定義済みマクロ 有用なマクロ コンパイルオプション 演算子の代替表現の抑制 日語のコメント 型 pragma attributeとdeclspec ファイル入出力 テキストとバイナリ 巨大なファイル static変数の初期化 snprintf 例外ハンドラ intrinsic関数

    nilab
    nilab 2010/09/06
    difference between gcc and vc : gccとVC
  • Linux 32ビット版と64ビット版の違い -- データサイズ

    nilab
    nilab 2010/09/06
    mixメモ: Linux 32ビット版と64ビット版の違い -- データサイズ
  • gccでのi386とamd64におけるワードアライメントの動作の違い

    nilab
    nilab 2010/09/06
    gccでのi386とamd64におけるワードアライメントの動作の違い « himorin's blog
  • 64bit OS と 32bit OS でのデータ型の相違一覧

    Perl-XS なモジュールを 64bit OS で使っていると、ごく希に変数型サイズが問題で不具合を経験することがあります。例えば、メジャーどころで言えば、日語係り受け解析器のCaboCha/南瓜を例に挙げますと、 src/common.h の103〜107行目 static inline void replaceString (std::string &s, const std::string &src, const std::string &dst) { unsigned int pos = s.find (src); if (pos != std::string::npos) s.replace (pos, src.size(), dst); } の unsigned int pos = s.find (src); の部分ですが、32bit 環境では問題は発生しませんが、64bi

    nilab
    nilab 2010/09/06
    64bit OS と 32bit OS でのデータ型の相違一覧 :: Drk7jp
  • 浮動小数点型

    なお,浮動小数点形式の定数リテラルのサフィックス“F”(または“f”),“L”(または“l”)は, “F”はfloat型,“L”はlong double型を示すことになっている. double型のサフィックスはないようだけど,これはリテラルはFかLで指定して, double型にはキャストしながら代入されていくのでOKという意味なんだろう. 参考:Intel x86系CPUの浮動小数点演算中間結果 Intel x86系CPUの場合,double型としては64ビットなのだけど, 演算の中間結果は80ビット(拡張精度)の浮動小数点レジスタスタックに保持していて,精度が高くなっているかもしれない. たとえばVisual C++のデフォルトがこの実装になっていて,演算中は80ビットの拡張精度になる. Visual C++の場合はたいへん複雑なことになっていて, MSDNによると,古い16ビット版Vi

    nilab
    nilab 2010/09/06
    浮動小数点型 : 「規格の定義では精度がfloat≦double≦long doubleとなっていればよいので, float=単精度(32ビット),double=倍精度(64ビット)となっているとは限らない(それどころかIEEE形式である必要もない)」
  • 64-BIT PROGRAMMING MODELS

    C language standards specify a set of relationships between the various data types but deliberately do not define actual sizes. Ignoring the non-standard types for a moment, all three 64-bit pointer models satisfy the rules as specified. A change in the width of one or more of the C datatypes affects programs in obvious and not so obvious ways. There are two basic sets of issues: (1) data objects

    nilab
    nilab 2010/09/06
    64-BIT PROGRAMMING MODELS
  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
    nilab
    nilab 2010/09/06
    Solarisからx86の Linuxへの移植ガイド
  • 64ビット - Wikipedia

    64ビット(英: 64-bit)は、連続した64個(桁)のビット(8オクテット)であり、バイナリで最大18,446,744,073,709,551,616(16エクスビ、約18.4E)までの数を表現できる。 「64ビットアーキテクチャ」とは、整数型、メモリアドレス、その他のデータサイズなどが、最大64ビット幅のアーキテクチャである。 「64ビットCPU」(プロセッサ、演算装置)とは、64ビットサイズのレジスタ、アドレスバス、データバスを持つCPU(プロセッサ、演算装置)である。 「64ビットオペレーティングシステム」とは、64ビットのCPUを前提に設計されたオペレーティングシステムである。 「64ビットアプリケーション」とは、64ビットのCPUおよび64ビットのオペレーティングシステムを前提に設計されたアプリケーションソフトウェアである。 「64ビットコンピュータ」とは、64ビットのプロセ

    nilab
    nilab 2010/09/06
    64ビット - Wikipedia
  • 64ビットになると何が変わる?――64ビットプログラミングのデータモデル

    64ビットになると何が変わる?――64ビットプログラミングのデータモデル:64ビットコンピューティング最前線(1/2 ページ) システムが64ビットになるとプログラム的には何が変わるのか。3つの基的な64ビットプログラミングデータモデルを取り上げながら、理解を深めていこう。 C MAGAZINE 2004年10月号第3特集「64ビットコンピューティング」より転載 64ビットプログラミングで何が変わる? システムが64ビットになるとプログラム的には何が変わるのでしょうか。 まず、大きな変更点として、ポインタの幅(サイズ)が64ビットになります。このことで、より幅広いアドレスをカバーできるようになります。そもそも、ポインタのサイズが32ビットのままなら64ビットに拡張される意味がありませんし、これは当然といえば当然のことかもしれません。 通常、ポインタはポインタとしてしか使用されることはあり

    64ビットになると何が変わる?――64ビットプログラミングのデータモデル
    nilab
    nilab 2010/09/06
    ITmedia エンタープライズ:64ビットになると何が変わる?――64ビットプログラミングのデータモデル (1/2)
  • 整数型 - Wikipedia

    整数型(せいすうがた、英: integer type / integral type)は、コンピュータのプログラムなどのデータ型の1つまたは1群であり、整数を取り扱う。コンピュータで扱うもっとも単純な部類のデータ型のひとつである。C言語やJavaなどの多くのプログラミング言語では、整数型は固定長であり、その固定サイズで表現可能な範囲の、整数の有限な部分集合の要素を値とする型である。また多くの言語において、より大きな範囲の整数値を表現可能なデータ型を扱うことができる、標準あるいは第三者によるライブラリが提供されている。 パスカルによる機械式計算機などが数をその処理の対象としていたことを考えれば、計算機械の歴史において、整数を扱うことはコンピュータ以前からの存在である。 種類[編集] 精度[編集] コンピュータ上で実数を表現するためによく利用されるのは浮動小数点数だが、有限のビット幅で表現され

    nilab
    nilab 2010/09/06
    整数型 - Wikipedia
  • Linuxと64bit環境 VA Linux Systems Japan(ILP32, LLP64, LP64, ILP64)

    64bitプロセサのためのプログラムを、C/C++で書く際に注意すべき点の1つが、整数データモデルの違いです。 32bit環境ではポインタは32bitであり、int型と同じ幅でした。64bitプロセサのプログラミング環境では、ポインタの幅が64bitとなります。Cの言語仕様(ISO/IEC 9899:1999 Programing Languages - C[5]、C99)においては、intは「実行環境のアーキテクチャの暗示する自然な大きさ」となっており、64bitプロセサにおいては64bitとなりそうではありますが、そうではない実装が主流となっています。主な整数データモデルを【表1.2】に示します。

    nilab
    nilab 2009/06/05
    Linuxと64bit環境 VA Linux Systems Japan : C99:整数データモデルの比較:#include <stdint.h> <inttypes.h> uint32_t uint8_t int64_t int32_t:32ビット環境ではint、long int、ポインタが32bit:64bit Unixの多くではlong intが64bit:long int と void* の移植に注意
  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
    nilab
    nilab 2008/01/11
    Linuxアプリケーションの64ビット・システムへの移植 : 変数型のサイズなど
  • 1