🔥 CLanguageStandard

249자
3분

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

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

swift
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
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"
}

각 케이스는 특정 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 매니페스트 파일에서 다음과 같이 설정할 수 있습니다.

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

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

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

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

YouTube 영상

채널 보기
스칼라 곱셈과 내적의 기하학적 의미 | 선형대수학
숫자 하나가 AI 모델의 운명을 바꾼다? | 선형대수학
AI는 데이터를 어떻게 분류할까? 벡터의 거리와 KNN 알고리즘 | 선형대수학
우리가 매일 쓰는 맞춤법 검사기와 라우터 속에 숨겨진 알고리즘은? | Trie 자료구조 이야기
행렬의 기본 연산 - 행렬 덧셈, 스칼라 곱, 전치 | 선형대수학
트라이(Trie)에서 단어를 삭제하는 방법 | Trie 자료구조 이야기
Trie 자료구조 파이썬 구현: Search와 Starts With 연산 | Trie 자료구조 이야기
숫자 하나가 AI 모델의 운명을 바꾼다? | 선형대수학