글
C언어는 언어다. 따라서 문법이 있다.
모든 명령문은 ;으로 끝나야 한다. ;이 없으면 끝나지 않은 것이고, ;이 있으면 무조건 일단 끝난 거다. 엔터나 공백은 모두 한칸으로 처리되고, 아무튼 ;만이 끝을 나타낸다. -_-;
함수는 다음과 같이 사용한다
연산자들 : =, +, -,*, /, %, ++, --
대입연산자"="는 오른쪽에 있는 걸 왼쪽에 있는 것에다가 집어넣는다.
+,-,*,/는 각각의 양쪽에 있는 것들을 계산해서 그 계산값을 되돌린다. /는 왼쪽에 있는 값을 오른쪽에 있는 값으로 나눈다. %는 왼쪽에 있는 값을 오른쪽에 있는 값으로 나눈 나머지를 찾아준다.
++와 --는 정수에서 1을 더하거나 빼는 연산자이다. 가령 a++;는 a에 1을 더한다. 이건 ++a;라고 쓸 수도 있는데, 둘 사이의 차이는 a++는 일단 a에 있는 값을 다른데다가 쓰고나서 1을 더한다는 뜻이고, ++a는 일단 1을 더한 후에 계산하는데다가 쓴다는 뜻이다. 다른 명령어를 같이 쓰지 않는 경우에는 a++와 ++a는 아무런 차이가 없다. --연산자는 1을 빼는 작용을 한다. 1
참고로, #이 들어간 명령을 선행처리기(preprocessor)라고 하는데, define, typedef등이 있다.
참고로 #이 들어간 선행처리기 명령들은 ;를 쓰지 않는 예외사항이다. ;를 쓰지 마라.
괄호의 사용
{}는 구문을 묶을 때 쓴다. 가령, "넌 A도 하고 B도 하고 C도 해야 돼"라고 명령하고 싶은데, 기본적으로 C는 한줄 처리하고나서는 그 다음에 있는 명령만 한다. 그럼 {A; B; C;}라고 쓰면 그게 모두 한 줄로 처리되는 거다. 이건 실제로 써보면 안다.
()는 식을 묶거나 함수에 인자를 넘겨줄 때 쓴다. (a+b)+c는 당연히 a와 b를 먼저 더하고, 그 다음에 c를 더하라는 뜻이 된다. 그리고 function(parameter)형식으로 사용한다는 건 앞서 이야기 했다.
main()
C언어는 함수 위주의 프로그램이다. 따라서, 최초에 실행해야 하는 적어도 한개의 함수는 있어야 하는데, 그게 바로 main함수이다. C언어로 만든 프로그램을 실행시키면 기본적으로 main을 가장 먼저 실행시킨다.
모든 명령문은 ;으로 끝나야 한다. ;이 없으면 끝나지 않은 것이고, ;이 있으면 무조건 일단 끝난 거다. 엔터나 공백은 모두 한칸으로 처리되고, 아무튼 ;만이 끝을 나타낸다. -_-;
//뭐라고?한줄짜리 주석. 이거 뒤에 있는 글자들은 그 줄이 끝날 때 까지 전부 무시된다.
/* 어쩌라고 */여러줄 짜리 주석. 물론 한줄짜리 주석 달 때도 쓸 수 있다. 별표로 둘러싸인 부분의 안에 있는 건 아무리 길더라도 전부 무시된다.
함수는 다음과 같이 사용한다
함수(인자);이렇게 적어두면, 함수 안에 인자가 들어가서 적당히 처리된다. 인자는 여러개가 될 수도 있는데, 그때는 쉼표를 이용해서 구별한다. 함수 만드는 법은 따로 설명하도록 하겠다.
연산자들 : =, +, -,*, /, %, ++, --
대입연산자"="는 오른쪽에 있는 걸 왼쪽에 있는 것에다가 집어넣는다.
+,-,*,/는 각각의 양쪽에 있는 것들을 계산해서 그 계산값을 되돌린다. /는 왼쪽에 있는 값을 오른쪽에 있는 값으로 나눈다. %는 왼쪽에 있는 값을 오른쪽에 있는 값으로 나눈 나머지를 찾아준다.
++와 --는 정수에서 1을 더하거나 빼는 연산자이다. 가령 a++;는 a에 1을 더한다. 이건 ++a;라고 쓸 수도 있는데, 둘 사이의 차이는 a++는 일단 a에 있는 값을 다른데다가 쓰고나서 1을 더한다는 뜻이고, ++a는 일단 1을 더한 후에 계산하는데다가 쓴다는 뜻이다. 다른 명령어를 같이 쓰지 않는 경우에는 a++와 ++a는 아무런 차이가 없다. --연산자는 1을 빼는 작용을 한다. 1
#include<xxx.xxx>#include는 지정한 화일을 포함시킨다. 이때, 포함시킨다는 뜻은 말 그대로 "있는 그대로" 집어넣는다는 뜻이다. 프로그램에 xxxxxxx라는 문자열을 적어넣는 것과, xxxxxxx라는 문자열이 포함된 xxx.xxx라는 파일을 include하는 것은 완전히 똑같다. 따라서, include구문은 보통 공통적으로 여러 화일에서 쓰이는 것들을 모아놓고 여기저기서 불러와서 쓸 때 사용한다. 가령, 어떤 함수를 정의했는데 그게 여기저기서 쓸 일이 많다면 헤더화일로 적당히 만들어 놓고서 불러오면 되는 것이다. 그럼 함수가 작동을 안할 때 헤더화일만 고치면 되므로 아주 좋다. 꺽쇠와 따옴표에 차이가 있는데, 꺽쇠는 지정된 화일을 컴파일러가 설치된 기본 라이브러리 위치에서 찾고, 따옴표는 컴파일하는 화일이 있는 위치에서 지정된 화일을 찾는다.
#include"yyy.yyy"
참고로, #이 들어간 명령을 선행처리기(preprocessor)라고 하는데, define, typedef등이 있다.
#define ABCD xxxx이런식으로 쓰면, 프로그램에서 ABCD라는 구문이 나올 때마다 항상 그것은 자동으로 xxxx로 치환된다. 가령, 원주율을 3.1이라고 알고 있다가, 좀 더 정확한 계산을 해서 3.14라는 걸 알았다면, 모든 곳에서 3.1을 3.14로 고칠 필요 없이, 애초에 #define PI 3.1로 해 놓고 PI로 모든 원주율을 계산한 후에, 나중에 첫줄만 3.1 대신에 3.14로 고치면 된다는 것이다.
참고로 #이 들어간 선행처리기 명령들은 ;를 쓰지 않는 예외사항이다. ;를 쓰지 마라.
괄호의 사용
{}는 구문을 묶을 때 쓴다. 가령, "넌 A도 하고 B도 하고 C도 해야 돼"라고 명령하고 싶은데, 기본적으로 C는 한줄 처리하고나서는 그 다음에 있는 명령만 한다. 그럼 {A; B; C;}라고 쓰면 그게 모두 한 줄로 처리되는 거다. 이건 실제로 써보면 안다.
()는 식을 묶거나 함수에 인자를 넘겨줄 때 쓴다. (a+b)+c는 당연히 a와 b를 먼저 더하고, 그 다음에 c를 더하라는 뜻이 된다. 그리고 function(parameter)형식으로 사용한다는 건 앞서 이야기 했다.
main()
C언어는 함수 위주의 프로그램이다. 따라서, 최초에 실행해야 하는 적어도 한개의 함수는 있어야 하는데, 그게 바로 main함수이다. C언어로 만든 프로그램을 실행시키면 기본적으로 main을 가장 먼저 실행시킨다.
- 이런 의미에서 C언어의 확장팩이라고 하는 C++을 왜 이렇게 이름붙였는지 알 수 있다. 아마 C언어를 배우고나서 하나 더 배우라는 뜻 아닐까? [본문으로]
RECENT COMMENT