العلامات (الحروف الخاصة) Punctuators("[]","( )","{ }",",",";",":","*","=","#') :
العلامات (الحروف الخاصة) لمترجم الميكروسى برو ( تسمى أيضا "الفواصل") هى :
كود:
("[]","( )","{ }",",",";",":","*","=","#'
معظم هذه العلامات تقوم أيضا بوظيفة العوامل operators .
الأقواس "[ ]" :
تشير الأقواس "[ ]" إلى المشاركة فى مصفوفة أحادية البعد أو متعددة الأبعاد :
كود:
char ch, str[] = "mikro";
int mat[3][4]; /* 3 x 4 matrix */
ch = str[3]; /* 4th element */
الأقواس "( )" :
تستخدم الأقواس "( )" فى تجميع عبارات , وفى عزل العبارات الشرطية وتشير إلى إستدعاءات الدالة وإلى بارامترات الدالة :
كود:
d = c * (a + b); /* override normal precedence */
if (d == z) ++x; /* essential with conditional statement */
func(); /* function call, no args */
void func2(int n); /* function declaration with parameters */
الأقواس "{ }" :
تشير الأقواس "{ }" إلى بداية ونهاية عبارة مركبة :
كود:
if (d == z) {
++x;
func();
}
قوس الإغلاق "}" يقوم بإنهاء العبارة المركبة , لذلك فإن الفاصلة المنقوطة ";" لا حاجة لها بعد قوس الإلاق "}" , إلا عند إعلان الهياكل . فى بعض الأحيان تكون النقطة المنقوطة غير قانونية (جائزة) كما فى المثال التالى :
كود:
if (statement)
{ ... }; /* illegal semicolon! */
else
{ ... };
الفاصلة "," :
الفاصلة "," تفصل العناصر فى قائمة بارامترات (أدلة) الدالة :
كود:
void func(int n, float f, char ch);
تستخدم الفاصلة أيضا كمعامل فى "عبارات الفاصلة" . من الجائز الجمع بين الاستخدامين , لكن يجب عليك استخدام أقواس لتميزهما :
كود:
func(i, j); /* call func with two args */
func((exp1, exp2), (exp3, exp4, exp5)); /* also calls func with two args! */
الفاصلة المنقوطة ";" :
الفاصلة المنقوطة ";" هى علامة إنتهاء العبارة . يتم تفسير (نرجمة) أى عبارة قانونية بلغة السى ( بما فى ذلك العبارة الفارغة) متبوعة بفاصلة منقوطة كتعبير statement أو عبارة تعبير . يتم تقييم العبارة مع تجاهل قيمتها . إذا كان تعبير العبارة ليس له آثار جانبية , فإن مترجم الميكروسى برو قد يتجاهله .
كود:
a + b; /* Evaluate a + b, but discard value */
++a; /* Side effect on a, but discard value of ++a */
; /* Empty expression, or a null statement */
أحيانا يتم استخدام الفاصلة المنقوطة لإنشاء عبارة فارغة :
كود:
for (i = 0; i < n; i++);
النقطتان ":" :
تستخدم النقطتان ":" للإشارة إلى عبارة عنوان labeled statement :
كود:
start: x = 0;
...
goto start;
علامة النجمة "*" ( إعلان المؤشر) :
علامة النجمة "*" فى تعريف متغير يدل على إنشاء مؤشر pointer إلى لنوع :
كود:
char *char_ptr; /* a pointer to char is declared */
يمكنك أيضا استخدام علامة النجمة كعامل operator لأى من إلغاء مرجعية المؤشر أو كعامل ضرب :
كود:
i = *int_ptr;
a = b * 3.14;
علامة التساوى "=" :
علاومة التساوى "=" تفصل بين تعريفات المتغيرات وقوائم التهيئة :
كود:
int test[5] = { 1, 2, 3, 4, 5 };
int x = 5;
علامة التساوى تستخدم أيضا كعامل تخصيص (تعيين) assignment فى العبارات :
رمز الجنيه "#" ( توجيه قبل المعالج) :
رمز الجنيه "#" يشير إلى التوجيه قبل المعالج عندما يوجد كأول حرف غير فارغ بالسطر . وهو يدل على عمل للمترجم , وليس بالضرورة يكون مرتبطا بتوليد الكود .