Я видел несколько макросов для длины массива, плавающей вокруг:
Из этот вопрос:
-
#define length(array) (sizeof(array)/sizeof(*(array)))
-
#define ARRAY_LENGTH(array) (sizeof((array))/sizeof((array)[0]))
-
#define SIZE(array, type) (sizeof(array) / (sizeof(type))
И Visual Studio _countof
:
#define _countof(_Array) (sizeof(_Array) / sizeof(_Array[0]))
Что я хотел бы знать:
- Какая разница между теми, кто использует
array[0]
и*array
? - Почему это должно быть предпочтительным?
- Различаются ли они на С++?