スルーちからが足りない的な

Cクイズ こっちわからん><

/* MyTypeの定義 */
void set(MyType m, int val);
void inc(MyType m);
void print(MyType m);
int main(void)
{
MyType m;
set(m, 0); /* mを0にセット */
inc(m); /* mをインクリメント */
print(m); /* 1と表示される */
return 0;
}
/* 各関数の実装 */
このmain関数が、コメントにある期待通り動くようにMyTypeを定義し、各関数を実装することができるか?
もちろん、mainの中身は変えないこと。そして、使えるのは、C言語の言語要素のみ。

こうじゃね?(diff)

0a1,2
> typedef int MyType;
>
4a7,11
>
> #define set(m, v) { m = v; }
> #define inc(m) { m++; }
> #define print(m) { printf("%d", m); }
>

(19:25 diffが少し変だったので修正)

おそらく多くの"C"erが一瞬で思いついたが、穏やかな微笑みをたたえてスルーしたに違いないベタな解答例を、しかもおそろしく亀レスに加えて全く面識ない人にむけてトラバを放つ俺、ビバ。

そうそう、はてなダイアリー5年目にして、今初めてスーパーpre記法というのを知ったよ。便利だね!
ソースコードを色付けして記述する(シンタックス・ハイライト)