سي (لونڭاج)

**لونڭاج سي** () هوّا لونڭاج د التخدام لعام لي ختارعو عالم لانفورماتيك دينيس ريتشي ف السبعينات د لقرن 20. هاد اللونڭاج باقي مخدم بزاف ل حد الساعة، و كان و مزال عندو تأتير كبير ف لمجال ديال لبرماجة.

اللونڭاج سي مخدم ف لكتابة ديال لكوض سورس د پروڭرامات بحال السيستيمات د التشغيل، درايڤرات، و سطاك د پروطوكول (تطبيق ديال پروطوكول د الريزو لمعلوماتي). كاينين أپليكاصيونات مكتوبين ب سي، ولاكين هاد التخدام ولّا قل من قبل، حيت أغلبية د لموبرميجين كيفضّلو يخدمو ب لونڭاجات خرة بحال جاڤا ؤلا پايثون، ف التطبيقات لي ماكاتطّلبش تدبير دقيق ديال لميموار، و كاتكون لحساسية د مدة لبرماجة و الصيانة د لپروڭرام عندها أهمية كبر من السرعة د التنفيد ديالو. بزاف ديال لمودولات د لونڭاجات بحال پايثون كيتكتبو ب سّي (متلاً نامپاي ديال لحساب د لماطريسات)، باش تطلع لفعّالية ديال لپروڭرام لي مكتوب بيهوم.

هاد اللونڭاج تسمّا "سي" ، حيت جا باش يخلف لونڭاج بي ، و طوّرو دينيس ريتشي فاش كان خدام ف مختبرات بيل، مابين 1972 و 1973، باش يصاوب پروڭرامات ديال الصيانة ف سيستيم ؤنيكس.

ف 2023، لونڭاج سّي مكلاصي التاني ف لانديكس د تيوبي  ديال اللونڭاجات لي مطلوبة بزاف، مورا پايثون، و قبل من سي++ لي مبني عليه.

## نضرة عامة
سّي كيتّعتابر لونڭاج أمري ب لپروصيات. و تّبنا على الساس ديال ألڭول (فاميلة د اللونڭاجات لي بانو ف اللخر د لخمسينات). عندو سيستيم د التيپاج تابت (عكس پايثون متلاً لي خدام ب سيستيم ديناميكي، بحيت التيپاج ديال شي پاراميطر كيقدر يتبدّل على حساب شنو كيدير بيه لپروڭرام). لكوض ديال السي لي كيكون قابل ل التنفيد، كيكون ديما وسط فونكسيونات. لپاراميطرات ديال لفونكسيونات كيدوزو ف لعادة ب لقيمة ديالهوم ، ولاكين ف لحالة ديال الليستات  كيتدوّزو ب پوانتور  لي كاتكون فيه لادريسة ف لميموار ديال لقيمة اللولة ف الليستة. فاش كايتدوّز شي پاراميطر ف فونكسيون ب پوانتور كانڭولو بلي دوّزناه ب لإحالة  ؤلا .

لكوض سورس ديال سّي كيكون ب ب فورما حر، يعني يقدر لواحد يكتب لكوض كاملو ف سطر واحد طويل يلا بغا، ؤلا يفرّقو على بزاف د السطورا. كلا تعليمة ضروري تّسالا ب فاصيلة منقوطة، و كلا بلوك ديال التعليمات كيكون مجموع ب معقوفات.

اللونڭاج سي كيتميّز ب هاد لمزيات ؤلا لعناصر:
* كلمات خاصة بحال `[[شرطية (برماجة)|if/else]]`، `[[بوكل فور|for]]`، `[[بوكل دو وايل|do while]]`، `[[بوكل وايل|while]]`، `[[تعليمة سويتش|switch]]`، و غيرها. لپروڭرامور فاش يسمّي لپاراميطرات ديالو خاصو يحضي باش مايخدّمش هاد لكلمات لخاصة، حيت غادي تعطي غالبا شي غالاط ف لپروڭرام.
* رموز د لحساب بحال 
* پاراميطرات ؤلا متغيرات لي كاتكون كلا وحدة منها عندها سمية وحيدة، و تيپاج محدّد.
* تيپاج لي كيحدد نوع الداطا لي كاتكون ف شي پاراميطر متلاً. بحال `int` ب النسبة ل لأعداد الطبيعية، `char` ب النسبة ل كاراكطير...
* فونكسيونات:
** لفونكسيون لي كاتدير شي عملية بلا ماترد تا شي قيمة كاتكون ف لعادة مسبوقة ب لكلمة لخاصة `void`. ف هاد لحالة كاتسمّى "پروصي" .
** لفونكسيون لي كاترد شي قيمة كاتكون مسبوقة ب لكلمة لخاصة ديال التيپاج ديال الداطا لي كاترد. متلا شي فونكسيون سميتها `calculate` كاترد عدد طبيعي غادي تّكتب ب هاد الشكل 
```c
int calculate(){}
```

** يلا فونكسيون عندها پاراميطرات د لإنپوت، كيخصهوم يتكتبو بين جوج قواس ديال لفونكسيون ب التيپاج ديالهوم، متلاً شي فونكسيون كاتدير لجمع ديال جوج أعداد طبيعية سميتها `add` غادي تّديكلارا ب هاد الشكل 
```c
int add(int a, int b){}
```

** لفونكسيون تقدر تعيّط ل راسها، هاد لبلان كيتسمّى الترياص .
** يلا تعرّف شي پاراميطر وسط لفونكسيون، كيكون لمدا  ديالو غير وسط ديك لفونكسيون. يعني يلا تعيّط ل داك لپاراميطر ب سميتو برا لفونكسيون إما لكومپيلاتور كيعطي غالاط، ؤلا كاتخدّم قيمة خرة ديال شي پاراميطر عندو نفس السمية برا لفونكسيون.

## ميتال ديال پروڭرام
هادا پروڭرام بسيط ب لونڭاج سي كيطبع "hello, world" فوق الشاشة:

```c
#include <stdio.h>

int main(void)
{
    printf("hello, world\n");
}
```


## مصادر


تصنيف:لونڭاج
تصنيف:مقالات فيها مصدر و 3000 بايت