기본 콘텐츠로 건너뛰기

File IO

1. 외부 파일 이름 대신에 사용할 파일 변수를 선언 FILE * 파일변수 ; 2. 파일변수 = fopen ( "파일이름.확장자" , "w" ); 3. 파일에 출력 작업을 수행 fputc ( '문자' , 파일변수 ); fputs ( "문자열 및 제어문자" , 파일변수 ); fprintf ( 파일변수 , "문자열 및 서식" , 출력대상 ); 4. 출력 작업이 모두 끝나면 파일을 닫아준다. fclose ( 파일변수 ); 프린터로 출력하려면 파일 출력 함수의 파일 변수 부분에 stdprn을 적고, 화면으로 출력하려면 stdout을 적는다. fgetc(파일변수); fgets(문자열변수, 읽을 글자 수 +1, 파일변수); fscanf(파일변수, "입력서식", &변수); feof(파일변수); 파일 포인터가 파일의 끝이면 true.

매개변수

Call by name int func1 ( ) Call by value int func1 ( int a , ... ) Call by address int func1 ( int *a , ... ) Call by reference 호출함수 int func1 (& a , & b ) 피호출함수 int func1 ( int * a ,  int * b )

연산자 우선 순위

() (괄호) [] (배열) -> (포인터멤버) . (구조체멤버) ! (부정) ~ (1의보수) ++ (증가) -- (감소) - (부호)  + (부호)  (자료형) (형변환)  * (포인터)  & (주소)  sizeof * (곱셈) / (나눗셈) % (나머지) + (덧셈) - (뺄셈) << >> (비트이동) < <= > >= (관계) == != (관계) & (비트논리곱) ^ (비트배타논리합) | ( 비트논리합 ) && (논리곱) || (논리합) ?: (조건) = (할당) += -= *= /= %= &= ^= |= <<= >>= (복합할당) , (쉼표)

Error와 Warning

Error 소스 파일 번역시에 문법 상의 오류인 때에 출력. 에러가 있는 경우에는 링킹을 한다거나 실행할 수 없다. Warning 번역 또는 링킹시에 발생. 경미한 오류인 경우에 출력. 경고를 무시해도 실행파일이 생성된다.

전처리기

컴파일러에 앞서서 사용자가 정의한 각종 내용을 미리 처리한다. 반드시 #으로 시작하며 문장의 끝에는 세미콜론이 붙지 않는다. 소스 파일의 첫 부분에 위치하며, 첫 칸부터 시작해서 입력하고 한 줄에 하나씩의 명령을 입력한다. #include 헤더파일 등을 포함. 컴파일러의 기본 경로에 있는 파일은 < >안에, 현재 소스의 경로에 있는 때에는 " "안에 파일명을 입력한다. #define 매크로를 정의. 선행처리기는 매크로와 대응하는 내용을 빈칸을 통해서 구분한다. 매크로 상수 1 #define PI 3.141592 매크로 함수 1 #define SQUARE(x) ((x)*(x)) 2 #define PRINTOUT(x) printf(#x) 매개변수에 따옴표를 포함시키려면 #을 붙인다. #if, #elif, #else, #endif, #ifdef, #ifndef 조건부 컴파일 1 #if 조건1 2 문장 1 3 #elif 조건2 4 문장 2 5 #else 6 문장 3 7 #endif   내장된 매크로 __DATE__ 컴파일 날짜 __TIME__ 컴파일 시간 __LINE__ 소스 코드의 줄번호 __FILE__ 현재 소스 파일의 이름 Example : 1 #include <stdio.h> 2 3 /* 4 매크로 함수 5 */ 6 #define PRINTLN(x) printf( "%s \n " ,x) 7 #define PRINTOUT(x) printf(#x) 8 9 int main () 10 { 11 char str1 [] = "String 1." ; 12 13 PRINTLN ( str1 ); 14 PRINTOUT ( String 2 .); 15 16 system ( "PA...

기억부류

변수에 저장된 값이 유효하게 사용될 수 있는 프로그램 내에서의 범위를 변수의 범위라고 한다. 변수의 사용영역에 따라 지역변수, 전역변수로 나뉠 수 있고, 변수의 존속기간에 따라 자동변수, 정적변수, 외부변수, 레지스터변수로 나뉠 수 있다. 외부 변수 전역 변수라고도 하며, 다른 함수에서 정의된 변수를 공유하고자 할 때 사용한다. 함수의 밖에서 선언되며, 여러 소스 파일 간에 사용하려는 때에는 extern 키워드를 사용한다. extern은 실제로 변수를 선언하는 것이 아니라 다른 파일에서 변수가 선언되었음을 알려주는 역할을 한다. 초기화되지 않은 경우에 0값을 가짐. 외부변수와 프로그램 데이터가 저장되는 데이터 세그먼트에 저장된다. 1 #include <stdio.h> 2 3 /* 4 외부변수 5 */ 6 7 int x = 100 ; 8 9 void fun1 () 10 { 11 printf ( "fun1 : x = %d \n " , x ); 12 x = 200 ; 13 } 14 15 int main () 16 { 17 18 printf ( "main : x = %d \n " , x ); 19 fun1 (); 20 printf ( "main : x = %d \n " , x ); 21 system ( "PAUSE" ); 22 return 0 ; 23 } 1 #include <stdio.h> 2 3 /* 4 extern 전역변수 #1 5 */ 6 void fun2 ( void ); 7 8 int x = 100 ; 9 10 void fun1 () 11 { 12 printf ( "fun1 : x = %d \n " , x ); 13 x =...

구조체

구조체란 여러가지 자료형을 묶어놓은 집합적인 자료형이다. 구조체의 정의 1 struct 구조체명 2 { 3 int x ; 4 int y ; 5 } 구조체의 선언 1 struct animal 2 { 3 ... 4 } dog , cat ; 1 struct animal 2 { 3 ... 4 } 5 ... 6 struct animal dog , cat ; 구조체의 초기화 1 struct animal 2 { 3 int color ; 4 ... 5 } dog = {.., .., ..}; 구조체의 멤버 구조체의 멤버를 사용하려면 .연산자를 사용한다. 1 dog . color ; 구조체를 멤버로 가지는 구조체 필요한만큼 .연산자를 사용하면 된다. 1 record . topleft . x = 100 ; 배열을 멤버로 가지는 구조체 1 record . x [ 1 ] = 100 ; 포인터를 멤버로 가지는 구조체 구조체의 배열 1 struct animal dog [ 100 ]; 2 dog [ 1 ]. color ; 구조체의 포인터 -> : 구조체 포인터의 멤버 연산자 1 struct part * p_part ; 2 struct part gizmo ; 3 p_part = & gizmo ; 4 p_part -> number = 100 ; 자료형의 정의 1 typedef struct 2 { 3 ... 4 } animal ; 5 6 animal dog , cat ;