[ZX]
- 
	
- Преобразовать char в wchar, а затем пользоваться одной функцией для wchar. А затем, если надо, преобразовать обратно. - бомж(29.11.2012 02:49)
 - До чего людей доводит объектное программирование. Говорят сложно перейти к объектному мышлению. Похоже обратная дорога не менее терниста :) Сделай две функции, сложи их в один файл и заоптимизируй его по размеру кода по самое небалуй. Получишь код  Codavr(35 знак., 27.11.2012 21:25 - 21:28)
			
- Для перегруженных можно сделать ровно тоже самое. - =AlexD=(27.11.2012 21:56)
 
 - Это не plain C, это уже ассемблер какой-то. Профессионального уровня, конечно. - SciFi(27.11.2012 16:43)
 - А можно поинтересоваться причинами, по которым функция должна быть одна, а не две разные? - =AlexD=(27.11.2012 16:34)
			
- Написал бы две разные, первое что приходит в голову. Но практически это неудобно по двум причинам: 1) у них будет 90% общего (а lexical scoping 
GCC не умеет), 2) сами эти функции придётся различать из тех мест где они вызываются, в fk0(60 знак., 27.11.2012 17:34)- 2) - ну Вы же в любом случае различаете сейчас в каком указателе нужно передавать строку, так что ничего по сути не изменится 1) - проблема ИМХО решаемая только шаблонными функциями С++, что тоже не панацея в случае нехватки памяти. - =AlexD=(27.11.2012 18:33)
							
- Вместо шаблона можно навернуть макрос, но это совсем уныло. - =AlexD=(27.11.2012 18:34)
 
 - Очевидные ответы, очевидные вопросы:  SciFi(137 знак., 27.11.2012 17:42)
							
- 1) в C нельзя вложенные функции как в паскале, например. Общая подфункция не будет иметь доступа к переменным вызывающей функции или их передавать через структуру или ещё как. 2) это как раз и нестесственно -- в C++ для этого есть понятие  fk0(59 знак., 27.11.2012 18:13 - 18:16)
									
- Ответов по-прежнему нет: SciFi(228 знак., 27.11.2012 22:50)
 - перегружаемые функции - это две разные функции, в вашем случае это не то. - =AlexD=(27.11.2012 18:28)
 
 
 - 1) в C нельзя вложенные функции как в паскале, например. Общая подфункция не будет иметь доступа к переменным вызывающей функции или их передавать через структуру или ещё как. 2) это как раз и нестесственно -- в C++ для этого есть понятие  fk0(59 знак., 27.11.2012 18:13 - 18:16)
									
 
 - 2) - ну Вы же в любом случае различаете сейчас в каком указателе нужно передавать строку, так что ничего по сути не изменится 1) - проблема ИМХО решаемая только шаблонными функциями С++, что тоже не панацея в случае нехватки памяти. - =AlexD=(27.11.2012 18:33)
							
 
 - Написал бы две разные, первое что приходит в голову. Но практически это неудобно по двум причинам: 1) у них будет 90% общего (а lexical scoping 
 - SetContext и далее работаем с одним указателем - abivan(27.11.2012 16:04)
 - Все на столько плохо, что нет возможности передать рядом один байт, тип параметра? - Скрипач(27.11.2012 15:53)
 - в порядке бреда предложу размещать wchar_t по четным адресам, а char по нечетным - MegaJohn(27.11.2012 15:29)
			
- Хорошая мысль, не бред. Я часто такой приём использую, одна задача для обработки одной очереди может получить и команду, и данные, если используется выравнивание по 4 байтам для размещения данных в очереди; если младший бит =1, значит команда. - VVB(28.11.2012 14:29)
					
- Более того, ARM что-то похожее делает (инструкция BX, бит Thumb). - SciFi(28.11.2012 14:45)
 
 - либо вызывать типо MALLOC_FOR_WCHAR и MALLOC_FOR_CHAR которые выделяют в разных адресных пространствах, а конечная функция в курсе где что - MegaJohn(27.11.2012 15:31)
 
 - Хорошая мысль, не бред. Я часто такой приём использую, одна задача для обработки одной очереди может получить и команду, и данные, если используется выравнивание по 4 байтам для размещения данных в очереди; если младший бит =1, значит команда. - VVB(28.11.2012 14:29)
					
 - Какова разрядность указателя по сравнению с адресным пространством? Есть ли свободные биты? - vmp(27.11.2012 15:28)