C출력 결과어려움 · 30점#함수 포인터#구조체#비트 연산#서식 문자

155. 구조체 함수 포인터 호출과 16진수 출력

다음 C 프로그램의 실행 결과를 쓰시오.

1#include <stdio.h>
2
3typedef struct {
4 char name;
5 int base;
6 int (*apply)(int, int);
7} Unit;
8
9int shl(int v, int n) { return v << n; }
10int mix(int v, int n) { return v ^ n; }
11int mask(int v, int n) { return v & n; }
12
13int run(Unit *u, int v) {
14 return u->apply(v, u->base);
15}
16
17int main() {
18 Unit units[3] = {{'A', 3, shl}, {'B', 0x96, mix}, {'C', 0x3C, mask}};
19 int v = 13;
20 for (int i = 0; i < 3; i++) {
21 v = run(&units[i], v);
22 printf("%c:%x\n", units[i].name, v);
23 }
24 units[0].apply = units[1].apply;
25 printf("%x %d\n", run(&units[0], v), v);
26 return 0;
27}

해설을 먼저 보면 이후 정답 시 점수가 50%만 반영됩니다.