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

 
 
> варнинг Keil c99
Метценгерштейн
сообщение Feb 3 2015, 14:59
Сообщение #1


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

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079






почему-то ему не нравится данный код, но это только варнинг
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Opex
сообщение Feb 5 2015, 09:54
Сообщение #2


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

Группа: Свой
Сообщений: 75
Регистрация: 13-03-11
Из: Екатеринбург
Пользователь №: 63 574



Вот нашел еще:
http://stackoverflow.com/questions/216510/...e/216546#216546

in K&R C or C89, inline was not part of the language. Many compilers implemented it as an extension, but there were no defined semantics regarding how it worked. GCC was among the first to implement inlining, and introduced the "inline", "static inline", and "extern inline" constructs; most pre-C99 compiler generally follow its lead.

GNU89:

"inline": the function may be inlined (it's just a hint though). An out-of-line version is always emitted and externally visible. Hence you can only have such an inline defined in one compilation unit, and every other one needs to see it as an out-of-line function (or you'll get duplicate symbols at link time).
"static inline" will not generate a externally visible out-of-line version, though it might generate a file static one. The one-definition rule does not apply, since there is never an emitted external symbol nor a call to one.
"extern inline" will not generate an out-of-line version, but might call one (which you therefore must define in some other compilation unit. The one-definition rule applies, though; the out-of-line version must have the same code as the inline offered here, in case the compiler calls that instead.

C99 (or GNU99):

"inline": like GNU "extern inline"; no externally visible function is emitted, but one might be called and so must exist
"extern inline": like GNU "inline": externally visible code is emitted, so at most one translation unit can use this.
"static inline": like GNU "static inline". This is the only portable one between gnu89 and c99
Go to the top of the page
 
+Quote Post
SM
сообщение Feb 5 2015, 09:57
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(Opex @ Feb 5 2015, 12:54) *
no externally visible function is emitted, but one might be called and so must exist

Жестко! А где ее взять? Написать отдельно в не-инлайн версии? rolleyes.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Метценгерштейн   варнинг Keil c99   Feb 3 2015, 14:59
- - Opex   Нужно добавить объявление этой функции до ее испол...   Feb 3 2015, 15:11
- - toweroff   И хедер не видит - прописать в путь поиска   Feb 3 2015, 15:45
- - Метценгерштейн   с хидером не все так просто- он есть в путях поиск...   Feb 3 2015, 18:00
- - Opex   Какую ошибку пишет?   Feb 3 2015, 18:13
|- - Метценгерштейн   Цитата(Opex @ Feb 3 2015, 21:13) Какую ош...   Feb 3 2015, 19:08
|- - SM   Цитата(Метценгерштейн @ Feb 3 2015, 22:08...   Feb 3 2015, 19:13
||- - Метценгерштейн   Цитата(SM @ Feb 3 2015, 22:13) Найдите, к...   Feb 3 2015, 20:03
|- - ViKo   Цитата(Метценгерштейн @ Feb 3 2015, 22:08...   Feb 3 2015, 20:45
- - ViKo   Так c99 отключите, и компилируйтесь.   Feb 3 2015, 18:16
- - Opex   Так она и варнинг выдает из-за того, что функцию н...   Feb 3 2015, 19:11
- - toweroff   а разве тело функции можно писать в хедере?   Feb 3 2015, 19:43
|- - andrew_b   Цитата(toweroff @ Feb 3 2015, 22:43) а ра...   Feb 4 2015, 08:39
|- - Метценгерштейн   Цитата(andrew_b @ Feb 4 2015, 11:39) Можн...   Feb 4 2015, 09:16
|- - SM   Цитата(andrew_b @ Feb 4 2015, 11:39) Можн...   Feb 4 2015, 15:52
- - x893   Совсем не обязательно это помнить наизусь. Есть оп...   Feb 3 2015, 21:29
- - Метценгерштейн   вот что пишет на варнинг логика такая- вызывается...   Feb 4 2015, 06:57
|- - SM   Цитата(Метценгерштейн @ Feb 4 2015, 09:57...   Feb 4 2015, 07:06
- - Метценгерштейн   #define __ASM __asm и замена на маленькие буквы не...   Feb 4 2015, 07:48
- - SM   Замена обоих __ASM и __INLINE на маленькие буквы п...   Feb 4 2015, 07:52
- - Opex   Static ограничивает область видимости функции теку...   Feb 4 2015, 14:32
- - Opex   Из стандарта: A function declaration with an inli...   Feb 4 2015, 16:20
|- - SM   Цитата(Opex @ Feb 4 2015, 19:20) If a fu...   Feb 4 2015, 17:00
- - Opex   Попробовал для интереса, можно и в C-файле определ...   Feb 4 2015, 17:18
|- - SM   Цитата(Opex @ Feb 4 2015, 20:18) Попробов...   Feb 4 2015, 17:51
- - Opex   Цитата(SM @ Feb 4 2015, 22:51) Конечно, м...   Feb 4 2015, 17:55
|- - SM   Цитата(Opex @ Feb 4 2015, 20:55) Я неточн...   Feb 4 2015, 17:57
- - Opex   Еще интересный момент: A static local variable in...   Feb 4 2015, 18:12
|- - SM   Цитата(Opex @ Feb 4 2015, 21:12) Что несо...   Feb 4 2015, 20:20
- - Opex   Только вот эта статическая переменная будет разной...   Feb 5 2015, 08:34
|- - SM   Цитата(Opex @ Feb 5 2015, 11:34) Только в...   Feb 5 2015, 08:39
- - Opex   Да, действительно, одна получается. Выходит, что ...   Feb 5 2015, 09:08
|- - SM   Цитата(Opex @ Feb 5 2015, 12:08) Выходит,...   Feb 5 2015, 09:20
- - Opex   Так получается, на случай, если компилятору не зах...   Feb 5 2015, 10:35
- - WitFed   Куда-то топик унёсся не туда. Хотелось бы увидеть ...   Feb 5 2015, 11:06
- - x893   А можно взять Keil IDE но использовать arm-none-ea...   Feb 5 2015, 15:35
|- - SM   Цитата(x893 @ Feb 5 2015, 18:35) А можно ...   Feb 5 2015, 18:17
- - x893   arm-none-eabi к синтаксису проще относится. То что...   Feb 5 2015, 19:23
- - SM   Цитата(x893 @ Feb 5 2015, 22:23) То что т...   Feb 5 2015, 19:46


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

 


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


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