老程序员教我的编程技巧-续集
8. 用宏定义来打印数组
有时候,我们需要显示一个是数组的全部元素,可是每次都写一遍循环太麻烦了,就可以用宏定义来简化这个过程。那,为什么不能写成函数呢?因为用函数打印数组时,需要传递两个参数:数组和数组个数。而宏只需要传一个数组就行了。下面是示例代码:
1 #include <cstdio> 2 using namespace std; 3 4 #define CountOfArray(ar) sizeof(ar)/sizeof(ar[0]) 5 #define PRN(ar) \ 6 { \ 7 printf ("----\r\n"); \ 8 int N = CountOfArray(ar); \ 9 for (int i=0; i<N; i++) \ 10 printf ("[%d]:%d \n", i, ar[i]); \ 11 printf ("-- total : %d --\r\n", N); \ 12 } 13 14 int prn(int ar[],int N){ 15 printf ("----\r\n"); 16 17 for (int i=0; i<N; i++) 18 printf ("[%d]:%d \n", i, ar[i]); 19 printf ("-- total : %d --\r\n", N); 20 } 21 22 int main() { 23 int sz=17; 24 int a[sz] = {1,2,3,4,5,6,7,8,9}; 25 PRN(a); 26 prn(a,sz); 27 return 0; 28 }
注意:第4行是一个求出数组个数的宏。
浙公网安备 33010602011771号