C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++のAlignof演算子


オペレーター は、プログラミング言語で何らかの操作を実行するようにコンパイラを示すために使用される記号です。

alignof 演算子は、指定されたタイプの変数に適用される配置を返す演算子です。戻り値はバイト単位です。

構文

var align = alignof(tpye)

説明

  • alignof −演算子は、入力されたデータの配置を返すために使用されます。

  • パラメータタイプ −アライメントが返されるデータ型。

  • 戻り値 −指定されたデータ型のアライメントとして使用されるバイト単位の値。

基本的なデータ型の整列の値を返すプログラム。

#include <iostream>
using namespace std;
int main(){
   cout<<"Alignment of char: "<<alignof(char)<< endl;
   cout<<"Alignment of int: "<<alignof(int)<<endl;
   cout<<"Alignment of float: "<<alignof(float)<< endl;
   cout<<"Alignment of double: "<<alignof(double)<< endl;
   cout<<"Alignment of pointer: "<<alignof(int*)<< endl;
   return 0;
}

出力

Alignment of char: 1
Alignment of int: 4
Alignment of float: 4
Alignment of double: 8
Alignment of pointer: 8

#include <iostream>
using namespace std;
struct basic {
   int i;
   float f;
   char s;
};
struct Empty {
};
int main(){
   cout<<"Alignment of character array of 10 elements: "<<alignof(char[10])<<endl;
   cout<<"Alignment of integer array of 10 elements: "<<alignof(int[10])<<endl;
   cout<<"Alignment of float array of 10 elements: "<<alignof(float[10])<<endl;
   cout<<"Alignment of class basic: "<<alignof(basic)<<endl;
   cout<<"Alignment of Empty class: "<<alignof(Empty)<<endl;
   return 0;
}

出力

Alignment of character array of 10 elements: 1
Alignment of integer array of 10 elements: 4
Alignment of float array of 10 elements: 4
Alignment of class basic: 4
Alignment of Empty class: 1

sizeof() C ++プログラミング言語の演算子は、のサイズを計算するために使用される単項演算子です。 オペランド。

このプログラムは、sizeof演算子とalignof演算子の違いを示すためのものです。

#include <iostream>
using namespace std;
int main(){
   cout<<"Alignment of char: "<<alignof(char)<<endl;
   cout<<"size of char: "<<sizeof(char)<<endl;
   cout<<"Alignment of pointer: "<<alignof(int*)<<endl;
   cout<<"size of pointer: "<<sizeof(int*)<<endl;
   cout<<"Alignment of float: "<<alignof(float)<<endl;
   cout<<"size of float: "<<sizeof(float)<<endl;
   return 0;
}

出力

Alignment of char: 1
size of char: 1
Alignment of pointer: 8
size of pointer: 8
Alignment of float: 4
size of float: 4

  1. C ++のsizeof演算子とは何ですか?

    sizeofはキーワードですが、変数またはデータ型のサイズをバイト単位で決定するコンパイル時の演算子です。 sizeof演算子を使用して、クラス、構造体、共用体、およびその他のユーザー定義のデータ型のサイズを取得できます。 sizeofを使用する構文は次のとおりです- sizeof (data type) ここで、データ型は、クラス、構造体、共用体、およびその他のユーザー定義のデータ型を含む、目的のデータ型です。 sizeof演算子をchar型のオブジェクトに適用すると、1が得られます。sizeof演算子を配列に適用すると、配列IDで表されるポインターのサイズではなく、その配列の合計バイト数が

  2. C++の単項演算子

    単項演算子は、単一のオペランドに作用して新しい値を生成する演算子です。単項演算子は次のとおりです。 演算子 説明 間接演算子(*) ポインタ変数を操作し、ポインタアドレスの値と同等のl値を返します。これは、ポインタの「逆参照」と呼ばれます。 演算子のアドレス(&) 単項アドレス演算子(&)は、そのオペランドのアドレスを取ります。アドレスオブ演算子のオペランドは、関数指定子またはビットフィールドではなくレジスタストレージクラス指定子で宣言されていないオブジェクトを指定するl値のいずれかです。 単項プラス演算子(+) 単項プラス演算子(+)の結果は