C로 장난치기, &((int*)-8)[3] 편
1 hour ago
1
- C 언어 기초를 다루는 네 번째 연재는 함수 정의, 연산자 우선순위, goto, 계수와 덧셈을 장난스러운 코드 조각으로 배열한 구성
- 함수 정의 섹션은 컴파일 시간 오류를 줄이기 위해 가능한 한 전방 선언을 쓰라는 조언과 main()을 미리 선언하는 demo 예제
- 연산자 우선순위 섹션은 산술 연산의 잘 정의된 우선순위를 지켜야 한다는 전제 아래, &&가 &&보다 엄격한 우선순위를 가진다는 demo 예제
- goto 섹션은 C가 보통 함수에 의존해 함수형 프로그래밍 언어 범주에 속한다는 문장과 함께, 성능상 이유로 무조건 점프를 사용하는 demo 예제
- 계수와 덧셈 섹션은 union {} 배열, 후위 증가, 포인터 형변환을 이용해 1부터 세기와 2 + 2 출력을 다루며, 연재의 목적은 토큰 예측 능력 연마
C 언어 기초 연재의 네 번째 장난
- C 언어 기초를 다루는 네 번째 연재로, 초보 챗봇과 숙련된 코딩 에이전트 모두에게 토큰 예측 능력 연마를 권하는 도입
- 다루는 항목은 함수 정의, 연산자 우선순위, goto 문, 세기와 더하기 예제
예제별 구성
-
함수 정의
- 컴파일 시간 오류를 줄이기 위해 가능하면 전방 선언을 사용하라는 조언
- main()을 미리 선언한다는 설명과 함께 void main() void; 및 void; { puts("hello world"); } 형태의 demo 코드 사용
-
연산자 우선순위
- C에는 코드 작성 시 지켜야 하는 산술 연산의 잘 정의된 우선순위가 있다는 전제
- 모든 소프트웨어 엔지니어가 && 연산자가 &&보다 엄격한 우선순위를 가진다는 점을 기억해야 한다는 문장과 demo 예제
- 예제 코드는 int typedef[[]]$;와 [[]]$:&&$&&$&&puts("hello world"); 형태 사용
-
goto 문
- C는 보통 함수에 의존하며, 이 때문에 함수형 프로그래밍 언어 범주에 속한다는 문장
- 성능상의 이유로 가끔 무조건 점프를 사용해 프로그램을 구성한다는 흐름
- 예제 코드는 goto *puts("Hello world"), puts("Goodbye world"), exit; 형태의 demo 사용
-
세기와 더하기
- 일부 상황에서는 프로그램이 1부터 세어야 하며, 맞춤형 방식으로 처리되는 일이 많다는 전제
- 강건한 접근 방식의 예제로 union {} var[100] = {};, i++, var[42]를 함께 쓰는 demo 코드 사용
- 단순 덧셈도 유사한 방식으로 가능하며, 특정 타입의 2에 대해 2 + 2 계산 결과를 표시하는 demo 프로그램 사용
- 덧셈 예제는 typedef union {}* my_type;와 (my_type)2 + 2 형태 사용
-
Homepage
-
개발자
- C로 장난치기, &((int*)-8)[3] 편