🔥 CLanguageStandard

249자
3분

C 언어로 작성된 소스 코드를 컴파일할 때, 어떤 C 언어 표준을 사용할지 지정해야 할 때가 있습니다. Swift 패키지 매니저는 CLanguageStandard 열거형을 통해 다양한 C 언어 표준을 지원하고 있습니다.

CLanguageStandard 열거형은 다음과 같은 케이스들을 제공합니다.

enum CLanguageStandard {
    case c89
    case c90
    case c99
    case c11
    case c17
    case c18
    case c2x
    case gnu89
    case gnu90
    case gnu99
    case gnu11
    case gnu17
    case gnu18
    case gnu2x
    case iso9899_1990 = "iso9899:1990"
    case iso9899_199409 = "iso9899:199409"
    case iso9899_1999 = "iso9899:1999"
    case iso9899_2011 = "iso9899:2011"
    case iso9899_2017 = "iso9899:2017"
    case iso9899_2018 = "iso9899:2018"
}
swift

각 케이스는 특정 C 언어 표준을 나타냅니다. 예를 들어:

  • c89, c90: ANSI C와 ISO C90 표준을 나타냅니다.
  • c99: ISO/IEC 9899:1999 표준을 나타냅니다.
  • c11: ISO/IEC 9899:2011 표준을 나타냅니다.
  • gnu89, gnu90: GNU 확장을 포함한 ANSI C와 ISO C90 표준을 나타냅니다.
  • iso9899_1990: ISO/IEC 9899:1990 표준을 나타냅니다.

이 외에도 다양한 C 언어 표준과 GNU 확장을 지원하고 있습니다.

실제로 Swift 패키지에서 C 언어 표준을 지정하려면, Package.swift 매니페스트 파일에서 다음과 같이 설정할 수 있습니다.

let package = Package(
    name: "MyPackage",
    targets: [
        .target(
            name: "MyTarget",
            cLanguageStandard: .c11 // C11 표준 사용
        ),
        // ...
    ]
)
swift

위 예제에서는 MyTarget이라는 타깃의 cLanguageStandard 속성을 .c11로 설정하여, C11 표준을 사용하도록 지정했습니다.

이렇게 CLanguageStandard 열거형을 활용하면, C 언어로 작성된 코드를 컴파일할 때 원하는 C 언어 표준을 간편하게 선택할 수 있습니다. 패키지 개발자는 이를 통해 호환성과 이식성을 높일 수 있겠죠.

앞으로도 C 언어 코드와 함께 작업할 일이 많다면, CLanguageStandard가 제공하는 다양한 C 언어 표준 옵션을 적극 활용해 보시기 바랍니다.