реклама на сайте
подробности

 
 
> Gcc, выдает варнинг вместо ошибки.
ar__systems
сообщение Oct 7 2013, 15:19
Сообщение #1


self made
****

Группа: Свой
Сообщений: 855
Регистрация: 7-03-09
Из: Toronto, Canada
Пользователь №: 45 795



Код
void Dummy(int* a) {
    *a = 0;
};

void Test() {
  int* a = 0;
  Dummy(&a);
};


Выдает варнинг, тогда как я бы хотел видеть в этом месте ошибку. Как переключить?

test.c:1076:3: warning: passing argument 1 of 'Dummy' from incompatible p
inter type [enabled by default]
test_emac.c:873:6: note: expected 'int *' but argument is of type 'int **'
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Genadi Zawidowsk...
сообщение Nov 19 2013, 23:43
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Но функция - то работает с адресом int, а не указателя на int.
Go to the top of the page
 
+Quote Post
alx2
сообщение Nov 20 2013, 06:48
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 340
Регистрация: 25-10-05
Из: Пермь, Россия
Пользователь №: 10 091



Цитата(Genadi Zawidowski @ Nov 20 2013, 04:43) *
Но функция - то работает с адресом int, а не указателя на int.

Это нормально для языка C - там допустимо неявное приведение указателя к другому типу указываемого объекта. Поэтому только предупреждение.
В языке C++ такое приведение не допускается - будет выдана ошибка.


--------------------
Всего наилучшего,
Alex Mogilnikov
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th July 2025 - 02:29
Рейтинг@Mail.ru


Страница сгенерированна за 0.01381 секунд с 7
ELECTRONIX ©2004-2016