-
[C 언어 기초 정리 01] C 프로그래밍 & 입출력개발 이야기/C 2023. 9. 20. 22:48
사담이다. 사실 c를 배운지는 오래되었지만, 너무 주먹구구식으로 배웠었다. 하지만.. 컴공(소) 전공수업을 들으면서 c로 코드를 짤 일이 매우매우 많아졌고..! 코드 예시도 c가 대다수라 이렇게 급하게 c 프로그래밍의 기초적인 내용들을 작성해본다. 현재 배우고 있는 내용 특성상 포인터와 포인터함수에 관한 내용을 위주로 작성하려고 한다.
아래의 내용들은 http://www.tcpschool.com/c/ 의 내용들과 https://wikidocs.net/book/1411 를 참조해서 작성하였다.
Program & Programming
Program이란 무엇일까? 프로그램이라는 것은 어떠한 일의 진행계획이나 순서를 말한다고 한다.
프로그램이란 '목적을 위해 작성된 일련의 명령문(어)의 순서나 목록'이라고 할 수 있다.
이렇게 작성된 프로그램은 사실 실행되기 위해서는 여러 단계를 거치는데 c에서는 아래와 같다(각 언어의 특징별로 애래의 단계는 차이가 있다)
1. 소스 파일(source file)의 작성: 프로그램을 작성하는 부분이다. 우리는 여기서 .c 확장자를 가진 c파일을 만든다
2. preprocessor에 의한 선행처리: 선행처리 문자(#)로 시작하는 선행처리 지시문의 처리 작업을 한다. 이는 소스를 재구성하는 역할만을 진행한다.
3. 컴파일러(compiler)에 의한 컴파일: c file을 object file로 변환해주는 과정으로 Interpreter와 다르게 코드 전체를 보고 기계어(0,1)로 한번에 번역해준다.
4. 링커(linker)에 의한 링크: obj파일은 라이브러리 파일들 및 운영체제와 인터페이스를 담단하는 시동코드(start-up code)들을 당연히 가지고 있지 않기에 하나 이상의 오프젝트 파일과, 라이브러리 파일, 시동코드등을 모두 합쳐 하나의 파일로 만드는 과정을 link라고 하며 linker가 이를 처리한다.
5. 실행 파일(executable file) 생성: 최종적으로 링커까지 모두 거치면, exe파일이 만들어진다.
C 프로그램의 기초
#include <stdio.h> #define TEXT "Welcome to C Programming!!" int main(){ printf(TEXT); return 0; }
대다수 위와 같이 #include 문(import느낌), #define 문, 함수로 구성되어있다.
printf() vs scanf()
printf() 함수와 scanf() 함수는 C언어 표준 입출력 함수 중에서도 가장 많이 사용되는 대표적인 입출력 함수이다.
printf() 함수
#include <stdio.h> int printf(const char * restrict format, ...); //example printf("printf can print %d \n", 10) //%.nf는 n자리까지 출력 printf("소수점 이하 6자리 이상: %.8f \n", 0.5667784); printf("%s %c입니다. \n", "a를 대문자로 표현하면", 'A');
서식지정자
출력형식 출력 데이터 출력예시 %d 10진수 정수형 10 %o 8진수 정수형 12(8진수로 10) %x 16진수 정수형 a(16진수로 10) %u 부호 없는 10진수 정수형 10 %c char a %s string 바보야 %f float 소수형태 0.1 %e 지수형태의 실수형 1.00000e-1 %g 소수와 지수형 중 짧은것 0.1 %.nf n자리만큼 출력(소수) 0.00001 scanf() 함수
#include <stdio.h> int scanf(const char * restrict format, ...); int main(void) { int num01, num02; printf("첫 번째 정수를 입력하세요 : "); scanf("%d", &num01); printf("두 번째 정수를 입력하세요 : "); scanf("%d", &num02); printf("입력하신 두 정수의 합은 %d입니다.\n", num01 + num02); return 0; }
'개발 이야기 > C' 카테고리의 다른 글
[C 언어 기초 정리 06] 포인터 (0) 2023.09.29 [C 언어 기초 정리 05] 함수 (0) 2023.09.28 [C 언어 기초 정리 04] Array, 문자열 (0) 2023.09.23 [C 언어 기초 정리 03] if, else, for, while (0) 2023.09.22 [C 언어 기초 정리 02] 변수&상수, 타입, 선행처리문 (0) 2023.09.22