>  기사  >  백엔드 개발  >  Go 함수 이름과 프로토타입에 왜 슬래시와 점이 있나요?

Go 함수 이름과 프로토타입에 왜 슬래시와 점이 있나요?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-07 21:59:03780검색

Why are there slashes and dots in Go function names and prototypes?

함수 이름과 프로토타입의 슬래시와 점

제공된 Go 소스 코드 조각에서 슬래시가 포함된 함수 이름과 프로토타입( /) 및 점(·)입니다. 이러한 문자는 특정 기능으로 C 언어를 확장하는 Go의 내부 C 컴파일러의 맥락에서 특별한 의미를 갖습니다.

Middot(·)

middot 문자(· )는 Go의 C 컴파일러에서 인식되는 특수 문자입니다. 이는 네임스페이스 구분 기호로 사용되며 Go 링커에서 컴파일할 때 일반 점(.)으로 변환됩니다. 언급된 함수 이름에서 중간 점은 실제 함수 이름과 네임스페이스를 구분하는 역할을 합니다.

runtime∕race·Read
runtime∕race·Write

슬래시(/)

슬래시(/)는 다음과 같습니다. Go의 C 컴파일러에서도 특별히 처리됩니다. 이는 "빈" 또는 "자리 표시자" 네임스페이스를 나타냅니다. import 문을 사용할 때 Go는 빈 네임스페이스를 가져온 패키지의 실제 경로로 바꿉니다.

예를 들어 다음 Go 코드는

import examp "path/to/package/example"

다음 C로 변환됩니다. 컴파일 후 코드:

#include "path/to/package/example/example.h"

제공된 함수 프로토타입에서 슬래시는 함수가 "자리 표시자" 네임스페이스에 속함을 나타냅니다.

void runtime∕race·Read(int32 goid, void *addr, void *pc);

전체적으로 이 부분의 슬래시와 점은 함수 이름과 프로토타입은 Go의 내부 C 컴파일러에서 네임스페이스를 처리하고 컴파일 및 링크 중에 유연한 기호 맹글링을 허용하는 데 사용됩니다.

위 내용은 Go 함수 이름과 프로토타입에 왜 슬래시와 점이 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.