6. 本题是考查宏与函数的优缺点。本教科书上有提到宏的缺点和内联函数的优点。就本题而言,宏的缺点都有,但由于不是内连函数,故而也有其缺点。
答:宏定义有以下的缺点
(1) 有时会出现重复计算。
(2) 不进行参数类型检查和转换。
(3)不利于一些工具对程序的处理。
宏定义的优点:
由于是就地展开,相比于函数调用,它的效率会更高一些。
至于函数的优缺点,基本上,宏的缺点就是它的优点,宏的优点就是它的缺点。
第七题:
恩~,解题过程中,发现本题解法比我想象的简单:
int digit(int n,int k){
for(int i=1;i<k && n>0;++i){
n=n/10;
}
return temp%10;
}
第八题:略,参见第三章题解
第九题:执行结果是:
21,0
答:宏定义有以下的缺点
(1) 有时会出现重复计算。
(2) 不进行参数类型检查和转换。
(3)不利于一些工具对程序的处理。
宏定义的优点:
由于是就地展开,相比于函数调用,它的效率会更高一些。
至于函数的优缺点,基本上,宏的缺点就是它的优点,宏的优点就是它的缺点。
第七题:
恩~,解题过程中,发现本题解法比我想象的简单:
int digit(int n,int k){
for(int i=1;i<k && n>0;++i){
n=n/10;
}
return temp%10;
}
第八题:略,参见第三章题解
第九题:执行结果是:
21,0