Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++의 Alignof 연산자

<시간/>

연산자 컴파일러가 프로그래밍 언어로 어떤 작업을 수행하도록 표시하는 데 사용되는 기호입니다.

정렬 operator는 주어진 유형의 변수에 적용할 정렬을 반환하는 연산자입니다. 반환된 값은 바이트 단위입니다.

구문

var align = alignof(tpye)

설명

  • 정렬 - 연산자는 입력된 데이터의 정렬을 반환하는 데 사용됩니다.

  • 매개변수 유형 - 정렬이 반환될 데이터 유형입니다.

  • 반환 가치 − 주어진 데이터 유형에 대한 정렬로 사용되는 바이트 단위 값입니다.

예시

기본 데이터 유형의 정렬 값을 반환하는 프로그램입니다.

#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++ 프로그래밍 언어의 operator는 of 크기를 계산하는 데 사용되는 단항 연산자입니다. 피연산자.

예시

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