컴파일, C 기초부터 시작!

hodeethelion·2023년 4월 1일
0

SW Intense Academy

목록 보기
8/12
post-thumbnail

오늘은 진짜 왠지 바로 내가 들어가면 망할 것 같은 느낌이 들기 때문에 조금은 뒤져보고 어느정도는 알아보고 가는 느낌이 좋을 것 같다.

현태가 꽤 좋은 사이트를 알려줘서 아무래도 그 사이트를 참고해서 공부를 더 할 것 같다.

OJ tube: 해당 사이트 링크


가장 기초적으로 알려주는 것은 다음과 같다

xxd hello.c 라고 치면 다음과 같은 output이 나온다

00000000: 2369 6e63 6c75 6465 203c 7374 6469 6f2e  #include <stdio.
00000010: 683e 0a2f 2f69 6e74 20eb b098 ed99 98ed  h>.//int .......
00000020: 95a0 eab1 b0ec 95bc 0a2f 2f76 6f69 64eb  .........//void.
00000030: 8a94 20eb b098 ed99 98ec 9d84 20ec 9588  .. ......... ...
00000040: ed95 a0ea b1b0 ec95 bc0a 696e 7420 6d61  ..........int ma
00000050: 696e 2829 7b0a 2020 7072 696e 7466 2822  in(){.  printf("
00000060: 6865 6c6c 6f20 6320 2229 3b0a 7d0a       hello c ");.}.

이때 여기서 보면 23, 69는 한문자 한문자를 의미하는데 4자리인 이유는 아무래도 정보를 전달할때 4개의 int형을 보내는 단위때문에 그런 것 같다. 더 확실히 알아보긴 해야 된다.
에잇! 그게 아니라 16진수로 변환해주는 xxd 명령어이기 때문인 것 같다.


#include가 중요한 이유는?
printf같은 함수들을 한꺼번에 정돈해서 따로 파일에 만들어주는 것 같은 느낌이다.
이런 함수들을 header 파일인 <stdio.h>에 정돈이 되어 있을 것이다


linker의 개념

  • compiler: 어셈블리어로 만들어주는 역할
  • linker: 여러가지를 엮어서 만들어 하나의a.out을 만들어 주는 역할이다
  • 결과적으로 우린 컴파일이라는 프로그램으로 프로그램을 생성해내야 한다 이번에는 gcc라는 컴파일러로 해야 되니까 그 문법과 하는 방법을 조금 더 자세히 알아야 한다

지금 알아야 할 것!

  1. #define : 값을 치환해주는 것! 공통의 값을 넣어주는 것
  2. #ifndef: 헤더파일 보면 나와 있다. 어떤 변수가#define 되어있는 지 알아보는 기능! 만약에 define이 안되어 있다면 define을 해라! 이러는 느낌쓰 물론 그 후에 #define을 붙여줘야 되는 부분이 있긴하다 근데 __sum_h__ 이렇게 쓰는 이유는 뭘까?

    여기에 대해서 좀 더 자세히 공부하도록 하자


파일 정리하는 법

include : header files
물론 위치 설정을 해줘야 된다 gcc -I ./include -o test main.c 등등

헤더 파일 중복 처리법

1번 방법
1. #ifndef __SUM_H__ : 이걸로 들어 갈지 말지를 결정해주는 것!
2. #define __SUM_H__: 이걸로 define 해주는 것이다
3. #endif

2번 방법
#pragma once: 위에 한번 써주면 처리된다! 근데 아마 1번 방법이 조금 더 정석적인 방법같다


이렇게 대전에서의 오늘은 마무리 되지만 집에서 makefile 형식을 좀 알아보고 또 pointer에 대해서 조금 더 알아보는 것이 좋을 것같다

이번주 조금 더 할일
1. makefile에 대해서 알아보기
2. pointer 개념을 조금 더 파보기
3. queue, linked list.. 등 구현 해보기

마지막으로
머신러닝에 대해서 조금 더 알아보는 방식으로 하자

profile
가슴을 따라가자

0개의 댓글

관련 채용 정보