在有些時(shí)候,需要對預(yù)設(shè)的數(shù)組進(jìn)行循環(huán)操作
如
char char_array[] = {'a','b','c','d'};
int i;
for (i = 0; i < sizeof(char_array)/sizeof(char); i++) {
??? cout << char_array[i] << endl;
}
所以寫了個(gè)宏,取得數(shù)組的大小
template <typename T>
T get_size(T value[]);
#define ASIZEOF(a) sizeof(a)/sizeof(get_size(a))
然后就可以這樣寫了.
for (i = 0; i < ASIZEOF(char_array); i++) {
??? cout << char_array[i] << endl;
}
但是缺點(diǎn)就是不能正確的分別傳入的是一個(gè)指針類型,還是一個(gè)類型的數(shù)組.
代碼在vc6 和 devcpp 4.9 中測試通過
?