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

 
 
> Вопрос на миллион (GCC)
antiwin
сообщение Jul 2 2009, 07:15
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 22
Регистрация: 20-05-09
Пользователь №: 49 303



Привет всем, такой вот проблем: как можно узнать адрес в ОЗУ выше которого стек не "перерастет"? Это нужно сделать на этапе компиляции.
И еще, можно ли в теле функции узнать тип возвращаемого значения т.е допустим определена функция void *foo(...), далее где то вызывается int *ptr=foo(...), как в теле foo узнать что это указатель на int?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aesok
сообщение Jul 2 2009, 07:20
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Цитата(antiwin @ Jul 2 2009, 11:15) *
Привет всем, такой вот проблем: как можно узнать адрес в ОЗУ выше которого стек не "перерастет"? Это нужно сделать на этапе компиляции.


Нет. Это можно только узнать после соборки поэкта. Проанализировав дерево вызовов функций и размеры их фрейм буферов.

Цитата(antiwin @ Jul 2 2009, 11:15) *
И еще, можно ли в теле функции узнать тип возвращаемого значения т.е допустим определена функция void *foo(...), далее где то вызывается int *ptr=foo(...), как в теле foo узнать что это указатель на int?


Никак нельзя.

Анатолий.
Go to the top of the page
 
+Quote Post
777777
сообщение Jul 2 2009, 11:19
Сообщение #3


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

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(aesok @ Jul 2 2009, 11:20) *
Нет. Это можно только узнать после соборки проекта. Проанализировав дерево вызовов функций и размеры их фрейм буферов.

Боюсь что таже так нельзя. Потому что вызовы могут быть рекурсивными. Кроме того, функции можно вызывать по указателю, а такие вызовы не встроишь в дерево. Я уж не говорю о том, что каждая функция может запихнуть в стек что-то по своему желанию, помимо параметров и локальных переменных.
Go to the top of the page
 
+Quote Post



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

 


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


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