- 
	
- соптимизирую -> abivan(247 знак., 11.03.2022 16:16)
 - Потому что определения не ставят в Н-файлы - Pитчи(11.03.2022 07:42, 
)
			- Правда?! - Argon(11.03.2022 09:30)
					
- Да. В заголовочных файлах определения типов, объявления структур.
Если надо - то определения значений параметров, например, #define
TurnOnThreshold 53  Nikolay_Po(713 знак., 11.03.2022 10:05)
							
- Так речь об объявлении переменных? Почему-то думал, что выделение
памяти происходит при объявлении, а определение - это #define. - Argon(11.03.2022 10:06)
									
- Нет, объявление - это когда указывается тип и имя, но ничего ему не
присваивается. В заголовочном файле не делается объявление с
присвоением значения. И до присвоения значения, компилятор просто
имеет ввиду, что такая переменная должна быть ему доступна, но не
выделяет для неё памяти, пока она не понадобится. P.S. определения
подстановок #define и определения типов, хотя и являются
определениями, но не приводят к выделению памяти, так как относятся
сугубо к  Nikolay_Po(14 знак., 11.03.2022 10:15)
											
- Э, нее! Когда указывается тип и имя, но ничего не присваивается -
память тоже выделяется. Почему-то уверен, что "int a;" в хедере
приведет к выделению памяти. - Argon(11.03.2022 10:20)
													
- У современных компиляторов гарантированно не так, при отличной от
нуля оптимизации. Пока не случится обращения к этой переменной,
вызывающее "побочные эффекты"  Nikolay_Po(291 знак., 11.03.2022 10:33, ссылка)
															
- Так значит, можно такое в хедере?  Argon(32 знак., 11.03.2022 10:52)
																	
- Без присвоения - можно (но это не решает пробелмы ТС). Обычно, я
делаю только глобальные внешние объявления. Локальные переменные
остаются просто в коде *.c, без упоминаний в заголовках. Например:  Nikolay_Po(1014 знак., 11.03.2022 11:10)
																			
- Противоречие в терминах: стандартная форма объявления: тип список_переменных  VLLV(1 знак., 11.03.2022 11:10, ссылка)
																					
- В чём противоречие? Пока переменным не присвоены значения, это не
определение. - Nikolay_Po(11.03.2022 11:11)
																							
- Я не про определение, я про объявление. - VLLV(11.03.2022 11:14)
 
 
 - В чём противоречие? Пока переменным не присвоены значения, это не
определение. - Nikolay_Po(11.03.2022 11:11)
																							
 
 - Противоречие в терминах: стандартная форма объявления: тип список_переменных  VLLV(1 знак., 11.03.2022 11:10, ссылка)
																					
 
 - Без присвоения - можно (но это не решает пробелмы ТС). Обычно, я
делаю только глобальные внешние объявления. Локальные переменные
остаются просто в коде *.c, без упоминаний в заголовках. Например:  Nikolay_Po(1014 знак., 11.03.2022 11:10)
																			
 
 - Так значит, можно такое в хедере?  Argon(32 знак., 11.03.2022 10:52)
																	
 
 - У современных компиляторов гарантированно не так, при отличной от
нуля оптимизации. Пока не случится обращения к этой переменной,
вызывающее "побочные эффекты"  Nikolay_Po(291 знак., 11.03.2022 10:33, ссылка)
															
 
 - Э, нее! Когда указывается тип и имя, но ничего не присваивается -
память тоже выделяется. Почему-то уверен, что "int a;" в хедере
приведет к выделению памяти. - Argon(11.03.2022 10:20)
													
 - Казалось бы, грех путаться в терминологии, но даже авторы книжек
по-разному называют сущности. Что-то подобное встретилось недавно:
в одной книге оператор, в другой - инструкция. - Argon(11.03.2022 10:10)
											
- По сути, это разные вещи. "/" (деление) - это тоже оператор.
Оператор - что делать, Инструкция - как делать. И при компиляции,
один оператор может приводить к использованию нескольких
инструкций. - Nikolay_Po(11.03.2022 10:13)
													
- я может путаю насчет оператора и инструкции, но тем не менее был факт разного наименования одного и того же - Argon(11.03.2022 10:16)
 
 
 - По сути, это разные вещи. "/" (деление) - это тоже оператор.
Оператор - что делать, Инструкция - как делать. И при компиляции,
один оператор может приводить к использованию нескольких
инструкций. - Nikolay_Po(11.03.2022 10:13)
													
 
 - Нет, объявление - это когда указывается тип и имя, но ничего ему не
присваивается. В заголовочном файле не делается объявление с
присвоением значения. И до присвоения значения, компилятор просто
имеет ввиду, что такая переменная должна быть ему доступна, но не
выделяет для неё памяти, пока она не понадобится. P.S. определения
подстановок #define и определения типов, хотя и являются
определениями, но не приводят к выделению памяти, так как относятся
сугубо к  Nikolay_Po(14 знак., 11.03.2022 10:15)
											
 
 - Так речь об объявлении переменных? Почему-то думал, что выделение
памяти происходит при объявлении, а определение - это #define. - Argon(11.03.2022 10:06)
									
 
 - Да. В заголовочных файлах определения типов, объявления структур.
Если надо - то определения значений параметров, например, #define
TurnOnThreshold 53  Nikolay_Po(713 знак., 11.03.2022 10:05)
							
 
 - Правда?! - Argon(11.03.2022 09:30)
					
 - А определение __MAIN_C ручками? - VLLV(10.03.2022 14:34)
			
- каждый файл *.с начинается со строки #define __FILENAME_C, я себе
сделал генератор *.с и *.h файлов по шаблону - IBAH(10.03.2022 14:39)
					
- Понятно. Пересмотрел топик с начала и не понял, о чем речь вообще. typedef и extern в хедер, объявление в один из файлов С. Не понимаю проблему. По хорошему имена всех копий должны быть разными (IAR, например, предупреждает, что в зоне видимости две копии - локальная и глобальная) - VLLV(10.03.2022 14:59)
 
 
 - каждый файл *.с начинается со строки #define __FILENAME_C, я себе
сделал генератор *.с и *.h файлов по шаблону - IBAH(10.03.2022 14:39)