Здравствуйте, nah, Вы писали:
nah>...warning и я не понимаю его смысл.
nah>Так что же не нравится копилятору и как написать коректно?
Проблема решилась.
Оказывается:
1) Mac mac; //mac равен &mac (ну и, конечно всё равно указателя на первый элемент)
(операция & к имени массива не действует)
2) Компилятором трактуются по-разному "указатель на массив" и "указатель на указатель на элемент массива"
void f(const TMac* mac); НЕ то же самое что
void f(const unsigned char** mac);
Т.о. в моем случае надо писать
void f(const TMac mac);
вместо
void f(const TMac* mac);
На мой взгляд, такое поведение компилятора не очевидно, но логика в этом есть.
Здесь можно найти интересную информацию по теме.
http://stackoverflow.com/questions/1810083/c-pointers-pointi...
Здесь комментарий на эту тему от разработчика компилятора gcc.
http://gcc.gnu.org/ml/gcc-help/2009-12/msg00026.html
Всем спасибо