|
Вариант для распечатки |
Пред. тема | След. тема | ||
Форумы
Программирование под UNIX (Public)
| |||
|---|---|---|---|
| Изначальное сообщение | [Проследить за развитием треда] | ||
| "Интерфейс printf" | |
Сообщение от ghost_in_machine ![]() on 17-Янв-06, 19:42 | |
Здравствуйте! | |
| Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх |
| Оглавление |
|
| Сообщения по теме | [Сортировка по времени, UBB] |
| 2. "Интерфейс printf" | |
Сообщение от veslo (ok) on 17-Янв-06, 23:42 | |
man va_arg | |
| Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх |
| 3. "Интерфейс printf" | |
Сообщение от ghost_in_machine ![]() on 18-Янв-06, 13:58 | |
Спасибо, veslo. | |
| Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх |
| 4. "Интерфейс printf" | |
Сообщение от Аноним on 18-Янв-06, 16:28 | |
>Есть ли какой-нибудь другой способ передать в функцию произвольный набор параметров без указаний их типов? | |
| Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх | |
| 5. "Интерфейс printf" | |
Сообщение от Brick ![]() (??) on 19-Янв-06, 01:09 | |
>компилятор то знает сколько параметров передают в конкретном вызове | |
| Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх | |
| 6. "Интерфейс printf" | |
Сообщение от Forth (??) on 19-Янв-06, 09:09 | |
>компилятор С ничего не знает про количество аргументов, переданных функции | |
| Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх | |
| 7. "Интерфейс printf" | |
Сообщение от tilde on 19-Янв-06, 09:26 | |
>>компилятор С ничего не знает про количество аргументов, переданных функции | |
| Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх | |
| 8. "Интерфейс printf" | |
Сообщение от Forth (??) on 19-Янв-06, 09:39 | |
>Не знает. Стек очищает вызывающая функция. Поэтому вызванная функция может даже не | |
| Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх | |
| 9. "Интерфейс printf" | |
Сообщение от ACCA (ok) on 19-Янв-06, 12:05 | |
>>Не знает. Стек очищает вызывающая функция. Поэтому вызванная функция может даже не | |
| Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх | |
| 10. "Интерфейс printf" | |
Сообщение от Forth (??) on 19-Янв-06, 12:31 | |
> "компилятор С ничего не знает про количество аргументов, переданных | |
| Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх | |
| 11. "Интерфейс printf" | |
Сообщение от ghost_in_machine ![]() on 19-Янв-06, 12:57 | |
Спасибо всем за инфу. У меня возник вопрос по стеку. Если узнать адрес конца стека то функция типа f(int num,void** stack) будет именно тем что нужно. А можно ли в С узнать адрес стека? Будет ли это &num в принимающей функции? | |
| Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх | |
| 12. "Интерфейс printf" | |
Сообщение от ghost_in_machine ![]() on 19-Янв-06, 13:00 | |
>Спасибо всем за инфу. У меня возник вопрос по стеку. Если узнать | |
| Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх | |
| 13. "Интерфейс printf" | |
Сообщение от Brick ![]() (??) on 19-Янв-06, 14:39 | |
>>Спасибо всем за инфу. У меня возник вопрос по стеку. Если узнать | |
| Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх | |
| 14. "Интерфейс printf" | |
Сообщение от ghost_in_machine ![]() on 19-Янв-06, 15:29 | |
Спасибо Brick. Стандартные решения выглядят более запутанными. Я только немного не понял, возможен ли вариант каких-то пробелов между объектами из одного вызова или гарантированно они будут идти друг за другом согласно своим размерам. В ваших ссылках была пара туманных слов о запутанности структуры стека при работе современных компиляторов... | |
| Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх | |
| 15. "Интерфейс printf" | |
Сообщение от Brick ![]() (??) on 19-Янв-06, 15:51 | |
аргументы в стеке будут идти подряд, один за одним а для разбора параметров существует два класических приема: | |
| Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх | |
| 16. "Интерфейс printf" | |
Сообщение от ghost_in_machine ![]() on 19-Янв-06, 16:07 | |
А что произойдет со стеком (его конкретным участком, содержащим параметры), если я вызову другую функцию внутри обработчика стека? Будут ли адреса стека и его элементов все еще валидными? И еще, как мне передать адрес стека в другую функцию, через void* или есть вариант для "три точки" -> "три точки" напрямую? | |
| Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх | |
| 17. "Интерфейс printf" | |
Сообщение от Brick ![]() (??) on 19-Янв-06, 16:41 | |
>А что произойдет со стеком (его конкретным участком, содержащим параметры), если я вызову другую функцию внутри обработчика стека? Будут ли адреса стека и его элементов все еще валидными? | |
| Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх | |
| 18. "Интерфейс printf" | |
Сообщение от Brick ![]() (??) on 19-Янв-06, 16:48 | |
>А что произойдет со стеком (его конкретным участком, содержащим параметры), если я вызову другую функцию внутри обработчика стека? Будут ли адреса стека и его элементов все еще валидными? | |
| Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх | |
| 19. "Интерфейс printf" | |
Сообщение от ghost_in_machine ![]() on 19-Янв-06, 17:00 | |
Спасибо всем (и Brick особенно), теперь понятно. | |
| Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх | |
|
Архив | Удалить |
Индекс форумов | Темы | Пред. тема | След. тема |
| Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] | |
|
Закладки на сайте Проследить за страницей |
Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |