본문 바로가기

C++

C++ 배우기 17(SAL, 표준 라이브러리)

SAL(Standard Annotation Language)

Microsoft 소스 코드 주석 언어라고 부르며, 이는 함수의 매개변수를 어떻게 사용하는지 설명해줄 수 있는 주석이다.

<sal.h> 헤더 파일 안에 정의되어 있다.

 

SAL의 사용 예시

위와 같이 함수의 매개변수 앞(__inout)에 사용할 수 있다.

코드를 보았을 때, 이 매개변수가 어떻게 작동하는지 설명할 수 있어 규모가 큰 팀 단위 개발일 때 사용하기도 한다고 한다.

__inout뿐만 아니라 다양한 주석 또한 존재한다.

 

_In_		호출된 함수에 대한 입력
_Inout_		호출된 함수에 대한 입력 및 호출자에게 출력
_Out_		호출자에게 출력
_Outptr_	호출자에 대한 포인터의 출력

이처럼 각 SAL마다 의미가 있어서 상황에 맞게 잘 쓰면 개발자가 함수를 사용하는 방법을 더 잘 이해할 수 있다.


표준 라이브러리(Standard Library)

우리가 항상 먼저 입력하던 #include <iostream>에서 iostream, string 등등을 말하며,

C++의 클래스들과 함수들의 집합체를 C++ 표준 라이브러리라고 부른다.

 

C++ 표준 라이브러리가 있다면 C++과 가장 밀접한 C의 표준 라이브러리도 존재한다.

몇 번 썼었던 math.h, time.h 등과 같은 헤더 파일들이 대표적인 예시이다.

 

이렇게 보면 C++과 C의 표준 라이브러리 차이가 보일텐데, 바로 뒤에 .h가 있냐 없냐의 차이다.

C++은 .h가 없고, C는 있다. 그런데 분명 우리는 C++을 사용하고 있지만 .h가 있는 C 표준 라이브러리도 사용하고 있는데,

이는 C에서 사용가능한 것들이 사실 C++에서도 사용이 가능하기 때문이다.

하지만 반대로 C++에서 사용하던 것들은 C에서 사용할 수 없으니 주의하자.