[C] 입문
C는 자바와 달리 가비지 컬렉터가 없다.
int asdf;
printf("%d\n", asdf);
자바에서 위와 같이 작성하면 asdf가 기본값인 0으로 초기화되겠지만, C에서는 쓰레기값이 출력된다.
C에서는 문자열 타입이 없고 char타입의 배열로 문자열을 사용한다.
char asdf[] = "asdfasdf";
printf("%s", asdf);
입력은 scanf()함수로 처리한다.
int input;
scanf("%d", &input);
printf("%d", input);
printf와는 달리 변수 앞에 &를 붙여야 한다.
정수형 타입에는 네 가지가 있다.
- short // 2byte
- int // 4byte
- long // 4byte
- long long // 8byte
크기는 컴파일러마다 다를 수 있다.
또, 음수는 2의 보수법으로 저장하는데 정수형 타입 앞에 unsigned를 붙이면 0과 양수만을 표현할 수 있게 되며 표현할 수 있는 수가 두 배로 커진다.
하드웨어는 int타입을 처리하는데 최적화되어있으니 저장공간을 절약해야 하는 경우 short를, 큰 범위의 수를 다룰 경우 long long, long을 사용하고 그 외는 int를 사용하자.
C에서는 boolean타입을 따로 정의하지 않고, int타입을 차용해서 표현했다. (0은 false 나머지는 true)
이 때문에 조건식을 작성할 때 주의해야한다. int타입을 boolean타입으로 사용하는 부분에 집중해서 while이나 for문을 작성하도록 하자.
C파일을 작성할 때는 메서드를 맨 위에 작성하고 메인메서드를 아래에 작성해야 호출할 수 있다.
이런 이유 때문에 코드의 자유로운 작성을 위해서 최상단에 프로토타입을 선언하고 아래부분에 자유롭게 메서드를 작성하는 방식으로 코딩하기도 한다.
프로그램을 작성할 때 함수로 공통되는 부분을 따로 빼서 작성하는 경우가 많은데, 이런 방법이 실행 시간을 더 단축시켜주지는 않는다. 오히려 더 오래 걸리게 만든다. 하지만 코드의 가독성과 편집을 위해 함수화해서 작성하는 편이 합리적이다.
'Programming Language > C' 카테고리의 다른 글
[C] 배열 (0) | 2022.03.28 |
---|---|
[C] 함수 간 소통 / 재귀 (0) | 2022.03.22 |
[C] Register / Volatile (0) | 2022.03.22 |
[C] Scope (0) | 2022.03.22 |
[C] 스택 프레임 (0) | 2022.03.22 |
댓글
이 글 공유하기
다른 글
-
[C] 함수 간 소통 / 재귀
[C] 함수 간 소통 / 재귀
2022.03.22 -
[C] Register / Volatile
[C] Register / Volatile
2022.03.22 -
[C] Scope
[C] Scope
2022.03.22 -
[C] 스택 프레임
[C] 스택 프레임
2022.03.22