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

 
 
> warning: implicit declaration of function 'memset', почему лишь warning и почему все работает?
Kris2007
сообщение Sep 22 2010, 12:39
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 75
Регистрация: 15-03-07
Пользователь №: 26 193



Правлю чужой код. AVR-GCC, Atmega128
При компиляции выдает море warning-ов на memset, memcpy и.т.п.
Проблему ли в том что нет #include "string.h".

Например:
../utils.c:47: warning: implicit declaration of function 'memset'
../utils.c:47: warning: incompatible implicit declaration of built-in function 'memset'


Но! Стало любопытно, ведь устройства с прошивкой продаются и вроде работают)
Почему, что сотворил компилятор?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Petka
сообщение Sep 29 2010, 10:00
Сообщение #2


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

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(Kris2007 @ Sep 22 2010, 16:39) *
../utils.c:47: warning: implicit declaration of function 'memset'
../utils.c:47: warning: incompatible implicit declaration of built-in function 'memset'
...
Почему, что сотворил компилятор?

gcc когда встречает использование функции, которая не была объявлена расценивает это как объявление функции (о чём и говорит варнинг "implicit declaration of function 'memset'")
когда на стадии линковки выясняется, что фактическое определение функции не совпадает с "implicit declaration", но количество параметров и их размер (но не тип) совпадают, то компилятор ТАКИ линкует код (и снова делает варнинг). Это оказывается работоспособным. Такое поведение НИКАК не связано со способностью компилятора делать оптимизации. невключение заголовочников не уменьшит код ни на грамм.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Kris2007   warning: implicit declaration of function 'memset'   Sep 22 2010, 12:39
- - Сергей Борщ   Цитата(Kris2007 @ Sep 22 2010, 15:39) Поч...   Sep 22 2010, 12:44
|- - Kris2007   Хм т.е. все сделано правильно?? И #include ...   Sep 23 2010, 05:50
||- - Сергей Борщ   Цитата(Kris2007 @ Sep 23 2010, 08:50) И ...   Sep 23 2010, 06:01
|- - vacvvn   Цитата(Сергей Борщ @ Sep 22 2010, 16:44) ...   Sep 23 2010, 06:05
|- - 777777   Цитата(vacvvn @ Sep 23 2010, 10:05) выход...   Sep 23 2010, 06:18
|- - Сергей Борщ   Цитата(vacvvn @ Sep 23 2010, 09:05) Не вк...   Sep 23 2010, 09:42
|- - 777777   Цитата(Сергей Борщ @ Sep 23 2010, 13:42) ...   Sep 23 2010, 11:08
|- - rezident   Цитата(777777 @ Sep 23 2010, 17:08) потом...   Sep 23 2010, 11:14
|- - sKWO   Цитата(777777 @ Sep 23 2010, 14:08) ЗЫ. s...   Sep 23 2010, 11:15
||- - 777777   Цитата(sKWO @ Sep 23 2010, 15:15) static ...   Sep 23 2010, 11:18
||- - sergeeff   Цитата(777777 @ Sep 23 2010, 14:18) Это д...   Sep 23 2010, 11:22
||- - MrYuran   Цитата(777777 @ Sep 23 2010, 15:18) Это д...   Sep 23 2010, 11:25
||- - rezident   Цитата(777777 @ Sep 23 2010, 17:18) Это д...   Sep 23 2010, 13:33
|- - Dima_G   Цитата(777777 @ Sep 23 2010, 18:08) Спаси...   Sep 23 2010, 15:32
- - Dima_G   Советую ознакомиться с http://ru.wikipedia.org/wi...   Sep 23 2010, 10:05
|- - MrYuran   Цитата(Dima_G @ Sep 23 2010, 14:05) Некот...   Sep 23 2010, 10:36
||- - Dima_G   Цитата(MrYuran @ Sep 23 2010, 17:36) Я вс...   Sep 23 2010, 10:49
|- - _Pasha   Цитата(Dima_G @ Sep 23 2010, 14:05) Некот...   Sep 23 2010, 11:22
|- - 777777   Цитата(_Pasha @ Sep 23 2010, 15:22) Приме...   Sep 23 2010, 11:25
|- - sKWO   Цитата(777777 @ Sep 23 2010, 14:25) Я пре...   Sep 23 2010, 11:57
|- - 777777   Цитата(sKWO @ Sep 23 2010, 15:57) ЦитатаЯ...   Sep 24 2010, 05:30
|- - sKWO   Цитата(777777 @ Sep 24 2010, 08:30) Ты зн...   Sep 29 2010, 05:23
|- - 777777   Цитата(sKWO @ Sep 29 2010, 09:23) А Вы зн...   Sep 29 2010, 17:01
|- - sKWO   Цитата(777777 @ Sep 29 2010, 20:01) Этот ...   Sep 30 2010, 05:54
|- - 777777   Цитата(sKWO @ Sep 30 2010, 09:54) Ну а ес...   Sep 30 2010, 06:12
|- - sKWO   Цитата(777777 @ Sep 30 2010, 09:12) Если ...   Sep 30 2010, 07:15
|- - Petka   Цитата(777777 @ Sep 30 2010, 10:12) Нет, ...   Sep 30 2010, 08:04
|- - 777777   Цитата(Petka @ Sep 30 2010, 12:04) Это за...   Sep 30 2010, 10:38
- - Juray   У меня почему-то линкер не ругался на глобальные п...   Sep 30 2010, 12:30
|- - IgorKossak   Цитата(Juray @ Sep 30 2010, 15:30) А вот ...   Sep 30 2010, 12:59
- - Juray   Чистый С. gcc - WinAVR 20050214. файл global.h: К...   Sep 30 2010, 13:14
- - IgorKossak   Странно, что работает. Грамотнее было бы U16 d_sta...   Sep 30 2010, 13:20
- - Juray   Да вот сам удивляюсь, читая эту ветку. Что грамот...   Sep 30 2010, 13:51
|- - 777777   Цитата(Juray @ Sep 30 2010, 17:51) Вам го...   Sep 30 2010, 15:24
|- - Juray   Цитата(777777 @ Sep 30 2010, 19:24) Ты ду...   Oct 1 2010, 11:56
|- - 777777   Цитата(Juray @ Oct 1 2010, 15:56) Сейчас ...   Oct 1 2010, 16:36
|- - mdmitry   Цитата(Juray @ Oct 1 2010, 15:56) Сейчас ...   Oct 2 2010, 08:29
- - rezident   Возможно та версия WinAVR не применяла раздельную ...   Sep 30 2010, 15:39
|- - 777777   Цитата(rezident @ Sep 30 2010, 19:39) Воз...   Sep 30 2010, 15:58
|- - rezident   Цитата(777777 @ Sep 30 2010, 21:58) То ес...   Sep 30 2010, 16:03
- - Juray   Предупреждения - по умолчанию. Этого недостаточно?...   Oct 2 2010, 08:44


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

 


RSS Текстовая версия Сейчас: 24th June 2025 - 19:52
Рейтинг@Mail.ru


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