Define# در آردوینو
define# یکی از اجزای مفید زبان c است. define# به برنامهنویس این امکان را میدهد که قبل از کامپایل کردن برنامه، به یک مقدار ثابت، نامی را اختصاص دهد. ثابتهایی که با استفاده از define# تعریف میشوند، هیچ فضایی از حافظهی برنامهی روی چیپ را اشغال نمیکنند. کامپایلر در زمان کامپایل، مقدار تعریفشده را به این ثابتها اختصاص خواهد داد. اما این تعریف عوارض جانبی ناخواستهای هم میتواند داشته باشد. بهعنوانمثال اگر اسمی که قبلاً به یک ثابت از نوع define# دادهایم را در نام ثابت یا متغیری دیگر بیاوریم (در نام متغیر یا ثابت، این متنِ اسم نیز آمده باشد)، بهجای این اسم، مقدارِ (عددی یا متنی) تعریفشده در ثابتِ define# قرار خواهد گرفت. بهطورکلی تعریف ثابتها با استفاده از const ارجحیت دارد و بهتر است بهجای define# از const استفاده شود. define# در آردوینو سینتکسی مشابه define# در زبان سی دارد:
سینتکس(نحو):
#define مقدار نامثابت #define constantName value
توجه کنید که نوشتن # الزامی است. مثال:
#define ledPin 3 // The compiler will replace any mention of ledPin with the value 3 at compile time. //کامپایلر در زمان کامپایل هرجا ال ای دی پین را ببیند، به جای آن مقدار سه را قرار میدهد.
نکته: پس از define نیازی به استفاده از سمیکولن نیست و اگر قرار بدهید، خطای کامپایلری نامفهومی در ادامه رخ خواهد داد.
#define ledPin 3; // this is an error //این نوع نوشتن ارور دارد.
و همچنین قرار دادن علامت مساوی در عبارت define نیز باعث ارورهای نامعلوم خواهد شد.
#define ledPin = 3 // this is also an error //این نیز یک ارور است.