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

[04] 시스템 프로그래밍 기초(자료형과 수식)

MIRIP 2022. 10. 4. 17:32
반응형

** 공결 시 이메일 대신 출력하고 들고 가기 **

scanf() 함수는 첫 번째 인자로 String형이 들어가고, 두 번째 인자로는 주소를 준다.


data type: (p.110)

suffix(p.119) : 420이 있다고 했을 때, 일반 int인지, unsigned인지, long인지 구분할 수 없다. 따라서 이를 쉽게 구분하기 위해 420U, 420UL, 420L과 같이 suffix를 작성해준다. suffix도 마찬가지로 컴파일러에게 declaration 하는 것이다. 만약 420U를 썼는데, unsigned int가 아니라면 type mismatching으로 오류가 난다.

suffix를 쓰는 이유 : 프로그램의 길이가 길어지면, 가독성이 떨어진다. 따라서 프로그램의 의도를 한번에 파악할 수 있게 하기 위해서 쓴다.

 

(p.120)

-3.14159가 floating constant라고 하면 엄밀히 말하면 틀린 것이다. : expression?

 


typedef (p.122) :

 

typedef char uppercase;

uppercase u;

위와 같이 코드를 작성하였을 때, uppercase도 결국 char이다.

typedef를 쓰는 이유는 복잡한 프로그램을 만들 때, 가독성을 위해서이다. int u라고 쓰는 것보다 uppercase u라고 쓰는 것이 용도를 확 와닿게 할 수 있다.

 

sizeof() : datatype의 크기를 확인할 수 있다.


conversions : (p.133) 계산 시 하나의 자료형으로 통일해서 처리한다. 다음이 그 표이다.

unsigned와 signed가 붙으면, unsigned가 이긴다.

unsigned와 long이 붙으면 모른다. (가급적 섞지 말자 또는 Casting 해서 계산한다.)

 

casts : 명시적 형변환


getchar() and putchar() : (p.124)

 

#define EOF -1;

더 이상 읽을 것이 없으면 -1을 리턴한다. getchar()과 putchar()을 기본 입출력이라고 한다.

#include <stdio.h>

int main(void){
    int c;
    while((c=getchar())!=EOF){
    	putchar(c);
        putchar(c);
    }
    return 0;
}

Mathematical Functions(p.127) : 

 

함수를 쓰지 말라는 것이 기본 원칙(함수 사용 지양)

 

리눅스에 libC.so.version (shared object)라는 C 라이브러리가 존재한다.

math library는 libm.so.~~

math library를 사용하기 위해서 gcc -lm 옵션을 붙여줘야 한다. (-lm : link math library)

 

16진수 알아두기 0x0000~0xffff


Flow of Control(p.148)

 

short-circuit evaluation : if문이 있을 때, 논리곱은 거짓일 가능성이 높은 것을 앞에 두고, 논리합은 참일 가능성이 높은 것을 앞에 둔다.

 

compound statement : if 문 뒤에 하나의 statement밖에 걸리지 않기 때문에, 여러 가지의 statement를 사용하기 위해서는 {}로 묶어준다. 이 compound는 자치구이기 때문에, 외부 변수와 내부 변수가 다르다. 이것을 활용하여 function을 만든다.

728x90
반응형