대학수업/시스템프로그래밍기초

[02] 시스템 프로그래밍 기초(선언과 정의)

MIRIP 2022. 9. 20. 19:36
반응형

declaration :  선언, 기계어로 번역되지 않는다. 즉, 컴파일러에게 정보만 준다.(실행 코드의 크기가 변하지 않는다)

definition : 정의, 기계어로 반영된다. 즉, 실행코드에 반영된다.


ex1)

int x;        // int라는 keyword는 정수형 변수를 선언할 때 사용된다고 선언되어 있다.

int x = 10; // x에 정수 10을 넣는다는 정의를 한다.

 

ex2)

main은 ANSI에 따르면 return값이 int, 정수이다.

int add(int a, int b){
    return a+b;
}
int main(void){
    int a,b;
    int c;
    c=add(a,b);
}

함수는 definition이다. 기능을 정의하기 때문.

int main(void){
    int a,b;
    int c;
    c=add(a,b);
}
int add(int a, int b){
    return a+b;
}

이렇게 되면 add라는 함수의 정의를 찾을 수 없어서 error가 뜬다.

따라서 미리 declare를 하고 define을 나중에 한다.

int add(int, int);

int main(void){
    int a,b;
    int c;
    c=add(a,b);
}
int add(int a, int b){
    return a+b;
}

입출력에 관한 declation들이 들어있는 것이 stdio.h이다.

#include <stdio.h>

#이 붙는 이유는 전처리(코드가 실행되기 전) 때 수행하는 것이기 때문. #include <파일명>에서 파일을 복사 붙여넣기로 그 자리에 붙여넣는다고 생각하면 편하다.


1byte를 가져올 때 4byte보다 더 시간이 오래 걸린다. 기본으로 4byte를 가져오는데 그 중 3byte를 빼는 연산을 또 거치기 때문. 따라서 정수를 사용할 수 있을 때에는 character보다는 integer을 사용하는 것이 바람직하다.

 

음수를 표현할 때 2의 보수로 표현한다. 이것은 1의 보수에 1을 더해서 만들 수 있다.

 

Floating Point : sign of significand, biased exponent(8 bits), significand(23 bits)

728x90
반응형