C program : a collection of functions
함수
1. 프로그래머가 작성
2. c언어 제공되는 ( 라이브러리 함수)
수학에서의 함수
: 값을 계산하는 규칙 : 하나 또는 그이상의 인수를 받았을때
C에서의 함수
: 명령어들을 그룹화 하고, 이름을 부여함
> 어떤 함수는 계산을 하지만 , 아닌것도 있음
계산하는 함수: return 을 사용 > 반환값 지정
ex) return y*y - x*x ;
main 함수
프로그램 실행시 자동으로 호출됨 ( 컴파일러)
> 호출 할 필요, 헤더파일도 필요없음
int main() {
return 0;
}
return 0
1. 메인함수 종료 > 프로그램 종료
2. 0을 반환
세미클론 ' ; '
:컴파일러에게 statement의 끝을 알려줌
예외 하나를 뺴고 모든 문장끝에 다필요
> Directives
전처리기 지시어 > #include , #define 같은..> 컴파일 전에 처리
\n : (the new-line character)
Comments : 주석
/* Name:
*/
끝내는건 따로 한줄을 주는게 가독성에 좋음
// : C99 에서 제공하는 주석
변수
프로그램 출력전 계산이 필요함 > 데이터를 일시저장
int vs float
float은 int 보다 더 큰 숫자+ 소수점까지 가능하지만 처리 속도 느림
rounding error (반올림)
float 의 값은 추정값! ( 지수함수에 의한)
float a = 0.1;
> 0.09999999997 이렇게 나올 수 있음
declaration : 변수앞에 <> C99 에서는 상관x : 선언 명령 선언 명령 선언 명령..
float 이면 소수점뒤에 f 를 붙이는게 좋다. > profit = 210.46f ;
소수점뒤가 꼭 있어야하는건 아님
%f : decimal point 6자리
반올림계산
나누는 값= D > D -1 을 더해줌
// D-1 / D = 0. 99 쯤이라 정수값이 바뀌지는 않음
a /166 >> (a + 165) / 166
초기화
꼭 0 이 아니더라도 변수에 값을 넣어주는것
//각각 해주어야함
int height = 8, length * 12, width = 10; ( O )
int height, length, width = 10; ( X ) // height, length 는 초기화 안됨
printf
출력 데이터 형식을 알아야함
값이 필요한 곳에는 같은 타입의 어떤 표현식이라도 사용할 수 있다
f : formatted ( 형식화된) > 데이터의 형식을 알아야함
scanf
입력 데이터 형식을 알아야함
#define
상수에 이름붙이기
전처리기가 매크로 들을 교체함
The value of a macro can be an expression
// 연산자가 있다면 괄호로 묶어야함
#define VOLUME (1.0f / 3.415f)
C언어는 대,소문자를 구분
asm , 밑줄시작은 조금 위험 할 수 있음 // asm : 어셈블리어
각 전처리 지시문은 별도의 줄을 요구함.
연산자 앞뒤로 띄어쓰기가 굿
한 명령문을 두줄세줄로 나눌 수 있지만,, 문자열을 두줄로 쪼개는건 불가
ex) printf("Dimensional weight (pounds): %d\n",
(volume + INCHES_PER_POUND - 1) / INCHES_PER_POUND); // (O)
printf("To C, or not to C:
that is the question.\n"); // (X)
> 문자열을 두줄로 하려면 특별한기술필요,,,
GCC : GNU Compiler Collection
GNU : GNU's Not UNIX ( 발음 : guh-NEW) > 현재: 그누
> licensed UNIX 에 대항
1.다양한 언어, 운영체제에서 실행
2. cpu용 코드 생성 가능
3. mac os , linux, bnd 등등에서 사용
options
-W , -Wall -O,
-pedantic : 모든 에러 출력, 비표준 프로그램x
-ansi : 비표준 c 의기능 x , 비활성화된 c 기능 활성화
-std=c89, -std=c99 : 컴파일러 c 의 버전 결정
> gcc -0 -Wall -W -pedantic -ansi -std=c99 -o pun pun.c
return 0 == exit(0)
return이 없어도 종료됨 c89 : 반환값자유, c99 : return 0 >안그러면 원치않은결과
C표준 : 주석은 하나의 공백문자로 대체해야함 a/**/b = 0; > a b = 0;
/* */ : old comment 는 중복 x // ( c99) comment 는 중복 o
'C언어 > C - knk' 카테고리의 다른 글
7.5 sizeof , 8. array (0) | 2024.11.20 |
---|---|
4장 (0) | 2024.11.16 |
printf, scanf (1) | 2024.11.15 |
1장 . 역사,장단점,난해한 C (8퀸문제),, (1) | 2024.11.09 |