일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 도커 #Docker #배포 #Spring #MySQL #백엔드배포
- /
- 도커 #docker #docker-compose.yml #도커컴포즈 #배포 #spring #mysql #docker-compose
- chatgpt #gpt #챗지피티 #ai
- Today
- Total
개발자 데뷔!
[C/C++ 0.0] C의 시작 본문
Unix 운영체제)
초기 : CPU에 종속적인 어셈블리언어로 만들어짐
매번 각 CPU에 맞는 어셈블리어로 Unix운영체제 기술이 어려움
하드웨어 제어와 프로그램 작성이 용이한 고급언어 필요
→ C언어 탄생[1972년]
즉, 이로인해 unix운영체제를 다양한 컴퓨터에 쉽게 이식하며 90%가 c로 대체됨
c언어 특징)
1. 시스템 기반의 프로그램 작성에 적합 (비트단위 연산 가능 / 포인터를 활용한 메모리 접근에 용이 )
2. 범용 프로그램 작성에 적합 (동적메모리 활용한 효육적 자료처리 / 풍부한 자료형,연산자 / 모듈방식 제어구조)
3. 정확한 제어구조 & 자료형
4. 어셈블리와 연동 가능, 하드웨어 프로그램 최적화
1983년 ANSI C 표준 발표*
C에서 발전한 언어)
C++ : 객체지향 개념 확장
C#, JAVA : 구조의 단순화, 객체지향 개념 확장
C가 중요한 이유)
1. 모든 운영체제의 커널(하드웨어 자원 관리)이 C파일로 작성됨
2. 임베디드 시스템, 하드웨어 제어 _ 장비제어가 C언어
3. 시스템 기반의 프로그램들은 C가 유리 [운영체제에서 제공하는 기능은 API로 구현되는데, 이도 C함수로 구현됨 ]
4. 아파치 웹서버, 속도에 민감한 프로그램 서버, 시스템 의존적 작업, 각종 서버 → 모두 C로 사용...
C개발 과정)
* 1차시 기준
소스코드 편집기로 코드 작성 → 컴파일&링킹(문법확인) → 오브젝트 파일 생성(윈도우: .exe 확장자, linux,unix: 확장자 없음) → 테스트 → 디버깅 → 소스코드 수정
* 2차시 기준
소스파일 → 컴파일 (전처리, 문법체크, 최적화) →오브젝트파일 →링크(라이브러리함수 결합) → 실행파일
C개발도구)
MS Visual Studio , Dev C++
In Linux, Unix 환경...)
1. 텍스트 환경 : 편집기(ex) vi)로 소스파일 생성
2. 데스크탑 환경 : gui편집기 (ex) eclipse, kdevelop 도구이용)
1.2. 환경 둘다 컴파일러는 각벤더에서 제공하는 상용 c컴파일러 사용, 최근에는 오픈소스 도구 gcc컴파일러 사용
Ex)
Linux 사용법
1. 그래픽 편집기 gedit 사용)
프롬프트 창에 명령어 입력
: gedit myfirst.c &
: gedit 실행파일명.c &
뜨는 창에 소스코드 작성
2. 컴파일러 gcc 사용)
프롬프트 창에 명령어 입력
: gcc -o myfirst myfirst.c
: gcc -o 실행파일명 소스파일명.c
→ 아무것도 출력되지 않으면 : 오류 없음
→ 오류메시지 출력되면 : 해석해서 소스코드 수정
./ : 디렉토리 표시 기호
* eclipse 는 Java 프로그래밍 도구이나 상단바→창→perspective 변경 에서 c/c++개발도구로 변경가능
tool chain: 컴파일러 선택 가능
'프로그래밍 언어 > C' 카테고리의 다른 글
[C/C++ 1.8] 연산자 sizeof (0) | 2022.03.10 |
---|---|
[C/C++ 1.5] Register 변수 (0) | 2022.03.10 |
[C/C++ 1.4] static 변수 (0) | 2022.03.10 |
[C/C++ 1.3] 변수선언&초기화 (0) | 2022.03.10 |
[C/C++ 0.1] C 컴파일방법 & 표준입출력 (0) | 2021.07.15 |