LexiconShiftInnovations/SinhalaWikipediaArticles huggingface dataset:
වර්තමානය වන විට එය C භාෂාවේ මව් කුලකයක් (superset) ලෙස පවතී.[8]C භාෂාව සඳහා නිල ප්‍රමිතියක් තිබීමට ප්‍රථම ඩෙනිස් රිචී සහ බ්‍රයන් කර්නගෙන් විසින් රචිත අවිධිමත් පිරිවිතරක් මත බොහෝ භාවිතාකරන්නන් සහ ක්‍රියාවටනංවන්නන් විශ්වසය තබා තිබින. එම පිරිවිතර “K&R” C ලෙස හඳුන්වන ලදි. 1989 දී ඇමරිකානු ජාතික ප්‍රමිති ආයතනය C භාෂාව සඳහා ප්‍රමිතියක් ප්‍රකාශයට පත් කල අතර එය “ANSI C” හෝ C89 ලෙස හැඳින්වේ. ඉනික්බිති වර්ෂයේදී එම පිරිවිතරම ප්‍රමිතිකරණය සඳහා වන ජාත්‍යන්තර ආයතනය (ISO) අන්තර්ජාතික ප්‍රමිතියක් ලෙස (ව්‍යවහාරයේදී C90) ප්‍රකාශයට පත් කරන ලදි. 1995 දී ISO ව විසින් පසුව එම ප්‍රමිතියේ අන්තර්ජාතික සහයෝගීතවය උදෙසා තවත් දිගුවක් නිකුත් කරන ලදි. මෙම ප්‍රමිතිය 1999 දී සංශෝධනය කරන ලදි (ව්‍යවහාරයේදී C99). වර්ථමානයේදී භාවිතා කරන්නේ 2011 දෙසැම්බරයේ සම්මත කරන ලද C11 නම් ප්‍රමිතියයි.සැලැස්මC යනු විධානත්මක (පටිපාටිගත / procedural) භාෂාවකි. එය සැළසුම් කර ඇත්තේ එහි භාෂා පරිවර්තන කාර්යය සාපේක්ෂ වශයෙන් සරලව සිදුවීමටත්, පහළ මට්ටමේ (දෘඩාංග මට්ටමේ) පරිගණක මතක භාවිතයක් ලබාදීමටත්, කාර්යක්ෂමව වැඩසටහන් අන්තර්ගතයන
් යාන්ත්‍රික භාෂාවේ උපදෙස් සමඟ ඈඳීමට හැකිවන පරිදිත් සහ අඩු ධාවන කාලයකින් වැඩසටහන් ක්‍රීයාත්මක වන පරිදිත් වේ. එහෙයින් C භාෂාව, පෙරාතුව assembly භාෂාවෙන් කේතනය කරන ලද පද්ධති වැඩසටහන් වැනි වැඩසටහන් සඳහා ප්‍රයෝජනවත් වේ. දෘඩාංග මට්ටමේ වැඩසටහන්කරණ හැකියාවන් තිබියදීත් මෙම භාෂාව cross-platform වැඩසටහන්කරණය කිරීමට හැකිවන පරිදිද නිර්මාණය කර ඇත. ප්‍රමිතීන්ට අනුකූලව හා පද්ධතියෙන් පද්ධතියට ගෙනයාමේ අදහසින් ලියන ලද C වැඩසටහන් විවිධ වෙනස්කම් සහිත මූලික තලයන් (platform) හා මෙහෙයුම් පද්ධති ඉතා ඉහළ පරාසයක් සඳහා ප්‍රභව කේතයේ සුළු වෙනස්කම් සිදුකිරීම මඟින් පරිවර්තනය කල හැක. මෙම භාෂාව පරිපත තුල එබ්බවූ ක්ෂුද්‍ර පාලක (embedded microcontrollers) සිට සුපිරි පරිගණක දක්වා වූ ඉතා ඉහළ පරාසයක මූලික තලයන් (platform) රැසක් සඳහා භාවිතා කල හැකිය.ලක්ෂණALGOL සම්ප්‍රදායට අයිති බොහෝ විධානාත්මක භාෂා වල මෙන් C භාෂාවේද ස්තිථික type පද්ධති බොහෝ අදහස් නොකරන ලද කාරකයන් වලක්වද්දීත් ව්‍යුහාතමක වැඩසටහන්කරණය සහ lexical විචල්‍යය කාණ්ඩ හා සහානුයාත (recursion) දැකිය හැක. C භාෂාවේදී සියලුම ක්‍රියාත්මක වන කේතයන් වෙන වෙනම හඳුන
්වා දෙන ලද මාර්ග (subroutines) තුල පවතී. එම කොටස්  “කාර්යයන්”  (functions) ලෙස හඳුන්වන අතර ඒවා කෘත්‍යාත්මක වැඩසටහන්කරණයේ (functional programming) දැක්වෙන කාර්යයන් තරම් දැඩි අදහසක් නොදරයි. කාර්යයන් සඳහා වන පරාමිතීන් සෑමවිටම අගයන් මඟින් ලබාදීම සිදුකරයි. සමුද්දේශ භාවිතයෙන් වන පරාමිතික ලබාදීම් (pass­by­reference) සූචක (pointers) අගයන් භාවිතයෙන් සිදුකරයි.C භාෂාව පහත දැක්වෙන ලක්ෂණ වලින් සමන්විත වේ.මූලික ගැලීම් පාලකයන් වන for, if/else, while, switch, සහ do/while යන ඒවාත් ඇතුලත්ව මුලපද (keywords) නිශ්චිත කුඩා ප්‍රමාණයක් පවතී. මූලිකව එක් නාම අවකාශයක් (namespace) පමණක් ඇති අතර භාවිතා කරන්නන් සාදන ලද නාම කිසිම අයුරකින් පවතින මුලපද වලට සමාන නොවිය යුතුය+, +=, ++, &, ~ වැනි ගණිතමය හා තාර්කික කාරකයන් විශාල ප්‍රමාණයක් පවතී.එක් වගන්තියක් තුලදී ආදේශයන් එකකට වඩා වැඩි ගණනක් සිදුකල හැක.කාර්යයන් මඟින් පිටතට නිකුත් කරන අගයන් අනවශ්‍යය අවස්තා වලදී නොසලකා හැරිය හැක. එනම් එම අගයන් භාවිතා කිරීම අනිවාර්යය නොවේ.ස්තිථික, අඩු වශයෙන් බලාත්මක වර්ගයන් (typing) පවතී. එනම් සියලුම දත්ත වලට දත්ත වර්ගයක් පවතින අතර අවශ
්‍යය අවස්තා වලදී වර්ගය මාරු කොට භාවිතා කල හැක. උදාහරණයක් ලෙස අකුරක් සංඛ්‍යාවක් ලෙස භාවිතා කල හැකිය.ආකෘතීන් අර්ථ දැක්වීම පහසුය. එනම් අර්ථ දැක්වීමක් ඉදිරිපස “define” යනුවෙන් මුලපදයක් නොයොදයි. තවද කාර්යයක් අර්ථ දැක්වීමේදී “function” යනුවෙන් මුලපදයක් නොයොදන අතර කාර්යයන් පරාමිතීන් සමූහය දැක්වීමට භාවිතාකරන වරහන් මඟින් හඳුනාගනු ලබයි.භාවිතා කරන්නන් මඟින් හඳුන්වා දෙනු ලබන වර්ගයන් (typedef) සහ සංයුක්ත වර්ගයන් භාවිතා කිරීමට හැකිය.විෂමජාතීය සමූහ දත්ත වර්ග (struct) භාවිතා කල හැකි අතර එලෙස සකස් කරන ලද දත්තයන් ඒකක ලෙස භාවිතා කිරීම සිදු කරයි.ආරාවන් අංකනය කිරීම සූචක ගණිතයේ සඳහන් වන පරිදි සිදුවන ද්විතීයක අංකනයකි. විෂම ජාතීය සමූහ දත්ත වර්ග මෙන් නොව ආරාවන් මූලික වස්තූන් (fist-class objects) ගණයට අයත් නොවේ. එනම් ඒවා භාවිතා කිරීම හෝ ඒවාට ආදේශ කිරීම තනි නිර්මිත කාරකයක් (built-in operator) භාවිතයෙන් සිදු කල නොහැක. අර්ථ දැක්වීමේදී Array යනුවෙන් මුලපදයක් භාවිතා නොකරන අතර කොටු වරහන මඟින් ආකෘතීමය වශයෙන් ආරවක් දක්වනු ලබයි. උදා. month[11]Enumerated වර්ගයන් භාවිතා කල හැකි අතර එය enum මුලපදය මඟින් අර්ථ දක්වයි. ඒ
වා නිඛිල සමඟ අන්තර් පරිවර්තනය සිදුකල හැකි පරිදි නිදහස්ව පවතී.String යනුවෙන් වෙනම දත්ත වර්ගයක් නොමැති නමුත් එය ශුන්‍යය අකුරකින් අවසන් වන අකුරු ආරාවක් මඟින් නිරූපණය කල හැක.දෘඩාංග මට්ටමේ පරිගණය මතක භාවිතය පරිගණය මතකයේ යාන්ත්‍රික ලිපින, සූචක මඟින් පරිහරණය කල හැකි වන පරිදි පරිවර්තනය කිරීම තුලින් සිදුකරයි.කාර්යය පටිපාටි (procedures) එනම් අගයන් භාහිරට නිකුත් නොකරන කාර්යයන් void නිකුතු වර්ගය භාවිතයෙන් අර්ථ දක්වයි. void යනු untyped නිකුතු වර්ගයකි. එනම් වර්ගයක් නොමැති නිකුතු වර්ගයකි.කාර්යයන් වෙනත් කාර්යයන්ට අයත් lexical පරාසය  තුල අර්ථ දැක්වීම සිදුකල නොහැක.පෙර සැකසුම් මඟින් macro අර්ථ දැක්වීම (defines), භාහිර කේත ගොනු ඈදීම (includes) සහ තාර්කික පරිවර්තනයන් (if def) සිදුකිරීම යන දෑ සිදුකරයි.මූලික මොඩියුල භාවිත ආකාරයන්: static සහ extern ගුණාංග භාවිතයෙන් කේත ගොනු වෙනම පරිවර්තනය කර C වැඩසටහන් සමඟ ඈදිය හැකිය. එවිට ඒවායේ අන්තර්ගත කාර්යයන් සහ දත්ත වස්තූන් වැඩසටහන තුල භාවිතා කල හැකි වේ.ආදාන / ප්‍රතිදාන, අකුරු සමූහ භාවිතය, සහ ගණිතමය ශ්‍රිත වැනි සංකීර්ණ ක්‍රියාවන් C භාෂාව තුල ඇති කලින් ලියන ලද කේතය
න් හෝ භාහිරින් ලබා ගත් එවැනි කේතයන් භාවිතයෙන් සිදුකරනු ලබයි.C භාෂාව තුල පරිගණක වැඩසටහන්කරණයට අලුතින් එක් වූ වස්තු මූලික වැඩසටහන්කරණ සංකල්පයන් (OOP Concepts) වැනි නූතන ඉහල මට්ටමේ භාෂාවන් වල ඇති ගුණාංග සමහරක් අන්තර්ගත නොවේ.ඉතිහාසයමුල් ප්‍රවර්ධනයන්Ken Thompson and Dennis Ritchie, developers of the C programming language.C භාෂාවේ ආරම්භක ප්‍රවර්ධනයන් 1969 – 1973 අතර කාලයේ දී AT&T බෙල් පර්යේෂණාගරයේදී සිදුවිය[2]. 1975 වර්ෂය මෙම ප්‍රවර්ධනයන්ගේ වඩාත්ම නිර්මාණශීලී අවධිය ලෙස රිචී විසින් හඳුන්වයි. මෙම භාෂාව C නමින් හැඳින්වූයේ එහි ගුණාංග B නම් වූ පෙර පැවති භාෂාවකින් සම්භවය ලබා ඇති නිසාවෙනි. කෙන් තොම්සන් ට අනූව නම් C භාෂාව BCPL පරිගණක භාෂාවේ ලඝු කොට තැනූ සංස්කරණයකි.තම සගයන් කිහිප දෙනුකුගේද අදහස් මත PDP-7 මත ක්‍රියාත්මක වූ assembly භාෂාවෙන් ලියන ලද Unix මෙහෙයුම් පද්දතියේ ප්‍රවර්ධනයන් සමඟ C භාෂාවේ සම්භවය තදින් බැඳී තිබිනි. අවස්ථානුකූලව ඔවුන් මෙහෙයුම් පද්ධතිය PDP-11 මතට ගෙන යන ලදි. මතකය බයිට් කොටස් වශයෙන් භාවිතා කිරීමට නොහැකි වීම වැනි PDP-11 හි පැවති සමහර වාසිසහගත ගුණාංග භාවි
තා කිරීමට B භාෂාවට නොහැකි වූ බැවින් C භාෂාවේ මුල්ම සංස්කරණයන් ප්‍රවර්ධනය කිරීමට තීරණය කෙරින.Unix මෙහෙයුම් පද්ධතියේ නියම PDP-11 සංස්කරණය assembly භාෂාව භාවිතයෙන් සිදු විය. 1973 දී struct වර්ගයන් C භාෂාවට එකතු වීමත් සමඟ Unix කර්නලය නැවත C භාෂාවෙන් ලිවීමට තරම් භාෂාව ප්‍රභල විය. මෙය ලොව මුල්ම assembly නොවූ පරිගණක භාෂාවක් භාවිතා කොට සකස් කරනු ලැබූ මෙහෙයුම් පද්ධති කර්නලය වේ.[9]K&R C1978 දී බ්‍රයන් කර්නගාන් සහ ඩෙනිස් රිචී දෙදෙනා විසින් The C Programming Language[3] නම් ග්‍රන්ථය මුල්ම සංස්කරණය ප්‍රකාශයට පත් කරන ලදි. පරිගණය වැඩසටහන්කරුවන් අතර K&R නමින් ප්‍රචලිත වූ මෙය බොහෝ කලක් යන තෙක්ම C භාෂාව සඳහා වූ අවිධිමත් පිරිවිතරක් ලෙස භාවිතා කර ඇත. මෙම ග්‍රන්ථයේ සඳහන් වන C සංස්කරණය K&R C ලෙස සාමන්‍ය ව්‍යවහාරයේ දී හැඳින්වේ. මෙහි දෙවන සංස්කරණය[10] ANSI C ප්‍රමිතීන් ආවරණය වන පරිදි රචනා කර ඇත.ANSI C සහ ISO Cප්‍රධාන ලිපිය: :en:ANSI C1970 සහ 1980 අග භාගයන් වලදී mainframe පරිගණක, mini පරිගණක සහ IBM PC ද ඇතුළු ක්ෂුද්‍ර පරිගණක සඳහා වූ ඉල්ලුම ඉහල ගිය අතර ඉහල පරාසයක වෙනස්කම් සහිත එම පරි
ගණක සඳහා ද C භාෂාවේ සංස්කරණයක් නිර්මාණය කරන ලදි.1983 දී C සඳහා ප්‍රමිති පිරිවිතරක් පිහිටු වීමට X3J11 නමින් කමිටුවක් ඇමරිකානු ජාතික ප්‍රමිති ආයතනය විසින් පත් කලේය. කමිටුව මඟින් Unix නිර්මිතයන් සඳහා භාවිතා කල C භාෂාව සඳහා ප්‍රමිතියක් නිර්මාණය කලේය . එසේ වුවත් Unix හි C පුස්ථකාලයේ අඩංගු විවිධ පද්ධතීන් සමඟ ඈඳිය නොහැකි කොටස 1003 IEEE සේවා කාණ්ඩයට භාර දෙන ලදි. එහි අරමුණ වූයේ 1988 POSIX ප්‍රමිතීන් නිර්මාණය කිරීමයි. 1989 දී ANSI X3.159-1989 “C පරිගණක භාෂාව” නමින් C ප්‍රමිතිය ස්ථීර කරන ලදි. C භාෂාවේ මෙම සංස්කරණය ANSI C, ප්‍රමිතිකරණය කල C හෝ සාමන්‍ය ව්‍යවහාරයේ දී C89 ලෙසත් හඳුන්වයි.1990 දී ANSI C ප්‍රමිතිය ආකෘතිමය වෙනස්කම් සහිතව අන්තර්ජාතික ප්‍රමිති ආයතනය විසින් ප්‍රමිතිකරණය සඳහා ලබා ගන්නා ලදි. එය ISO/IEC 9899:1990 නමින් (සාමන්‍ය ව්‍යවහාරයේ දී C90) ප්‍රමිතිකරණය කරන ලදි. එහෙයින් C89 හා C90 එකම පරිගණක භෂාවක් සඳහා භාවිතා වූ ප්‍රමිතීන් වේ.C99ප්‍රධාන ලිපිය: :en:C99ANSI/ISO ප්‍රමිතිකරණ ක්‍රියාවලියෙන් පසුව වසර ගණනාවක් C භාෂා පිරිවිතර සාපේක්ෂව ස්ථීර ලෙස පැවතුනි. 1995 දී ප්‍රමිතියේ පවතින
සමහර කරුණු නිවැරදි කිරීමටත් ජාත්‍යන්තර අක්ෂර මාලාවට වැඩි දායකත්වයක් ලබා දීමටත් C90 සඳහා පළමු ප්‍රමාණික සංශෝධනය (Normative Amendment 1) සිදුවිය. එය තවදුරටත් 1990 අග භාගයේ දී සංශෝධනය වී ISO/IEC 9899:1999 ලෙස ප්‍රකාශයට පත් කරන ලදි. එම ප්‍රමිතිය සාමන්‍ය ව්‍යවහාරයේ දී "C99" ලෙස හැඳින්වේ. Technical Corrigenda මඟින් එය ද මේ වන විට තුන් වරක් නැවත සංශෝධනය වී ඇත.[11]C11ප්‍රධාන ලිපිය: :en:C11 (C standard revision)2007 දී C භාෂාවේ තවත් සංස්කරණයක් සිදුකිරීම සඳහා කටයුතු ආරම්බ කෙරින. නිල වශයෙන් 2011-12-08 වනදා ප්‍රකාශයට පත් වීමට පෙර එය “C1X” ලෙස හැඳින්විය.  මෙහිදී C ප්‍රමිති කමිටුව දැනට පවත්නා නිර්මාණයන් තුල පරීක්ෂා කර නොමැති භාෂාවේ නව අංග භාවිතය සීමා කිරීමට කටයුතු කරන ලදි.පොදු වර්ගයේ macros (type generic macros), නිර්නාමික ආකෘතීන්, වැඩි දියුණු කල යුනිකෝඩ් භාවිතය, අණුක කාර්යයන් (atomic operations), සමාන්තරව ක්‍රියාත්මක කල හැකි ගැලීම් (multi-threading) සහ සීමා පරීක්ෂක ශ්‍රිත (bounds ­ checked functions) වැනි නව අංග ගණනාවක් C11 ප්‍රමිතියේදී C භාෂාවට හා එහි පුස්ථකාලයට එක් විය. තවද එය C++
පරිගණක භාෂාව සමඟ C භාෂාවේ ගැළපීමද වැඩි දියුණු කරන ලදි.Embedded Cප්‍රධාන ලිපිය: :en:Embedded Cඓතිහාසිකව, පරිපථ සඳහා වූ C වැඩසටහන්කරණය, ස්ථීර-ලක්ෂ්‍ය ගණිතය (fixed ­ point arithmetic), ප්‍රභින්න මතක ගබඩා එකකට වැඩි ගණනක් භාවිතය සහ මූලික ආදාන ප්‍රතිදාන කාර්යයන් වැනි ලක්ෂණ ලබා දීමට ප්‍රමිතිකරණය නොකල දිගු භාවිතා කරන ලදි.2008 දී C ප්‍රමිති කමිටුව, C භාෂාව වර්ධනය කරමින් තාක්ෂණික වාර්ථාවක් පළ කල අතර එමඟින් මෙම ගැටළු වලට විසඳුම් ලෙස සියළුම නිර්මාණයන් පිළිපැදිය යුතු පොදු ප්‍රමිතියක් හඳුන්වා දෙනු ලැබුවේය.[12] එහි ස්ථීර-ලක්ෂ්‍ය ගණිතය (fixed ­ point arithmetic), නාමික මතක අවකාශ සහ මූලික ආදාන ප්‍රතිදාන දෘඩංග භාවිතය වැනි සාමන්‍ය C භාෂාවේ නොමැති ලක්ෂණ ගණනාවක් අන්තර්ගත වේ.ආකෘතීන්ප්‍රධාන ලිපිය: C syntaxසංකේත මාලාවC භාෂාවේ කේතයන්හි භාවිතා වන අක්ෂර මාලාවට පහත අක්ෂර ඇතුළත් වේ.අක්ෂර: a–z, A–Z, _සංඛ්‍යාංක: 0–9විරාම ලක්ෂණ: ~ ! @ # % ^ & * ( ) - + = : ; " ' < > , . ? | / \ { } [ ]හිස් අවකාශ දැක්වීමට භාවිතා කරන අක්ෂර: space, horizontal tab, vertical tab, form feed, new
lineනව පේළියකට යොමු කිරීමේ අක්ෂරය අක්ෂර පේළියක අවසානය දක්වයි; එය තනි අක්ෂරයක් ම වීම අවශ්‍යය නොමැති අතර එකකට වැඩි අවස්ථා වලදී ඒ සියල්ලම C භාෂාව එකක් ලෙස සළකයි.අමතර බහු-බයිට් කේතාංකනය කරන ලද අක්ෂර භාවිතා කල හැකි වුවත් විවිධ පද්ධතීන් සමඟ භාවිතා කිරීමේදී ගැටළු මතු විය හැක. මෑතකදී ප්‍රකාශයට පති කරන ලද C11 ප්‍රමිතිය මඟින් බහු ජාතික යුනිකේත අක්ෂර භාවිතයට අවසර දී ඇති නමුත් \uDDDD  කේතාංකනය (DDDD මඟින් යුනිකේත අක්ෂර සඳහා පොදු භාවිතය දක්වයි උදා: \u4025) භාවිතයෙන් C කේතය පද්ධති අතර පහසුවෙන් භාවිතා කල හැකි පරිදි ලිවිය යුතුය. මෙම අංගය පුළුල්ව නිර්මාණය කර නැත.මූලික C ක්‍රියාත්මක කරවීමේ අක්ෂර මාලාවේ දී alert, backspase හා carriage return සඳහා නිරූපණ අක්ෂර සමඟ C භාෂාවේ භාවිතා කල අක්ෂර ම භාවිතා වේ.මුලපදC89 ප්‍රමිතියේ මුලපද (වෙන්කල විශේෂිත තේරුම් සහිත වචන) 32 ඇත.autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhileC99 ප්‍රමිතියේ
දී තවත් මුල පද 5 එකතු විය._Bool_Complex_ImaginaryinlinerestrictC11 ප්‍රමිතියේ දී තවත් මුල පද 7 එකතු විය.[13]_Alignas_Alignof_Atomic_Generic_Noreturn_Static_assert_Thread_localබොහෝමයක් අලුතින් එක් වූ මුලපද underscore සළකුණකට පසුව වූ ඉංග්‍රීසි කැපිටල් අක්ෂරයකින් පසුව ආරම්භ වේ. එයට හේතුව නම් එම ආකෘතීන් සහිත මුල පද කලින් භාෂාවේ නිර්මාණයන් සඳහා C ප්‍රමිති මඟින් වෙන්කර තිබීමයි. මේවා පවතින වැඩසටහනේ ප්‍රභව කේතයන්හි භාවිතා කිරීම කල නොහැකිව තිබූ නිසාම C භාෂා නිර්මාණයන් මඟින් වැඩසටහන්කරණ භාෂාවට මෙම දිගු වල සහභාගීත්වය ලබාදීම ආරම්භ කරන තුරු එමඟින් කිසිඳු බලපෑමක් නොවීය. සමහර සම්මත ශීර්ෂ (headers) මෙවැනි underscore සළකුණු සහිත පද සඳහා සුදුසු තුල්‍ය අර්ථදැක්වීම් (define) සිදුකරයි.කාරකයන්ප්‍රධාන ලිපිය: :en:Operators in C and C++C භාෂාව සතුව පොහොසත් කාරකයන් සමූහයක් පවතී. ඒවා සමහරක් ප්‍රකාශනයක් ක්‍රියාත්මක වීමේදී කුමන ආකාරයෙන් සංචාලන සිදුවිය යුතුද යන්නද නියම වශයෙන් සඳහන් කරයි. C භාෂාවේ කාරකයන් පහත පරිදි වේ.ගණිතමය: +, -, *, /, %:ආදේශක: =ආවර්ධක (au
gmented) ආදේශක: +=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>=බිට් සලකා සිදුකරන තර්කන: ~, &, |, ^බිට් සලකා සිදුකරන තල්ලු කිරීම්: <<, >>බූලියන් තර්කන: !, &&, ||තත්වයන් ඇගයීම: ? :සමානාත්මතාවය පරීක්ෂාකිරීම: ==, !=කාරයයන් ක්‍රියාත්මක කරවීම: ( )වැඩි කිරීම් සහ අඩු කිරීම්: ++, --සාමාජිකයින් තේරීම: ., ->වස්තු වල ප්‍රමාණය ගණනය කිරීම: sizeofපටිපාටිගත සම්බන්දතා: <, <=, >, >=සමුද්දේශ සහ (වි)සමුද්දේශ (dereference): &, *, [ ]අනුක්‍රමයන්: ,අනු ප්‍රකාශන (subexpression) කාණ්ඩ කිරීම්: ( )වර්ග පෙරැළීම්: (typename)ගණිතයේ දී මෙන් නොව C භාෂාවේ දී = කාරකය සමානතාවය දැක්වීම වෙනුවට ආදේශ කිරීම සඳහා යොදා ගනී. එය Fortran සහ PL/I භාෂා වල පූර්වාදර්ශයෙන් ලබා ගෙන ඇත. සමානතාවය දැක්වීමට == භාවිතා වේ. එසේ වුවද මෙම කාරකයන් දෙක පටලවා භාවිතා කරන සමහර අවස්තා වලදී C භාෂා පරිවර්ථකය මඟින් කිසිඳු දෝෂ පණිවිඩයක් ලබා නොදෙයි. උදාහරණයක් ලෙස if(a=b+1) යන ප්‍රකාශනයේදී a හි අගය බින්දුවට වඩා විශාලව පවතින තාක් if සඳහා සත්‍යය යන අගය ලැබේ.[14] අමතර වශයෙන් C භාෂාවේ කාරක ප්‍රමුඛතාවය සහජ ඥානය සහිත නොවූවක් වන අතර == සළකුණ & සහ | සළකුණු
වලට වඩා තදින් ප්‍රකාශන වලට බැඳී පවතී. එනම් x & 1 == 0 යන්න නිවැරදිව ක්‍රියාත්මක වීමට නම් එය (x & 1) == 0 පරිදි ලිවිය යුතු වේ.[15]"hello, world" උදාහරණ වැඩසටහනK&R ග්‍රන්ථයේ මුල්ම සංස්කරණයේ සඳහන් "hello, world" උදාහරණය සෑම පරිගණක භාෂාවකම පාහේ මූලික අරම්බක වැඩසටහන් ආකෘතිය ලෙස භාවිතා කෙරින. මෙහිදී වැඩසටහන මඟින් "hello, world" යන්න පරිගණක තිරය මත දිස්වීම පමණක් සිදුවේ.මුල්ම සංස්කරණය:[16]main(){    printf("hello, world\n");}ප්‍රමිතිකරණය මඟින් තහවුරු කරන ලද "hello, world" වැඩසටහන:[nb 1]#include <stdio.h>int main(void){    printf("hello, world\n");}මෙහි පළමුවෙන්ම සඳහන් වන #include පෙර සැකසුමෙන් සිදුකරන්නේ එම පේළිය stdio.h නම් ශීර්ෂ ගොනුවෙන් ප්‍රතිස්ථාපනය කිරීමයි. එය භාෂා පරිවර්ථකය මඟින් සිදුකරන කාර්යයකි. stdio.h ශීර්ෂ ගොනුවේ printf වැනි මූලික ආදාන ප්‍රතිදාන වලට සම්බන්ඳ කාර්යයන් අර්ථදක්වා ඇත. කෝණික වරහන් මඟින් දැක්වෙන්නේ මෙම ශීර්ෂ ගොනුව සම්මත C ශීර්ෂයන් තිබෙන ස්ථානයේ පවතිනවා යන්නයි. අපගේ වැඩසටහන් පවතින ෆෝල්ඩරයේ පවතින ශීර්ෂ ගොනුවක් මෙලෙස වැඩසටහනට ලබා ගැනීමට උදෘත
පාඨ සළකුණු තුල එය ලිවිය යුතුය.ඉන් පසුව දැක්වෙන main නම් වදනින් දැක්වෙන්නේ වැඩසටහනේ ප්‍රධාන කාර්යයේ අර්ථ දැක්වීමයි. වැඩසටහනක ප්‍රධාන කාර්යයට විශේෂ වටිනාකමක් ඇති අතර සෑම විටම වැඩසටහන ක්‍රියාත්මක වීම ආරම්භ කරන්නේ මෙම  ප්‍රධාන කාර්යයෙන් වේ. එහි වරහන් මඟින් ප්‍රධාන කාර්යයට ලබා දෙන පරාමිතීන් නිරූපණය කරන අතර එම පරාමිතීන් වැඩසටහන ක්‍රියාත්මක කරන අවස්ථාවේ දී ලබාදේ. මෙම වැඩසටහනේ void ලෙස දැක්වෙන්නේ එලෙස භාහිරින් පරාමිතීන් වැඩසටහන තුළට ලබා නොගන්නා බවයි.[nb 2]ආරම්භක සඟල වරහන ප්‍රධාන කාර්යයේ ආරභය දක්වයි.﻿ඊළඟ පේළියේ දැක්වෙන්නේ printf කාර්යය ක්‍රියාත්මක කරවීමයි. එහිදී එම කාර්යයට “hello, world\n” යනුවෙන් අක්ෂරමය පරාමිතික අගයක් ලබා දී ඇති අතර \n යනු පැනයාමේ සළකුණ (escape sequence) වේ. භාෂා පරිවර්ථන කර්යයේ දී එය නව පේලීයක් ලබා ගැනීමට භාවිතා කරන සළකුණ (new line character) බවට වෙනස් කරයි. printf යනු ලබා දිය හැකි පරාමිතීන් ගණන සීමා කර නොමැති කාර්යයක් වේ. එය printk යන පද්ධති කාර්යය (system call) භාවිතයෙන් සම්මත ප්‍රතිදානය වන පරිගණක තිරය මතට උදෘත ලකුණු අතර ඇති අක්ෂර ඛණ්ඩය ලබා දේ. අවසන ඇති තිත් කොමාව මඟින්
එම වගන්තියේ අවසානය දක්වයි.අවසානයේ ඇති සඟල වරහන මඟින් ප්‍රධාන කර්යයේ අවසානය දක්වයි. මෙහිදී නම් එය මුළු වැඩසටහනේ ම අවසානය වේ. සාර්ථකව ධාවනය වී අවසන් වූ වැඩසටහනක් මඟින් මෙහෙයුම් පද්ධතියට ශුන්‍යය (0) නිකුත් කරන අතර එය වැඩසටහනේ නික්මයාමේ තත්වය (exit code) වේ.[17]මේවාත් බලන්නComparison of Pascal and CComparison of programming languagesInternational Obfuscated C Code ContestList of C-based programming languagesList of compilers#C compilersසටහන්↑ The original example code will compile on most modern compilers that are not in strict standard compliance mode, but it does not fully conform to the requirements of either C89 or C99. In fact, C99 requires that a diagnostic message be produced.↑ The main function actually has two arguments, int argc and char *argv[], respectively, which can be used to handle command line arguments.  The C standard requires that both forms of main be supported, which is special treatment not afforded any other function.යොමුව[සංස්
කරණය]↑ Ritchie, Dennis M. (1993). "The Development of the C Language". සම්ප්‍රවේශය 1 January 2008. Thompson had made a brief attempt to produce a system coded in an early version of C—before structures—in 1972, but gave up the effort. {{cite web}}: Unknown parameter |month= ignored (help)↑ 2.0 2.1 Ritchie, Dennis M. (1993). "The Development of the C Language". සම්ප්‍රවේශය 1 January 2008. The scheme of type composition adopted by C owes considerable debt to Algol 68, although it did not, perhaps, emerge in a form that Algol's adherents would approve of. {{cite web}}: Unknown parameter |month= ignored (help)↑ 3.0 3.1 3.2 Kernighan, Brian W.; Ritchie, Dennis M. (February 1978). The C Programming Language (1st ed.). Englewood Cliffs, NJ: Prentice Hall. ISBN 0-13-110163-3.  Regarded by many to be the authoritative reference on C.↑ Giannini, Mario; Code Fighter, Inc.; Columbia University (2004). "C/C++". in Hossein, Bidgoli. The Internet encyclopedia. 1. John Wiley and Sons. p. 164.
ISBN 0-471-22201-1. http://www.wiley.com/WileyCDA/WileyTitle/productCd-0471222011.html. ප්‍රතිෂ්ඨාපනය 21 March 2013. ↑ Lawlis, Patricia K. (1997). "Guidelines for Choosing a Computer Language: Support for the Visionary Organization". Ada Information Clearinghouse. සම්ප්‍රවේශය 18 July 2006. {{cite web}}: Unknown parameter |month= ignored (help)↑ "Programming Language Popularity". 2009. සම්ප්‍රවේශය 16 January 2009.↑ "TIOBE Programming Community Index". 2009. සම්ප්‍රවේශය 6 May 2009.↑ Stroustrup, Bjarne (1993). "A History of C++: 1979−1991" (PDF). 1 May 2011 දින මුල් පිටපත (PDF) වෙතින් සංරක්ෂණය කරන ලදී. සම්ප්‍රවේශය 9 June 2011.↑ Johnson, S. C.; Ritchie, D. M. (1978). "Portability of C Programs and the UNIX System" (PDF). Bell System Tech. J. 57 (6): 2021–2048. 3 February 2015 දින මුල් පිටපත (PDF) වෙතින් සංරක්ෂණය කරන ලදී. සම්ප්‍රවේශය 16 December 2012.↑ Kernighan, Brian W.; Ritchie, Dennis M. (1988). The C Programming Language (2nd ed.). Englewood Cliffs, NJ: Prentice Hall. ISBN
0-13-110362-8. {{cite book}}: Unknown parameter |month= ignored (help)↑ "JTC1/SC22/WG14 – C". Home page. ISO/IEC. සම්ප්‍රවේශය 2 June 2011.↑ "TR 18037: Embedded C" (PDF). ISO / IEC. සම්ප්‍රවේශය 26 July 2011.↑ ISO/IEC 9899:201x (ISO C11) Committee Draft↑ "10 Common Programming Mistakes in C++". Cs.ucr.edu. සම්ප්‍රවේශය 26 June 2009.↑ Schultz, Thomas (2004). C and the 8051 (3rd ed.). Otsego, MI: PageFree Publishing Inc. p. 20. ISBN 1-58961-237-X. සම්ප්‍රවේශය 10 February 2012.↑ Page 6 of the original K&R[3]↑ Klemens, Ben (2013). 21st Century C. O'Reilly Media. ISBN 1449327141.භාහිර සබැඳිISO C Working Group official websitecomp.lang.c Frequently Asked QuestionsISO/IEC 9899. Official C99 documents.ANSI C Standard (ANSI X3J11/88-090) (Published 13 May 1988), Third Public ReviewANSI C Rationale (ANSI X3J11/88-151) (Published 18 November 1988)C99 with Technical corrigenda TC1, TC2, and TC3 includedPDF (3.61 MB)සැකිල්ල:Integrated development environments for C an
d C++සැකිල්ල:CProLangවෙබ් බ්‍රව්සර ඉතිහාසය දක්වන සටහනක්.වෙබ් බ්‍රව්සර ලැයිස්තුව පහත දක්වා ඇත.පෞරාණිකපෞරාණික වටිණාකමක් ඇති වෙබ් බ්‍රව්සරනිකුත් කල දිනයේ පිළිවලින්:වර්ල්ඩ් වයිඩ් වෙබ් (WorldWideWeb), 1991 පෙබරවාරි 26,ඉයවයිස් (Erwise), 1992 අප්‍රේල්ViolaWWW, 1992 මැයි,WWW - The Libwww, 1991 පෙබරවාරි 11ට පෙරමොසැක් (Mosaic) වෙබ් බ්‍රව්සරය, 1993 අප්‍රේල් 22නෙට්ස්කේප් නැවිගේටර් (Netscape Navigator) හා නෙට්ස්කේප් කමියුනිකේටර් (Netscape Communicator), 1994 ඔක්තොබර් 13ඉන්ටර්නෙට් එක්ස්ප්ලෝරර් (ඉන්ටර්නෙට් එක්ස්ප්ලෝරා මැක්(Mac) හා ඉන්ටර්නෙට් එක්ස්ප්ලෝරා UNIX අනුවාදයන් ද ඇතුලත්ව), 1995 අගෝස්තු,ඔපෙරා (Opera Internet suite), 1996,මොසිල්ලා ෆයර්ෆොක්ස්, 2004මුල් කාලීන වෙබ් බ්‍රව්සරAMosaicඅරීනා (Arena)සෙලෝ (Cello)සයිබර්ඩෝග් (CyberDog)ග්‍රේල් (Grail)IBM වෙබ් එක්ස්ප්ලෝරා (IBM Web Explorer)LynxMacWebMidasWWWඔරකල් පවර්බ්‍රව්සර්(Oracle PowerBrowser) 1996 ජූනි 18, (1.5 අනුවාදය)SlipKnotWebRouser 1995 සැප්තැම්බර් 18,චිත්‍රක (Graphical) බ්‍රව්සර[සංස්
කරණය]ට්‍රයිඩෙන්ට් (Trident) සහ ගෙකෝ(Gecko) පිරිසැලසුම් යන්ත්‍ර පදනම් කරගත් වෙබ් බ්‍රව්සරMicrosoft සමාගම ඉන්ටර්නෙට් එක්ස්ප්ලෝරා වෙබ් බ්‍රව්සරයේ වින්ඩෝස් ‍මෙහෙයුම් පද්ධතිය සඳහා වු අනුවාදය සඳහා ට්‍රයිඩෙන්ට් පිරිසැලසුම් යන්ත්‍රය (Trident layout engine) දියුණු කරන ලදී.ගෙකෝ පිරිසැලසුම් යන්ත්‍රය (Gecko layout engine) මොසිල්ලා පදනම විසින් දියුණු කරන ලදී.මෙම පිරිසැලසුම් යන්ත්‍ර දෙකම අන්තර්ගත වෙබ් බ්‍රව්සර නම්, මැක්ස්තන් (Maxthon) (පෙර MyIE2 නමින් හැඳින්විය)නෙට්ස්කේප් බ්‍රව්සර් (Netscape Browser) 8ට්‍රයිඩෙන්ට් පිරිසැලසුම් යන්ත්‍රය පදනම් කරගත් වෙබ් බ්‍රව්සරනොයෙක් මෘදුකාංග නිෂ්පාදකයින් ඉන්ටර්නෙට් එක්ස්ප්ලෝරා කවච (Internet Explorer shell) තනා ට්‍රයිඩෙන්ට් පිරිසැලසුම් යන්ත්‍රයේ ක්‍රියාකාරිත්වය වැඩි දියුණු කරන ලදී. මෙම ට්‍රයිඩෙන්ට් යන්ත්‍රය පදනම් කරගත් වෙබ් බ්‍රව්සර නම්,AOL එක්ස්ප්ලොරා (AOL Explorer)Altimit OS වෙබ් බ්‍රව්සරයඇවන්ට් බ්‍රව්සරය (Avant Browser)බෙන්ටො බ්‍රව්සරය (Bento Browser) (වින්ඈම්ප්(Winamp) තුළ අන්තර්ගතවී තිබුනි)එනිග්මා බ්‍රව්සරය (Enigma Browser)මැක
්ස්තන් (Maxthon)ස්ලිම් බ්‍රව්සරය (Slim Browser)නියෝප්ලැනෙට් (NeoPlanet)නෙට්කැප්ටර් (NetCaptor)තවත් බොහෝ ඉන්ටර්නෙට් එක්ස්ප්ලෝරා කවච වර්ගයාහු! (Yahoo!) බ්‍රව්සරය (හෝ හවුල් බ්‍රව්සර් වර්ග උදා. "AT&T යාහු! බ්‍රව්සරය"; "වරිසන් (Verizon) යාහු! බ්‍රව්සරය"; "BT යාහු! බ්‍රව්සරය" )iRiderස්මාට් බ්‍රෝ (Smart Bro)අල්ට්‍රාබ්‍රව්සර් (UltraBrowser)ගෙකෝ යන්ත්‍රය පදනම් කරගත් වෙබ් බ්‍රව්සරAlefoxබීයෝනෙක්ස් කමියුනිකේටර් (Beonex Communicator)කැමීනෝ (Camino)- මැක් OS X මෙහෙයුම් පද්ධතිය සඳහා (පෙර චිමේරා (Chimera) නමින් හැඳින්විය)CompuServeඩොක්සිලා (DocZilla), මෙය SGML බ්‍රව්සරයකිඑපිෆනි (Epiphany), මෙය GNOME හි වර්තමාණ පෙරනිමි (default) වෙබ් බ්‍රව්සරයයිෆ්ලොක් (Flock), මෙය ෆයර්ෆොක්ස් පාදක කරගත් වෙබ් බ්‍රව්සරයකිගැලියොන් (Galeon), මෙය GNOME හි පැරණි පෙරනිමි වෙබ් බ්‍රව්සරයයිඅයිස්වීසෙල් (IceWeasel), ෆයර්ෆොක්හි ඩේබියන් (Debian) අනුවාදයK-Meleon වින්ඩෝස් සඳහාK-MeleonCCF වින්ඩෝස් සඳහා (K-Meleon පදනම් කර තනා ඇත)K-Ninja වින්ඩෝස් සඳහා (K-Meleon පදනම් කර තනා ඇත)Kazehakase, GNU/ලිනක්ස් සඳහා ව
ු ඉතා සැහැල්ලු GTK2 වෙබ් බ්‍රව්සරයකිමෑඩ්ෆොක්ස් (Madfox) (මෙය ෆයර්ෆොක්ස් පාදක කරගත් වෙබ් බ්‍රව්සරයකි)මෙනිවන් (ManyOne)මොසිල්ලා ෆයර්ෆොක්ස් (පෙර ෆයර්බර්ඩ් (Firebird) හා ෆීනික්ස් (Phoenix) නම් වලින් හැඳින්වින)නෙට්ස්කේප් (6වන අනුවාදය සහ පසු)සීමන්කි (SeaMonkey) (මොසිල්ලා ඇප්ලිකේෂන් සුයිට් හි ඇතුලත නාමය. දැන් පොදු නමයි)ස්කිප්ස්ටෝන් (Skipstone)සෙරෝබැන්ක් බ්‍රව්සරය (පෙර Torpark නමින් හැඳින්වුනි)ඩීප්නෙට් (Deepnet) (p2p ජාලය සමග නිපැයුනි)KHTML හා WebKit පිරිසැලසුම් යන්ත්‍ර පදනම් කරගත් වෙබ් බ්‍රව්සරKDE ව්‍යාපෘතිය විසින් KHTML පිරිසැලසුම් යන්ත්‍රය දියුණු කරන ලදී. WebKit ඇපල් සමාගම විසින් දියුණු කරන ලදී. ABrowseAndroid (ජංගම දුරකතන සඳහා වු පද්ධතියකි) සඳහා තැනු වෙබ් බ්‍රව්සරයiCab (4 වන අනුවාදය සඳහා WebKit භාවිතා කල අතර එයට පෙර අනුවාද සඳහා ඔවුන්ගේම විදැහුම් යන්ත්‍රයක් (Rendering engin) භාවිතා කරන ලදී)එපිෆනි (Epiphany), මෙය GNOME හි වර්තමාණ පෙරනිමි වෙබ් බ්‍රව්සරයයිKazehakase, GNU/ලිනක්ස් සඳහා වු ඉතා සැහැල්ලු GTK2 වෙබ් බ්‍රව්සරයකිකොන්කරර් (Konqueror)ලයිම්චැට් (LimeChat)මිඩෝර
ි (Midori)ඔම්නිවෙබ් (OmniWeb)සෆාරි (Safari)S60 සඳහා වූ වෙබ් බ්‍රව්සරය (ජංගම දුරකතන සඳහා)Shiiraස්වි‍ෆ්ට් (Swift)ප්‍රෙස්ටො (Presto) යන්ත්‍රය පදනම් කරගත් වෙබ් බ්‍රව්සරඔපෙරානින්ටෙන්ඩො (Nintendo) DS බ්‍රව්සරය (ඔපෙරා බලගැන්වූ)ඉන්ටර්නෙට් චැනල් (Internet Channel) (Web browser for the Wii කොන්සෝලය (Wii console) සඳහා වූ වෙබ් බ්‍රව්සරය (ඔපෙරා බලගැන්වූ)ජාවා (Java platform) සඳහා වූ වෙබ් බ්‍රව්සරහොට්ජාවා (HotJava) (අත්හිටවනලදී)LoboX-Smiles (පරික්ෂණාත්මක)වර්තමාණයේ ඇති විශේෂිත වෙබ් බ්‍රව්සරවෙබ් අඩවි ආශ්‍රිත වු විශේෂත ක්‍රියාකාරකම් පහසුවෙන් කිරීම සඳහා තැනූ වෙබ් බ්‍රව්සර.ෆ්ලොක් (Flock) (බ්ලොග් ලිවී‍ම , ඡායාරෑප හුවමාරු කරගැනීම හා RSS පුවත් කියවීම පහසු කිරීම සඳහා)ගෝස්ට්සිලා (Ghostzilla) (ක්‍රියාකාරකම් සැඟවීම සඳහා GUI තුලට මුසුවේ)සෝංබර්ඩ් (Songbird) (සංගීතය ඇසීම සදහා තැනූවකි)ස්පේස්ටයිම් (SpaceTime™) (සෙවුම් ත්‍රිමාණව කිරිමට)Wyzo (BitTorrent සඳහා වූ බ්‍රවුසරයකි)අත්හිටවන ලද විශේෂිත වෙබ් බ්‍රව්සරAOL (තම අන්තඃජාලය (Itranet) සඳහා භාවිතා කරන ලදී)අනෙ
කුත් වෙබ් බ්‍රව්සර3B (ත්‍රිමාණ වෙබ් බ්‍රව්සර)Abaco (Plan 9 from Bell Labs මෙහෙයුම් පද්ධතිය සඳහා)අමායා (Amaya)Arachne (DOS)AWebකැරන් (Charon) (Inferno මෙහෙයුම් පද්ධතිය සඳහා)ඩිලො (Dillo)Emacs/W3ගොලුම් බ්‍රවුසර් (Gollum browser)IBrowseKroziloමොත්‍රා (Mothra) (Plan 9 from Bell Labs මෙහෙයුම් පද්ධතිය සඳහා)නෙට්පොසිටිව් (NetPositive)නෙට්සර්ෆ් (NetSurf) (RISC OS මෙහෙයුම් පද්ධතිය හා GTK+ සඳහා වු C ක්‍රමලේඛන භාෂාවෙන් ලියන ලද විවෘත කේත වෙබ් බ්‍රව්සරයකි.)Oreganoප්ලැනෙට්වෙබ් (Planetweb) බ්‍රව්සරය (අත්හිටවන ලදී)SleipnirVMS Mosaicවොයේජර් (Voyager)පෙළ (Text) පාදක කරගත් වෙබ් බ්‍රව්සරඇබාකො (Abaco)AlynxcURL (Line-mode බ්‍රව්සරයකි)DosLynxELinks (ලින්ක්ස් (Links) වෙබ් බ්‍රව්සරයේ සක්‍රීය අනුවාදය)ලින්ක්ස් (Links) (වර්තමාණයේ සක්‍රීයව නොපවතී)LynxNet-Tamerw3mWebbIEwget (Line-mode බ්‍රව්සරයකි)මේවාත් බලන්නඅන්තර්ජාලයවිශ්ව ව්‍යාප්ත වියමනඅඩවි‌යෙන් බැහැර පිටුAdrian Roselli, evolt.org Browser Archive (2004). List and archive of many current a