Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โอเปอเรเตอร์ Alignof ใน C++


โอเปอเรเตอร์ เป็นสัญลักษณ์ที่ใช้ระบุคอมไพเลอร์เพื่อดำเนินการบางอย่างในภาษาการเขียนโปรแกรม

การจัดตำแหน่ง ตัวดำเนินการคือตัวดำเนินการที่ส่งคืนการจัดตำแหน่งที่จะใช้กับตัวแปรประเภทที่กำหนด ค่าที่ส่งคืนมีหน่วยเป็นไบต์

ไวยากรณ์

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

ขนาดของ() โอเปอเรเตอร์ในภาษาโปรแกรม C++ คือโอเปอเรเตอร์ unary ที่ใช้ในการคำนวณขนาด of ตัวถูกดำเนินการ

ตัวอย่าง

โปรแกรมนี้เป็นการแสดงความแตกต่างระหว่าง sizeof operator และ align of operator

#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