Waso 1 25 ноября, 2007 Опубликовано 25 ноября, 2007 · Жалоба Хочется внутри одной большой функции создавать мелкие, которые бы видели переменные родительской функции как глобальные. Как я понимаю, при вызове функции с параметрами компилятор предварительно копирует эти параметры в отдельные переменные, которые вместе с переменными, обьявленными внутри той функции, образуют ее стек. Это долго и жирно. Хочется создать функцию, при вызове которой в стек заносился бы только адрес места вызова, а переменные брались бы из внешней функции. Как это сделать? Как я понимаю, при обращении через указатель, его значение также копируется в стек, такчто это не вариант. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость Maddy 25 ноября, 2007 Опубликовано 25 ноября, 2007 · Жалоба Вложенных функций с С IMHO нет( и правильно). Как _тупое решение в лоб_ покидать все мелкие функции в отдельный файл, а нужне переменные сделать глобальными и статическими ... Хотя это может породить массу глюков ... Лучше скомпоновать нужные переменные в структуру и тягать через указатель на нее Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 25 ноября, 2007 Опубликовано 25 ноября, 2007 · Жалоба Вложенных функций с С IMHO нет В некоторых реализациях, например, GCC - бывает. В IAR - нет. Как _тупое решение в лоб_ покидать все мелкие функции в отдельный файл... Обычно лучше совсем наоборот - сделать их inline. Если "мелкие", то и код особо и не разбухнет... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Waso 1 25 ноября, 2007 Опубликовано 25 ноября, 2007 · Жалоба Ну, некоторые не настолько мелкие чтоб их делать inline. Хотя при наличии достаточного количества свободно места помешать может только жадность программиста. :) Благодарю за идею со структурами! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Johnny81 0 26 ноября, 2007 Опубликовано 26 ноября, 2007 · Жалоба Вложенных функций с С IMHO нет( и правильно). А чем они вам не нравятся? Исходя из опыта программирования в дельфях - ИМХО, очень удобная штука. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 67 26 ноября, 2007 Опубликовано 26 ноября, 2007 · Жалоба Благодарю за идею со структурами! Эта идея практически один к одному описывает реализацию класса в С++. Если ваш компилятор поддерживает плюсы, то используйте классы и все. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexander55 0 26 ноября, 2007 Опубликовано 26 ноября, 2007 · Жалоба Эта идея практически один к одному описывает реализацию класса в С++. Если ваш компилятор поддерживает плюсы, то используйте классы и все. +1. Поддерживаю. При использовании плюсов таких вопросов даже не возникает. :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
NikolayZ 0 26 ноября, 2007 Опубликовано 26 ноября, 2007 · Жалоба Вложенных функций с С IMHO нет( и правильно). Как _тупое решение в лоб_ покидать все мелкие функции в отдельный файл, а нужне переменные сделать глобальными и статическими ... Хотя это может породить массу глюков ... Лучше скомпоновать нужные переменные в структуру и тягать через указатель на нее Если использовать статические переменные модуля правильно - то никаких глюков не будет... И структуры не нужны... Статические переменные видны всем функциям модуля. Собственно - это реальная аналогия переменных класса в плоском С. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться