پاسخ : استفاده از عملگر های New و Delete در میکروکنترلر ها؟
نوشته اصلی توسط ASHIT AXAR
این عملگر ها توی زبان C++ هستن. (در مبحث شی گرایی)
زبان سی از شی گرایی پشتیبانی نمی کنه.
زبان آردوینو فکر کنم سی پلاس پلاس باشه. (البته برای بعضی کامپایلر ها احتمالش هست که همه ی ویژگی های زبان پشتیبانی نشه).
زبان آردوینو ؟>>> فک کنم بگیم کامپایلر(یا کلمه بهتر ide) آردوینو از ++c استفاده میکنه بهتر باشه تا بگیم آردوینو از ++c استفاده میکنه.....
درست میگم دیگه؟/یا اشتباه میگم؟ :question:
چون فک نکنم نوع زبون به میکروکنترلر بستگی داشته باشه....چون شما هر کدی که داشته باشید در نهایت به زبون ماشین تبدیل میشه...حالا کدتون C باشه c++ ّاشه basic باشه و....
بگذریم حاشیه نریم
این عملگر ها توی زبان C++ هستن. (در مبحث شی گرایی)
زبان سی از شی گرایی پشتیبانی نمی کنه.
حرفتون صحیح، و تو کامپایلر کدویژن نمیتونیم ازش استفاده کنیم
ولی چیزی که تو این دو عملگر هستش اینه که نیاز داره که حافظه ای باشه که به جایی تخصیص نداده شده باشه(آزاد باشه و متعلق به جایی نباشه)
آیا میکرو کنترلر ها یا میکرو پروسسور ها همچین قابلیتی دارن؟ اگه داشته باشن پس میتونیم از new و delete آستفاده کنیم؟
نظرتون چیه؟ آیا اصلا حرفم درسته؟
پاسخ : استفاده از عملگر های New و Delete در میکروکنتر
نوشته اصلی توسط md3848
زبان آردوینو ؟>>> فک کنم بگیم کامپایلر(یا کلمه بهتر ide) آردوینو از ++c استفاده میکنه بهتر باشه تا بگیم آردوینو از ++c استفاده میکنه.....
درست میگم دیگه؟/یا اشتباه میگم؟ :question:
چون فک نکنم نوع زبون به میکروکنترلر بستگی داشته باشه....چون شما هر کدی که داشته باشید در نهایت به زبون ماشین تبدیل میشه...حالا کدتون C باشه c++ ّاشه basic باشه و....
بگذریم حاشیه نریم
حرفتون صحیح، و تو کامپایلر کدویژن نمیتونیم ازش استفاده کنیم
ولی چیزی که تو این دو عملگر هستش اینه که نیاز داره که حافظه ای باشه که به جایی تخصیص نداده شده باشه(آزاد باشه و متعلق به جایی نباشه)
آیا میکرو کنترلر ها یا میکرو پروسسور ها همچین قابلیتی دارن؟ اگه داشته باشن پس میتونیم از new و delete آستفاده کنیم؟
نظرتون چیه؟ آیا اصلا حرفم درسته؟
بله البته.
برای اینکه بررسی کنیم که یک متغیر تخصیص یافته یا نه کافیه آدرس اون رو بررسی کنیم. اگه ایجاد یک متغیر موفق آمیز باشه آدرس اون غیر صفر خواهد بود
اگه برنامه موفق به تخصیص حافظه نشه آدرس صفر رو برمیگردونه.
البته معمولا هیچ کس بررسی نمیکنه. مگه اینکه کاربرد حساسی باشه. یا گاهی آرایه ها رو مخصوصا اگه آرایه ی بزرگی باشه بررسی میکنن.
[code=c]
#define SIZE 20
char array[SIZE];
if(array == 0){
// there is an error
}
[/code]
البته بیشترین کاربردش توی همون ساختارها و آرایه های پویا هستش. که چون در زمان اجرا نسبت داده میشن و از قبل کامپایلر هیچ اطلاعی از اندازه یا گستردگی متغیر/ساختار/... نداره و نمی تونه اخطاری بده باید به این روش بررسی بشن تا مطمئن بشیم که متغیر ایجاد شده.
دیدگاه