본격적으로 프로그래밍을 시작하기전에, 아무래도 회사와 집에서 강좌 포스팅을 작성하기 때문에 라이센스 문제로 포스팅글마다 Visual Studio의 버전이 다를 수 있습니다! 대부분의 코드는 상관이 없지만 버전마다 소스가 달라질 수 있기때문에 버전별로 소스가 다른 부분에 대해서는 별도로 코드를 올려드리겠습니다.


툴은 Visual Studio로 개발할 예정이며, Visual Studio 2010, Visual Studio 2017 버전 기준으로 포스팅 하겠습니다.

시작해볼까요?

1. 첫번째 프로젝트를 생성해보자.

 

우선 Visual Studio를 실행시켜줍니다.

좌측 상단의 메뉴에서 [파일][새로만들기] [프로젝트] 를 눌러봅시다.



그러면 이런창이 뜰테죠!

왼쪽 상단의 Visual C++을 선택하시고,

중앙 상단의 Win32 콘솔 응용 프로그램 선택 후 하단의 이름은 프로젝트 이름이니 아주 친숙한 HelloWorld 라고 입력한 뒤, 확인버튼을 눌러주세요.



Win32 응용 프로그램 마법사가 실행됩니다. 다음 버튼을 눌러 진행해봅시다.




콘솔 응용 프로그램 선택후 추가 옵션에 빈 프로젝트를 체크하신 뒤, 마침 버튼을 눌러줍시다.



마침 버튼 클릭후 잠시 기다리면 위와 같은 화면이 나타납니다. 좌측 상단을 보시면 솔루션 탐색기라는 창이 나타나는데, 여기서 우리가 작성하는 코드를 관리할 것입니다.


우리가 코딩할 프로젝트가 완성되었군요! 이제 프로그래밍을 직접해볼 C 파일을 생성해보죠.


2. C파일을 만들어보자.

 

자 이제 직접 C파일을 만들고 코딩을 해보죠.

솔루션 탐색기의 소스파일 선택 후 우클릭 후, [추가] [새항목]을 클릭해줍시다.


새 항목 추가창이 나오면 좌측 상단 Visual C++ 선택, 중앙 상단의 C++파일 (.cpp)을 선택합니다.

여기서 우리는 C언어를 배우는데 왜 C++파일을 선택하나요? 라고 생각하실 수 있습니다.

C++은 C문법에 OOP 개념과 일반화 프로그래밍을 위한 템플릿(STL 지원) 기능이 추가된 언어입니다.

한마디로 C확장판이라고 생각하시면 편할겁니다.

아무튼 말이 길어졌는데, 중요한 것은 우리는 C언어 프로그래밍을 하는게 목적이죠!

그렇기에 이름에 main.c 라고 작성하여야 C언어로 동작합니다. 확장자가 [.cpp] 이면 C++언어로 동작하니 주의하세요!

이름까지 작성하셨다면 추가버튼을 눌러 C언어 파일을 만들어줍시다.


자 이제 에디터 화면이 생겼습니다. 왼쪽 솔루션 탐색기에서 우리가 만든 main.c 파일이 파일 목록에 나타납니다. 이제 에디터 화면에 코드를 작성해봅시다.


3. 첫번째 코딩을 해보자.

 

자 이제 직접 C파일을 만들고 코딩을 해보죠.

아래 내용을 에디터 화면에 작성해봅시다. 코딩은 복붙하면서 작성하면 실력이 늘지 않으니 가급적 직접 작성해 보시는 것을 추천합니다.

#include <stdio.h>


void main(){


printf("Hello World\n");


}

위 내용을 타이핑 하였다면 프로그램을 실행시켜봐야겠죠?

상단 메뉴에서 [디버그] [디버깅하지 않고 시작] 을 눌러 실행해봅시다.

단축키로는 Ctrl + F5를 눌러 실행시켜 봅시다.



블로그 이미지

덕배님

5년차 S/W 개발자입니다. Android, Unity, JAVA, C, C++, C# 정보를 공유합니다

,

프로그래밍, C언어를 처음 접하시는 분들을위해 강좌를 작성해 볼까 합니다.


처음 프로그래밍을 접하시는 분들은 처음부터 변수가 무엇이고 자료형이 무엇인지 몰라 난해한 경우가 있지요. C언어 기초 포스팅은 프로그래밍을 처음 접하는 공대생, 또한 기초부터 배우시는 분을 위하여 작성해 봅니다.


기초 지식

먼저 기초 지식부터 알아봅시다.

우리가 소스코드를 작성하여 이를 실행시키는 컴퓨터는 기계입니다.
기계들을 기본적으로 우리가 명령을 처리하는것을 전기가 통하는 상태, 전기가 통하지 않는 상태로 모든것을 판단합니다.

우리가 거실이나, 방의 불을 키고 끄는 스위치와 같은 원리이죠.

스위치가 꺼져있다는 0 (거짓-false)로 판단할 수 있고,
스위치가 켜져있다는 1 (참 -true)로 판단할 수 있습니다.

이처럼 컴퓨터는 0과 1로 이루어진 데이터를 처리하며 이는 데이터 처리의 최소 단위인 Bit(비트) 라고 부릅니다. 우리가 외장하드, 혹은 컴퓨터의 하드 디스크는 위와 같은 단위를 사용하여 저장하죠? 1테라, 혹은 512기가 바이트의 용량의 디스크 크기를 가집니다.

위에서 말했듯, Bit는 컴퓨터의 데이터 처리의 최소 단위입니다.
이와 같은 비트 8개를 모아서 0000 0001Bit(비트)가 8개가 모이면 Byte(바이트) 라고 부릅니다.

정리하자면

8비트 = 1바이트로 정의할 수 있습니다.

따라서 8 Byte(바이트)는 32비트가 되며, 16 Byte는 16 * 8인 128비트가 되는것이죠.
이보다 더 큰 단위로는 킬로바이트(Kilo Byte), 메가바이트(Mega Byte), 기가바이트(Giga Byte) 등 이 있으며 아래와 같이 표현합니다.

1 KB(킬로바이트) = 1024 Byte(바이트)
1 MB(메가바이트) = 1024 KB(킬로바이트)
1 GB(기가바이트) = 1024 MB(메가 바이트)

이런 식으로 표현할 수 있으며 굳이 1000이 아닌 1024는 아래에서 설명하겠습니다.

2진수란?

위에서 설명한 0, 1로 이루어진 비트는 컴퓨터에서 사용하는 최소 단위라고 하였죠.
다시 말하면 0, 1외의 다른 수는 그대로 처리하지 못한다는 말로 바꿔 말할 수 있습니다.

따라서 컴퓨터는 2진수를 사용합니다.


 10진수

2진수 

 0

 0000

 1

 0001

 2

 0010

 3

 0011

 4

 0100

 5

 0101

 6

 0110



위와 같이우리가 일상적으로 사용하는 단위는 10진수로 표현하지만,

컴퓨터는 2진수를 사용하기 때문에 숫자들을 위와 같이 표기합니다.


이런식으로 4비트 안에는 0~15까지의 숫자를 표현할 수 있습니다.

수학공식으로 표현하면 다음과 같이 표현 할 수 있습니다.

최대 숫자 =  2ⁿ - 1 (n은 비트수)

여기서 16 이상의 숫자를 표현하려면 어떻게 하죠? 하시는 분들을 위해 덧붙여 설명드리자면 4비트에서 표현할 수 있는 숫자의 한계는 2^4 - 1 = 15 이죠

고로 8비트로 표현한답니다!
16이라고 하면 
0001 0000 이렇게 되는것이죠.
또한 위 수식에서 -1을 해주는 이유는 1부터 시작이 아닌 0부터 시작하므로 -1을 빼는 것입니다.

위에서 킬로바이트, 메가바이트, 기가바이트가 1000이 아닌 1024를 사용하는 이유도 2를 제곱해 나가면서 1000에 제일 가까운 수가 1024이므로 1024로 사용하는 것입니다.

2진수를 사용하면서 큰 수를 처리할때는 굉장히 길어지게 될겁니다.

예를 들어볼까요?

2,654,147,491이란 숫자를 2진수로 표현하면


1001 1110 0011 0011 0001 0011 1010 0011


위와 같이 표현되어 보기에도 불편할 뿐더러, 계산하기도 버겁지요.

이를 위해 16진수가 만들어지고 사용합니다.

 10진수

 2진수

 16진수

 0

 0000

 0 

 1

 0001

 1

 2

 0010

 2

 3

 0011

 3

 4

 0100

 4

 5

 0101

 5

 6

 0110

 6

 7

 0111

 7

 8

 1000

 8

 9

 1001

 9

 10

 1010

 A

 11

 1011

 B

 12

 1100

 C

 13

 1101

 D

 14

 1110

 E

 15

 1111

 F


위 2진수를 4자리씩 끊어서 표현한 이유도 16진수를 설명하기 위함이였습니다.


위 숫자를 다시 16진수로 표현하게 되면


2,654,147,491

 = 1001 1110 0011 0011 0001 0011 1010 0011 (2진수)

 =  9E3313A3 (16진수)


이처럼 보기 편하게 표현할 수 있습니다.
2진수 4자리 만큼을 16진수 한자리로 표현이 가능하며, 즉 4비트를 한자리로 표현할 수 있습니다. C언어를 비롯하여 프로그래밍 언어들은 2진수보다는 16진수를 더 많이 사용하기 때문에 참고하시면 좋을것 같습니다.

글 잘 보셨으면 아래 공감버튼 한번씩만 눌러주세요!
포스팅에 큰 힘이 됩니다!

블로그 이미지

덕배님

5년차 S/W 개발자입니다. Android, Unity, JAVA, C, C++, C# 정보를 공유합니다

,