source

C의 연산자 유형

goodcode 2022. 8. 31. 22:38
반응형

C의 연산자 유형

C의 타입은 정말 연산자입니까?
C에는 다형이 없기 때문에 런타임에 할 일이 없다고 생각하고 있습니다.즉, 타입 오브에 대한 답은 컴파일 시에 알 수 있습니다.(컴파일 시 알 수 없는 타입의 사용은 생각할 수 없습니다.)따라서 연산자라기보다는 컴파일 시간 지시어인 것 같습니다.

(프로세서) 런타임(GCC)을 사용하는 타입이 있습니까?

부터typeof는 컴파일러 확장자이며, 실제로는 정의되어 있지 않지만, C의 전통에서는 연산자일 것입니다.sizeof그리고._Alignof연산자로도 볼 수 있습니다.

또한 C에는 런타임에만 결정되는 동적 유형이 있습니다. 가변 수정(VM) 유형입니다.

size_t n = strtoull(argv[1], 0, 0);
double A[n][n];
typeof(A) B;

실행 시에만 확인할 수 있습니다.

2021년에 추가: 다음과 같은 가능성이 있습니다.typeof과 같은 규칙을 가지고sizeofC23이 됩니다.

GNU 확장자입니다.한마디로 같은 타입의 오브젝트를 선언하는 편리한 방법입니다.예를 들어 다음과 같습니다.

int x;         /* Plain old int variable. */
typeof(x) y;   /* Same type as x. Plain old int variable. */

완전히 컴파일 시에 동작합니다. 주로 매크로에서 사용됩니다.매크로에 의존하는 유명한 예 중 하나는typeofcontainer_of.

이것은 GCC 컴파일러의 C 확장입니다.http://gcc.gnu.org/onlinedocs/gcc/Typeof.html 를 참조해 주세요.

연산자가 아니라 키워드입니다. 런타임 매직은 하지 않습니다.

이 확장자를 사용해야 하는 한 가지 경우 익명 구조의 포인터를 가져옵니다.예를 들어 이 질문을 확인하실 수 있습니다.

언급URL : https://stackoverflow.com/questions/12081502/typeof-operator-in-c

반응형