목록분류 전체보기 (98)
OneDev

1. 변수란? 컴퓨터는 많은 것을 기억해야 하고, 이는 컴퓨터의 메모리에 전기적 신호를 써 넣음으로써 달성된다. 이해를 돕기 위해 인기게임인 리그오브레전드(이하 롤)을 플레이 하는 경우를 생각해 보자. 게임을 진행하면서, 챔피언의 체력, 공격력, 레벨, 골드, 미니언의 체력, 등등등이 시시각각 변하는 모습을 어렵지 않게 상상할 수 있다. 이렇게 실시간으로 변화하는 모든 것들을 컴퓨터가 기억해야만 우리는 게임을 제대로 즐길 수 있는 것이다. 그렇다면 컴퓨터는 이러한 데이터들을 어떻게 기억할 수 있을까? 바로 컴퓨터의 메모리 램(RAM)에 저장하는 것이다. 보통 램을 표시할 때 위와 같이 표시한다. 각 방에 데이터들이 저장된다고 생각하면 될듯하다. 이 때 컴퓨터는 각 방에 이름을 붙이는데 0번,1번,2번....
1. C++의 변수선언은 C와 거의 동일하다 변수를 선언하는 방법부터, 선언시 주의해야 할 사항까지 C++의 방법은 C의 방법을 거의 그대로 물려받았다. 변수의 이름을 정할 때 주의해야 할 점들을 복기해보면 다음과 같다: (1) 숫자로 시작 불가 (2) C++에서 사용중인 키워드는 사용 불가 (예 : return 같은 이름 설정 불가) (3) white space 사용 불가 (스페이스바, 엔터, 탭 등 여백은 변수로 설정 불가) 변수를 선언하는 예를 보자 : #include int main() { int a;--> int형 변수 a 선언 char c;--> char형 변수 c 선언 double d;--> double형 변수 d 선언 float f;--> float형 변수 f 선언 return 0; } 변..
1. 이름공간(namespace)이란? 이름공간(namespace) 란 어떤 정의된 객체에 대해 어디에 소속되어있는지 지정해 주는 것이다. 코드의 길이가 늘어남에 따라 중복된 이름을 가진 함수들이 늘어났고, C++에서는 이들을 구분하기 위해 이름이 같더라도 소속된 이름공간(namespace)가 다르다면 다른 함수인 것으로 취급하게 되었다. 예를 들자면 영국에 사는 찰스와 미국에 다른 찰스가 서로 다른 느낌이다. 아래의 예를 보자. std::cout; 위의 코드는 std 라는 namespace 에 저장되어 있는 cout 을 의미한다. 만약 std 없이 그냥 cout 만 적게된다면 컴파일러는 cout을 찾지못한다. 어디에 소속된 cout인지 알 길이 없기 때문이다. 2. namespace를 정의하는 방법 n..
▣ 목차 1. 주석이란? 2. 주석 넣는 방법 1. 주석이란 ? 간단한 코드만 작성할 때는 그럴 일이 없겠지만, 프로그램을 만들다 보면 소스 코드가 굉장히 길어지게 된다. 적게는 수백 줄 부터 많게는 수만 줄을 넘기는 것도 예삿일이 아닐것이다. 대표적인 예로 Windows XP의 소스 코드는 대략 4천만줄 이상 된다고 한다. 이런 어마무시한 양의 코드를 작성하다 보면 각 소스 코드들이 무엇을 나타내고, 어떤 일을 하는지 등을 소스코드 내에 나타낼 필요성이 생기게 된다. 즉 컴파일러가 완전히 무시하고 오직 사람의 편의만을 위해 존재하는 것이 바로 "주석"이다. 2. 주석 넣는 방법 C 언어에서 주석은 두 가지 방법으로 넣을 수 있다. (1) /* (들어갈 내용)*/ (2) // (들어갈 내용) (1) 첫 ..

지난 시간 우리는 Hello, World! 라는 문구를 출력하는 C 프로그램을 만들어 보았다. 이번 시간에는 우리가 작성했던 코드를 구체적으로 살펴보도록 하자. #include int main(){ printf("Hello, World!\n"); return 0; } 위의 코드는 우리가 지난 시간에 작성했던 코드이다. 이 코드를 차근차근 살펴보자. (1) #include / 헤더파일 #include 이 코드는 무엇을 뜻하는 걸까? 1) #include #include 는 괄호 안에 있는 파일을 우리 프로그램으로 전부 불러온다는 의미이다. 이때 stdio.h 처럼 끝이 .h로 끝나는파일을 헤더파일이라 하는데, 헤더 파일을 통해 다른 곳에 쓰여져 있는 여러 기능들을 불러올 수 있다.(이에 대해서는 나중에 더..

다음과 같이 코드를 입력해보자. # include int main() { printf("Hello, World!\n"); return 0; } 위 코드가 무엇을 말하는지는 아직 몰라도 된다. 일단 뭔가 있어보이는 것을 내 손으로 쳐본다는 것에 의의를 두자. 참고로 printf 괄호 안에 있는 \는 백슬래시로 일반적인 슬래시랑은 다르다. 백슬래시 \는 경우에 따라 종종 원화(₩)로 표시될 수 있는데 두 개는 같은것이니 신경 안써도 된다. 코드를 입력한 뒤 Ctrl + F5를 눌러보자. 그러면 다음과 같이 검은창에 Hello, World! 가 출력되는 것을 볼 수 있다. 네 축하드립니다 여러분은 C 프로그램을 만들었습니다! 이번 시간에 여러분은 무려 0과 1밖에 모르는 바보 컴퓨터에게 명령을 내리기 위해 비..

지난 포스팅에서, 우리가 작성한 코드를 CPU가 이해할 수 있는 어셈블리로 바꿔주는 프로그램을 컴파일러 라고 한다는 것을 학습하였다. C언어로 프로그래밍을 하기 위해서는 당연하게도 C언어를 이해할 수 있는 컴파일러를 설치하여야 한다. C언어 컴파일러에는 대표적으로 세 가지가 있다. GCC : 주로 리눅스 운영체제에서 사용한다. Clang : 최근 급부상했다고 한다. 구글의 모든 C/C++는 Clang으로 컴파일된다고한다. Visual Studio(MSVC) : 마이크로소프트에서 제작, 배포중인 컴파일러다. 앞선 두 컴파일러는 코드가 모두 공개된 반면에 VS는 코드가 공개되어 있지 않다. 하지만 마이크로소프트에서 만든 만큼 윈도우에서는 잘 돌아간다 우리는 이중에서 Visual Studio 컴파일러를 사용할..

※ 시작에 앞서 : 필자는 수학전공자로, 컴퓨터 관련 전공자도 아니고 프로그래밍 관련 전공자도 아닙니다. 오로지 인터넷에서 수집한 여러 강의들과 설명에 의존해서만 (그것도 혼자) 코딩을 공부하고 있습니다. 따라서 글의 내용중 사실과 다른 부분이 충분히 있을 수 있습니다. 지적은 감사히 받겠습니다. 만약 제가 작성한 글과 다른 분이 작성한 글의 내용이 다르다면, 아마 다른 분이 쓰신게 맞을 가능성이 높습니다. 이점 참고바랍니다. ▣ 목차 1. 컴퓨터란 뭘까? - (1) 누가 명령어를 읽어들일까? - (2) 어디에서 명령어를 읽는가? - (3) 전체적인 데이터의 흐름 2. 명령어는 어떻게 작성할까? - (1) 어셈블리(Assembly) - (2) CPU에서 RAM에 데이터 쓰기 - (3) CPU는 명령어를 ..