سلام
یک سوال برام پیش اومد گفتم اینجا مطرح کنم بهتره:
اگه 2 تا تابع داشته باشید (FunA , FunB) و از FunA بخواهیم FunB را فراخوان کنیم ، برای بازگشت از return استفاده میکنیم (یا اینکه تایع کاملاً اجرا بشه)؛ مثل:
حالا اگه به شکل زیر اجرا کنیم :
یعنی به هر دلیلی تابع قبلی را فراخوان کنیم ، چه اتفاقی برای RAM سیستم بدلیل وجود متغیر های محلی میافته؟
آیا مجدداً براشون حافظه تخصیص میده و RAM را بیهوده اشغال میکنه و یا اینکه جایگزین قبلی ها میشه ؟؟؟
یک سوال برام پیش اومد گفتم اینجا مطرح کنم بهتره:
اگه 2 تا تابع داشته باشید (FunA , FunB) و از FunA بخواهیم FunB را فراخوان کنیم ، برای بازگشت از return استفاده میکنیم (یا اینکه تایع کاملاً اجرا بشه)؛ مثل:
کد:
void FunA (void) { uint8_t A; uint8_t B; .... FunB(); .... } void FunB (void) { uint8_t D; uint8_t E; ... return; }
کد:
void FunA (void) { uint8_t A; uint8_t B; .... FunB(); .... } void FunB (void) { uint8_t D; uint8_t E; ... FunA(); }
آیا مجدداً براشون حافظه تخصیص میده و RAM را بیهوده اشغال میکنه و یا اینکه جایگزین قبلی ها میشه ؟؟؟
دیدگاه