• C언어 #19 - 전처리 지시자

    전처리는 컴파일 하기 전에 별도로 수행하는 작업을 뜻합니다. 전처리 지시자에는 앞에 # 이 붙어 있고, 전처리 문장에는 마지막에 세미콜론을 붙이지 않습니다. 사실 지금까지 사용했던 #include 도 전처리문입니다. 19.1. #include와 헤더 #include 는 파일을 읽어와 붙여넣는 전처리 지시자입니다. 따라서, #include 는 stdio.h 의 내용을 코드 위에 붙여넣는 것이죠. 이를 이용하여 printf , scanf 등의 함수를 사용할 수 있..

  • C언어 #18 - 파일 입출력

    우리가 지금까지 만든 프로그램은 데이터를 출력하기만 하기 때문에, 실행이 끝나면 결과를 저장하거나 전달할 수가 없습니다. 그래서 파일 입출력 함수를 이용합니다. 여러 파일 입출력 함수들을 이용하여 파일을 개방하고, 읽고 쓸 수 있습니다. 18.1. 파일 개방과 폐쇄 파일을 입출력하려면 파일 포인터를 생성합니다. 그리고 파일을 개방하는 함수인 fopen 함수와, 파일을 폐쇄하는 함수인 fclose 함수를 이용하여 개방과 폐..

  • C언어 #17 - 구조체와 공용체, 열거형

    배열은 같은 형태의 데이터들을 묶어서 저장하는 데에는 최적의 자료형이지만, 반드시 아이템의 자료형이 같아야 한다는 단점이 있습니다. 오늘 공부할 구조체와 공용체는 형태가 다른 데이터들을 저장하기 위해서 우리가 만드는 자료형입니다. 17.1. 구조체 구조체는 struct 키워드를 사용하여 선언합니다. 그리고 그 안에 멤버들을 변수의 형식으로 작성하면 됩니다. 구조체는 구조체 변수(인스턴스)를 생성한 다음 접근할 수..

  • Swift #35 - 고급 연산자

    오늘은 드디어 스위프트 마지막입니다. 고급 연산자에 대해서 알아보겠습니다. 35.1. 비트 연산자 스위프트에서도 다른 언어에서 지원하는 것처럼 비트 연산자 ~ , & , | , ^ 4가지를, 그리고 비트 밀기 연산자를 지원합니다. 35.1.1. 비트 연산자 NOT 비트 연산자 NOT (Bitwise NOT)은 비트를 뒤집습니다. 이 연산자는 단항 연산자이며, ~a 의 형식으로 사용합니다. var a = 0b00001111 // 15 a = ~a // 0b11110000, -16 정수형..

  • Swift #34 - 오류 처리

    스위프트는 do~catch 형식의 오류(예외) 처리 구문을 지원합니다. 여기서 말하는 오류란, 컴파일 오류가 아니라 사용자가 입력하는 값이나 행동의 의도와는 다른 것이 있는 것을 말합니다. 초기 스위프트는 옵셔널만 이용했으나, 오류가 발생하더라도 던질 수 있는 값이 nil 밖에 없어서 자세한 오류 내용을 던지기 힘들었습니다. 따라서 2.0버전에서 do~catch 문법을 지원하기 시작했습니다. 34.1. 오류 타입 정의 오류 타입 정..

  • Swift #33 - 서브스크립트, 제네릭

    33.1. 서브스크립트 서브스크립트(Subscript)는 자료형의 특정 아이템에 간단하게 접근할 수 있는 문법입니다. 하나의 구조체, 클래스 혹은 열거형에 여러 서브스크립트를 생성할 수 있고, 오버로딩도 지원합니다. 서브스크립트의 정의 모습은 연산 프로퍼티와 흡사합니다. 다만 변수명이 없고, subscript 키워드를 사용한다는 차이점이 있습니다. subscript(index: Int) -> Int { get { // 적절한 반환 값 } set(newValue) { //..