- 
	
- В Иаре есть опция компилятора - требовать прототип каждой функции, дает ошибку. Прототип это инструкция по вызову функции. Может там типы данных аргументов преобразовывать надо. - IBAH(01.10.2023 19:53)
 - Это просто умные люди за тебя все решили. il-2(423 знак., 01.10.2023 13:07)
 - Можно прописать прототип в .h, потом #include его, этот .h. Просто
смутно помню, что-то такое было. - Бapбoc(01.10.2023 12:37)
			
- Чем это отличается от того, чтобы этот прототип просто вбить в
начале файла? - st256(01.10.2023 12:49)
					
- Во-пегвых, это кгасиво. Во-вторых, кто его знает, кайло это. - Бapбoc(01.10.2023 13:00)
 
 
 - Чем это отличается от того, чтобы этот прототип просто вбить в
начале файла? - st256(01.10.2023 12:49)
					
 - по новым веяниям (6-й компилятор Keil) так напоминают, что не
встречен прототип, а функция не объявлена как static. - Vit(01.10.2023 12:13)
			
- Ближе к истине. А где этот прототип вставлять? Я его уже только на
лбу не рисовал. - st256(01.10.2023 12:16)
					
- Делаем файл с именем, например, "project.h"  Tyмблep(371 знак., 02.10.2023 16:14)
							
- Более лучше к каждому модулю создавать свой хедер. По сути список
прототипов функций модуля является частью интерфейса модуля (вместе
с объявлениями типов, имеющих отношение к модулю и т.п.) А
включение хедера в другой модуль явным образом демонстрирует
зависимость одного модуля от другого. Это полезно для
структурирования программы. Валить всё в одну кучу - это фу. - SciFi(02.10.2023 16:19)
									
- ...и в какой то момент потребуется вернуться к проекту  Tyмблep(108 знак., 02.10.2023 16:28)
											
- В смысле "искать"? VS Code знает, где что лежит. Впрочем, я не
настаиваю. - SciFi(02.10.2023 16:29)
													
- Да я тоже не настаиваю. Tyмблep(389 знак., 02.10.2023 16:38)
 - это как бы глобальная "печаль" - переход от "человека понятного текста" к "базе данных программы" - Zoro(02.10.2023 16:32)
 
 
 - В смысле "искать"? VS Code знает, где что лежит. Впрочем, я не
настаиваю. - SciFi(02.10.2023 16:29)
													
 
 - ...и в какой то момент потребуется вернуться к проекту  Tyмблep(108 знак., 02.10.2023 16:28)
											
 
 - Более лучше к каждому модулю создавать свой хедер. По сути список
прототипов функций модуля является частью интерфейса модуля (вместе
с объявлениями типов, имеющих отношение к модулю и т.п.) А
включение хедера в другой модуль явным образом демонстрирует
зависимость одного модуля от другого. Это полезно для
структурирования программы. Валить всё в одну кучу - это фу. - SciFi(02.10.2023 16:19)
									
 - Если глобальная функция, то прототип в файле .h, а функция в файле.с, если функция локальная, то и прототип и функция в файле .с и при этом и прототип и функция должны быть объявлены как static - Alt@ir(01.10.2023 13:07)
 - поставь в файле с телом функции перед ним и/или в хедере,
включаемом в файл с телом  Vit(60 знак., 01.10.2023 12:47)
							
- Я так и сделаю, только это чо??? Мне этот код потом переносить из
Keil в IAR придется. - st256(01.10.2023 12:50)
									
- GCC себя точно так же ведёт. Требует прототип, иначе предупреждение. В Си нормально объявлять прототип, а затем, определять функцию. Разумеется, прототип должен попадаться препроцессору(?) раньше, чем определение (тело). - Nikolay_Po(01.10.2023 20:04)
 - такое работать везде должно - оно не мешает. раньше, например, IAR для MSP430 похожим страдал тоже - Vit(01.10.2023 13:28)
 
 
 - Я так и сделаю, только это чо??? Мне этот код потом переносить из
Keil в IAR придется. - st256(01.10.2023 12:50)
									
 
 - Делаем файл с именем, например, "project.h"  Tyмблep(371 знак., 02.10.2023 16:14)
							
 
 - Ближе к истине. А где этот прототип вставлять? Я его уже только на
лбу не рисовал. - st256(01.10.2023 12:16)
					
 - Не очень понял вопрос. Ошибка в имени функции?  Cкpипaч(285 знак., 01.10.2023 11:10 - 11:52)
			
- Я ни разу не программист, но подозреваю, что предупреждение от
того, что определение функции в одном модуле, а вызывается в другом
или нескольких модулях компиляции. Если это так, то достаточно в
другом(их) месте добавить этот же прототип с определением extern. - reZident(01.10.2023 11:36)
					
- Не, у меня все в одном файле, сначала ф-ция, а потом мэйн. - st256(01.10.2023 12:12)
 - Функции по умолчанию extern. В месте вызова нужен прототип (не
определение), чтобы компилятор мог проверить типы параметров.  Cкpипaч(184 знак., 01.10.2023 11:42)
							
- Уже пробовал. Только еще больше ванингов получается. - st256(01.10.2023 12:13)
									
- Имя функции в описании и в месте вызова точно совпадает? Число и типы параметров? Результат функции - используется? (если
объявлен, но не используется - может приводить к такому
предупреждению) - Cкpипaч(01.10.2023 12:40)
											
- Если не совпадет будет ошибка, а не варнинг - Alt@ir(01.10.2023 13:54)
													
- Если результат выполнения функции не используется, ошибки не будет. - Cкpипaч(01.10.2023 15:59)
															
- В ИАРе будет. - Alt@ir(01.10.2023 18:26)
 
 
 - Если результат выполнения функции не используется, ошибки не будет. - Cкpипaч(01.10.2023 15:59)
															
 
 - Если не совпадет будет ошибка, а не варнинг - Alt@ir(01.10.2023 13:54)
													
 
 - Имя функции в описании и в месте вызова точно совпадает? Число и типы параметров? Результат функции - используется? (если
объявлен, но не используется - может приводить к такому
предупреждению) - Cкpипaч(01.10.2023 12:40)
											
 
 - Уже пробовал. Только еще больше ванингов получается. - st256(01.10.2023 12:13)
									
 
 
 - Я ни разу не программист, но подозреваю, что предупреждение от
того, что определение функции в одном модуле, а вызывается в другом
или нескольких модулях компиляции. Если это так, то достаточно в
другом(их) месте добавить этот же прототип с определением extern. - reZident(01.10.2023 11:36)
					
 - Компилятор до вызова функции должен в тексте "встретить" функцию
или прототип. - BlackMorda(01.10.2023 10:49)
			
- Это я как бы знаю. Я не знаю, как это сделать! Или не знаю, что
такое прототип, или не знаю куда его перед функцией ставить. - st256(01.10.2023 10:51)
					
- Прототип и функция в одном файле? - Alt@ir(01.10.2023 11:57)
							
- ну я не знаю, чего этому кейлу надо. Пробовал и так и так. Где-то я в букваре пропустил пару параграфов. - st256(01.10.2023 12:14)
 
 - Прототип должен быть перед вызовом, а не перед функцией. - BlackMorda(01.10.2023 11:06)
							
- У меня сначала сама функция, а потом main, в которой эта функция
вызывается. И именно в вызове из main появляется этот ванинг.
Чего-то я не понимаю... - st256(01.10.2023 12:11)
									
- В тексте только одна-единственная функция? Предупреждение на одну
конкретную функцию? - reZident(01.10.2023 12:28)
											
- Да, насколько я помню. Кода у меня под руками нет. - st256(01.10.2023 12:34)
													
- Так может это оптимизатор дурит? Если функция вызывается только
один раз, то компилятор может имплементировать ее прямо в тело
программы. - reZident(01.10.2023 12:43)
															
- А кстати, как отключается оптимизатор в Keil? По-моему, когда-то у
меня уже были с ним проблемы. - st256(01.10.2023 12:51)
																	
- ХЕЗ. Я не программист. Когда-то работал с MSP430, но программы в
IAR писал. - reZident(01.10.2023 12:55)
																			
- Во-во! В своё время в IAR for MSP430 (в районе 3-4 версий) встречался прикол с выставленной оптимизацией (size) / Ежели объявления void (xx) опускаешь ниже main , то компиляция проходит без предупреждения. А если до main , то с огрехами. Сейчас не знаю. Давно не брался за TI. - SERGHIO(01.10.2023 13:31)
 
 
 - ХЕЗ. Я не программист. Когда-то работал с MSP430, но программы в
IAR писал. - reZident(01.10.2023 12:55)
																			
 
 - А кстати, как отключается оптимизатор в Keil? По-моему, когда-то у
меня уже были с ним проблемы. - st256(01.10.2023 12:51)
																	
 
 - Так может это оптимизатор дурит? Если функция вызывается только
один раз, то компилятор может имплементировать ее прямо в тело
программы. - reZident(01.10.2023 12:43)
															
 
 - Да, насколько я помню. Кода у меня под руками нет. - st256(01.10.2023 12:34)
													
 
 - В тексте только одна-единственная функция? Предупреждение на одну
конкретную функцию? - reZident(01.10.2023 12:28)
											
 
 - У меня сначала сама функция, а потом main, в которой эта функция
вызывается. И именно в вызове из main появляется этот ванинг.
Чего-то я не понимаю... - st256(01.10.2023 12:11)
									
 
 - Прототип и функция в одном файле? - Alt@ir(01.10.2023 11:57)
							
 
 - Это я как бы знаю. Я не знаю, как это сделать! Или не знаю, что
такое прототип, или не знаю куда его перед функцией ставить. - st256(01.10.2023 10:51)
					
 - Тяжёлый случай. Переходите на С++, он такое поймёт :)) - ЫЫyкпy(01.10.2023 10:43)
			
- Как может С++ понять то, чего даже я не понимаю? Можете по-конкретнее? - st256(01.10.2023 10:50)