Redian新闻
>
今天ebay 5%Ebucks,有什么可买的么?
avatar
今天ebay 5%Ebucks,有什么可买的么?# Hardware - 计算机硬件
w*g
1
/thinking in C++/第三章最后一个程序,硬是看不懂, 请高手指点一下:

//: C03:FunctionTable.cpp
// Using an array of pointers to functions
#include
using namespace std;
// A macro to define dummy functions:
#define DF(N) void N() { \
cout << "function " #N " called..." << endl; }
DF(a); DF(b); DF(c); DF(d); DF(e); DF(f); DF(g);
//以上是和前一句, 宏定义一起的么? 怎么解释?
void (*func_table[])() = { a, b, c, d, e, f, g };
//以上function定义怎么理解,a,b,...g,是arguments还是statments?
int main() {
while(1) {
cout << "press a key from 'a' to 'g' "
"or q to quit" << endl;
char c, cr;
cin.get(c); cin.get(cr); // second one for CR
if ( c == 'q' )
break; // ... out of while(1)
if ( c < 'a' || c > 'g' )
continue;
(*func_table[c - 'a'])();
//以上一句为什么不能改成:(*func_table[c])();
}
} ///:~
Thanks!
avatar
j*m
2
我们算是青梅竹马,从我有记忆开始,我们就在一块玩儿。直到后来我们都长大了,我的心里渐渐出现了不一样的情绪,见到他会开始紧张,也会经常不经大脑就做出一些奇怪的事情,后来我知道,这是喜欢。16岁那年,当我发现这种感觉越来越强烈的时候,以及不受我控制的时候,我知道了,这是爱。他说的每一句话、脸上出现的每一个表情都影响着我的心情,就这样随着他起起伏伏,曾经因为他的话在操场上大哭,不顾及周围人的眼神,也曾经因为他简单的一个小动作原谅,破涕为笑。奇怪的是,他对每一个人都很好,唯独对我不像从前了,我害怕他会被别人抢走,我一直在等一个合适的机会。虽然我明示暗示过好多回,可都被他轻松带过了,高考结束后,我决定正式摊牌,却被他拒绝了,我的心没有想象中那么难过,之后的每一年我都会找一个机会告诉他,我始终没变。随着一次又一次的失败,我的心也开始动摇了,有人说想要忘记一段感情,就要开始一段新的感情;我试着去接受别人,我的性格不在像以前那样开朗,反而越来越忧郁,最终还是放不下他。或许是奇迹吧,他来到我所在的城市工作,当我们见面,他拉住我的手,我整个人都愣住了,我看着他对我笑,扑到他怀里就开始哭,我想这一刻想了十年了,这种感觉真的很幸福,他回抱着我,我却突然想起了自己在等他的这些年和其他人之间的事情,这是对我这份感情的侮辱,突然不知道该怎么面对,为什么不能早一点?我的心里有了瑕疵,我们还能当做什么都没发生过的在一起吗?
avatar
d*g
3
想不出啊
avatar
i*e
4
DF(a); DF(b); DF(c); DF(d); DF(e); DF(f); DF(g);
//以上是和前一句, 宏定义一起的么? 怎么解释?
DF是个macro,所以有DF的地方就是复制黏贴。例如DF(a)等于
void a() {
cout << "function a called..." << endl;
}
void (*func_table[])() = { a, b, c, d, e, f, g };
//以上function定义怎么理解,a,b,...g,是arguments还是statments?
a, b, ... g 是 function name。在这里func_table[]array里的pointers被初始化。
ie, func_table[0] = a, func_table[1] = b,...
(*func_table[c - 'a'])();
//以上一句为什么不能改成:(*func_table[c])();
因为c是一个char type,里面的值是ascii code。给个例子:如果 c = ‘e’,因为‘
e'的ascii值是101,所以c-'a'就能得到'e'与'a'的差距, = 4.
一些常见面试题的答案与总结 -
http://www.ihas1337code.com

【在 w****g 的大作中提到】
: /thinking in C++/第三章最后一个程序,硬是看不懂, 请高手指点一下:
:
: //: C03:FunctionTable.cpp
: // Using an array of pointers to functions
: #include
: using namespace std;
: // A macro to define dummy functions:
: #define DF(N) void N() { \
: cout << "function " #N " called..." << endl; }
: DF(a); DF(b); DF(c); DF(d); DF(e); DF(f); DF(g);

avatar
w*g
6
谢了!
avatar
x*0
7
这种情况就应该买贵的,越贵越好
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。