시리즈:쉽게 배우는 프로그래밍 입문/C: 두 판 사이의 차이

편집 요약 없음
20번째 줄: 20번째 줄:
=== 입력 형식 ===
=== 입력 형식 ===
=== 변수 ===
=== 변수 ===
==== 자료형 ====
*void
*void
*char
**signed char
**unsigned char
*short
**signed short
**unsigned short
*int
**signed int
**unsigned int
*long
**signed long
**unsigned long
*long long
**signed long long
**unsigned long long
*float
*double
*long double
=== 키워드 ===
=== 키워드 ===



2015년 5월 18일 (월) 19:03 판

문서의 내용이 너무 쉬워서 오늘부터 프로그래밍 할 수 있을 것 같습니다.

이 문서에는 독자적으로 연구한 내용이 들어갑니다. 다른 사람의 의견을 존중하면서 무례하지 않도록 작성해 주시고, 의견 충돌 시 토론 문서에서 토론해 주세요.

준비

윈도우 7이상에서는 Visual Studio Community를 다운로드 받아 설치하자 리눅스에서는 그딴거 없다. 터미널을 열고 gcc라고 쳐보자 만약에 명령어가 없다고 나오면 각각의 패키지 매니저에 알맞게 설치해주면 된다.

OS X의 경우에는 Xcode를 다운 받으면 된다. 리눅스와 달리 초반에 터미널을 이용하는 것이 좀 귀찮다. Xcode를 다운 받은 후, 런치패드>>기타 응용프로그램>>터미널 선택 한 후에 xcode-select --install 을 입력한 후에 엔터를 누른다. 그 후에 뭔가 하라는 인스톨은 안하고 별 이상한 것들이 나오는데, 그냥 쭉 내려서 agree를 하면 그때부터 설치하겠냐는 창이 뜬다. 설치를 누르고 기다리고 있으면 사용이 가능해진다. 리눅스에서는 gcc로 컴파일을 하는데 OS X에서는 clang도 사용할 수 있다. 리눅스에서도 clang을 설치하면 사용할 수 있다.

당연하지만 Hello, World!

#include <stdio.h>

int main(void)
{
printf("Hello, World!");
return 0;
}

출력 형식

입력 형식

변수

자료형

  • void
  • void
  • char
    • signed char
    • unsigned char
  • short
    • signed short
    • unsigned short
  • int
    • signed int
    • unsigned int
  • long
    • signed long
    • unsigned long
  • long long
    • signed long long
    • unsigned long long
  • float
  • double
  • long double

키워드

auto break case char const continue default do double else enum extern float for goto if inline int long register restrict return short signed sizeof static struct switch typedef union unsigned void volatile while _Bool _Complex _Imaginary

C언어에서 이미 용도가 정해져 있어 변수와 함수의 이름으로 사용할 수 없다. C99표준 기준이다.

조건문

조건문은 조건에 따라 두 가지 혹은 그 이상의 실행 경로를 실행할 수 있게 하는 것을 말한다. C언어에는 조건문으로 두 경로 중 하나를 선택하는 if-else문과 여러경로 중 하나를 선택하는 switch문이 있다.

if-else문

switch문

반복문

반복문은 특정 부분을 반복해서 실행하는 것을 말한다.

C언어에는 while문, for문, do-while문이 있다.

while문

while (조건문)
{
문장
}

while문을 만나면 먼저 조건문을 검사한다. 조건문의 내용이 참이면 문장을 실행하고, 거짓이면 실행하지 않고 넘어간다. 문장의 내용을 모두 실행한 뒤에 다시 조건문을 검사한다. 계속 반복하다가 조건문이 거짓이 되면 빠져나온다.

for문

for (초기식; 조건식; 변환식)
{
문장
}

for문을 만나면 먼저 초기식을 실행한다. 조건식이 참이면 문장을 실행하고 거짓이면 실행하지 않고 넘어간다. 문장을 실행한 뒤, 변환식을 실행한 다음 조건식을 검사하고 참이면 실행, 거짓이면 넘어가기를 조건식이 거짓이 될 때까지 반복한다. 식들은 생략할 수 있지만 세미콜론은 생략할 수 없다.

for (초기식; ; 변환식)
{
문장
}

조건식을 생략하면 이런 모습이 된다. 모든 식을 다 비우는 경우는 자동으로 무한 루프가 된다.[1]

for ( ; ; )
{
// Infinite loops
}

do-while문

do{
문장
}while (조건식);

while문과 유사하지만 조건식을 먼저 검사하지 않고 중괄호 안의 내용을 먼저 검사한 뒤에 조건식을 검사한다.

함수

포인터 고비

다차원 배열

구조체

공용체

열거형

파일 입출력

헤더파일, 소스파일

고급 과정

전처리기

#define

#define은 특정한 문자(이름)를 찾아 다른 형태(토큰)로 바꾼다. 두 줄 이상으로 작성하고 싶을 때에는 '\' 를 이용하면 된다.

#define 이름 토큰

작성

#define Int_Max 2147483647
int max = Int_Max;

결과

int max = 2147483647;

함수와 비슷한 형태로 작성하면 함수같이 사용할 수도 있다.

#define 이름(인자) 토큰

작성

#define Sum(X, Y) X + Y
int sum = Sum(1, 2);

X나 Y가 아니라 다른 것을 사용해도 상관없다. 수도 상관없다.

결과

int sum = 1 + 2;
#undef

#define으로 정의된 매크로를 무효화한다.

작성

#define PI 3.141592
int pi = PI;
#undef PI
int pi = PI;

결과

int pi = 3.141592;
int pi = PI;

int pi = PI; 부분에서 오류를 뱉어낸다. #undef로 무효화된 매크로는 그 밑으로 더 이상 작동하지 않는다. 사용 위치에 주의할 필요가 있다.

#include

특정 파일의 내용을 가져와서 포함시킨다.

#include <stdio.h>
int main(void)
{
printf("Hello, World!");
return 0;
}

위 소스 코드에서, #include <stdio.h>의 위치에 stdio.h 헤더파일의 내용이 옮겨진다. printf함수는 stdio.h 헤더파일 내에 선언되어있는 함수이다.

#include <헤더파일>
#include "헤더파일"

이렇게 두 가지 모양으로 쓸 수 있는데, <>는 컴파일러에 지정되어 있는 폴더에서 헤더파일을 찾고, ""는 소스 코드 파일이 있는 폴더에서 헤더파일을 찾는다.

#if
#elif
#else
#endif
#ifndef
#ifdef
#error
##
#pragma

컴파일러에게 명령을 전달한다.

#pragma 명령

컴파일러마다 다르니 자세한 것은 추가바람

각주

  1. 보통 많이 쓰는 while(1)의 경우 컴파일러가 최적화해주지 않으면 1을 비교하면서 돌아버리기 때문에 비교 연산이 전혀 없이 순수하게 루프만 도는 for (;;)를 선호하는 사람들도 있다.

틀:쉽게 배우는 프로그래밍 입문