shift + f2 : 레퍼런스 문서
ctrl + space : 코드 자동 완성
ctrl + / : 블럭 지정한 영역 주석처리
ctrl + i : 소스 정렬
ctrl + shift + f : 소스 정렬
alt + shift + s + v : 소스 오버라이딩
2. 같은 패키지 내의 클래스와
3. 그 클래스를 상속받는 클래스
모두에서 접근이 가능하다.
c++에서는 자기 자신의 클래스와 자식 클래스의 멤버 함수로부터의 접근만 허용한다.
옵션 |
설명 |
-E |
전처리 과정 화면에 출력 |
-S |
어셈블리 파일 생성 |
-c |
오브젝트 파일 생성 |
-v |
컴파일 과정 화면에 출력 |
--save-temps |
컴파일 시 생성되는 중간 파일 저장 |
-da |
컴파일 과정에서 생성되는 중간 코드 생성(RTL 파일 등 생성) |
옵션 |
설명 |
-I[패스] |
헤더 파일을 탐색할 디렉토리 지정 |
-include [헤더 파일 패스] |
해당 헤더 파일을 모든 소스 내 추가 |
-D[매크로] |
외부에서 #define 지정 |
-D[매크로]=[매크로 값] |
외부에서 해당 매크로를 정의하고 값을 지정 |
-U[매크로] |
외부에서 #undef 지정 |
-M 또는 –MM |
make 기술 파일을 위한 소스 파일의 종속 항목 출력 |
-nostdinc |
표준 C 헤더 파일을 include하지 않음 |
-C |
전처리 과정에서 주석을 제거하지 않음 |
-Wp,[옵션리스트] |
옵션 리스트를 전처리기에 바로 전달 |
옵션 |
설명 |
-ansi |
ANSI C 문법으로 문법 검사 |
-std=[C 표준] |
지정한 C 표준으로 문법 검사(표준: c89,c99,gnu89,gnu99
등) |
-traditional |
K&R C 문법으로 문법 검사 |
-fno-asm |
asm, inline, typeof 키워드를 사용하지 않음(gnu89 문법 기준) |
옵션 |
설명 |
-Wall –W |
모든 경고 메시지 출력 |
-w |
모든 경고 메시지 제거 |
-Werror |
모든 경고를 오류로 취급하여 컴파일 중단 |
-pedantic |
C89 표준에서 요구하는 모든 경고 메시지를 표시 |
-pedantic-errors |
C89 표준에서 요구하는 모든 오류 메시지를 표시 |
-Wtraditional |
ANSI C와 K&R C 간에 서로 다른 결과를 가져올 수 있는 부분이 있다면 경고 |
옵션 |
설명 |
-O0 |
아무런 최적화를 수행치 않음 |
-O1 또는 –O |
최적화 레벨 1 수행 |
-O2 |
최적화 레벨 2 수행 |
-O3 |
최적화 레벨 3 수행 |
-Os |
사이즈 최적화 수행 |
옵션 |
설명 |
-g |
바이너리 파일에 디버깅 정보 삽입 |
-pg |
프로파일을 위한 코드 삽입 |
옵션 |
설명 |
-Wa,[옵션 리스트] |
어셈블러에게 옵션 리스트를 바로 전달 |
-Wa,-al |
어셈블된 코드와 인스트럭션을 보임 |
-Wa,-as |
정의된 심볼을 보임 |
옵션 |
설명 |
-L[패스] |
라이브러리 탐색 디렉토리 지정 |
-l[라이브러리 이름] |
해당 라이브러리를 링크 |
-shared |
공유 라이브러리를 우선하여 링크 |
-static |
정적 라이브러리를 우선하여 링크 |
-nostdlib |
표준 C 라이브러리를
사용하지 않음 |
-M 또는 –MM |
make 기술 파일을 위한 소스 파일의 종속 항목 출력 |
-nostdinc |
표준 C 헤더 파일을 include하지 않음 |
-Wl,[옵션 리스트] |
옵션 리스트를 링크에 바로 전달 |
플래그 |
의 미 |
a |
섹션 할당 |
w |
쓰기 가능한 섹션 |
x |
실행 가능한 섹션 |
void quick_sort(int *data, int left, int right)
{
int k;
int i, j, pivot;
i = left;
j = right;
pivot = left;
if(i >= j)
return;
while(i < j)
{
while(data[++i] < data[pivot])
{
if(i >= right)
break;
}
while(data[j] > data[pivot])
{
j--;
if(j <= left)
break;
}
if(i < j)
swap(data, i, j);
}
swap(data, pivot, j);
quick_sort(data, left, j - 1);
quick_sort(data, j + 1, right);
}
void swap(int *data, int i, int j)
{
int tmp;
tmp = data[i];
data[i] = data[j];
data[j] = tmp;
}
// 버블 정렬
void bubble(int *arr, int size)
{
int i, j;
int tmp;
for(i = 0 ; i < size - 1 ; i++)
{
for(j = 0 ; j < size - i - 1 ; j++)
{
if(arr[j] > arr[j + 1])
{
tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
}