作者del680202 (HANA)
看板Soft_Job
标题Re: [请益] MTK 面试测验请教
时间Sat Jun 12 14:51:43 2010
※ 引述《hanck ( )》之铭言:
: 今儿个去MTK面试写考卷看到两题题目想跟大家请教一下
: 1.
: extern void func1(void);
: extern void func2(void);
: extern void func3(void);
: extern void func4(void);
: extern void func5(void);
: void main(int n)
: {
: if n==1 execute func1;
: if n==2 execute func2;
: if n==3 execute func3;
: if n==4 execute func4;
: if n==5 execute func5;
: }
: 保证 n 一定是上面五个数字之一
第一题有想到妖道一点的做法
#define _FUN(X) func##X()
#define FUN(s) _FUN(s)
void main(int n)
{
FUN(n);
}
不过这招要Preprocessor有支援将n解析回int才行
这招我用dev-c++就跑不过了 一定要用FUN(1)去强制指定才行
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.123.162.35
※ 编辑: del680202 来自: 122.123.162.35 (06/12 14:53)
1F:推 bobhsiao:这不行吧...n 不是在 compile 时期决定的 06/12 14:53
2F:推 loveflames:第一题不能这样做,n是runtime取值,跟预处理是不同的 06/12 14:58
3F:→ loveflames:即使是compile时期决定也不行,因为预处理比编译更早 06/12 15:01
试了一下 的确不行
※ 编辑: del680202 来自: 122.123.162.35 (06/12 15:13)