#include <stdio.h> #pragma warning(disable:4996) #define DEBUG #define PI 3.14 int main(void) { printf("PI = %f\n", (float)PI); #ifdef DEBUG printf("이 문장은 디버그 중일 때에만 출력됩니다."); #endif return 0; }
void swap(int*, int*); void swap(int* pa, int* pb) { int c; c = *pa; *pa = *pb; *pb = c; }
*용어정리 구조 알아보는 건 찾아서 읽어봤는데 이해가 잘 안되요. 설명 부탁드립니다, - Line feed : The character (0x0a in ASCII) which advances the paper by one line in a teletype or printer, or moves the cursor to the next line on a display. - Carriage return : The control character (0x0D in ASCII, abbreviated as CR) that originally signaled a device to perform a carriage return, but now merely indicates the end of a line of text. - SIMD : 병렬 프로세서의 한 종류로, 하나의 명령어로 여러 개의 값을 동시에 계산하는 방식이다.
&전처리기 #include 헤더파일같은 거 불러올 때 쓴다. #define 주로 수에 이름붙일 때 쓴다. #ifdef 정의가 되어있을 때 #ifndef 정의가 안되어있을 때 #endif 위의 두 지시자를 끝마칠 때 위 세개는 중간에 문제가 있는지 없는지 하여튼 구별할 때 자주 쓴다. &포인터 int a = 10; int *p = &a int * 요게 포인터이다 * 종류 : 1. 이항연산자 2. 포인터 3. 단항연산자 *하고 &는 서로 반대이다 call-by-value, call-by-reference call-by-reference를 이용하여 저장된 값을 서로 바꾸는 걸 할 수 있다.
2. * 빌드: 소스코드에서 실행 exe로 만들때 전처리,컴파일,링크를 하는 것 * #이 붙는 것은 모두 전처리를 이용한다 (include define ifdef endif ...) *포인터에서의 * 과 & : * - 1. *a 로 a의 메모리 주소에 접근 & - 2. data*로 자료형 뒤에 붙어 이게 포인터임을 알려줌 *call by value/reference : value는 변수에 저장된 값을 불러 오는 것, 그래서 원래 변수의 값은 변하지 않는다. reference는 변수의 주소를 불러 오는 것, 주소로 직접 가서 변수의 값을 바꿀 수 있다. 3. *stack - push/pop : stack은 선형구조라 맨 끝의 데이터부터 차례차례 손을 댈 수 밖에 없다. stack이란 메모리에서 데이터를 집어넣는 걸 push 꺼내는 걸 pop이라 한다. 이걸 하는 방법은 포인터를 이용해서 데이터를 넣고 뺀다. *queue - push/pop : 메모리에 먼저 들어온(push) 것 부터 나가는(pop), 선입선출방식이다. *line feed : 아스키 코드에서 16진수로 0A 이다. 기능은 커서를 현재 행의 다음 행으로, 즉 아래로 내리게 하는 것이다. *carriage return : 아스키 코드에서 16진수로 0D 이다. 기능은 커서를 현재 행의 맨 좌측으로 옮기게 하는 것이다. *SIMD : 병렬 프로세서의 한 종류로, 하나의 명령어로 여러 개의 값을 동시에 계산하는 방식이다. 벡터 프로세서에서 많이 사용되는 방식으로, 비디오 게임 콘솔이나 그래픽 카드와 같은 멀티미디어 분야에 자주 사용된다