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

sizeof()가 C++에서 연산자로 구현되는 이유는 무엇입니까?


sizeof는 C++에서 실제 연산자가 아닙니다. 인수의 크기와 동일한 연속을 삽입하는 것은 단지 특수한 구문일 뿐입니다. sizeof는 런타임 지원을 원하지 않거나 가지고 있지 않습니다. Sizeof는 포인터를 배열로 증가시키는 것과 같은 내장 연산이 암시적으로 의존하기 때문에 오버로드될 수 없습니다.

C 표준은 sizeof가 연산자로 구현되어야 한다고 지정합니다. 대부분의 컴파일러에서 sizeof의 값은 컴파일 시간 자체와 동일한 상수로 대체됩니다.

#include <iostream>
using namespace std;
int main() {
   cout << "Size of char : " << sizeof(char) << endl;
   cout << "Size of int : " << sizeof(int) << endl;
   cout << "Size of short int : " << sizeof(short int) << endl;
   cout << "Size of long int : " << sizeof(long int) << endl;
   cout << "Size of float : " << sizeof(float) << endl;
   cout << "Size of double : " << sizeof(double) << endl;
   cout << "Size of wchar_t : " << sizeof(wchar_t) << endl;
   return 0;
}

출력

이것은 출력을 제공합니다 -

Size of char : 1
Size of int : 4
Size of short int : 2
Size of long int : 4
Size of float : 4
Size of double : 8
Size of wchar_t : 4