분류 전체보기105 [Zig] 옵셔널(optionals) 옵셔널 타입을 사용하는 방법은 다음 같습니다. --------------------------------------------------------------------------------------------------- const 또는 var 변수 이름 : ? 형태와 크기 = 할당할 초기 값 옵셔널은 값을 가질수도 있고, 아닐수도 있는 변수 타입입니다. --------------------------------------------------------------------------------------------------- 예시 // 함수의 반환 타입이 ?u16 로 옵셔널입니다. fn myFunc() ?u16 { // 함수 실행 과정에 문제가 있어서 null 을 반환한다고 가정합니다. retu.. 2024. 3. 21. [Zig] 포인터(pointers) 포인터를 정의하는 방법은 다음 같습니다. --------------------------------------------------------------------------------------------------- const 또는 var 포인터 이름 : * 포인터가 가리킬 데이터의 형태와 크기 = 할당할 초기 레퍼런스(주소) 값 또는 undefined 할당할 레퍼런스(주소) 초기 값 을 undefined 로 정의하면 초기 값을 설정하지 않고 나중에 값을 할당한다는 의미입니다. 포인터가 가리키는 값을 역참조(dereferencing) 할 때는 포인터 이름 .* 를 통해 가능합니다. -------------------------------------------------------------------.. 2024. 3. 21. [Zig] 구조체(structs) 구조체를 정의하는 방법은 다음 같습니다. --------------------------------------------------------------------------------------------------- const 구조체 이름 = extern packed struct { 구조체 요소 이름 : 자료형 }; 정의 방법은 열거형과 유사하지만, 여러가지 자료형을 한꺼번에 담을 수 있습니다. extern 은 C 언어로 만들어진 라이브러리를 사용할 때 C 언어 함수와 호환성을 위해 선택적으로 붙이는 키워드입니다. packed 는 byte padding 없이 메모리 레이아웃을 정의한 순서 그대로 만들고 싶을때 선택적으로 붙이는 키워드입니다. ---------------------------------.. 2024. 3. 21. [Zig] 열거형(enums) 열거형을 정의하는 방법은 다음 같습니다. --------------------------------------------------------------------------------------------------- const 열거형 이름 = enum ( 태그 자료형 ) { 열거 요소 = 태그 값 }; ( 태그 자료형 ) 은 생략 가능하며, 생략시 컴파일러가 알아서 적절한 크기의 unsigned 자료형을 사용합니다. 열거 요소 는 여러개 정의할 수 있으며, 콤마로 구분합니다. 태그 값 은 생략 가능하며, 생략시 열거 요소들... 을 적은 순서대로 0, 1, 2, ... 기본 태그 값이 부여됩니다. ----------------------------------------------------------.. 2024. 3. 21. [Zig] 도달 불가능(unreachable) 도달하면 안되는 코드 영역을 지정하여 에러를 반환할 수 있습니다. --------------------------------------------------------------------------------------------------- unreachable 컴파일 타임에 확인 가능한 조건은 컴파일 과정에서 미리 검사합니다. 런 타임에 확인 가능한 조건은 Debug 와 ReleaseSafe 모드일 때만 검사합니다. --------------------------------------------------------------------------------------------------- 예시 switch ( 5 ) { 1...4 => ' A ', else => unreachable } // 컴.. 2024. 3. 21. [Zig] switch 조건문(statement) switch 조건문을 정의하는 방법은 다음 같습니다. --------------------------------------------------------------------------------------------------- switch ( 인자 ) { // 인자 와 일치하는 조건이 있는지 찾아서 해당 코드를 수행합니다. 조건 => 수행할 내용, else => 수행할 내용 } 인자 로 넣을 값은 정수, enum, tagged union 을 사용할 수 있습니다. 조건 은 모든 경우에 철저히 대비해야 합니다. 불가능하다면 반드시 else 조건을 작성해야 합니다. 조건 은 여러개 정의할 수 있으며, 표현식으로 넣을 수도 있습니다. 수행할 내용 이 길어지면 중괄호로 감싸서 개행해도 좋습니다. ------.. 2024. 3. 21. 이전 1 ··· 12 13 14 15 16 17 18 다음