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

튜토리얼에서 C의 attribute((constructor)) 및 attribute((destructor)) 구문은 ?

<시간/>

여기서 우리는 두 개의 함수가 존재하는 코드를 작성하는 방법을 볼 것이며, 하나의 함수는 메인 함수보다 먼저 실행되고 다른 함수는 메인 함수 다음에 실행될 것입니다. 이러한 기능은 main을 실행하기 전에 일부 시작 작업을 수행하고 main을 실행한 후에 일부 정리 작업을 수행하는 데 사용됩니다.

이 작업을 수행하려면 이 두 함수에 대한 속성을 넣어야 합니다. 속성이 생성자 속성이면 main()보다 먼저 실행되고 속성이 소멸자 유형이면 main() 이후에 실행됩니다.

우리는 GCC 기능을 사용하고 있습니다. 함수는 __attribute__()입니다. 이 경우 두 가지 다른 옵션을 사용합니다. __attribute__() 함수가 있는 생성자와 소멸자. __attribute__((constructor)) 구문은 프로그램이 시작될 때 함수를 실행하는 데 사용됩니다. 그리고 __attribute__((destructor)) 구문은 main() 함수가 완료될 때 함수를 실행하는 데 사용됩니다. 더 나은 아이디어를 얻으려면 예제를 살펴보십시오.

예시

#include <stdio.h>
void before_main() __attribute__((constructor));
void after_main() __attribute__((destructor));
void before_main() {
   printf("This is executed before main.\n");
}
void after_main() {
   printf("This is executed after main.");
}
main() {
   printf("Inside main\n");
}

출력

This is executed before main.
Inside main
This is executed after main.