C_ASSOCIATED — C 포인터의 상태

C_ASSOCIATED — C 포인터의 상태

C와 연동한 코드에서 C 포인터가 널(null)인지, 특정 대상을 가리키는지 확인해야 할 때가 있어요. C_ASSOCIATED는 C 포인터 CPTR1의 상태, 또는 CPTR1이 대상 CPTR2와 연관돼 있는지를 판단해요.

출처: gfortran 공식 문서 - C_ASSOCIATED

본문

RESULT = C_ASSOCIATED(CPTR1[, CPTR2])

설명(Description)

C_ASSOCIATED(CPTR1[, CPTR2])는 C 포인터 CPTR1의 상태를, 또는 CPTR1이 대상 CPTR2와 연관돼 있는지를 결정해요.

분류(Class)

조회 함수(Inquiry function)

인자(Arguments)

  • CPTR1C_PTR 또는 C_FUNPTR 타입의 스칼라예요.
  • CPTR2 — (선택) CPTR1과 같은 타입의 스칼라예요.

반환값(Return value)

반환값은 LOGICAL 타입이에요. CPTR1이 C 널 포인터이거나, CPTR1CPTR2가 서로 다른 주소를 가리키면 .false.예요.

예제

subroutine association_test(a,b)
  use iso_c_binding, only: c_associated, c_loc, c_ptr
  implicit none
  real, pointer :: a
  type(c_ptr) :: b
  if(c_associated(b, c_loc(a))) &
     stop 'b and a do not point to same target'
end subroutine association_test

ba의 주소와 연관돼 있으면(즉 같은 대상을 가리키면) 프로그램을 멈추는 예제예요. c_associated(b, c_loc(a))가 참이라는 것은 같은 대상을 가리킨다는 뜻이죠.

표준(Standard)

Fortran 2003 이상

같이 보기

C_LOC — 객체의 C 주소 얻기, C_FUNLOC — 프로시저의 C 주소 얻기