(۱۷ بهمن ۱۳۹۳ ۰۴:۴۷ ب.ظ)amir2085 نوشته شده توسط: اونجا گفتم، اینجا هم میگم
ایستا و پویا
همین که سوال در مورد زبان C بود خودش یه قضیه بود، چون فکر نمیکنم c از حوزه پویا پشتیبانی کنه
بعدش توی main متغییر c دوباره ایجاد نمی شد بلکه مقدار گلوبالش از ۳ میشد ۴
پس حوزه ایستا میشد ۱۲۴
و تنها گزینه ای که اینو داشت حوزه پویاش هم ۱۲۴ بود
نظرتون چیه؟
(۱۷ بهمن ۱۳۹۳ ۰۴:۳۲ ب.ظ)freidoony نوشته شده توسط: اون setjmp و longjmp توی C هم برا مدیریت Exception ها بود
من زدم اکسپشن
ولی همین الان فهمیدم، توی مبحث بعدیش بوده، یعنی همروال ها :|
این دستورات هم برای اکسپشن ها کاربرد داره هم کوروتین ها.اینم توضیح انگلیسی:
Error handling
Suppose there is an error deep down in a function nested in many other functions and error handling makes sense only in the top level function.
It would be very tedious and awkward if all the functions in between had to return normally and evaluate return values or a global error variable to determine that further processing doesn't make sense or even would be bad.
That's a situation where setjmp/longjmp makes sense. Those situations are similar to situation where exception in other langages (C++, Java) make sense.
Coroutines
Besides error handling, I can think also of another situation where you need setjmp/longjmp in C:
It is the case when you need to implement coroutines.
(۱۷ بهمن ۱۳۹۳ ۰۷:۰۵ ب.ظ)sntbrz نوشته شده توسط: (17 بهمن ۱۳۹۳ ۰۴:۴۷ ب.ظ)amir2085 نوشته شده توسط: اونجا گفتم، اینجا هم میگم
ایستا و پویا
همین که سوال در مورد زبان C بود خودش یه قضیه بود، چون فکر نمیکنم c از حوزه پویا پشتیبانی کنه
بعدش توی main متغییر c دوباره ایجاد نمی شد بلکه مقدار گلوبالش از ۳ میشد ۴
پس حوزه ایستا میشد ۱۲۴
و تنها گزینه ای که اینو داشت حوزه پویاش هم ۱۲۴ بود
نظرتون چیه؟
(۱۷ بهمن ۱۳۹۳ ۰۴:۳۲ ب.ظ)freidoony نوشته شده توسط: اون setjmp و longjmp توی C هم برا مدیریت Exception ها بود
من زدم اکسپشن
ولی همین الان فهمیدم، توی مبحث بعدیش بوده، یعنی همروال ها :|
این دستورات هم برای اکسپشن ها کاربرد داره هم کوروتین ها.اینم توضیح انگلیسی:
Error handling
Suppose there is an error deep down in a function nested in many other functions and error handling makes sense only in the top level function.
It would be very tedious and awkward if all the functions in between had to return normally and evaluate return values or a global error variable to determine that further processing doesn't make sense or even would be bad.
That's a situation where setjmp/longjmp makes sense. Those situations are similar to situation where exception in other langages (C++, Java) make sense.
Coroutines
Besides error handling, I can think also of another situation where you need setjmp/longjmp in C:
It is the case when you need to implement coroutines.
دقیقا گفته برای شبیه سازی exception ها که تو زبان های c++ و جاوا وجود دارن.
واقعا طراح عقده ای بوده.۱ سوال لیسپ،۱ سوال ML یه سوال تخصصی C. مگه میشه؟!!مریضه یارو جدا!