C 언어
C 프로그램의 기본 구성 요소를 Hello World 예제로 분석하고, 소스 코드에서 실행 파일까지의 컴파일 과정을 단계별로 설명합니다.
전처리기 명령: #include, #define 등 컴파일 전 처리
함수: 코드의 실행 단위, 최소 main() 필수
변수: 데이터 저장 공간, 타입과 이름 필요
문장 & 표현식: 연산, 제어 흐름, 함수 호출 등
주석: /* ... */ (블록), // ... (줄) - 컴파일러 무시
#include <stdio.h> // 전처리기: 표준 입출력 헤더 포함
int main(void) { // 진입점 함수: int 반환, 인자 없음
/* 블록 주석: 설명용 */
printf("Hello, World!\n"); // 함수 호출 문장; 세미콜론 필수
return 0; // 정상 종료 코드 반환
}
#include <stdio.h>: 표준 라이브러리 헤더 포함. printf 등 선언 제공
int main(void): 프로그램 시작점. void는 인자 없음 명시 (권장)
{ ... }: 블록(복합 문장), 함수 본문 범위 지정
printf(...): 표준 출력으로 문자열 출력. \n은 개행 문자
return 0;: 호출자(OS/쉘)에 성공 알림. 0이 아닌 값은 오류 의미
| 단계 | 명령 | 입력 | 출력 | 설명 |
|---|---|---|---|---|
| 1. 전처리 | gcc -E | .c | .i | 헤더 포함, 매크로 치환, 주석 제거 |
| 2. 컴파일 | gcc -S | .i | .s | 어셈블리어 코드 생성 |
| 3. 어셈블 | gcc -c | .s | .o | 기계어 오브젝트 파일 생성 |
| 4. 링크 | gcc | .o + 라이브러리 | 실행파일 | 심볼 해결, 최종 실행 파일 생성 |
$ gcc hello.c -o hello # -o로 출력 파일명 지정 $ ./hello # 현재 디렉터리 실행 (./ 필수) Hello, World!
gcc -Wall -Wextra -pedantic -std=c11 -g -O0 hello.c -o hello # -Wall -Wextra: 경고 최대화 # -pedantic: 표준 엄격 준수 # -std=c11: C11 표준 지정 # -g: 디버그 심볼 포함 # -O0: 최적화 끄기 (디버깅용)
세미콜론 누락: 모든 문장 끝에 ; 필수
헤더 파일 미포함: printf 쓰려면 stdio.h 필요
main 반환 타입: void main() 비표준, int main(void) 권장
버퍼 미비우기: scanf 후 개행 문자 남아 다음 입력 방해 → getchar() 또는 공백 처리
배열 경계 초과: C는 경계 검사 안 함, 버그 원인 1순위
$ gcc -g hello.c -o hello $ gdb ./hello (gdb) break main # 브레이크포인트 (gdb) run # 실행 (gdb) next # 한 줄 실행 (함수 진입 안 함) (gdb) step # 한 줄 실행 (함수 진입) (gdb) print var # 변수 값 출력 (gdb) continue # 계속 실행 (gdb) quit # 종료
C 언어
GTCNC-150iT-II G 코드 M 코드 GREAT-150iT-II 또는 GTCNC-150iT-II CNC 선반용 G 코드와 M 코드입니다. G 코드 G 코드설명 G00급속 위치결정 G01선형 보간 G02나선 보간 CW G03나선 보간 CCW G33나사 가공 G04드웰 G17X-Y 평면 G18Z-X 평면 G19Y-Z 평면 G20인치 입력 포맷 G21메트릭 입력 포맷 G28/G281/G282/G283제1 기준점 복귀 G30/G301/G302/G303제2, 3, 4 기준점 복귀 G26ZXY 축 프로그램 원점 복귀 G261X축
GTCNC-60TT G코드 & M코드 GREAT-60TT 또는 GTCNC-60TT CNC 선반용 G코드와 M코드 참조표입니다. G코드 G코드설명 G00급속 이동 (Rapid motion) G01직선 보간 (Linear interpolation) G02원호 보간 시계방향 (Circular interpolation CW) G03원호 보간 반시계방향 (Circular interpolation CCW) G33나사 절삭 (Thread cutting) G04드웰 / 일시 정지 (Dwell) G20인치 단위 입력 (Inch format