본문 바로가기
Programming/C

[따배씨] 섹션 1. 천천히 시작해봅시다

by DONGKU 2020. 7. 16.

1,1 C 언어의 탄생

유닉스를 어셈블리 언어로 모든 걸 다 만들 순 없겠다라고 판단하고 운영체제 하에서 추가적으로 사용할 다양한 응용프로그램을 만들기 위해 C언어를 만듦(Dennis Ritchie & Ken Thompson)

1.2 C 언어의 특징

장점
프로그램의 효율성을 높임
강력하면서도 유연
프로그래머 중심(권한과 책임이 모두 프로그래머에게..)
다른 시스템으로 이식성이 좋다

단점
C언어 사용할 땐 주의를 기울여야한다

1.3 C언어의 표준

The Spirit of C
프로그래머를 믿어라
프로그래머가 필요한 일을 하는 것을 방해하지 마라
언어를 작고 단순하게 유지해라
한 연산을 할 때 단 한 가지 방법만 제공해라
호환을 보장할 수 없다 하더라도 속도를 빠르게 해라

C99
국제적인 문자 집합 추가
64비트 프로세서 대응
과학 공학 수치 계산 적합도 개선(FORTRAN 대체)
언어를 단순하게 유지
"커미티는 (C가 아니라) C++가 크고 야심찬 언어가 되는 것을 허용하는 것에 동의했다"

C11
C99의 일부를 선택적인 기능으로 변경(더 중요한 곳에만 딱 쓰기 위해 더 보수적이고 강력하게 동작)
멀티 프로세서 대응 concurrent programming

C18
C11의 결함 수정

1.4 소프트웨어 개발의 7가지 단계

목적 정의
프로그램 설계
코드를 작성
컴파일 한다.(컴파일 해주는 소프트웨어 구동)
실행시켜본다.
시험해보고 오류가 있다면 수정(디버깅: 펀치카드에 진짜 벌레가 껴있어 오류가 난데서 유래)
프로그램을 유지하고 개선해 나간다.

1.5 통합 개발 환경(IDE)


컴파일러: 소스코드를 실행 파일로 만들어주는 프로그램, C/C++은 내부에 링커라는 프로그램 포함
설치 끝난 후에도 인스톨러 재실행: Tools -> Get Tools and Features

비쥬얼스튜디오 빌드는 (컴파일+링크) 기능

1.8 언어와 함수

1.9 컴파일러와 링커


C언어는 고수준 언어


C파일 하나당 오브젝트 코드 생성
링커는 obj파일이 여러개 있을 때 엮어서 링킹해주어 최종적으로 실행파일 만들어줌
라이브러리 코드 - 우리가 직접 구현하지 않은 기능들 이용 가능, 링커가 연결해줌
착수start-up 코드 - 여러 프로그램들이 시작할 때 공통적으로 해야할일들, 링커가 연결해줌

소스코드 포함된 폴더에서 Debug폴더 들어가면 .obj 파일 볼 수 있다.(컴파일 한 증거!)
프로젝트 폴더가 포함된 폴더의 Debug폴더로 가면 obj파일을 링킹해서 실제로 만든 exe파일 있음.(비쥬얼 스튜디오에서 빌드시 실행되는 파일)
메뉴창 '빌드 -> 솔루션 정리' 하면 obj파일과 exe파일 모두 삭제 정리됨

1.10 비주얼 스튜디오 더 편리하게 사용하기

솔루션 내에 프로젝트 여러개 만들기
솔루션 우클릭 -> 추가 -> 새 프로젝트 -> Windows 데스크톱 마법사

프로젝트 설정 저장하기
프로젝트 클릭해 놓은 상태에서 메뉴바 프로젝트 -> 템플릿 내보내기

ctrl+f5 빌드시 새로 추가한 프로젝트에서 실행하게 하기
새 프로젝트 우클릭 -> 시작 프로젝트로 설정

1.11 명령 프롬프트의 기본적인 사용법

cd "Team Project" // "" 표시 단어는 두개지만 하나의 묶음이다
파일or폴더를 명령창으로 드래그해도 위치 표시 가능(드라이브별로 관리하므로 드라이브가 다르다면 실행x)
d: // d드라이브로 바로 이동가능
D:>MyFirstProj.exe // cmd상에서 .exe 파일 실행시켜도 출력 가능
직접 .exe파일 클릭하여 실행하게되면 순식간에 사라짐(출력하라고만 했지, 대기하라는 명령은 하지 않았기 때문)

1.13 비쥬얼 스튜디오 코드와 MinGW의 설치 방법

MinGW(Minimalist GNU for Windows) - '윈도우'에서 사용할 수 있는 gcc컴파일러 포함

VSC와 gcc의 기본적인 사용 방법

ctrl+shift+` 파워쉘 터미널 창 띄우기 (f1을 눌러 shell을 검색하면 기본 터미널 설정 가능)
gcc main.c // 컴파일되어 a.exe 실행파일 생성(이름은 따로 설정해주지않아 a로 명명됨)
.\a.exe // 실행파일 실행 // ./a 까지 치고 Tap을 누르면 .\a.exe 백슬래쉬로 자동완성

실행파일 이름을 내가 원하는 이름으로 만들고 싶을때
gcc main.c -o main.exe // main.exe 파일 생성 -o: output

오브젝트 파일 보고 싶을 때
gcc -c main.c // main.o 오브젝트 파일 생성 -c: compile만 하겠다!
gcc main.o -o exe_from_obj.exe // 오브젝트파일로부터 실행파일 생성

비주얼 스튜디오에서 clang 사용하기

c 최신 문법 표준을 정확하게 지원해주는 온라인 컴파일러
도구모음에서 설치 후 프로젝트 우클릭 -> 속성 -> 일반 -> 플랫폼 도구 집합 -> LLVM (clang -cl) 선택

댓글