Re: Варнинг при gcc -std=gnu99. Помогите разбраться.
От: nah Россия  
Дата: 01.03.11 13:12
Оценка: 3 (1)
Здравствуйте, 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

Всем спасибо
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.