CINXE.COM
C (programozási nyelv) – Wikipédia
<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-disabled skin-theme-clientpref-day vector-toc-available" lang="hu" dir="ltr"> <head> <meta charset="UTF-8"> <title>C (programozási nyelv) – Wikipédia</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-disabled skin-theme-clientpref-day vector-toc-available";var cookie=document.cookie.match(/(?:^|; )huwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":[",\t."," \t,"],"wgDigitTransformTable":["",""], "wgDefaultDateFormat":"ymd","wgMonthNames":["","január","február","március","április","május","június","július","augusztus","szeptember","október","november","december"],"wgRequestId":"073142d0-68da-48f3-8aad-30c176d82e1a","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"C_(programozási_nyelv)","wgTitle":"C (programozási nyelv)","wgCurRevisionId":27224636,"wgRevisionId":27224636,"wgArticleId":1178,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Wikipédia-szócikkek LCCN-azonosítóval","Wikipédia-szócikkek GND-azonosítóval","Wikipédia-szócikkek BNF-azonosítóval","Imperatív programozási nyelvek"],"wgPageViewLanguage":"hu","wgPageContentLanguage":"hu","wgPageContentModel":"wikitext","wgRelevantPageName":"C_(programozási_nyelv)","wgRelevantArticleId":1178,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[], "wgRestrictionMove":[],"wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":true,"wgFlaggedRevsParams":{"tags":{"accuracy":{"levels":2}}},"wgStableRevisionId":27224636,"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"hu","pageLanguageDir":"ltr","pageVariantFallbacks":"hu"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":true,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":80000,"wgRelatedArticlesCompat":[],"wgCentralAuthMobileDomain":false,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q15777","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled": false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false};RLSTATE={"ext.gadget.infobox":"ready","ext.gadget.wikiMenuStyles":"ready","ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.cite.styles":"ready","ext.pygments":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","jquery.makeCollapsible.styles":"ready","ext.flaggedRevs.basic":"ready","mediawiki.codex.messagebox.styles":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["ext.cite.ux-enhancements","ext.pygments.view","site","mediawiki.page.ready","jquery.makeCollapsible","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp", "ext.flaggedRevs.advanced","ext.gadget.wdsearch","ext.gadget.irclogin","ext.gadget.ImageAnnotator.loader","ext.gadget.collapsible","ext.gadget.kepdia","ext.gadget.kinai","ext.gadget.poziciosTerkep","ext.gadget.wikiMenu","ext.gadget.wiwosm","ext.urlShortener.toolbar","ext.centralauth.centralautologin","mmv.bootstrap","ext.popups","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.interface","ext.cx.eventlogging.campaigns","ext.cx.uls.quick.actions","wikibase.client.vector-2022","ext.checkUser.clientHints","ext.growthExperiments.SuggestedEditSession","oojs-ui.styles.icons-media","oojs-ui-core.icons","wikibase.sidebar.tracking"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=hu&modules=ext.cite.styles%7Cext.flaggedRevs.basic%7Cext.pygments%2CwikimediaBadges%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediamessages.styles%7Cjquery.makeCollapsible.styles%7Cmediawiki.codex.messagebox.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&only=styles&skin=vector-2022"> <script async="" src="/w/load.php?lang=hu&modules=startup&only=scripts&raw=1&skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=hu&modules=ext.gadget.infobox%2CwikiMenuStyles&only=styles&skin=vector-2022"> <link rel="stylesheet" href="/w/load.php?lang=hu&modules=site.styles&only=styles&skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.4"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/3/35/The_C_Programming_Language_logo.svg/1200px-The_C_Programming_Language_logo.svg.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="1253"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/3/35/The_C_Programming_Language_logo.svg/800px-The_C_Programming_Language_logo.svg.png"> <meta property="og:image:width" content="800"> <meta property="og:image:height" content="835"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/3/35/The_C_Programming_Language_logo.svg/640px-The_C_Programming_Language_logo.svg.png"> <meta property="og:image:width" content="640"> <meta property="og:image:height" content="668"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="C (programozási nyelv) – Wikipédia"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//hu.m.wikipedia.org/wiki/C_(programoz%C3%A1si_nyelv)"> <link rel="alternate" type="application/x-wiki" title="Szerkesztés" href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikipédia (hu)"> <link rel="EditURI" type="application/rsd+xml" href="//hu.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://hu.wikipedia.org/wiki/C_(programoz%C3%A1si_nyelv)"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.hu"> <link rel="alternate" type="application/atom+xml" title="Wikipédia Atom-hírcsatorna" href="/w/index.php?title=Speci%C3%A1lis:Friss_v%C3%A1ltoztat%C3%A1sok&feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="//login.wikimedia.org"> </head> <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-C_programozási_nyelv rootpage-C_programozási_nyelv skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Ugrás a tartalomhoz</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Wiki"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Főmenü" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Főmenü</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Főmenü</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">áthelyezés az oldalsávba</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">elrejtés</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navigáció </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Kezd%C5%91lap" title="A kezdőlap megtekintése [z]" accesskey="z"><span>Kezdőlap</span></a></li><li id="n-sidebar-contents" class="mw-list-item"><a href="/wiki/Wikip%C3%A9dia:Tartalom"><span>Tartalom</span></a></li><li id="n-sidebar-featured" class="mw-list-item"><a href="/wiki/Wikip%C3%A9dia:Kiemelt_sz%C3%B3cikkek_list%C3%A1ja"><span>Kiemelt szócikkek</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Speci%C3%A1lis:Friss_v%C3%A1ltoztat%C3%A1sok" title="A wikiben történt legutóbbi változtatások listája [r]" accesskey="r"><span>Friss változtatások</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Speci%C3%A1lis:Lap_tal%C3%A1lomra" title="Egy véletlenszerűen kiválasztott lap betöltése [x]" accesskey="x"><span>Lap találomra</span></a></li><li id="n-sidebar-enquiries" class="mw-list-item"><a href="/wiki/Wikip%C3%A9dia:Tudakoz%C3%B3"><span>Tudakozó</span></a></li> </ul> </div> </div> <div id="p-sidebar-participate" class="vector-menu mw-portlet mw-portlet-sidebar-participate" > <div class="vector-menu-heading"> Részvétel </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-sidebar-basics" class="mw-list-item"><a href="/wiki/Wikip%C3%A9dia:%C3%9Aj_szerkeszt%C5%91knek"><span>Kezdőknek</span></a></li><li id="n-sidebar-help" class="mw-list-item"><a href="/wiki/Wikip%C3%A9dia:Seg%C3%ADts%C3%A9g"><span>Segítség</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Port%C3%A1l:K%C3%B6z%C3%B6ss%C3%A9g" title="A projektről, miben segíthetsz, mit hol találsz meg"><span>Közösségi portál</span></a></li><li id="n-sidebar-contact" class="mw-list-item"><a href="/wiki/Wikip%C3%A9dia:Kapcsolatfelv%C3%A9tel"><span>Kapcsolatfelvétel</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Kezd%C5%91lap" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="Wikipédia" src="/static/images/mobile/copyright/wikipedia-wordmark-fr.svg" style="width: 7.4375em; height: 1.125em;"> <img class="mw-logo-tagline" alt="" src="/static/images/mobile/copyright/wikipedia-tagline-hu.svg" width="120" height="13" style="width: 7.5em; height: 0.8125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Speci%C3%A1lis:Keres%C3%A9s" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Keresés a Wikipédián [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Keresés</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Keresés a Wikipédián" aria-label="Keresés a Wikipédián" autocapitalize="sentences" title="Keresés a Wikipédián [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Speciális:Keresés"> </div> <button class="cdx-button cdx-search-input__end-button">Keresés</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Személyes eszközök"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Megjelenés"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Change the appearance of the page's font size, width, and color" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Megjelenés" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Megjelenés</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="//donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_hu.wikipedia.org&uselang=hu" class=""><span>Adományok</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Speci%C3%A1lis:Szerkeszt%C5%91i_fi%C3%B3k_l%C3%A9trehoz%C3%A1sa&returnto=C+%28programoz%C3%A1si+nyelv%29" title="Arra bíztatunk, hogy hozz létre egy fiókot, és jelentkezz be, azonban ez nem kötelező" class=""><span>Fiók létrehozása</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Speci%C3%A1lis:Bel%C3%A9p%C3%A9s&returnto=C+%28programoz%C3%A1si+nyelv%29" title="Bejelentkezni javasolt, de nem kötelező [o]" accesskey="o" class=""><span>Bejelentkezés</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="További lehetőségek" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Személyes eszközök" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Személyes eszközök</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="Felhasználói menü" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="//donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_hu.wikipedia.org&uselang=hu"><span>Adományok</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Speci%C3%A1lis:Szerkeszt%C5%91i_fi%C3%B3k_l%C3%A9trehoz%C3%A1sa&returnto=C+%28programoz%C3%A1si+nyelv%29" title="Arra bíztatunk, hogy hozz létre egy fiókot, és jelentkezz be, azonban ez nem kötelező"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Fiók létrehozása</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Speci%C3%A1lis:Bel%C3%A9p%C3%A9s&returnto=C+%28programoz%C3%A1si+nyelv%29" title="Bejelentkezni javasolt, de nem kötelező [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Bejelentkezés</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Lapok kijelentkezett szerkesztőknek <a href="/wiki/Seg%C3%ADts%C3%A9g:Bevezet%C3%A9s" aria-label="Tudj meg többet a szerkesztésről"><span>további információk</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Speci%C3%A1lis:K%C3%B6zrem%C5%B1k%C3%B6d%C3%A9seim" title="Erről az IP-címről végrehajtott szerkesztések listája [y]" accesskey="y"><span>Közreműködések</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Speci%C3%A1lis:Vit%C3%A1m" title="Az általad használt IP-címről végrehajtott szerkesztések megvitatása [n]" accesskey="n"><span>Vitalap</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Wiki"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="Tartalomjegyzék" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Tartalomjegyzék</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">áthelyezés az oldalsávba</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">elrejtés</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">Bevezető</div> </a> </li> <li id="toc-Történet" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Történet"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>Történet</span> </div> </a> <button aria-controls="toc-Történet-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>A(z) Történet alszakasz kinyitása/becsukása</span> </button> <ul id="toc-Történet-sublist" class="vector-toc-list"> <li id="toc-Korai_fejlesztések" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Korai_fejlesztések"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.1</span> <span>Korai fejlesztések</span> </div> </a> <ul id="toc-Korai_fejlesztések-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-K&R_C" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#K&R_C"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.2</span> <span>K&R C</span> </div> </a> <ul id="toc-K&R_C-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-ANSI_C_és_ISO_C" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#ANSI_C_és_ISO_C"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.3</span> <span>ANSI C és ISO C</span> </div> </a> <ul id="toc-ANSI_C_és_ISO_C-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-C99" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#C99"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.4</span> <span>C99</span> </div> </a> <ul id="toc-C99-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-C11" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#C11"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.5</span> <span>C11</span> </div> </a> <ul id="toc-C11-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-C18" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#C18"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.6</span> <span>C18</span> </div> </a> <ul id="toc-C18-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Beágyazott_C" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Beágyazott_C"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.7</span> <span>Beágyazott C</span> </div> </a> <ul id="toc-Beágyazott_C-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-A_C_nyelv_jellemzői" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#A_C_nyelv_jellemzői"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>A C nyelv jellemzői</span> </div> </a> <ul id="toc-A_C_nyelv_jellemzői-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Formai_szabályok" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Formai_szabályok"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>Formai szabályok</span> </div> </a> <ul id="toc-Formai_szabályok-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Utasítástípusok" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Utasítástípusok"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>Utasítástípusok</span> </div> </a> <ul id="toc-Utasítástípusok-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Egy_egyszerű_példaprogram" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Egy_egyszerű_példaprogram"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>Egy egyszerű példaprogram</span> </div> </a> <ul id="toc-Egy_egyszerű_példaprogram-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Adattípusok" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Adattípusok"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>Adattípusok</span> </div> </a> <button aria-controls="toc-Adattípusok-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>A(z) Adattípusok alszakasz kinyitása/becsukása</span> </button> <ul id="toc-Adattípusok-sublist" class="vector-toc-list"> <li id="toc-Egyszerű_típusok" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Egyszerű_típusok"> <div class="vector-toc-text"> <span class="vector-toc-numb">6.1</span> <span>Egyszerű típusok</span> </div> </a> <ul id="toc-Egyszerű_típusok-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Deklarációk" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Deklarációk"> <div class="vector-toc-text"> <span class="vector-toc-numb">7</span> <span>Deklarációk</span> </div> </a> <button aria-controls="toc-Deklarációk-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>A(z) Deklarációk alszakasz kinyitása/becsukása</span> </button> <ul id="toc-Deklarációk-sublist" class="vector-toc-list"> <li id="toc-Változó_deklarálása" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Változó_deklarálása"> <div class="vector-toc-text"> <span class="vector-toc-numb">7.1</span> <span>Változó deklarálása</span> </div> </a> <ul id="toc-Változó_deklarálása-sublist" class="vector-toc-list"> <li id="toc-Láthatóság" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Láthatóság"> <div class="vector-toc-text"> <span class="vector-toc-numb">7.1.1</span> <span>Láthatóság</span> </div> </a> <ul id="toc-Láthatóság-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Tárolási_osztály" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Tárolási_osztály"> <div class="vector-toc-text"> <span class="vector-toc-numb">7.1.2</span> <span>Tárolási osztály</span> </div> </a> <ul id="toc-Tárolási_osztály-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-A_változó_típusa" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#A_változó_típusa"> <div class="vector-toc-text"> <span class="vector-toc-numb">7.1.3</span> <span>A változó típusa</span> </div> </a> <ul id="toc-A_változó_típusa-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Kezdőérték" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Kezdőérték"> <div class="vector-toc-text"> <span class="vector-toc-numb">7.1.4</span> <span>Kezdőérték</span> </div> </a> <ul id="toc-Kezdőérték-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Példák_változódeklarációra" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Példák_változódeklarációra"> <div class="vector-toc-text"> <span class="vector-toc-numb">7.1.5</span> <span>Példák változódeklarációra</span> </div> </a> <ul id="toc-Példák_változódeklarációra-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Struktúra" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Struktúra"> <div class="vector-toc-text"> <span class="vector-toc-numb">7.2</span> <span>Struktúra</span> </div> </a> <ul id="toc-Struktúra-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Unió" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Unió"> <div class="vector-toc-text"> <span class="vector-toc-numb">7.3</span> <span>Unió</span> </div> </a> <ul id="toc-Unió-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-enum" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#enum"> <div class="vector-toc-text"> <span class="vector-toc-numb">7.4</span> <span>enum</span> </div> </a> <ul id="toc-enum-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Tömbök" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Tömbök"> <div class="vector-toc-text"> <span class="vector-toc-numb">7.5</span> <span>Tömbök</span> </div> </a> <ul id="toc-Tömbök-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Mutatók" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Mutatók"> <div class="vector-toc-text"> <span class="vector-toc-numb">7.6</span> <span>Mutatók</span> </div> </a> <ul id="toc-Mutatók-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Típusdeklaráció" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Típusdeklaráció"> <div class="vector-toc-text"> <span class="vector-toc-numb">7.7</span> <span>Típusdeklaráció</span> </div> </a> <ul id="toc-Típusdeklaráció-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Aritmetikai_utasítások" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Aritmetikai_utasítások"> <div class="vector-toc-text"> <span class="vector-toc-numb">8</span> <span>Aritmetikai utasítások</span> </div> </a> <button aria-controls="toc-Aritmetikai_utasítások-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>A(z) Aritmetikai utasítások alszakasz kinyitása/becsukása</span> </button> <ul id="toc-Aritmetikai_utasítások-sublist" class="vector-toc-list"> <li id="toc-Műveletek" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Műveletek"> <div class="vector-toc-text"> <span class="vector-toc-numb">8.1</span> <span>Műveletek</span> </div> </a> <ul id="toc-Műveletek-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Vezérlő_utasítások" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Vezérlő_utasítások"> <div class="vector-toc-text"> <span class="vector-toc-numb">9</span> <span>Vezérlő utasítások</span> </div> </a> <button aria-controls="toc-Vezérlő_utasítások-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>A(z) Vezérlő utasítások alszakasz kinyitása/becsukása</span> </button> <ul id="toc-Vezérlő_utasítások-sublist" class="vector-toc-list"> <li id="toc-Az_if_utasítás" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Az_if_utasítás"> <div class="vector-toc-text"> <span class="vector-toc-numb">9.1</span> <span>Az if utasítás</span> </div> </a> <ul id="toc-Az_if_utasítás-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-A_switch_utasítás" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#A_switch_utasítás"> <div class="vector-toc-text"> <span class="vector-toc-numb">9.2</span> <span>A switch utasítás</span> </div> </a> <ul id="toc-A_switch_utasítás-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-A_while_utasítás" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#A_while_utasítás"> <div class="vector-toc-text"> <span class="vector-toc-numb">9.3</span> <span>A while utasítás</span> </div> </a> <ul id="toc-A_while_utasítás-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-A_for_utasítás" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#A_for_utasítás"> <div class="vector-toc-text"> <span class="vector-toc-numb">9.4</span> <span>A for utasítás</span> </div> </a> <ul id="toc-A_for_utasítás-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-A_do/while_utasítás" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#A_do/while_utasítás"> <div class="vector-toc-text"> <span class="vector-toc-numb">9.5</span> <span>A do/while utasítás</span> </div> </a> <ul id="toc-A_do/while_utasítás-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-A_goto_utasítás" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#A_goto_utasítás"> <div class="vector-toc-text"> <span class="vector-toc-numb">9.6</span> <span>A goto utasítás</span> </div> </a> <ul id="toc-A_goto_utasítás-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Függvények" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Függvények"> <div class="vector-toc-text"> <span class="vector-toc-numb">10</span> <span>Függvények</span> </div> </a> <button aria-controls="toc-Függvények-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>A(z) Függvények alszakasz kinyitása/becsukása</span> </button> <ul id="toc-Függvények-sublist" class="vector-toc-list"> <li id="toc-Függvénydeklaráció" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Függvénydeklaráció"> <div class="vector-toc-text"> <span class="vector-toc-numb">10.1</span> <span>Függvénydeklaráció</span> </div> </a> <ul id="toc-Függvénydeklaráció-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Függvénydefiníció" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Függvénydefiníció"> <div class="vector-toc-text"> <span class="vector-toc-numb">10.2</span> <span>Függvénydefiníció</span> </div> </a> <ul id="toc-Függvénydefiníció-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-A_függvény_hívása" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#A_függvény_hívása"> <div class="vector-toc-text"> <span class="vector-toc-numb">10.3</span> <span>A függvény hívása</span> </div> </a> <ul id="toc-A_függvény_hívása-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Függvénymutató" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Függvénymutató"> <div class="vector-toc-text"> <span class="vector-toc-numb">10.4</span> <span>Függvénymutató</span> </div> </a> <ul id="toc-Függvénymutató-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Preprocesszor_utasítások" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Preprocesszor_utasítások"> <div class="vector-toc-text"> <span class="vector-toc-numb">11</span> <span>Preprocesszor utasítások</span> </div> </a> <button aria-controls="toc-Preprocesszor_utasítások-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>A(z) Preprocesszor utasítások alszakasz kinyitása/becsukása</span> </button> <ul id="toc-Preprocesszor_utasítások-sublist" class="vector-toc-list"> <li id="toc-#include" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="##include"> <div class="vector-toc-text"> <span class="vector-toc-numb">11.1</span> <span>#include</span> </div> </a> <ul id="toc-#include-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-#define" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="##define"> <div class="vector-toc-text"> <span class="vector-toc-numb">11.2</span> <span>#define</span> </div> </a> <ul id="toc-#define-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-#ifdef,_#ifndef" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="##ifdef,_#ifndef"> <div class="vector-toc-text"> <span class="vector-toc-numb">11.3</span> <span>#ifdef, #ifndef</span> </div> </a> <ul id="toc-#ifdef,_#ifndef-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-#if" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="##if"> <div class="vector-toc-text"> <span class="vector-toc-numb">11.4</span> <span>#if</span> </div> </a> <ul id="toc-#if-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Standard_könyvtári_függvények" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Standard_könyvtári_függvények"> <div class="vector-toc-text"> <span class="vector-toc-numb">12</span> <span>Standard könyvtári függvények</span> </div> </a> <button aria-controls="toc-Standard_könyvtári_függvények-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>A(z) Standard könyvtári függvények alszakasz kinyitása/becsukása</span> </button> <ul id="toc-Standard_könyvtári_függvények-sublist" class="vector-toc-list"> <li id="toc-I/O_függvények" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#I/O_függvények"> <div class="vector-toc-text"> <span class="vector-toc-numb">12.1</span> <span>I/O függvények</span> </div> </a> <ul id="toc-I/O_függvények-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Néhány_egyéb_könyvtári_függvény" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Néhány_egyéb_könyvtári_függvény"> <div class="vector-toc-text"> <span class="vector-toc-numb">12.2</span> <span>Néhány egyéb könyvtári függvény</span> </div> </a> <ul id="toc-Néhány_egyéb_könyvtári_függvény-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Kapcsolódó_szócikkek" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Kapcsolódó_szócikkek"> <div class="vector-toc-text"> <span class="vector-toc-numb">13</span> <span>Kapcsolódó szócikkek</span> </div> </a> <ul id="toc-Kapcsolódó_szócikkek-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Jegyzetek" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Jegyzetek"> <div class="vector-toc-text"> <span class="vector-toc-numb">14</span> <span>Jegyzetek</span> </div> </a> <ul id="toc-Jegyzetek-sublist" class="vector-toc-list"> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="Tartalomjegyzék" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Tartalomjegyzék kinyitása/becsukása" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Tartalomjegyzék kinyitása/becsukása</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">C (programozási nyelv)</span></h1> <div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" > <input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="Ugrás egy más nyelvű szócikkre. Elérhető 123 nyelven" > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-123" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span> <span class="vector-dropdown-label-text">123 nyelv</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-en mw-list-item"><a href="https://en.wikipedia.org/wiki/C_(programming_language)" title="C (programming language) – angol" lang="en" hreflang="en" data-title="C (programming language)" data-language-autonym="English" data-language-local-name="angol" class="interlanguage-link-target"><span>English</span></a></li><li class="interlanguage-link interwiki-af mw-list-item"><a href="https://af.wikipedia.org/wiki/C_(programmeertaal)" title="C (programmeertaal) – afrikaans" lang="af" hreflang="af" data-title="C (programmeertaal)" data-language-autonym="Afrikaans" data-language-local-name="afrikaans" class="interlanguage-link-target"><span>Afrikaans</span></a></li><li class="interlanguage-link interwiki-als mw-list-item"><a href="https://als.wikipedia.org/wiki/C_(Programmiersprache)" title="C (Programmiersprache) – svájci német" lang="gsw" hreflang="gsw" data-title="C (Programmiersprache)" data-language-autonym="Alemannisch" data-language-local-name="svájci német" class="interlanguage-link-target"><span>Alemannisch</span></a></li><li class="interlanguage-link interwiki-am mw-list-item"><a href="https://am.wikipedia.org/wiki/%E1%88%B2_(%E1%8B%A8%E1%8A%AE%E1%88%9D%E1%8D%92%E1%8B%A9%E1%89%B0%E1%88%AD_%E1%8D%8D%E1%88%AD%E1%8C%88%E1%88%9B_%E1%89%8B%E1%8A%95%E1%89%8B)" title="ሲ (የኮምፒዩተር ፍርገማ ቋንቋ) – amhara" lang="am" hreflang="am" data-title="ሲ (የኮምፒዩተር ፍርገማ ቋንቋ)" data-language-autonym="አማርኛ" data-language-local-name="amhara" class="interlanguage-link-target"><span>አማርኛ</span></a></li><li class="interlanguage-link interwiki-an mw-list-item"><a href="https://an.wikipedia.org/wiki/Luengache_de_programaci%C3%B3n_C" title="Luengache de programación C – aragonéz" lang="an" hreflang="an" data-title="Luengache de programación C" data-language-autonym="Aragonés" data-language-local-name="aragonéz" class="interlanguage-link-target"><span>Aragonés</span></a></li><li class="interlanguage-link interwiki-ar mw-list-item"><a href="https://ar.wikipedia.org/wiki/%D8%B3%D9%8A_(%D9%84%D8%BA%D8%A9_%D8%A8%D8%B1%D9%85%D8%AC%D8%A9)" title="سي (لغة برمجة) – arab" lang="ar" hreflang="ar" data-title="سي (لغة برمجة)" data-language-autonym="العربية" data-language-local-name="arab" class="interlanguage-link-target"><span>العربية</span></a></li><li class="interlanguage-link interwiki-ary mw-list-item"><a href="https://ary.wikipedia.org/wiki/%D8%B3%D9%8A_(%D9%84%D9%88%D9%86%DA%AD%D8%A7%D8%AC)" title="سي (لونڭاج) – Moroccan Arabic" lang="ary" hreflang="ary" data-title="سي (لونڭاج)" data-language-autonym="الدارجة" data-language-local-name="Moroccan Arabic" class="interlanguage-link-target"><span>الدارجة</span></a></li><li class="interlanguage-link interwiki-as mw-list-item"><a href="https://as.wikipedia.org/wiki/%E0%A6%9A%E0%A6%BF_(%E0%A6%AA%E0%A7%8D%E0%A7%B0%E0%A6%97%E0%A7%8D%E0%A7%B0%E0%A6%BE%E0%A6%AE%E0%A6%BF%E0%A6%82_%E0%A6%B2%E0%A7%87%E0%A6%82%E0%A6%97%E0%A7%81%E0%A7%B1%E0%A7%87%E0%A6%9C)" title="চি (প্ৰগ্ৰামিং লেংগুৱেজ) – asszámi" lang="as" hreflang="as" data-title="চি (প্ৰগ্ৰামিং লেংগুৱেজ)" data-language-autonym="অসমীয়া" data-language-local-name="asszámi" class="interlanguage-link-target"><span>অসমীয়া</span></a></li><li class="interlanguage-link interwiki-ast mw-list-item"><a href="https://ast.wikipedia.org/wiki/Llinguaxe_de_programaci%C3%B3n_C" title="Llinguaxe de programación C – asztúr" lang="ast" hreflang="ast" data-title="Llinguaxe de programación C" data-language-autonym="Asturianu" data-language-local-name="asztúr" class="interlanguage-link-target"><span>Asturianu</span></a></li><li class="interlanguage-link interwiki-az mw-list-item"><a href="https://az.wikipedia.org/wiki/C_(proqramla%C5%9Fd%C4%B1rma_dili)" title="C (proqramlaşdırma dili) – azerbajdzsáni" lang="az" hreflang="az" data-title="C (proqramlaşdırma dili)" data-language-autonym="Azərbaycanca" data-language-local-name="azerbajdzsáni" class="interlanguage-link-target"><span>Azərbaycanca</span></a></li><li class="interlanguage-link interwiki-azb mw-list-item"><a href="https://azb.wikipedia.org/wiki/%D8%B3%DB%8C_(%DB%8C%D8%A7%D8%B2%DB%8C%D9%84%DB%8C%D9%85%D9%84%D8%A7%D9%85%D8%A7_%D8%AF%DB%8C%D9%84%DB%8C)" title="سی (یازیلیملاما دیلی) – South Azerbaijani" lang="azb" hreflang="azb" data-title="سی (یازیلیملاما دیلی)" data-language-autonym="تۆرکجه" data-language-local-name="South Azerbaijani" class="interlanguage-link-target"><span>تۆرکجه</span></a></li><li class="interlanguage-link interwiki-bat-smg mw-list-item"><a href="https://bat-smg.wikipedia.org/wiki/C_(kalba)" title="C (kalba) – Samogitian" lang="sgs" hreflang="sgs" data-title="C (kalba)" data-language-autonym="Žemaitėška" data-language-local-name="Samogitian" class="interlanguage-link-target"><span>Žemaitėška</span></a></li><li class="interlanguage-link interwiki-be mw-list-item"><a href="https://be.wikipedia.org/wiki/C_(%D0%BC%D0%BE%D0%B2%D0%B0_%D0%BF%D1%80%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%B0%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)" title="C (мова праграмавання) – belarusz" lang="be" hreflang="be" data-title="C (мова праграмавання)" data-language-autonym="Беларуская" data-language-local-name="belarusz" class="interlanguage-link-target"><span>Беларуская</span></a></li><li class="interlanguage-link interwiki-be-x-old mw-list-item"><a href="https://be-tarask.wikipedia.org/wiki/C_(%D0%BC%D0%BE%D0%B2%D0%B0_%D0%BF%D1%80%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%B0%D0%B2%D0%B0%D0%BD%D1%8C%D0%BD%D1%8F)" title="C (мова праграмаваньня) – Belarusian (Taraškievica orthography)" lang="be-tarask" hreflang="be-tarask" data-title="C (мова праграмаваньня)" data-language-autonym="Беларуская (тарашкевіца)" data-language-local-name="Belarusian (Taraškievica orthography)" class="interlanguage-link-target"><span>Беларуская (тарашкевіца)</span></a></li><li class="interlanguage-link interwiki-bg mw-list-item"><a href="https://bg.wikipedia.org/wiki/C_(%D0%B5%D0%B7%D0%B8%D0%BA_%D0%B7%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%B8%D1%80%D0%B0%D0%BD%D0%B5)" title="C (език за програмиране) – bolgár" lang="bg" hreflang="bg" data-title="C (език за програмиране)" data-language-autonym="Български" data-language-local-name="bolgár" class="interlanguage-link-target"><span>Български</span></a></li><li class="interlanguage-link interwiki-bh mw-list-item"><a href="https://bh.wikipedia.org/wiki/%E0%A4%B8%E0%A5%80_(%E0%A4%AA%E0%A5%8D%E0%A4%B0%E0%A5%8B%E0%A4%97%E0%A5%8D%E0%A4%B0%E0%A4%BE%E0%A4%AE%E0%A4%BF%E0%A4%82%E0%A4%97_%E0%A4%AD%E0%A4%BE%E0%A4%B7%E0%A4%BE)" title="सी (प्रोग्रामिंग भाषा) – Bhojpuri" lang="bh" hreflang="bh" data-title="सी (प्रोग्रामिंग भाषा)" data-language-autonym="भोजपुरी" data-language-local-name="Bhojpuri" class="interlanguage-link-target"><span>भोजपुरी</span></a></li><li class="interlanguage-link interwiki-blk mw-list-item"><a href="https://blk.wikipedia.org/wiki/C_(%E1%80%95%E1%80%9B%E1%80%AD%E1%80%AF%E1%80%82%E1%80%9B%E1%80%99%E1%80%BA%E1%80%99%E1%80%AD%E1%80%89%E1%80%BA%E1%80%B8%E1%80%98%E1%80%AC%E1%82%8F%E1%80%9E%E1%80%AC%E1%82%8F%E1%80%84%E1%80%9D%E1%80%BA%E1%80%B8%E1%80%84%E1%80%BD%E1%80%AB)" title="C (ပရိုဂရမ်မိဉ်းဘာႏသာႏငဝ်းငွါ) – Pa'O" lang="blk" hreflang="blk" data-title="C (ပရိုဂရမ်မိဉ်းဘာႏသာႏငဝ်းငွါ)" data-language-autonym="ပအိုဝ်ႏဘာႏသာႏ" data-language-local-name="Pa'O" class="interlanguage-link-target"><span>ပအိုဝ်ႏဘာႏသာႏ</span></a></li><li class="interlanguage-link interwiki-bn mw-list-item"><a href="https://bn.wikipedia.org/wiki/%E0%A6%B8%E0%A6%BF_(%E0%A6%AA%E0%A7%8D%E0%A6%B0%E0%A7%8B%E0%A6%97%E0%A7%8D%E0%A6%B0%E0%A6%BE%E0%A6%AE%E0%A6%BF%E0%A6%82_%E0%A6%AD%E0%A6%BE%E0%A6%B7%E0%A6%BE)" title="সি (প্রোগ্রামিং ভাষা) – bangla" lang="bn" hreflang="bn" data-title="সি (প্রোগ্রামিং ভাষা)" data-language-autonym="বাংলা" data-language-local-name="bangla" class="interlanguage-link-target"><span>বাংলা</span></a></li><li class="interlanguage-link interwiki-br mw-list-item"><a href="https://br.wikipedia.org/wiki/C_(lavar_programmi%C3%B1)" title="C (lavar programmiñ) – breton" lang="br" hreflang="br" data-title="C (lavar programmiñ)" data-language-autonym="Brezhoneg" data-language-local-name="breton" class="interlanguage-link-target"><span>Brezhoneg</span></a></li><li class="interlanguage-link interwiki-bs mw-list-item"><a href="https://bs.wikipedia.org/wiki/C_(programski_jezik)" title="C (programski jezik) – bosnyák" lang="bs" hreflang="bs" data-title="C (programski jezik)" data-language-autonym="Bosanski" data-language-local-name="bosnyák" class="interlanguage-link-target"><span>Bosanski</span></a></li><li class="interlanguage-link interwiki-bug mw-list-item"><a href="https://bug.wikipedia.org/wiki/C_(basa_maprogram)" title="C (basa maprogram) – buginéz" lang="bug" hreflang="bug" data-title="C (basa maprogram)" data-language-autonym="Basa Ugi" data-language-local-name="buginéz" class="interlanguage-link-target"><span>Basa Ugi</span></a></li><li class="interlanguage-link interwiki-ca mw-list-item"><a href="https://ca.wikipedia.org/wiki/Llenguatge_C" title="Llenguatge C – katalán" lang="ca" hreflang="ca" data-title="Llenguatge C" data-language-autonym="Català" data-language-local-name="katalán" class="interlanguage-link-target"><span>Català</span></a></li><li class="interlanguage-link interwiki-cdo mw-list-item"><a href="https://cdo.wikipedia.org/wiki/C_ng%E1%B9%B3%CC%84-ngi%C3%B2ng" title="C ngṳ̄-ngiòng – Mindong" lang="cdo" hreflang="cdo" data-title="C ngṳ̄-ngiòng" data-language-autonym="閩東語 / Mìng-dĕ̤ng-ngṳ̄" data-language-local-name="Mindong" class="interlanguage-link-target"><span>閩東語 / Mìng-dĕ̤ng-ngṳ̄</span></a></li><li class="interlanguage-link interwiki-co mw-list-item"><a href="https://co.wikipedia.org/wiki/C_(linguagiu_di_prugrammazione)" title="C (linguagiu di prugrammazione) – korzikai" lang="co" hreflang="co" data-title="C (linguagiu di prugrammazione)" data-language-autonym="Corsu" data-language-local-name="korzikai" class="interlanguage-link-target"><span>Corsu</span></a></li><li class="interlanguage-link interwiki-cs mw-list-item"><a href="https://cs.wikipedia.org/wiki/C_(programovac%C3%AD_jazyk)" title="C (programovací jazyk) – cseh" lang="cs" hreflang="cs" data-title="C (programovací jazyk)" data-language-autonym="Čeština" data-language-local-name="cseh" class="interlanguage-link-target"><span>Čeština</span></a></li><li class="interlanguage-link interwiki-cv mw-list-item"><a href="https://cv.wikipedia.org/wiki/%D0%A1%D0%B8_(%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80_%D1%87%C4%95%D0%BB%D1%85%D0%B8)" title="Си (компьютер чĕлхи) – csuvas" lang="cv" hreflang="cv" data-title="Си (компьютер чĕлхи)" data-language-autonym="Чӑвашла" data-language-local-name="csuvas" class="interlanguage-link-target"><span>Чӑвашла</span></a></li><li class="interlanguage-link interwiki-cy mw-list-item"><a href="https://cy.wikipedia.org/wiki/C_(iaith_raglennu)" title="C (iaith raglennu) – walesi" lang="cy" hreflang="cy" data-title="C (iaith raglennu)" data-language-autonym="Cymraeg" data-language-local-name="walesi" class="interlanguage-link-target"><span>Cymraeg</span></a></li><li class="interlanguage-link interwiki-da mw-list-item"><a href="https://da.wikipedia.org/wiki/C_(programmeringssprog)" title="C (programmeringssprog) – dán" lang="da" hreflang="da" data-title="C (programmeringssprog)" data-language-autonym="Dansk" data-language-local-name="dán" class="interlanguage-link-target"><span>Dansk</span></a></li><li class="interlanguage-link interwiki-de mw-list-item"><a href="https://de.wikipedia.org/wiki/C_(Programmiersprache)" title="C (Programmiersprache) – német" lang="de" hreflang="de" data-title="C (Programmiersprache)" data-language-autonym="Deutsch" data-language-local-name="német" class="interlanguage-link-target"><span>Deutsch</span></a></li><li class="interlanguage-link interwiki-el mw-list-item"><a href="https://el.wikipedia.org/wiki/C_(%CE%B3%CE%BB%CF%8E%CF%83%CF%83%CE%B1_%CF%80%CF%81%CE%BF%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1%CF%84%CE%B9%CF%83%CE%BC%CE%BF%CF%8D)" title="C (γλώσσα προγραμματισμού) – görög" lang="el" hreflang="el" data-title="C (γλώσσα προγραμματισμού)" data-language-autonym="Ελληνικά" data-language-local-name="görög" class="interlanguage-link-target"><span>Ελληνικά</span></a></li><li class="interlanguage-link interwiki-eo mw-list-item"><a href="https://eo.wikipedia.org/wiki/C_(programlingvo)" title="C (programlingvo) – eszperantó" lang="eo" hreflang="eo" data-title="C (programlingvo)" data-language-autonym="Esperanto" data-language-local-name="eszperantó" class="interlanguage-link-target"><span>Esperanto</span></a></li><li class="interlanguage-link interwiki-es mw-list-item"><a href="https://es.wikipedia.org/wiki/C_(lenguaje_de_programaci%C3%B3n)" title="C (lenguaje de programación) – spanyol" lang="es" hreflang="es" data-title="C (lenguaje de programación)" data-language-autonym="Español" data-language-local-name="spanyol" class="interlanguage-link-target"><span>Español</span></a></li><li class="interlanguage-link interwiki-et mw-list-item"><a href="https://et.wikipedia.org/wiki/C_(programmeerimiskeel)" title="C (programmeerimiskeel) – észt" lang="et" hreflang="et" data-title="C (programmeerimiskeel)" data-language-autonym="Eesti" data-language-local-name="észt" class="interlanguage-link-target"><span>Eesti</span></a></li><li class="interlanguage-link interwiki-eu mw-list-item"><a href="https://eu.wikipedia.org/wiki/C_(programazio_lengoaia)" title="C (programazio lengoaia) – baszk" lang="eu" hreflang="eu" data-title="C (programazio lengoaia)" data-language-autonym="Euskara" data-language-local-name="baszk" class="interlanguage-link-target"><span>Euskara</span></a></li><li class="interlanguage-link interwiki-fa mw-list-item"><a href="https://fa.wikipedia.org/wiki/%D8%B3%DB%8C_(%D8%B2%D8%A8%D8%A7%D9%86_%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87%E2%80%8C%D9%86%D9%88%DB%8C%D8%B3%DB%8C)" title="سی (زبان برنامهنویسی) – perzsa" lang="fa" hreflang="fa" data-title="سی (زبان برنامهنویسی)" data-language-autonym="فارسی" data-language-local-name="perzsa" class="interlanguage-link-target"><span>فارسی</span></a></li><li class="interlanguage-link interwiki-fi mw-list-item"><a href="https://fi.wikipedia.org/wiki/C_(ohjelmointikieli)" title="C (ohjelmointikieli) – finn" lang="fi" hreflang="fi" data-title="C (ohjelmointikieli)" data-language-autonym="Suomi" data-language-local-name="finn" class="interlanguage-link-target"><span>Suomi</span></a></li><li class="interlanguage-link interwiki-fr mw-list-item"><a href="https://fr.wikipedia.org/wiki/C_(langage)" title="C (langage) – francia" lang="fr" hreflang="fr" data-title="C (langage)" data-language-autonym="Français" data-language-local-name="francia" class="interlanguage-link-target"><span>Français</span></a></li><li class="interlanguage-link interwiki-ga mw-list-item"><a href="https://ga.wikipedia.org/wiki/C_(Teanga_r%C3%ADomhchl%C3%A1r%C3%BAch%C3%A1in)" title="C (Teanga ríomhchlárúcháin) – ír" lang="ga" hreflang="ga" data-title="C (Teanga ríomhchlárúcháin)" data-language-autonym="Gaeilge" data-language-local-name="ír" class="interlanguage-link-target"><span>Gaeilge</span></a></li><li class="interlanguage-link interwiki-gl mw-list-item"><a href="https://gl.wikipedia.org/wiki/C_(linguaxe_de_programaci%C3%B3n)" title="C (linguaxe de programación) – gallego" lang="gl" hreflang="gl" data-title="C (linguaxe de programación)" data-language-autonym="Galego" data-language-local-name="gallego" class="interlanguage-link-target"><span>Galego</span></a></li><li class="interlanguage-link interwiki-gu mw-list-item"><a href="https://gu.wikipedia.org/wiki/C_(%E0%AA%AA%E0%AB%8D%E0%AA%B0%E0%AB%8B%E0%AA%97%E0%AB%8D%E0%AA%B0%E0%AA%BE%E0%AA%AE%E0%AA%BF%E0%AA%82%E0%AA%97_%E0%AA%AD%E0%AA%BE%E0%AA%B7%E0%AA%BE)" title="C (પ્રોગ્રામિંગ ભાષા) – gudzsaráti" lang="gu" hreflang="gu" data-title="C (પ્રોગ્રામિંગ ભાષા)" data-language-autonym="ગુજરાતી" data-language-local-name="gudzsaráti" class="interlanguage-link-target"><span>ગુજરાતી</span></a></li><li class="interlanguage-link interwiki-ha mw-list-item"><a href="https://ha.wikipedia.org/wiki/C_programming_language" title="C programming language – hausza" lang="ha" hreflang="ha" data-title="C programming language" data-language-autonym="Hausa" data-language-local-name="hausza" class="interlanguage-link-target"><span>Hausa</span></a></li><li class="interlanguage-link interwiki-hak mw-list-item"><a href="https://hak.wikipedia.org/wiki/C_ng%C3%AE-ngi%C3%A8n" title="C ngî-ngièn – hakka kínai" lang="hak" hreflang="hak" data-title="C ngî-ngièn" data-language-autonym="客家語 / Hak-kâ-ngî" data-language-local-name="hakka kínai" class="interlanguage-link-target"><span>客家語 / Hak-kâ-ngî</span></a></li><li class="interlanguage-link interwiki-he mw-list-item"><a href="https://he.wikipedia.org/wiki/C_(%D7%A9%D7%A4%D7%AA_%D7%AA%D7%9B%D7%A0%D7%95%D7%AA)" title="C (שפת תכנות) – héber" lang="he" hreflang="he" data-title="C (שפת תכנות)" data-language-autonym="עברית" data-language-local-name="héber" class="interlanguage-link-target"><span>עברית</span></a></li><li class="interlanguage-link interwiki-hi mw-list-item"><a href="https://hi.wikipedia.org/wiki/%E0%A4%B8%E0%A5%80_(%E0%A4%AA%E0%A5%8D%E0%A4%B0%E0%A5%8B%E0%A4%97%E0%A5%8D%E0%A4%B0%E0%A4%BE%E0%A4%AE%E0%A4%BF%E0%A4%82%E0%A4%97_%E0%A4%AD%E0%A4%BE%E0%A4%B7%E0%A4%BE)" title="सी (प्रोग्रामिंग भाषा) – hindi" lang="hi" hreflang="hi" data-title="सी (प्रोग्रामिंग भाषा)" data-language-autonym="हिन्दी" data-language-local-name="hindi" class="interlanguage-link-target"><span>हिन्दी</span></a></li><li class="interlanguage-link interwiki-hr mw-list-item"><a href="https://hr.wikipedia.org/wiki/C_(programski_jezik)" title="C (programski jezik) – horvát" lang="hr" hreflang="hr" data-title="C (programski jezik)" data-language-autonym="Hrvatski" data-language-local-name="horvát" class="interlanguage-link-target"><span>Hrvatski</span></a></li><li class="interlanguage-link interwiki-hy mw-list-item"><a href="https://hy.wikipedia.org/wiki/%D5%8D%D5%AB_(%D5%AE%D6%80%D5%A1%D5%A3%D6%80%D5%A1%D5%BE%D5%B8%D6%80%D5%B4%D5%A1%D5%B6_%D5%AC%D5%A5%D5%A6%D5%B8%D6%82)" title="Սի (ծրագրավորման լեզու) – örmény" lang="hy" hreflang="hy" data-title="Սի (ծրագրավորման լեզու)" data-language-autonym="Հայերեն" data-language-local-name="örmény" class="interlanguage-link-target"><span>Հայերեն</span></a></li><li class="interlanguage-link interwiki-ia mw-list-item"><a href="https://ia.wikipedia.org/wiki/C_(linguage_de_programmation)" title="C (linguage de programmation) – interlingva" lang="ia" hreflang="ia" data-title="C (linguage de programmation)" data-language-autonym="Interlingua" data-language-local-name="interlingva" class="interlanguage-link-target"><span>Interlingua</span></a></li><li class="interlanguage-link interwiki-id mw-list-item"><a href="https://id.wikipedia.org/wiki/C_(bahasa_pemrograman)" title="C (bahasa pemrograman) – indonéz" lang="id" hreflang="id" data-title="C (bahasa pemrograman)" data-language-autonym="Bahasa Indonesia" data-language-local-name="indonéz" class="interlanguage-link-target"><span>Bahasa Indonesia</span></a></li><li class="interlanguage-link interwiki-io mw-list-item"><a href="https://io.wikipedia.org/wiki/C_(programifo-linguo)" title="C (programifo-linguo) – idó" lang="io" hreflang="io" data-title="C (programifo-linguo)" data-language-autonym="Ido" data-language-local-name="idó" class="interlanguage-link-target"><span>Ido</span></a></li><li class="interlanguage-link interwiki-is mw-list-item"><a href="https://is.wikipedia.org/wiki/C_(forritunarm%C3%A1l)" title="C (forritunarmál) – izlandi" lang="is" hreflang="is" data-title="C (forritunarmál)" data-language-autonym="Íslenska" data-language-local-name="izlandi" class="interlanguage-link-target"><span>Íslenska</span></a></li><li class="interlanguage-link interwiki-it mw-list-item"><a href="https://it.wikipedia.org/wiki/C_(linguaggio_di_programmazione)" title="C (linguaggio di programmazione) – olasz" lang="it" hreflang="it" data-title="C (linguaggio di programmazione)" data-language-autonym="Italiano" data-language-local-name="olasz" class="interlanguage-link-target"><span>Italiano</span></a></li><li class="interlanguage-link interwiki-ja mw-list-item"><a href="https://ja.wikipedia.org/wiki/C%E8%A8%80%E8%AA%9E" title="C言語 – japán" lang="ja" hreflang="ja" data-title="C言語" data-language-autonym="日本語" data-language-local-name="japán" class="interlanguage-link-target"><span>日本語</span></a></li><li class="interlanguage-link interwiki-jv mw-list-item"><a href="https://jv.wikipedia.org/wiki/C_(basa_pamrograman)" title="C (basa pamrograman) – jávai" lang="jv" hreflang="jv" data-title="C (basa pamrograman)" data-language-autonym="Jawa" data-language-local-name="jávai" class="interlanguage-link-target"><span>Jawa</span></a></li><li class="interlanguage-link interwiki-ka mw-list-item"><a href="https://ka.wikipedia.org/wiki/C_(%E1%83%9E%E1%83%A0%E1%83%9D%E1%83%92%E1%83%A0%E1%83%90%E1%83%9B%E1%83%98%E1%83%A0%E1%83%94%E1%83%91%E1%83%98%E1%83%A1_%E1%83%94%E1%83%9C%E1%83%90)" title="C (პროგრამირების ენა) – grúz" lang="ka" hreflang="ka" data-title="C (პროგრამირების ენა)" data-language-autonym="ქართული" data-language-local-name="grúz" class="interlanguage-link-target"><span>ქართული</span></a></li><li class="interlanguage-link interwiki-kaa mw-list-item"><a href="https://kaa.wikipedia.org/wiki/C" title="C – kara-kalpak" lang="kaa" hreflang="kaa" data-title="C" data-language-autonym="Qaraqalpaqsha" data-language-local-name="kara-kalpak" class="interlanguage-link-target"><span>Qaraqalpaqsha</span></a></li><li class="interlanguage-link interwiki-kab mw-list-item"><a href="https://kab.wikipedia.org/wiki/C_(tutlayt)" title="C (tutlayt) – kabije" lang="kab" hreflang="kab" data-title="C (tutlayt)" data-language-autonym="Taqbaylit" data-language-local-name="kabije" class="interlanguage-link-target"><span>Taqbaylit</span></a></li><li class="interlanguage-link interwiki-kk mw-list-item"><a href="https://kk.wikipedia.org/wiki/C_(%D0%B1%D0%B0%D2%93%D0%B4%D0%B0%D1%80%D0%BB%D0%B0%D0%BC%D0%B0%D0%BB%D0%B0%D1%83_%D1%82%D1%96%D0%BB%D1%96)" title="C (бағдарламалау тілі) – kazah" lang="kk" hreflang="kk" data-title="C (бағдарламалау тілі)" data-language-autonym="Қазақша" data-language-local-name="kazah" class="interlanguage-link-target"><span>Қазақша</span></a></li><li class="interlanguage-link interwiki-km mw-list-item"><a href="https://km.wikipedia.org/wiki/%E1%9E%97%E1%9E%B6%E1%9E%9F%E1%9E%B6%E1%9E%9F%E1%9F%8A%E1%9E%B8" title="ភាសាស៊ី – khmer" lang="km" hreflang="km" data-title="ភាសាស៊ី" data-language-autonym="ភាសាខ្មែរ" data-language-local-name="khmer" class="interlanguage-link-target"><span>ភាសាខ្មែរ</span></a></li><li class="interlanguage-link interwiki-kn mw-list-item"><a href="https://kn.wikipedia.org/wiki/%E0%B2%B8%E0%B2%BF_(%E0%B2%95%E0%B3%8D%E0%B2%B0%E0%B2%AE%E0%B2%B5%E0%B2%BF%E0%B2%A7%E0%B2%BF_%E0%B2%AD%E0%B2%BE%E0%B2%B7%E0%B3%86)" title="ಸಿ (ಕ್ರಮವಿಧಿ ಭಾಷೆ) – kannada" lang="kn" hreflang="kn" data-title="ಸಿ (ಕ್ರಮವಿಧಿ ಭಾಷೆ)" data-language-autonym="ಕನ್ನಡ" data-language-local-name="kannada" class="interlanguage-link-target"><span>ಕನ್ನಡ</span></a></li><li class="interlanguage-link interwiki-ko mw-list-item"><a href="https://ko.wikipedia.org/wiki/C_(%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D_%EC%96%B8%EC%96%B4)" title="C (프로그래밍 언어) – koreai" lang="ko" hreflang="ko" data-title="C (프로그래밍 언어)" data-language-autonym="한국어" data-language-local-name="koreai" class="interlanguage-link-target"><span>한국어</span></a></li><li class="interlanguage-link interwiki-ku mw-list-item"><a href="https://ku.wikipedia.org/wiki/C_(ziman%C3%AA_bernamesaziy%C3%AA)" title="C (zimanê bernamesaziyê) – kurd" lang="ku" hreflang="ku" data-title="C (zimanê bernamesaziyê)" data-language-autonym="Kurdî" data-language-local-name="kurd" class="interlanguage-link-target"><span>Kurdî</span></a></li><li class="interlanguage-link interwiki-ky mw-list-item"><a href="https://ky.wikipedia.org/wiki/%D0%A1%D0%B8_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D0%BB%D0%BE%D0%BE_%D1%82%D0%B8%D0%BB%D0%B8)" title="Си (программалоо тили) – kirgiz" lang="ky" hreflang="ky" data-title="Си (программалоо тили)" data-language-autonym="Кыргызча" data-language-local-name="kirgiz" class="interlanguage-link-target"><span>Кыргызча</span></a></li><li class="interlanguage-link interwiki-la badge-Q17437796 badge-featuredarticle mw-list-item" title="kiemelt szócikk"><a href="https://la.wikipedia.org/wiki/C_(lingua_programmandi)" title="C (lingua programmandi) – latin" lang="la" hreflang="la" data-title="C (lingua programmandi)" data-language-autonym="Latina" data-language-local-name="latin" class="interlanguage-link-target"><span>Latina</span></a></li><li class="interlanguage-link interwiki-lmo mw-list-item"><a href="https://lmo.wikipedia.org/wiki/C_(lenguagg)" title="C (lenguagg) – lombard" lang="lmo" hreflang="lmo" data-title="C (lenguagg)" data-language-autonym="Lombard" data-language-local-name="lombard" class="interlanguage-link-target"><span>Lombard</span></a></li><li class="interlanguage-link interwiki-lo mw-list-item"><a href="https://lo.wikipedia.org/wiki/%E0%BA%9E%E0%BA%B2%E0%BA%AA%E0%BA%B2%E0%BB%80%E0%BA%8A" title="ພາສາເຊ – lao" lang="lo" hreflang="lo" data-title="ພາສາເຊ" data-language-autonym="ລາວ" data-language-local-name="lao" class="interlanguage-link-target"><span>ລາວ</span></a></li><li class="interlanguage-link interwiki-lt mw-list-item"><a href="https://lt.wikipedia.org/wiki/C_(kalba)" title="C (kalba) – litván" lang="lt" hreflang="lt" data-title="C (kalba)" data-language-autonym="Lietuvių" data-language-local-name="litván" class="interlanguage-link-target"><span>Lietuvių</span></a></li><li class="interlanguage-link interwiki-lv mw-list-item"><a href="https://lv.wikipedia.org/wiki/C_(programm%C4%93%C5%A1anas_valoda)" title="C (programmēšanas valoda) – lett" lang="lv" hreflang="lv" data-title="C (programmēšanas valoda)" data-language-autonym="Latviešu" data-language-local-name="lett" class="interlanguage-link-target"><span>Latviešu</span></a></li><li class="interlanguage-link interwiki-mai mw-list-item"><a href="https://mai.wikipedia.org/wiki/%E0%A4%B8%E0%A5%80" title="सी – maithili" lang="mai" hreflang="mai" data-title="सी" data-language-autonym="मैथिली" data-language-local-name="maithili" class="interlanguage-link-target"><span>मैथिली</span></a></li><li class="interlanguage-link interwiki-mg mw-list-item"><a href="https://mg.wikipedia.org/wiki/Fiteny_C" title="Fiteny C – malgas" lang="mg" hreflang="mg" data-title="Fiteny C" data-language-autonym="Malagasy" data-language-local-name="malgas" class="interlanguage-link-target"><span>Malagasy</span></a></li><li class="interlanguage-link interwiki-mk mw-list-item"><a href="https://mk.wikipedia.org/wiki/C_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%81%D0%BA%D0%B8_%D1%98%D0%B0%D0%B7%D0%B8%D0%BA)" title="C (програмски јазик) – macedón" lang="mk" hreflang="mk" data-title="C (програмски јазик)" data-language-autonym="Македонски" data-language-local-name="macedón" class="interlanguage-link-target"><span>Македонски</span></a></li><li class="interlanguage-link interwiki-ml mw-list-item"><a href="https://ml.wikipedia.org/wiki/%E0%B4%B8%E0%B4%BF_(%E0%B4%AA%E0%B5%8D%E0%B4%B0%E0%B5%8B%E0%B4%97%E0%B5%8D%E0%B4%B0%E0%B4%BE%E0%B4%AE%E0%B4%BF%E0%B4%99%E0%B5%8D_%E0%B4%AD%E0%B4%BE%E0%B4%B7)" title="സി (പ്രോഗ്രാമിങ് ഭാഷ) – malajálam" lang="ml" hreflang="ml" data-title="സി (പ്രോഗ്രാമിങ് ഭാഷ)" data-language-autonym="മലയാളം" data-language-local-name="malajálam" class="interlanguage-link-target"><span>മലയാളം</span></a></li><li class="interlanguage-link interwiki-mn mw-list-item"><a href="https://mn.wikipedia.org/wiki/%D0%A1%D0%B8_%D1%85%D1%8D%D0%BB" title="Си хэл – mongol" lang="mn" hreflang="mn" data-title="Си хэл" data-language-autonym="Монгол" data-language-local-name="mongol" class="interlanguage-link-target"><span>Монгол</span></a></li><li class="interlanguage-link interwiki-mni mw-list-item"><a href="https://mni.wikipedia.org/wiki/%EA%AF%81%EA%AF%A4_%EA%AF%84%EA%AF%AD%EA%AF%94%EA%AF%A3%EA%AF%92%EA%AF%AD%EA%AF%94%EA%AF%A5%EA%AF%9D%EA%AF%83%EA%AF%A4%EA%AF%A1_%EA%AF%82%EA%AF%A3%EA%AF%9F" title="ꯁꯤ ꯄ꯭ꯔꯣꯒ꯭ꯔꯥꯝꯃꯤꯡ ꯂꯣꯟ – manipuri" lang="mni" hreflang="mni" data-title="ꯁꯤ ꯄ꯭ꯔꯣꯒ꯭ꯔꯥꯝꯃꯤꯡ ꯂꯣꯟ" data-language-autonym="ꯃꯤꯇꯩ ꯂꯣꯟ" data-language-local-name="manipuri" class="interlanguage-link-target"><span>ꯃꯤꯇꯩ ꯂꯣꯟ</span></a></li><li class="interlanguage-link interwiki-mr mw-list-item"><a href="https://mr.wikipedia.org/wiki/%E0%A4%B8%E0%A5%80_(%E0%A4%86%E0%A4%9C%E0%A5%8D%E0%A4%9E%E0%A4%BE%E0%A4%B5%E0%A4%B2%E0%A5%80_%E0%A4%AD%E0%A4%BE%E0%A4%B7%E0%A4%BE)" title="सी (आज्ञावली भाषा) – maráthi" lang="mr" hreflang="mr" data-title="सी (आज्ञावली भाषा)" data-language-autonym="मराठी" data-language-local-name="maráthi" class="interlanguage-link-target"><span>मराठी</span></a></li><li class="interlanguage-link interwiki-ms mw-list-item"><a href="https://ms.wikipedia.org/wiki/C_(bahasa_pengaturcaraan)" title="C (bahasa pengaturcaraan) – maláj" lang="ms" hreflang="ms" data-title="C (bahasa pengaturcaraan)" data-language-autonym="Bahasa Melayu" data-language-local-name="maláj" class="interlanguage-link-target"><span>Bahasa Melayu</span></a></li><li class="interlanguage-link interwiki-my mw-list-item"><a href="https://my.wikipedia.org/wiki/C_(%E1%80%95%E1%80%9B%E1%80%AD%E1%80%AF%E1%80%82%E1%80%9B%E1%80%99%E1%80%BA%E1%80%B8%E1%80%99%E1%80%84%E1%80%BA%E1%80%B8_%E1%80%98%E1%80%AC%E1%80%9E%E1%80%AC%E1%80%85%E1%80%80%E1%80%AC%E1%80%B8)" title="C (ပရိုဂရမ်းမင်း ဘာသာစကား) – burmai" lang="my" hreflang="my" data-title="C (ပရိုဂရမ်းမင်း ဘာသာစကား)" data-language-autonym="မြန်မာဘာသာ" data-language-local-name="burmai" class="interlanguage-link-target"><span>မြန်မာဘာသာ</span></a></li><li class="interlanguage-link interwiki-ne mw-list-item"><a href="https://ne.wikipedia.org/wiki/%E0%A4%B8%E0%A4%BF" title="सि – nepáli" lang="ne" hreflang="ne" data-title="सि" data-language-autonym="नेपाली" data-language-local-name="nepáli" class="interlanguage-link-target"><span>नेपाली</span></a></li><li class="interlanguage-link interwiki-nl mw-list-item"><a href="https://nl.wikipedia.org/wiki/C_(programmeertaal)" title="C (programmeertaal) – holland" lang="nl" hreflang="nl" data-title="C (programmeertaal)" data-language-autonym="Nederlands" data-language-local-name="holland" class="interlanguage-link-target"><span>Nederlands</span></a></li><li class="interlanguage-link interwiki-nn mw-list-item"><a href="https://nn.wikipedia.org/wiki/Programmeringsspr%C3%A5ket_C" title="Programmeringsspråket C – norvég (nynorsk)" lang="nn" hreflang="nn" data-title="Programmeringsspråket C" data-language-autonym="Norsk nynorsk" data-language-local-name="norvég (nynorsk)" class="interlanguage-link-target"><span>Norsk nynorsk</span></a></li><li class="interlanguage-link interwiki-no mw-list-item"><a href="https://no.wikipedia.org/wiki/C_(programmeringsspr%C3%A5k)" title="C (programmeringsspråk) – norvég (bokmål)" lang="nb" hreflang="nb" data-title="C (programmeringsspråk)" data-language-autonym="Norsk bokmål" data-language-local-name="norvég (bokmål)" class="interlanguage-link-target"><span>Norsk bokmål</span></a></li><li class="interlanguage-link interwiki-oc mw-list-item"><a href="https://oc.wikipedia.org/wiki/C_(lengatge)" title="C (lengatge) – okszitán" lang="oc" hreflang="oc" data-title="C (lengatge)" data-language-autonym="Occitan" data-language-local-name="okszitán" class="interlanguage-link-target"><span>Occitan</span></a></li><li class="interlanguage-link interwiki-or mw-list-item"><a href="https://or.wikipedia.org/wiki/%E0%AC%B8%E0%AC%BF_(%E0%AC%AA%E0%AD%8D%E0%AC%B0%E0%AD%8B%E0%AC%97%E0%AD%8D%E0%AC%B0%E0%AC%BE%E0%AC%AE%E0%AC%BF%E0%AC%82_%E0%AC%AD%E0%AC%BE%E0%AC%B7%E0%AC%BE)" title="ସି (ପ୍ରୋଗ୍ରାମିଂ ଭାଷା) – odia" lang="or" hreflang="or" data-title="ସି (ପ୍ରୋଗ୍ରାମିଂ ଭାଷା)" data-language-autonym="ଓଡ଼ିଆ" data-language-local-name="odia" class="interlanguage-link-target"><span>ଓଡ଼ିଆ</span></a></li><li class="interlanguage-link interwiki-pa mw-list-item"><a href="https://pa.wikipedia.org/wiki/%E0%A8%B8%E0%A9%80_(%E0%A8%AA%E0%A9%8D%E0%A8%B0%E0%A9%8B%E0%A8%97%E0%A8%B0%E0%A8%BE%E0%A8%AE%E0%A8%BF%E0%A9%B0%E0%A8%97_%E0%A8%AD%E0%A8%BE%E0%A8%B8%E0%A8%BC%E0%A8%BE)" title="ਸੀ (ਪ੍ਰੋਗਰਾਮਿੰਗ ਭਾਸ਼ਾ) – pandzsábi" lang="pa" hreflang="pa" data-title="ਸੀ (ਪ੍ਰੋਗਰਾਮਿੰਗ ਭਾਸ਼ਾ)" data-language-autonym="ਪੰਜਾਬੀ" data-language-local-name="pandzsábi" class="interlanguage-link-target"><span>ਪੰਜਾਬੀ</span></a></li><li class="interlanguage-link interwiki-pl badge-Q17437796 badge-featuredarticle mw-list-item" title="kiemelt szócikk"><a href="https://pl.wikipedia.org/wiki/C_(j%C4%99zyk_programowania)" title="C (język programowania) – lengyel" lang="pl" hreflang="pl" data-title="C (język programowania)" data-language-autonym="Polski" data-language-local-name="lengyel" class="interlanguage-link-target"><span>Polski</span></a></li><li class="interlanguage-link interwiki-pms mw-list-item"><a href="https://pms.wikipedia.org/wiki/C_(lengage_%C3%ABd_programassion)" title="C (lengage ëd programassion) – Piedmontese" lang="pms" hreflang="pms" data-title="C (lengage ëd programassion)" data-language-autonym="Piemontèis" data-language-local-name="Piedmontese" class="interlanguage-link-target"><span>Piemontèis</span></a></li><li class="interlanguage-link interwiki-pnb mw-list-item"><a href="https://pnb.wikipedia.org/wiki/%D8%B3%DB%8C_(%D9%BE%D8%B1%D9%88%DA%AF%D8%B1%D8%A7%D9%85%D9%86%DA%AF_%D8%B2%D8%A8%D8%A7%D9%86)" title="سی (پروگرامنگ زبان) – Western Punjabi" lang="pnb" hreflang="pnb" data-title="سی (پروگرامنگ زبان)" data-language-autonym="پنجابی" data-language-local-name="Western Punjabi" class="interlanguage-link-target"><span>پنجابی</span></a></li><li class="interlanguage-link interwiki-pt mw-list-item"><a href="https://pt.wikipedia.org/wiki/C_(linguagem_de_programa%C3%A7%C3%A3o)" title="C (linguagem de programação) – portugál" lang="pt" hreflang="pt" data-title="C (linguagem de programação)" data-language-autonym="Português" data-language-local-name="portugál" class="interlanguage-link-target"><span>Português</span></a></li><li class="interlanguage-link interwiki-qu mw-list-item"><a href="https://qu.wikipedia.org/wiki/C_(wakichiy_simi)" title="C (wakichiy simi) – kecsua" lang="qu" hreflang="qu" data-title="C (wakichiy simi)" data-language-autonym="Runa Simi" data-language-local-name="kecsua" class="interlanguage-link-target"><span>Runa Simi</span></a></li><li class="interlanguage-link interwiki-ro mw-list-item"><a href="https://ro.wikipedia.org/wiki/C_(limbaj_de_programare)" title="C (limbaj de programare) – román" lang="ro" hreflang="ro" data-title="C (limbaj de programare)" data-language-autonym="Română" data-language-local-name="román" class="interlanguage-link-target"><span>Română</span></a></li><li class="interlanguage-link interwiki-ru mw-list-item"><a href="https://ru.wikipedia.org/wiki/%D0%A1%D0%B8_(%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)" title="Си (язык программирования) – orosz" lang="ru" hreflang="ru" data-title="Си (язык программирования)" data-language-autonym="Русский" data-language-local-name="orosz" class="interlanguage-link-target"><span>Русский</span></a></li><li class="interlanguage-link interwiki-sah mw-list-item"><a href="https://sah.wikipedia.org/wiki/C_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D0%BB%D0%B0%D0%B0h%D1%8B%D0%BD_%D1%82%D1%8B%D0%BB%D0%B0)" title="C (программалааhын тыла) – szaha" lang="sah" hreflang="sah" data-title="C (программалааhын тыла)" data-language-autonym="Саха тыла" data-language-local-name="szaha" class="interlanguage-link-target"><span>Саха тыла</span></a></li><li class="interlanguage-link interwiki-sat mw-list-item"><a href="https://sat.wikipedia.org/wiki/%E1%B1%A5%E1%B1%A4_(%E1%B1%AF%E1%B1%A8%E1%B1%9A%E1%B1%9C%E1%B1%BD%E1%B1%A8%E1%B1%9F%E1%B1%A2%E1%B1%A4%E1%B1%9D_%E1%B1%AF%E1%B1%9F%E1%B1%B9%E1%B1%A8%E1%B1%A5%E1%B1%A4)" title="ᱥᱤ (ᱯᱨᱚᱜᱽᱨᱟᱢᱤᱝ ᱯᱟᱹᱨᱥᱤ) – szantáli" lang="sat" hreflang="sat" data-title="ᱥᱤ (ᱯᱨᱚᱜᱽᱨᱟᱢᱤᱝ ᱯᱟᱹᱨᱥᱤ)" data-language-autonym="ᱥᱟᱱᱛᱟᱲᱤ" data-language-local-name="szantáli" class="interlanguage-link-target"><span>ᱥᱟᱱᱛᱟᱲᱤ</span></a></li><li class="interlanguage-link interwiki-sco mw-list-item"><a href="https://sco.wikipedia.org/wiki/C_(programmin_leid)" title="C (programmin leid) – skót" lang="sco" hreflang="sco" data-title="C (programmin leid)" data-language-autonym="Scots" data-language-local-name="skót" class="interlanguage-link-target"><span>Scots</span></a></li><li class="interlanguage-link interwiki-sh mw-list-item"><a href="https://sh.wikipedia.org/wiki/C_(programski_jezik)" title="C (programski jezik) – szerbhorvát" lang="sh" hreflang="sh" data-title="C (programski jezik)" data-language-autonym="Srpskohrvatski / српскохрватски" data-language-local-name="szerbhorvát" class="interlanguage-link-target"><span>Srpskohrvatski / српскохрватски</span></a></li><li class="interlanguage-link interwiki-si mw-list-item"><a href="https://si.wikipedia.org/wiki/C_(%E0%B6%9A%E0%B7%8A%E2%80%8D%E0%B6%BB%E0%B6%B8%E0%B6%BD%E0%B7%9A%E0%B6%9B%E0%B6%B1_%E0%B6%B7%E0%B7%8F%E0%B7%82%E0%B7%8F%E0%B7%80)" title="C (ක්රමලේඛන භාෂාව) – szingaléz" lang="si" hreflang="si" data-title="C (ක්රමලේඛන භාෂාව)" data-language-autonym="සිංහල" data-language-local-name="szingaléz" class="interlanguage-link-target"><span>සිංහල</span></a></li><li class="interlanguage-link interwiki-simple mw-list-item"><a href="https://simple.wikipedia.org/wiki/C_(programming_language)" title="C (programming language) – Simple English" lang="en-simple" hreflang="en-simple" data-title="C (programming language)" data-language-autonym="Simple English" data-language-local-name="Simple English" class="interlanguage-link-target"><span>Simple English</span></a></li><li class="interlanguage-link interwiki-sk mw-list-item"><a href="https://sk.wikipedia.org/wiki/C_(programovac%C3%AD_jazyk)" title="C (programovací jazyk) – szlovák" lang="sk" hreflang="sk" data-title="C (programovací jazyk)" data-language-autonym="Slovenčina" data-language-local-name="szlovák" class="interlanguage-link-target"><span>Slovenčina</span></a></li><li class="interlanguage-link interwiki-sl mw-list-item"><a href="https://sl.wikipedia.org/wiki/Programski_jezik_C" title="Programski jezik C – szlovén" lang="sl" hreflang="sl" data-title="Programski jezik C" data-language-autonym="Slovenščina" data-language-local-name="szlovén" class="interlanguage-link-target"><span>Slovenščina</span></a></li><li class="interlanguage-link interwiki-sq mw-list-item"><a href="https://sq.wikipedia.org/wiki/C_(gjuh%C3%AB_programimi)" title="C (gjuhë programimi) – albán" lang="sq" hreflang="sq" data-title="C (gjuhë programimi)" data-language-autonym="Shqip" data-language-local-name="albán" class="interlanguage-link-target"><span>Shqip</span></a></li><li class="interlanguage-link interwiki-sr mw-list-item"><a href="https://sr.wikipedia.org/wiki/C_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%81%D0%BA%D0%B8_%D1%98%D0%B5%D0%B7%D0%B8%D0%BA)" title="C (програмски језик) – szerb" lang="sr" hreflang="sr" data-title="C (програмски језик)" data-language-autonym="Српски / srpski" data-language-local-name="szerb" class="interlanguage-link-target"><span>Српски / srpski</span></a></li><li class="interlanguage-link interwiki-sv mw-list-item"><a href="https://sv.wikipedia.org/wiki/C_(programspr%C3%A5k)" title="C (programspråk) – svéd" lang="sv" hreflang="sv" data-title="C (programspråk)" data-language-autonym="Svenska" data-language-local-name="svéd" class="interlanguage-link-target"><span>Svenska</span></a></li><li class="interlanguage-link interwiki-sw mw-list-item"><a href="https://sw.wikipedia.org/wiki/C_(lugha_ya_programu)" title="C (lugha ya programu) – szuahéli" lang="sw" hreflang="sw" data-title="C (lugha ya programu)" data-language-autonym="Kiswahili" data-language-local-name="szuahéli" class="interlanguage-link-target"><span>Kiswahili</span></a></li><li class="interlanguage-link interwiki-ta mw-list-item"><a href="https://ta.wikipedia.org/wiki/%E0%AE%9A%E0%AE%BF_(%E0%AE%A8%E0%AE%BF%E0%AE%B0%E0%AE%B2%E0%AE%BE%E0%AE%95%E0%AF%8D%E0%AE%95_%E0%AE%AE%E0%AF%8A%E0%AE%B4%E0%AE%BF)" title="சி (நிரலாக்க மொழி) – tamil" lang="ta" hreflang="ta" data-title="சி (நிரலாக்க மொழி)" data-language-autonym="தமிழ்" data-language-local-name="tamil" class="interlanguage-link-target"><span>தமிழ்</span></a></li><li class="interlanguage-link interwiki-te mw-list-item"><a href="https://te.wikipedia.org/wiki/%E0%B0%B8%E0%B0%BF" title="సి – telugu" lang="te" hreflang="te" data-title="సి" data-language-autonym="తెలుగు" data-language-local-name="telugu" class="interlanguage-link-target"><span>తెలుగు</span></a></li><li class="interlanguage-link interwiki-tg mw-list-item"><a href="https://tg.wikipedia.org/wiki/C_(%D0%B7%D0%B0%D0%B1%D0%BE%D0%BD%D0%B8_%D0%B1%D0%B0%D1%80%D0%BD%D0%BE%D0%BC%D0%B0%D1%81%D0%BE%D0%B7%D3%A3)" title="C (забони барномасозӣ) – tadzsik" lang="tg" hreflang="tg" data-title="C (забони барномасозӣ)" data-language-autonym="Тоҷикӣ" data-language-local-name="tadzsik" class="interlanguage-link-target"><span>Тоҷикӣ</span></a></li><li class="interlanguage-link interwiki-th mw-list-item"><a href="https://th.wikipedia.org/wiki/%E0%B8%A0%E0%B8%B2%E0%B8%A9%E0%B8%B2%E0%B8%8B%E0%B8%B5" title="ภาษาซี – thai" lang="th" hreflang="th" data-title="ภาษาซี" data-language-autonym="ไทย" data-language-local-name="thai" class="interlanguage-link-target"><span>ไทย</span></a></li><li class="interlanguage-link interwiki-tl mw-list-item"><a href="https://tl.wikipedia.org/wiki/C_(wikang_pamprograma)" title="C (wikang pamprograma) – tagalog" lang="tl" hreflang="tl" data-title="C (wikang pamprograma)" data-language-autonym="Tagalog" data-language-local-name="tagalog" class="interlanguage-link-target"><span>Tagalog</span></a></li><li class="interlanguage-link interwiki-tr mw-list-item"><a href="https://tr.wikipedia.org/wiki/C_(programlama_dili)" title="C (programlama dili) – török" lang="tr" hreflang="tr" data-title="C (programlama dili)" data-language-autonym="Türkçe" data-language-local-name="török" class="interlanguage-link-target"><span>Türkçe</span></a></li><li class="interlanguage-link interwiki-tt mw-list-item"><a href="https://tt.wikipedia.org/wiki/%D0%A1%D0%B8_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D0%BB%D0%B0%D1%83_%D1%82%D0%B5%D0%BB%D0%B5)" title="Си (программалау теле) – tatár" lang="tt" hreflang="tt" data-title="Си (программалау теле)" data-language-autonym="Татарча / tatarça" data-language-local-name="tatár" class="interlanguage-link-target"><span>Татарча / tatarça</span></a></li><li class="interlanguage-link interwiki-uk mw-list-item"><a href="https://uk.wikipedia.org/wiki/C_(%D0%BC%D0%BE%D0%B2%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)" title="C (мова програмування) – ukrán" lang="uk" hreflang="uk" data-title="C (мова програмування)" data-language-autonym="Українська" data-language-local-name="ukrán" class="interlanguage-link-target"><span>Українська</span></a></li><li class="interlanguage-link interwiki-ur mw-list-item"><a href="https://ur.wikipedia.org/wiki/%D8%B3%DB%8C_(%D9%BE%D8%B1%D9%88%DA%AF%D8%B1%D8%A7%D9%85%D9%86%DA%AF_%D8%B2%D8%A8%D8%A7%D9%86)" title="سی (پروگرامنگ زبان) – urdu" lang="ur" hreflang="ur" data-title="سی (پروگرامنگ زبان)" data-language-autonym="اردو" data-language-local-name="urdu" class="interlanguage-link-target"><span>اردو</span></a></li><li class="interlanguage-link interwiki-uz mw-list-item"><a href="https://uz.wikipedia.org/wiki/C_(dasturlash_tili)" title="C (dasturlash tili) – üzbég" lang="uz" hreflang="uz" data-title="C (dasturlash tili)" data-language-autonym="Oʻzbekcha / ўзбекча" data-language-local-name="üzbég" class="interlanguage-link-target"><span>Oʻzbekcha / ўзбекча</span></a></li><li class="interlanguage-link interwiki-vec mw-list-item"><a href="https://vec.wikipedia.org/wiki/Lenguajo_C" title="Lenguajo C – velencei" lang="vec" hreflang="vec" data-title="Lenguajo C" data-language-autonym="Vèneto" data-language-local-name="velencei" class="interlanguage-link-target"><span>Vèneto</span></a></li><li class="interlanguage-link interwiki-vi mw-list-item"><a href="https://vi.wikipedia.org/wiki/C_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)" title="C (ngôn ngữ lập trình) – vietnámi" lang="vi" hreflang="vi" data-title="C (ngôn ngữ lập trình)" data-language-autonym="Tiếng Việt" data-language-local-name="vietnámi" class="interlanguage-link-target"><span>Tiếng Việt</span></a></li><li class="interlanguage-link interwiki-war mw-list-item"><a href="https://war.wikipedia.org/wiki/C_(linggwahe_hin_pagprograma)" title="C (linggwahe hin pagprograma) – varaó" lang="war" hreflang="war" data-title="C (linggwahe hin pagprograma)" data-language-autonym="Winaray" data-language-local-name="varaó" class="interlanguage-link-target"><span>Winaray</span></a></li><li class="interlanguage-link interwiki-wuu mw-list-item"><a href="https://wuu.wikipedia.org/wiki/C%E8%AF%AD%E8%A8%80" title="C语言 – wu kínai" lang="wuu" hreflang="wuu" data-title="C语言" data-language-autonym="吴语" data-language-local-name="wu kínai" class="interlanguage-link-target"><span>吴语</span></a></li><li class="interlanguage-link interwiki-xh mw-list-item"><a href="https://xh.wikipedia.org/wiki/U-C_(woku-programa_ulwimi)" title="U-C (woku-programa ulwimi) – xhosza" lang="xh" hreflang="xh" data-title="U-C (woku-programa ulwimi)" data-language-autonym="IsiXhosa" data-language-local-name="xhosza" class="interlanguage-link-target"><span>IsiXhosa</span></a></li><li class="interlanguage-link interwiki-yi mw-list-item"><a href="https://yi.wikipedia.org/wiki/C_(%D7%A4%D7%A8%D7%90%D7%92%D7%A8%D7%90%D7%9D_%D7%A9%D7%A4%D7%A8%D7%90%D7%9A)" title="C (פראגראם שפראך) – jiddis" lang="yi" hreflang="yi" data-title="C (פראגראם שפראך)" data-language-autonym="ייִדיש" data-language-local-name="jiddis" class="interlanguage-link-target"><span>ייִדיש</span></a></li><li class="interlanguage-link interwiki-zgh mw-list-item"><a href="https://zgh.wikipedia.org/wiki/%E2%B5%99%E2%B5%89_(%E2%B5%9C%E2%B5%93%E2%B5%9C%E2%B5%8D%E2%B4%B0%E2%B5%A2%E2%B5%9C_%E2%B5%8F_%E2%B5%93%E2%B5%99%E2%B5%96%E2%B5%89%E2%B5%A1%E2%B5%99)" title="ⵙⵉ (ⵜⵓⵜⵍⴰⵢⵜ ⵏ ⵓⵙⵖⵉⵡⵙ) – marokkói tamazight" lang="zgh" hreflang="zgh" data-title="ⵙⵉ (ⵜⵓⵜⵍⴰⵢⵜ ⵏ ⵓⵙⵖⵉⵡⵙ)" data-language-autonym="ⵜⴰⵎⴰⵣⵉⵖⵜ ⵜⴰⵏⴰⵡⴰⵢⵜ" data-language-local-name="marokkói tamazight" class="interlanguage-link-target"><span>ⵜⴰⵎⴰⵣⵉⵖⵜ ⵜⴰⵏⴰⵡⴰⵢⵜ</span></a></li><li class="interlanguage-link interwiki-zh mw-list-item"><a href="https://zh.wikipedia.org/wiki/C%E8%AF%AD%E8%A8%80" title="C语言 – kínai" lang="zh" hreflang="zh" data-title="C语言" data-language-autonym="中文" data-language-local-name="kínai" class="interlanguage-link-target"><span>中文</span></a></li><li class="interlanguage-link interwiki-zh-classical mw-list-item"><a href="https://zh-classical.wikipedia.org/wiki/%E4%B8%99%E8%AA%9E" title="丙語 – Literary Chinese" lang="lzh" hreflang="lzh" data-title="丙語" data-language-autonym="文言" data-language-local-name="Literary Chinese" class="interlanguage-link-target"><span>文言</span></a></li><li class="interlanguage-link interwiki-zh-min-nan mw-list-item"><a href="https://zh-min-nan.wikipedia.org/wiki/C_(th%C3%AAng-sek_g%C3%AD-gi%C3%A2n)" title="C (thêng-sek gí-giân) – min nan kínai" lang="nan" hreflang="nan" data-title="C (thêng-sek gí-giân)" data-language-autonym="閩南語 / Bân-lâm-gú" data-language-local-name="min nan kínai" class="interlanguage-link-target"><span>閩南語 / Bân-lâm-gú</span></a></li><li class="interlanguage-link interwiki-zh-yue mw-list-item"><a href="https://zh-yue.wikipedia.org/wiki/C_(%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80)" title="C (程式語言) – kantoni" lang="yue" hreflang="yue" data-title="C (程式語言)" data-language-autonym="粵語" data-language-local-name="kantoni" class="interlanguage-link-target"><span>粵語</span></a></li> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q15777#sitelinks-wikipedia" title="Nyelvközi hivatkozások szerkesztése" class="wbc-editpage">Hivatkozások szerkesztése</a></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Névterek"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/C_(programoz%C3%A1si_nyelv)" title="A lap megtekintése [c]" accesskey="c"><span>Szócikk</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/Vita:C_(programoz%C3%A1si_nyelv)" rel="discussion" title="Az oldal tartalmának megvitatása [t]" accesskey="t"><span>Vitalap</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Nyelvvariáns váltása" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">magyar</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Nézetek"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/C_(programoz%C3%A1si_nyelv)"><span>Olvasás</span></a></li><li id="ca-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit" title="Az oldal forráskódjának szerkesztése [e]" accesskey="e"><span>Szerkesztés</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=history" title="A lap korábbi változatai [h]" accesskey="h"><span>Laptörténet</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Oldal eszközök"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Eszközök" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Eszközök</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Eszközök</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">áthelyezés az oldalsávba</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">elrejtés</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="További lehetőségek" > <div class="vector-menu-heading"> Műveletek </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/C_(programoz%C3%A1si_nyelv)"><span>Olvasás</span></a></li><li id="ca-more-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit" title="Az oldal forráskódjának szerkesztése [e]" accesskey="e"><span>Szerkesztés</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=history"><span>Laptörténet</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> Általános </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Speci%C3%A1lis:Mi_hivatkozik_erre/C_(programoz%C3%A1si_nyelv)" title="Az erre a lapra hivatkozó más lapok listája [j]" accesskey="j"><span>Mi hivatkozik erre?</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Speci%C3%A1lis:Kapcsol%C3%B3d%C3%B3_v%C3%A1ltoztat%C3%A1sok/C_(programoz%C3%A1si_nyelv)" rel="nofollow" title="Az erről a lapról hivatkozott lapok utolsó változtatásai [k]" accesskey="k"><span>Kapcsolódó változtatások</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/Speci%C3%A1lis:Speci%C3%A1lis_lapok" title="Az összes speciális lap listája [q]" accesskey="q"><span>Speciális lapok</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&oldid=27224636" title="Állandó hivatkozás ezen lap ezen változatához"><span>Hivatkozás erre a változatra</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=info" title="További információk erről a lapról"><span>Lapinformációk</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Speci%C3%A1lis:Hivatkoz%C3%A1s&page=C_%28programoz%C3%A1si_nyelv%29&id=27224636&wpFormIdentifier=titleform" title="Információk a lap idézésével kapcsolatban"><span>Hogyan hivatkozz erre a lapra?</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Speci%C3%A1lis:UrlShortener&url=https%3A%2F%2Fhu.wikipedia.org%2Fwiki%2FC_%28programoz%25C3%25A1si_nyelv%29"><span>Rövidített URL készítése</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Speci%C3%A1lis:QrCode&url=https%3A%2F%2Fhu.wikipedia.org%2Fwiki%2FC_%28programoz%25C3%25A1si_nyelv%29"><span>QR-kód letöltése</span></a></li> </ul> </div> </div> <div id="p-coll-print_export" class="vector-menu mw-portlet mw-portlet-coll-print_export" > <div class="vector-menu-heading"> Nyomtatás/exportálás </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-create_a_book" class="mw-list-item"><a href="/w/index.php?title=Speci%C3%A1lis:K%C3%B6nyv&bookcmd=book_creator&referer=C+%28programoz%C3%A1si+nyelv%29"><span>Könyv készítése</span></a></li><li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Speci%C3%A1lis:DownloadAsPdf&page=C_%28programoz%C3%A1si_nyelv%29&action=show-download-screen"><span>Letöltés PDF-ként</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&printable=yes" title="A lap nyomtatható változata [p]" accesskey="p"><span>Nyomtatható változat</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> Társprojektek </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="wb-otherproject-link wb-otherproject-commons mw-list-item"><a href="https://commons.wikimedia.org/wiki/Category:C_(programming_language)" hreflang="en"><span>Wikimédia Commons</span></a></li><li class="wb-otherproject-link wb-otherproject-wikibooks mw-list-item"><a href="https://hu.wikibooks.org/wiki/Programoz%C3%A1s_C_nyelven" hreflang="hu"><span>Wikikönyvek</span></a></li><li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q15777" title="Kapcsolt adattárelem [g]" accesskey="g"><span>Wikidata-adatlap</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Oldal eszközök"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Megjelenés"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Megjelenés</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">áthelyezés az oldalsávba</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">elrejtés</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> <div id="mw-indicator-indicator-fr-review-status" class="mw-indicator"><indicator name="fr-review-status" class="mw-fr-review-status-indicator" id="mw-fr-revision-toggle"><span class="cdx-fr-css-icon-review--status--stable"></span><b>Ellenőrzött</b></indicator></div> </div> <div id="siteSub" class="noprint">A Wikipédiából, a szabad enciklopédiából</div> </div> <div id="contentSub"><div id="mw-content-subtitle"><div id="mw-fr-revision-messages"><div id="mw-fr-revision-details" class="mw-fr-revision-details-dialog" style="display:none;"><div tabindex="0"></div><div class="cdx-dialog cdx-dialog--horizontal-actions"><header class="cdx-dialog__header cdx-dialog__header--default"><div class="cdx-dialog__header__title-group"><h2 class="cdx-dialog__header__title">Változat állapota</h2><p class="cdx-dialog__header__subtitle">Ez a lap egy ellenőrzött változata</p></div><button class="cdx-button cdx-button--action-default cdx-button--weight-quiet 							cdx-button--size-medium cdx-button--icon-only cdx-dialog__header__close-button" aria-label="Close" onclick="document.getElementById("mw-fr-revision-details").style.display = "none";" type="submit"><span class="cdx-icon cdx-icon--medium 							cdx-fr-css-icon--close"></span></button></header><div class="cdx-dialog__body">Ez a <a href="/wiki/Wikip%C3%A9dia:Jel%C3%B6lt_lapv%C3%A1ltozatok" title="Wikipédia:Jelölt lapváltozatok">közzétett változat</a>, <a class="external text" href="https://hu.wikipedia.org/w/index.php?title=Speci%C3%A1lis:Rendszernapl%C3%B3k&type=review&page=C_(programoz%C3%A1si_nyelv)">ellenőrizve</a>: <i>2024. június 19.</i><p><table id="mw-fr-revisionratings-box" class="flaggedrevs-color-1" style="margin: auto;" cellpadding="0"><tr><td class="fr-text" style="vertical-align: middle;">Pontosság</td><td class="fr-value40" style="vertical-align: middle;">ellenőrzött</td></tr></table></p></div></div><div tabindex="0"></div></div></div></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="hu" dir="ltr"><table class="infobox ujinfobox"> <tbody><tr><td colspan="2" class="fejlec videojatekinfobox" style="color:black;background-color:#FFCC66;">C</td></tr><tr><td colspan="2" style="text-align:center"><span typeof="mw:File"><a href="/wiki/F%C3%A1jl:The_C_Programming_Language_logo.svg" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/3/35/The_C_Programming_Language_logo.svg/150px-The_C_Programming_Language_logo.svg.png" decoding="async" width="150" height="157" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/3/35/The_C_Programming_Language_logo.svg/225px-The_C_Programming_Language_logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/3/35/The_C_Programming_Language_logo.svg/300px-The_C_Programming_Language_logo.svg.png 2x" data-file-width="318" data-file-height="332" /></a></span></td></tr><tr><td colspan="2"><hr style="color:#FFCC66;background-color:#FFCC66;" /></td></tr><tr valign="top"><td class="cimke" style="padding:0px 3px 0px 0px;"><b><a href="/wiki/Programoz%C3%A1si_paradigma" title="Programozási paradigma">Paradigma</a></b></td><td>imperatív (procedurális), strukturált</td></tr><tr valign="top"><td class="cimke" style="padding:0px 3px 0px 0px;"><b><a href="/wiki/F%C3%A1jlkiterjeszt%C3%A9s" title="Fájlkiterjesztés">Jellemző kiterjesztés</a></b></td><td>.h, .c</td></tr><tr valign="top"><td class="cimke" style="padding:0px 3px 0px 0px;"><b>Megjelent</b></td><td><a href="/wiki/1972" title="1972">1972</a><sup id="cite_ref-dottcl_2_1-0" class="reference"><a href="#cite_note-dottcl_2-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup></td></tr><tr valign="top"><td class="cimke" style="padding:0px 3px 0px 0px;"><b>Tervező</b></td><td><a href="/wiki/Dennis_M._Ritchie" title="Dennis M. Ritchie">Dennis Ritchie</a></td></tr><tr valign="top"><td class="cimke" style="padding:0px 3px 0px 0px;"><b><a href="/wiki/Szoftverfejleszt%C5%91" title="Szoftverfejlesztő">Fejlesztő</a></b></td><td>Dennis Ritchie & Bell Labs</td></tr><tr valign="top"><td class="cimke" style="padding:0px 3px 0px 0px;"><b><a href="/wiki/Adatt%C3%ADpus" title="Adattípus">Típusosság</a></b></td><td>statikus, gyenge</td></tr><tr valign="top"><td class="cimke" style="padding:0px 3px 0px 0px;"><b><a href="/wiki/Ford%C3%ADt%C3%B3program" title="Fordítóprogram">Fordítóprogram</a></b></td><td><a href="/wiki/GCC_(informatika)" title="GCC (informatika)">GCC</a>, MSVC, Borland C, Watcom C</td></tr><tr valign="top"><td class="cimke" style="padding:0px 3px 0px 0px;"><b>Megvalósítások</b></td><td><a href="/w/index.php?title=Clang&action=edit&redlink=1" class="new" title="Clang (a lap nem létezik)">Clang</a>, <a href="/wiki/GCC_(informatika)" title="GCC (informatika)">GCC</a>, <a href="/w/index.php?title=Intel_C%2B%2B_Compiler&action=edit&redlink=1" class="new" title="Intel C++ Compiler (a lap nem létezik)">Intel C</a>, <a href="/w/index.php?title=MSVC&action=edit&redlink=1" class="new" title="MSVC (a lap nem létezik)">MSVC</a>, <a href="/w/index.php?title=Turbo_C&action=edit&redlink=1" class="new" title="Turbo C (a lap nem létezik)">Turbo C</a>, <a href="/w/index.php?title=Watcom_C_compiler&action=edit&redlink=1" class="new" title="Watcom C compiler (a lap nem létezik)">Watcom C</a></td></tr><tr valign="top"><td class="cimke" style="padding:0px 3px 0px 0px;"><b>Hatással volt rá</b></td><td>B (BCPL,CPL), ALGOL 68, <a href="/wiki/Assembly" title="Assembly">Assembly</a>, <a href="/wiki/Pascal_(programoz%C3%A1si_nyelv)" title="Pascal (programozási nyelv)">Pascal</a></td></tr><tr valign="top"><td class="cimke" style="padding:0px 3px 0px 0px;"><b>Befolyásolt nyelvek</b></td><td><a href="/wiki/Awk" title="Awk">awk</a>, csh, <a href="/wiki/C%2B%2B" title="C++">C++</a>, <a href="/wiki/C_Sharp" title="C Sharp">C#</a>, <a href="/wiki/Objective-C" title="Objective-C">ObjC</a>, BitC, D, Concurrent C, <a href="/wiki/Java_(programoz%C3%A1si_nyelv)" title="Java (programozási nyelv)">Java</a>, <a href="/wiki/JavaScript" title="JavaScript">Javascript</a>, <a href="/wiki/Rust_(programoz%C3%A1si_nyelv)" title="Rust (programozási nyelv)">Rust</a></td></tr><tr valign="top"><td class="cimke" style="padding:0px 3px 0px 0px;"><b><a href="/wiki/Oper%C3%A1ci%C3%B3s_rendszer" title="Operációs rendszer">Operációs rendszer</a></b></td><td><div class="plainlist"><style data-mw-deduplicate="TemplateStyles:r27515026">.mw-parser-output .plainlist ul{line-height:inherit;list-style:none none;margin:0;padding:0}.mw-parser-output .plainlist ul li{margin-bottom:0}</style> <ul><li><a href="/wiki/Windows" title="Windows">Microsoft Windows</a></li> <li><a href="/wiki/Unix-szer%C5%B1_oper%C3%A1ci%C3%B3s_rendszer" title="Unix-szerű operációs rendszer">Unix-szerű rendszer</a></li></ul> </div></td></tr><tr><td colspan="2" style="background-color:#FFCC66;text-align:center;"><a rel="nofollow" class="external text" href="https://www.iso.org/standard/74528.html">Weboldal</a></td></tr></tbody></table> <p>A <b>C</b> egy <a href="/wiki/%C3%81ltal%C3%A1nos_c%C3%A9l%C3%BA_programoz%C3%A1si_nyelv" title="Általános célú programozási nyelv">általános célú programozási nyelv</a>, melyet <a href="/wiki/Dennis_M._Ritchie" title="Dennis M. Ritchie">Dennis Ritchie</a> fejlesztett ki <a href="/wiki/Kenneth_Lane_Thompson" title="Kenneth Lane Thompson">Ken Thompson</a> segítségével 1969 és 1973 között a <a href="/wiki/Unix" title="Unix">UNIX</a> rendszerekre az <a href="/w/index.php?title=AT%26T_Bell_Labs&action=edit&redlink=1" class="new" title="AT&T Bell Labs (a lap nem létezik)">AT&T Bell Labs</a>-nál.<sup id="cite_ref-ie_2-0" class="reference"><a href="#cite_note-ie-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> Idővel jóformán minden <a href="/wiki/Oper%C3%A1ci%C3%B3s_rendszer" title="Operációs rendszer">operációs rendszerre</a> készítettek C <a href="/wiki/Ford%C3%ADt%C3%B3program" title="Fordítóprogram">fordítóprogramot</a>, és a legnépszerűbb <a href="/wiki/Programoz%C3%A1si_nyelv" title="Programozási nyelv">programozási nyelvek</a> egyikévé vált. Rendszerprogramozáshoz és felhasználói <a href="/wiki/Program_(informatika)" title="Program (informatika)">programok</a> készítéséhez egyaránt jól használható. Az oktatásban és a <a href="/wiki/Sz%C3%A1m%C3%ADt%C3%B3g%C3%A9p-tudom%C3%A1ny" class="mw-redirect" title="Számítógép-tudomány">számítógép-tudományban</a> is jelentős szerepe van. </p><p>A C minden idők legszélesebb körben használt programozási nyelve,<sup id="cite_ref-AutoTX-2_3-0" class="reference"><a href="#cite_note-AutoTX-2-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-AutoTX-3_4-0" class="reference"><a href="#cite_note-AutoTX-3-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> és a C fordítók elérhetők a ma elérhető <a href="/wiki/Sz%C3%A1m%C3%ADt%C3%B3g%C3%A9p-architekt%C3%BAra" title="Számítógép-architektúra">számítógép-architektúrák</a> és <a href="/wiki/Oper%C3%A1ci%C3%B3s_rendszer" title="Operációs rendszer">operációs rendszerek</a> többségére. Elterjedésében fontos szerepet játszott a <a href="/wiki/Reduced_Instruction_Set_Computing" title="Reduced Instruction Set Computing">RISC technológia</a>. A sokféle processzorhoz operációs rendszerekre volt szükség, és az eleve C-ben írt Unix volt a legkönnyebben portolható. </p> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="Történet"><span id="T.C3.B6rt.C3.A9net"></span>Történet</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=1" title="Szakasz szerkesztése: Történet"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading3"><h3 id="Korai_fejlesztések"><span id="Korai_fejleszt.C3.A9sek"></span>Korai fejlesztések</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=2" title="Szakasz szerkesztése: Korai fejlesztések"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A kezdeti fejlesztések az <a href="/wiki/AT%26T" title="AT&T">AT&T</a> berkein belül történtek <a href="/wiki/1969" title="1969">1969</a> és <a href="/wiki/1973" title="1973">1973</a> között. A legkreatívabb időszak, Ritchie-nek köszönhetően <a href="/wiki/1972" title="1972">1972</a>-ben volt. Azért lett „C” a nyelv neve, mert egy korábbi, „B” nevű programozási nyelv sok tulajdonságát „örökölte”. A leírások különböznek a „B” név forrását illetően: <a href="/wiki/Kenneth_Lane_Thompson" title="Kenneth Lane Thompson">Ken Thompson</a> írt egy programozási nyelvet, a <a href="/w/index.php?title=BCPL&action=edit&redlink=1" class="new" title="BCPL (a lap nem létezik)">BCPL</a>-t, de írt egy <a href="/wiki/Bon" title="Bon">Bon</a> nevűt is, a feleségéről (Bonnie-ról) elnevezve. </p><p>Az <a href="/wiki/1973" title="1973">1973</a>-as évben a C nyelv elég hatékonnyá vált, így a <a href="/wiki/Unix" title="Unix">UNIX</a> <a href="/wiki/Rendszermag" title="Rendszermag">rendszermag</a> legnagyobb részét, melyek <a href="/w/index.php?title=PDP-11/20&action=edit&redlink=1" class="new" title="PDP-11/20 (a lap nem létezik)">PDP-11/20</a> <a href="/wiki/Assembly" title="Assembly">assembly</a> nyelven íródtak, újraírták C-ben. Ez volt az egyik első <a href="/wiki/Oper%C3%A1ci%C3%B3s_rendszer" title="Operációs rendszer">operációs rendszer</a> rendszermag, mely nem assembly nyelven íródott, korábbiak, a <a href="/wiki/Multics" title="Multics">Multics</a> <a href="/wiki/PL/I" title="PL/I">PL/I</a>-ben íródott, a <a href="/wiki/TRIPOS" title="TRIPOS">TRIPOS</a> <a href="/w/index.php?title=BCPL&action=edit&redlink=1" class="new" title="BCPL (a lap nem létezik)">BCPL</a>-ben. </p> <div class="mw-heading mw-heading3"><h3 id="K&R_C"><span id="K.26R_C"></span>K&R C</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=3" title="Szakasz szerkesztése: K&R C"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><a href="/wiki/1978" title="1978">1978</a>-ban megjelent a <a href="/wiki/Dennis_M._Ritchie" title="Dennis M. Ritchie">Dennis Ritchie</a> és <a href="/wiki/Brian_Kernighan" title="Brian Kernighan">Brian Kernighan</a> nevével fémjelzett <i><a href="/w/index.php?title=A_C_programoz%C3%A1si_nyelv&action=edit&redlink=1" class="new" title="A C programozási nyelv (a lap nem létezik)">A C programozási nyelv</a></i> c. könyv első kiadása. Ez a könyv, melyet a C programozók csak K&R néven emlegettek, sokáig szolgált a nyelv formai leírásának forrásaként. A C nyelvnek az a verziója, melyet leírt, az a „K&R C” nyelv. (A könyv második kiadása az „ANSI C” szabványt írta le, lásd alább.) </p><p>A K&R a nyelv következő tulajdonságait vezette be: </p> <ul><li><code>struct</code> adattípus</li> <li><code>long int</code> adattípus</li> <li><code>unsigned int</code> adattípus</li> <li>A <code>=+</code> típusú értékadó operátorokat a <code>+=</code> formára változtatták. (A '<code>var =- érték</code>' túlságosan hasonlított a '<code>var = -érték</code>'-hez, bár hatásuk egészen más.)</li></ul> <p>A K&R C a nyelv legalapvetőbb részének tekinthető, melyet egy C fordítónak mindenképpen ismernie kell. Sok éven keresztül, még az ANSI C bevezetése után is, a „legnagyobb közös osztó” volt a K&R, melyet a C programozók használtak, ha a legnagyobb mértékű (forrás szintű) kompatibilitásra volt szükség, hiszen nem minden C fordító támogatta a teljes ANSI C-t és a megfelelően megírt K&R C (forrás)kód megfelelt az ANSI C szabványnak is. </p><p>A K&R C megjelenése utáni években, sok „nem hivatalos” kiegészítés látott napvilágot, melyet az AT&T és néhány másik cég fordítói is támogattak. </p><p>Ilyen változtatások voltak többek közt: </p> <ul><li><code>void</code> típusú függvény és <code>void *</code> adattípus</li> <li>függvények, melyek <code>struct</code> vagy <code>union</code> típusokat voltak képesek visszaadni (return)</li> <li>különböző struktúráknak lehetnek azonos nevű mezői (korábban az összes struktúra összes mezője egy közös névtéren osztozott!)</li> <li>struktúra típusú változók értékadása (korábban ezt csak a <code>memcpy</code> függvénnyel lehetett megtenni)</li> <li><code>const</code> definíció, az érték írásvédettségéhez</li> <li>szabvány <a href="/wiki/Programk%C3%B6nyvt%C3%A1r" title="Programkönyvtár">programkönyvtár</a> (library), mely a különböző cégek leggyakrabban támogatott függvényeit tartalmazta</li> <li>felsorolások (<code>enum</code>)</li> <li>az un. „single-precision” (egyes pontosságú) <code>float</code> adattípus</li></ul> <div class="mw-heading mw-heading3"><h3 id="ANSI_C_és_ISO_C"><span id="ANSI_C_.C3.A9s_ISO_C"></span>ANSI C és ISO C</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=4" title="Szakasz szerkesztése: ANSI C és ISO C"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Az <a href="/wiki/1970-es_%C3%A9vek" title="1970-es évek">1970-es évek</a> vége felé, a C kezdte felváltani a <a href="/wiki/BASIC" title="BASIC">BASIC</a> nyelvet a személyi számítógépeken. <a href="/wiki/Szem%C3%A9lyi_sz%C3%A1m%C3%ADt%C3%B3g%C3%A9p" title="Személyi számítógép">Személyi számítógépekre</a> is átültették az <a href="/wiki/1980-as_%C3%A9vek" title="1980-as évek">1980-as években</a>, így a C nyelv népszerűsége ugrásszerűen emelkedni kezdett. Ugyanebben az időben <a href="/wiki/Bjarne_Stroustrup" title="Bjarne Stroustrup">Bjarne Stroustrup</a> és társai a Bell Labs-nél elkezdtek dolgozni objektumorientált nyelvi elemek hozzáadásán a C nyelvhez. A nyelv, amit készítettek a <a href="/wiki/C%2B%2B" title="C++">C++</a> nevet kapta, ez ma a legelterjedtebb programozási nyelv a <a href="/wiki/Windows" title="Windows">Microsoft Windows</a> operációs rendszereken, míg a C a UNIX világban megőrizte népszerűségét. </p><p><a href="/wiki/1983" title="1983">1983</a>-ban az <a href="/w/index.php?title=Amerikai_Nemzeti_Szabv%C3%A1ny%C3%BCgyi_Hivatal&action=edit&redlink=1" class="new" title="Amerikai Nemzeti Szabványügyi Hivatal (a lap nem létezik)">Amerikai Nemzeti Szabványügyi Hivatal</a> (angolul: American National Standards Institute, röviden ANSI) megalakította az X3J11 bizottságot, hogy létrehozzanak egy egységes (szabvány) C definíciót. A hosszú és fáradságos folyamat végén <a href="/wiki/1989" title="1989">1989</a>-ben elkészült a szabvány (egy évvel az első C++ ANSI szabvány után!) és jóváhagyták mint: ANSI X3.159–1989 „A C programozási nyelv”. A nyelvnek ezt a verzióját nevezik ANSI C-nek. <a href="/wiki/1990" title="1990">1990</a>-ben az ANSI C szabványt (néhány apróbb módosítással) átvette a <a href="/wiki/Nemzetk%C3%B6zi_Szabv%C3%A1ny%C3%BCgyi_Szervezet" title="Nemzetközi Szabványügyi Szervezet">Nemzetközi Szabványügyi Szervezet</a> (angolul: International Organization for Standardization, röviden ISO) mint <a href="/w/index.php?title=ISO/EC_9899:1990&action=edit&redlink=1" class="new" title="ISO/EC 9899:1990 (a lap nem létezik)">ISO/EC 9899:1990</a>. </p><p>Az ANSI C szabványosítás egyik célja az volt, hogy a K&R C-ből és a nem hivatalos bővítésekből egy egységeset alakítson ki. Belevettek azonban számos új megoldást is, mint például <a href="/w/index.php?title=F%C3%BCggv%C3%A9ny_protot%C3%ADpus&action=edit&redlink=1" class="new" title="Függvény prototípus (a lap nem létezik)">függvény prototípust</a> (a C++ nyelvből) valamint egy jobban alkalmazható (fejlettebb) előfordítót (preprocesszor). </p><p>ANSI C-t szinte minden fordító támogat. A legtöbb C kód, mely manapság íródott, az ANSI C-n alapul. Bármilyen program, amely a szabvány C-ben íródott, helyesen működik bármely <a href="/wiki/Platform" class="mw-redirect mw-disambig" title="Platform">platformon</a>, amelyen szabványos C létezik. Vannak azonban programok, melyek csak adott platformon vagy adott fordítóval fordíthatók le, a használt nem szabvány függvénygyűjtemények miatt (például grafikus függvények) és vannak olyan fordítók, melyek nem támogatják alapértelmezésben az ANSI C szabványt. </p> <div class="mw-heading mw-heading3"><h3 id="C99">C99</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=5" title="Szakasz szerkesztése: C99"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Az ANSI szabványosítási folyamatot követően, a C nyelv viszonylag állandó maradt, míg a C++ fejlődött. Új C verzió, <a href="/wiki/1995" title="1995">1995</a>-ben az első normatív kiegészítéssel jött létre, de ezt a változatot ritkán használják. A szabványt átdolgozták az <a href="/wiki/1990-es_%C3%A9vek" title="1990-es évek">1990-es években</a> és ebből lett az <a href="/w/index.php?title=ISO_9899:1999&action=edit&redlink=1" class="new" title="ISO 9899:1999 (a lap nem létezik)">ISO 9899:1999</a> 1999-ben. Ez a szabvány „C99” néven vált ismertté, majd 2000 márciusában bekerült az ANSI szabványok közé is. </p><p>C99 új tulajdonságai, többek közt: </p> <ul><li>inline függvények</li> <li>változók definiálási helyére vonatkozó szabályai enyhítése (hasonlóképpen, mint C++-ban)</li> <li>új adattípusok, például: <code>long long int</code>, hogy a 32bitről a 64bitre való átállást megkönnyítsék, explicit <code>bool</code> (<code>stdbool.h</code>) és a <code>complex</code> (<code>complex.h</code>) típus.</li> <li>változó méretű <a href="/wiki/T%C3%B6mb_(adatszerkezet)" title="Tömb (adatszerkezet)">tömbök</a></li> <li>hivatalosan is bevezették az egysoros kommentár jelölést <code>//</code> (a C++-ból)</li> <li>több új függvény, mint például: <code>snprintf()</code></li> <li>több új „header” állomány, mint például az <code>inttypes.h</code>, amely rögzített méretű integer típusokat definiál: <code>int8_t, int16_t, int32_t, int64_t</code>, illetve ezek előjel nélküli változatait.</li></ul> <p>Az érdeklődés a C99 új tulajdonságainak támogatásával kapcsolatban eléggé vegyes. Míg <a href="/wiki/GCC_(informatika)" title="GCC (informatika)">GCC</a> (GNU Compiler Collection, korábban GNU C Compiler) és más fordítók támogatják a C99 újdonságait, addig a <a href="/wiki/Microsoft" title="Microsoft">Microsoft</a> és <a href="/wiki/Borland_Software_Corporation" title="Borland Software Corporation">Borland</a> által forgalmazottak nem, és ez a két cég nem is foglalkozik a C99 jövőbeli támogatásának lehetőségével jelenleg. </p> <div class="mw-heading mw-heading3"><h3 id="C11">C11</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=6" title="Szakasz szerkesztése: C11"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>2007-ben kezdődött a munka a C sztenderd egy másik revíziójával kapcsolatban, amit informálisan "C1X"-nek hívtak egészen addig, míg hivatalosan is nem publikálták 2011. december 8-án. A C sztenderdek tanácsa elfogadta az ajánlásokat az új lehetőségek limitált beépítésére, amelyeket még nem kezdtek el tesztelni létező implementáción. </p><p>A C11 sztenderd számos új lehetőséget adott hozzá a C és könyvtárakhoz, beleértve a típus generikus makrókat, anonim struktúrákat, javított Unicode támogatást, atomi operációkat, többszálúságot és határ ellenőrző függvényeket. Továbbá elkészítették a létező C99 könyvtár néhány portolását, és javították a kompatibilitást a C++-szal. </p> <div class="mw-heading mw-heading3"><h3 id="C18">C18</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=7" title="Szakasz szerkesztése: C18"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A C18-at 2018 júniusában adták ki, ami a C programozási nyelv aktuális szabványa. Nem vezetett be új nyelvi elemeket, csak technikai korrekciókat, pontosításokat tartalmaz a C11-hez képest. Az __STDC_VERSION__ macro 201710L-nek van definiálva. </p> <div class="mw-heading mw-heading3"><h3 id="Beágyazott_C"><span id="Be.C3.A1gyazott_C"></span>Beágyazott C</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=8" title="Szakasz szerkesztése: Beágyazott C"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Rendszerint a beágyazott rendszerekhez nem szabványosított kiterjesztéseket használnak, hogy lehetővé tegyék az egzotikusabb funkciók használatát, mint pl. fix pontos aritmetikát, különböző memória bankok használatát és alap I/O műveleteket. </p><p>2008-ban a C szabványügyi bizottság publikált egy technikai beszámolót, hogy kiterjessze a C programozási nyelvet ezekkel a lehetőségekkel, az által, hogy közös szabványt biztosít. Ez rengeteg funkciót foglal magába ami nem része a normál C-nek, mint pl. fix pontos aritmetika, nevesített címtartományok és alapvető I/O hardver címzések. </p> <div class="mw-heading mw-heading2"><h2 id="A_C_nyelv_jellemzői"><span id="A_C_nyelv_jellemz.C5.91i"></span>A C nyelv jellemzői</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=9" title="Szakasz szerkesztése: A C nyelv jellemzői"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/wiki/Struktur%C3%A1lt_programoz%C3%A1s" title="Strukturált programozás">strukturált</a></li> <li>szabványos: minden platformon van fordítóprogramja, a kód a forrásprogram szintjén hordozható</li> <li>a C-program rendkívül hatékony gépi kódra fordul le.</li></ul> <p>A nyelv makrónyelv abban az értelemben, hogy a C-fordító assembly nyelvre fordít, a programozónak azonban egyetlen assembly sort sem kell leírnia (sőt, nem is kell tudnia erről). </p><p>A C strukturált programnyelv: bármelyik utasítás helyén állhat <span id="blokk"></span> <b>blokk</b>, mely <code>{</code> és <code>}</code> jelek közé zárt tetszőleges típusú és számú utasításból állhat. A blokkok egymásba skatulyázhatók. A függvények utasításai blokkban helyezkednek el. A C-program belépési pontja a <code>main</code> nevű függvény, mely az operációs rendszertől kapja a híváskor megadott paramétereket, és annak adja vissza az (egész típusú) visszatérési értékét. </p> <div class="mw-heading mw-heading2"><h2 id="Formai_szabályok"><span id="Formai_szab.C3.A1lyok"></span>Formai szabályok</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=10" title="Szakasz szerkesztése: Formai szabályok"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A nyelv utasításai a <a href="#preproc">preprocesszor-utasítások</a> kivételével szabad formátumúak: ahol egy helyköz megengedett, ott akárhány helyköz, tabulátor, új sor lehet. A nyelv szavai (utasításnevek, változónevek, számok, műveleti jelek stb.) között lehet helyköz, de nem kötelező. Az utasítások pontosvesszővel végződnek. Az üres utasítás az előző utasítás vége után tett pontosvessző. A folytatósor – a sor végi <code>\</code> – a szabad formátum miatt csak preprocesszor-utasításokban használatos. </p><p>A megjegyzéseket (kommenteket) <code>/*</code> és <code>*/</code> közé kell zárni, és szabvány szerint nem ágyazhatók egymásba, bár sok fordítóprogram mégis megengedi. Az ANSI C-től kezdve használható a <code>//</code>, mely a sor végéig tartó megjegyzést vezet be (a <a href="/wiki/C%2B%2B" title="C++">C++</a>-hoz hasonlóan). Hosszabb megjegyzéseket a <code>#if 0</code>...<code>#endif</code> közé is lehet tenni; ezek – lévén preprocesszor-utasítások – egymásba ágyazhatók. </p><p>C-ben a nevek kis- és nagybetűkből, számjegyekből és aláhúzásból állhatnak, számjegy nem lehet az első karakter. A kis- és nagybetűk különbözőnek számítanak. A kialakult szokás szerint a változó- és függvénynevekben kisbetűket használunk, a preprocesszor-utasításokban rendszerint nagybetűket. </p> <div class="mw-heading mw-heading2"><h2 id="Utasítástípusok"><span id="Utas.C3.ADt.C3.A1st.C3.ADpusok"></span>Utasítástípusok</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=11" title="Szakasz szerkesztése: Utasítástípusok"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="#preproc">preprocesszor utasítások</a></li> <li><a href="#Deklarációk">deklarációk</a></li> <li><a href="#Aritmetikai_utasítások">aritmetikai utasítások</a></li> <li><a href="#Vezérlő_utasítások">vezérlő utasítások</a></li> <li><a href="#Függvények">függvények</a></li></ul> <p>A preprocesszor utasítások az assembly nyelvek makróihoz hasonlítanak: a fordítás első menetében „normál” C-utasításokká fordulnak le. </p><p>Az aritmetikai utasítások nagyon különböznek a többi programozási nyelvben megszokott értékadó utasításoktól. Ezt az aritmetikai utasítást vette át a <a href="/wiki/C%2B%2B" title="C++">C++</a> és a <a href="/wiki/Java_(programoz%C3%A1si_nyelv)" title="Java (programozási nyelv)">Java</a>. </p><p>A nyelvnek nincs input/output utasítása, ezt <a href="#stdio">szabványos könyvtári függvények</a> végzik. </p><p>A <b>végrehajtható utasítások</b> (aritmetikai és vezérlő utasítások) függvényen belül, <a href="#blokk">blokkban</a> helyezkednek el. A C-program preprocesszor-utasításokból, deklarációkból és függvényekből áll. </p> <div class="mw-heading mw-heading2"><h2 id="Egy_egyszerű_példaprogram"><span id="Egy_egyszer.C5.B1_p.C3.A9ldaprogram"></span><span id="példa"></span> Egy egyszerű példaprogram</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=12" title="Szakasz szerkesztése: Egy egyszerű példaprogram"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="cp">#include</span><span class="w"> </span><span class="cpf"><stdio.h></span><span class="c1"> // preprocesszor utasítás</span> <span class="o">&</span><span class="n">nbsp</span><span class="p">;</span> <span class="kt">int</span><span class="w"> </span><span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="c1">// függvénydefiníció, egyúttal a program belépési pontja, ezúttal nincs paramétere</span> <span class="p">{</span><span class="w"> </span><span class="c1">// blokk kezdete</span> <span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="p">;</span><span class="w"> </span><span class="c1">// deklaráció</span> <span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">i</span><span class="o">=</span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o"><=</span><span class="w"> </span><span class="mi">3</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="c1">// vezérlő (ciklus-) utasítás. A ++ egyváltozós értékadó művelet: eggyel növeli i-t.</span> <span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// újabb blokk-kezdet</span> <span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">"Haho</span><span class="se">\n</span><span class="s">"</span><span class="p">);</span><span class="w"> </span><span class="c1">// I/O műveletet végző könyvtári függvény. A konzolra ír. </span> <span class="w"> </span><span class="c1">// A stringkonstansot <code>"</code>-k közé kell zárni. A <code>\n</code> az új sor jele a stringben.</span> <span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="c1">// a belső blokk vége</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="c1">// vezérlő utasítás: kilépés a függvényből. A <code>main</code> értékét az operációs rendszer kapja meg</span> <span class="w"> </span><span class="c1">// Windows-ban az <code>errorlevel</code>, Unixban a <code>$?</code> változóban.</span> <span class="p">}</span><span class="w"> </span><span class="c1">// main blokkjának vége</span> </pre></div> <p>A program fordítása linuxban (ha a fenti kódot a <code>haho.c</code> file-ba tettük): </p> <pre>gcc -o haho haho.c </pre> <p>Futtatás: </p> <pre>./haho </pre> <p>Kimenet: </p> <pre>Haho Haho Haho </pre> <p>A C-programozók a fenti ciklusutasítást <code>for (i=0; i < 3; i++)</code> alakban szokták leírni, mert a <a href="#tömb">tömbök</a> indexelése 0-tól kezdődik a C-ben. A példában a kettő teljesen azonos. </p> <div class="mw-heading mw-heading2"><h2 id="Adattípusok"><span id="Adatt.C3.ADpusok"></span>Adattípusok</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=13" title="Szakasz szerkesztése: Adattípusok"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading3"><h3 id="Egyszerű_típusok"><span id="Egyszer.C5.B1_t.C3.ADpusok"></span>Egyszerű típusok</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=14" title="Szakasz szerkesztése: Egyszerű típusok"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <table class="wikitable floatright"> <caption>Változóméretek (legalább; bitben) </caption> <tbody><tr> <td>char</td> <td align="right">8 </td></tr> <tr> <td>short</td> <td>16 </td></tr> <tr> <td>int</td> <td>16 </td></tr> <tr> <td>long</td> <td>32 </td></tr> <tr> <td>long long</td> <td>64 </td></tr> <tr> <td>float</td> <td>32 </td></tr> <tr> <td>double</td> <td>64 </td></tr> <tr> <td>long double</td> <td>80 </td></tr></tbody></table> <ul><li><b>char</b>: egy karakter tárolására képes memóriaterület. Karakterkonstansok (pl. az <i>A</i> betű különböző alakokban): <code>'A'</code>, <code>65</code>, <code>\x41</code>, <code>0101</code> (az utóbbi oktális, melyet a kezdő 0 jelez). A legfontosabb speciális karakterkonstansok: <ul><li>'\n': új sor (LF)</li> <li>'\r': kocsi vissza (CR)</li> <li>'\t': tabulátor</li> <li>'\b': backspace</li> <li>'\a': alarm (sípolás)</li> <li>'\\': backslash</li></ul></li> <li><b>short</b> (vagy short int): rövid egész.</li> <li><b>int</b>: az egész konstans formája azonos char-ral, csak az érték lehet nagyobb. Több karakter megadása aposztrófok között nem szabványos, bár néhány fordító megengedi.</li> <li><b>long</b> (vagy long int) konstans pl.: <code>65L</code>.</li> <li><b>long long</b> (vagy long long int) konstans pl.: <code>65LL</code>.</li> <li><b>float</b>, <b>double</b>, <b>long double</b> konstans pl.: <code>3.14</code>, <code>8.3e11</code>, <code>8.3d-11</code>. Float típusú konstans <code>3.14F</code>, long double <code>3.14L</code> alakban adható meg. Ha nincs típusjelzés, a konstans double típusú.</li> <li><b>void</b>: speciális adattípus, mellyel semmilyen művelet nem végezhető, még értékadás és konverzió sem. Mutatók és függvények esetén használatos.</li></ul> <p>A char, short, int, long és long long <b>fixpontos</b>, a float, double és long double <b>lebegőpontos</b> típus. Fixpontos adattípuson nincs túlcsordulás-ellenőrzés: az hibás működést eredményez. </p><p>A C-ben nincsen <b>string típus</b> (bár string konstans van, a <a href="#példa">példaprogramban</a>: "Haho\n"). A stringet karakter<a href="#tömb">tömbben</a> tartja, a string végét bináris nulla (<code>'\0'</code>) jelzi. </p><p>A C-ben nincs <b>logikai típus</b> (igaz vagy hamis). A nem 0 értékű fixpontos kifejezés a logikai igaz, a 0 értékű a hamis.<sup id="cite_ref-logkif_5-0" class="reference"><a href="#cite_note-logkif-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> A <a href="#reláció">relációk</a> (melyek szintén <a href="#művelet">aritmetikai műveletek</a>) igaz értékként 1-et adnak vissza. </p><p>A <code>char</code> típusú változóval ugyanazok a műveletek elvégezhetők, mint az <code>int</code>-tel. Ilyenkor a karakter egésszé konvertálódik. </p><p>A char, int, long és long long típus előtt használható a <code>signed</code> ill. <code>unsigned</code> típusmódosító. A nyelv nem definiálja, hogy a <code>char</code> típus egész számként használva előjeles-e, ezért ha az érték 127-nél nagyobb, mindenképpen meg kell adni, hogy hordozható legyen a kód. Az int, long és long long előjeles, ha az <code>unsigned</code>-et nem adjuk meg. </p><p>Az előjeltelen konstansot az utána írt <code>U</code> jelzi, pl. 15U, 15UL, 15ULL. A hexadecimális alakú konstans (0xF) előjeltelen (az utána írt <code>S</code> betűvel tehető előjelessé), a többi alak előjeles, ha nincs utána U. </p><p>A C nyelv az alábbi típusokkal tud műveletet végezni: </p> <ul><li>int</li> <li>unsigned int</li> <li>signed long</li> <li>unsigned long</li> <li>signed long long</li> <li>unsigned long long</li> <li>double</li> <li>long double.</li></ul> <p>Minden más típus csak tárolásra való, aritmetikai műveletben azonnal átkonvertálódik a nála nagyobb, előjelben megfelelő típusra. </p> <div class="mw-heading mw-heading2"><h2 id="Deklarációk"><span id="Deklar.C3.A1ci.C3.B3k"></span>Deklarációk</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=15" title="Szakasz szerkesztése: Deklarációk"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A deklaráció a fordítóprogramnak szóló utasítás. Kódot nem generál, a fordítóprogram szimbólumtáblájában okoz változást. </p><p>A C-ben háromféle deklaráció van: </p> <ul><li><a href="#Változó_deklarálása">változódeklaráció</a></li> <li><a href="#Típusdeklaráció">típusdeklaráció</a></li> <li><a href="#Függvénydeklaráció">függvénydeklaráció</a></li></ul> <p>Használat előtt a változókat és típusokat deklarálni kell. A függvényeket nem kötelező, de nyomatékosan ajánlott. </p> <div class="mw-heading mw-heading3"><h3 id="Változó_deklarálása"><span id="V.C3.A1ltoz.C3.B3_deklar.C3.A1l.C3.A1sa"></span>Változó deklarálása</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=16" title="Szakasz szerkesztése: Változó deklarálása"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A deklaráció hatására foglalja le a fordítóprogram a memóriaterületet a változó számára, és megadja a memóriaterület nevét, amivel hivatkozni lehet a tartalmára. </p><p>Négy dolgot lehet/kell megadni a változó nevén felül: </p> <ul><li>az adat <a href="#Láthatóság">láthatóságát</a> a program különböző részeiből</li> <li>a <a href="#Tárolási_osztály">tárolási osztályt</a></li> <li><a href="#A_változó_típusa">az adat típusát</a></li> <li>a <a href="#Kezdőérték">kezdőértéket</a>.</li></ul> <p>A C-ben – meglehetősen szerencsétlen módon – az első kettőt nagyjából ugyanazokkal a kulcsszavakkal kell megadni. </p> <div class="mw-heading mw-heading4"><h4 id="Láthatóság"><span id="L.C3.A1that.C3.B3s.C3.A1g"></span>Láthatóság</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=17" title="Szakasz szerkesztése: Láthatóság"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Az adat láthatósága C-ben háromféle lehet: </p> <ul><li>globális (az egész programból látható)</li> <li>csak a forrásfájlból látható</li> <li>csak a <a href="#blokk">blokkon</a> belül látható.</li></ul> <p>A blokkon belül deklarált változók csak a blokkon belül láthatók (beleértve a blokk által tartalmazott blokkokat is). Ha a blokk egy külső blokkbeli vagy blokkon kívüli változónevet használ, akkor saját példányt definiál belőle, és (névvel) nem tudja elérni a feljebb levő azonos nevű változót. </p><p>C-ben függvényen belül nem lehet függvényt definiálni, ezért a függvényen (blokkon) kívüli adatok mindig statikusak, azaz a program indulásától kezdve ugyanazon a memóriaterületen vannak, így ezt a tényt nem kell külön megadni. A blokkon kívüli <code>static</code> kulcsszó az adat vagy függvény láthatóságát a forrásfájlon belülre korlátozza. A blokkon kívül deklarált, <code>static</code> nélküli változó és a <code>static</code> nélküli függvény globális. </p><p>Globális változóra vagy függvényre a program többi forrásfájljából az <code>extern</code> kulcsszóval hivatkozhatunk, melyben meg kell adni a változó nevét, típusát és a tárolási osztályt. Hogy ne kelljen mindezt többször leírni, általában saját header-fájlokat használunk, melyeket minden forrásfájl betölt a <a href="##include"><code>#include</code></a> <a href="#preproc">preprocesszor-utasítással</a>. <code>extern</code> változónak nem lehet kezdőértéke. A program valamelyik forrásfájljában (általában a főprogramban) a változót <code>extern</code> nélkül kell deklarálni, és itt kaphat kezdőértéket. </p> <div class="mw-heading mw-heading4"><h4 id="Tárolási_osztály"><span id="T.C3.A1rol.C3.A1si_oszt.C3.A1ly"></span>Tárolási osztály</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=18" title="Szakasz szerkesztése: Tárolási osztály"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <table class="wikitable floatright"> <caption>A C-program memóriaterületei </caption> <tbody><tr> <td align="center" rowspan="2">Betöltéskor<br />létrejövő adatok </td> <td align="center">Verem </td> <td align="center" rowspan="3">Változó<br />memóriatartalom </td></tr> <tr> <td align="center">Kezdőértéket nem kapott adatok </td></tr> <tr> <td align="center" rowspan="3">Programfájlban<br />tárolt adatok </td> <td align="center">Kezdőértéket kapott adatok </td></tr> <tr> <td align="center">Konstansok </td> <td align="center" rowspan="2">Konstans<br />memóriatartalom </td></tr> <tr> <td align="center">Programkód </td></tr></tbody></table> <p>A tárolási osztály adja meg, hogy az adat a program melyik memóriaterületére kerül (lásd jobb oldali táblázat, középső oszlop). </p><p>A <a href="#blokk">blokkon</a> (függvényen) kívül deklarált adat mindig statikus, a blokkon belüli – ha mást nem adunk meg – dinamikus. Blokkon belüli adat a <code>static</code> kulcsszóval tehető statikussá, és az <code>extern</code> jelzi, hogy másik forrásprogramban van deklarálva. Az <code>extern</code> kulcsszót blokkon kívül szokás használni, és mindig statikus adatra vonatkozik. </p><p>A statikus adatnak állandó helye (memóriacíme) van. A dinamikus adat a veremben tárolódik, a blokkba belépéskor foglalódik le a helye, kilépéskor felszabadul, kezdőértéke definiálatlan. </p><p>A <code>register</code> kulcsszóval javasolhatjuk a fordítóprogramnak, hogy a dinamikus adatot ne veremben, hanem a CPU regiszterében tartsa. Az ilyen változóknak nincs memóriacímük, így a <code>&</code> művelet nem használható rájuk. Kezdőértékük definiálatlan. Ha nincs elég regiszter, akkor a deklaráció ellenére verembe kerül az adat. A jelenlegi igen jól optimalizáló fordítók mellett a <code>register</code> használata idejétmúlt. </p><p>A programban kezdőértéket nem kapott statikus adatok 0 értéket kapnak, amikor az operációs rendszer a memóriába tölti a programot. </p><p>Konstans változót a <code>const</code> kulcsszóval lehet megadni, és kötelezően kezdőértéket kell kapjon, mely a program végrehajtása során nem változik, és a fordítóprogram ellenőrzi is, hogy ne szerepelhessen olyan utasításban, ahol értéket kaphatna. A konstans memóriaterületre kerülnek azok a konstansok is, melyeknek nincs nevük (<code>"Haho\n"</code> a <a href="#példa">mintapéldában</a>). </p> <div class="mw-heading mw-heading4"><h4 id="A_változó_típusa"><span id="A_v.C3.A1ltoz.C3.B3_t.C3.ADpusa"></span>A változó típusa</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=19" title="Szakasz szerkesztése: A változó típusa"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Háromféle lehet: </p> <ul><li>egyszerű (lásd <a href="#Egyszerű_típusok">fent</a>)</li> <li>összetett: <code><a href="#struktúra">struct</a></code>, <code><a href="#unió">union</a></code> vagy <code><a href="#enum">enum</a></code></li> <li><a href="#tömb">tömb</a> vagy <a href="#mutató">mutató</a>.</li></ul> <div class="mw-heading mw-heading4"><h4 id="Kezdőérték"><span id="Kezd.C5.91.C3.A9rt.C3.A9k"></span>Kezdőérték</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=20" title="Szakasz szerkesztése: Kezdőérték"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Kezdőérték a változónév utáni <code>=</code> jelet követő konstanssal adható meg. Kezdőérték adható dinamikus változónak is, de az érték beállításához a fordítóprogram kódot generál, és nem teszi a kezdőértékeket a konstansok memóriaterületére.<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> </p><p>Tömbök és összetett változók kezdőértékeit <code>{</code> és <code>}</code> közé kell tenni, a zárójelbeli értékeket vesszővel elválasztva. Nem hiba az utolsó érték után is kitenni a vesszőt. </p><p>Ha egy változónak nincs kezdőértéke, akkor az dinamikus változó esetén definiálatlan, statikus változó esetén 0 (lásd: <a href="#Tárolási_osztály">tárolási osztály</a>). </p> <div class="mw-heading mw-heading4"><h4 id="Példák_változódeklarációra"><span id="P.C3.A9ld.C3.A1k_v.C3.A1ltoz.C3.B3deklar.C3.A1ci.C3.B3ra"></span>Példák változódeklarációra</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=21" title="Szakasz szerkesztése: Példák változódeklarációra"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="p">;</span> <span class="kt">int</span><span class="w"> </span><span class="n">a</span><span class="p">,</span><span class="w"> </span><span class="n">b</span><span class="o">=</span><span class="mi">2</span><span class="p">;</span> <span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">unsigned</span><span class="w"> </span><span class="kt">short</span><span class="w"> </span><span class="n">alfa</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">88</span><span class="p">;</span> <span class="k">extern</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">globalis</span><span class="p">;</span> </pre></div> <div class="mw-heading mw-heading3"><h3 id="Struktúra"><span id="Strukt.C3.BAra"></span><span id="struktúra"></span> Struktúra</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=22" title="Szakasz szerkesztése: Struktúra"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A struktúra különböző típusú adatokból álló adat. A struktúra szerkezetét és a változókat lehet együtt vagy külön-külön deklarálni. Az alábbi két példa egyenértékű: </p> <table> <tbody><tr> <td> <div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="k">struct</span><span class="w"> </span><span class="nc">datstr</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="kt">short</span><span class="w"> </span><span class="n">ev</span><span class="p">;</span> <span class="w"> </span><span class="kt">short</span><span class="w"> </span><span class="n">ho</span><span class="p">;</span> <span class="w"> </span><span class="kt">short</span><span class="w"> </span><span class="n">nap</span><span class="p">;</span> <span class="w"> </span><span class="p">};</span> <span class="k">struct</span><span class="w"> </span><span class="nc">datstr</span><span class="w"> </span><span class="n">ma</span><span class="p">,</span><span class="w"> </span><span class="n">holnap</span><span class="p">;</span> </pre></div> </td> <td style="vertical-align: top"> <div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="k">struct</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="kt">short</span><span class="w"> </span><span class="n">ev</span><span class="p">;</span> <span class="w"> </span><span class="kt">short</span><span class="w"> </span><span class="n">ho</span><span class="p">;</span> <span class="w"> </span><span class="kt">short</span><span class="w"> </span><span class="n">nap</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="n">ma</span><span class="p">,</span><span class="w"> </span><span class="n">holnap</span><span class="p">;</span> </pre></div> </td></tr></tbody></table> <p>Az első példában az első utasítás az adatszerkezetet definiálja (melyet gyakran <a href="##include">header-fájlba</a> teszünk, ha több forrásfáljból is használni akarjuk), a második deklarálja a változókat. </p><p>A második esetben a struktúrának nem kell kell neve legyen, bár ilyenkor nem használhatjuk a definiált adatszerkezetet később, más változó deklarálásához. </p><p>Kezdőértékadás a deklarációban: </p> <div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="k">struct</span><span class="w"> </span><span class="nc">datstr</span><span class="w"> </span><span class="n">ma</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="mi">2015</span><span class="p">,</span><span class="w"> </span><span class="mi">12</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="p">};</span> </pre></div> <p>Értékadás aritmetikai utasítással: </p> <div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="n">holnap</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ma</span><span class="p">;</span> <span class="n">holnap</span><span class="p">.</span><span class="n">nap</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">5</span><span class="p">;</span> </pre></div> <p>A struktúrák egymásba ágyazása: </p> <div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="k">struct</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">datstr</span><span class="w"> </span><span class="n">dat</span><span class="p">;</span> <span class="w"> </span><span class="kt">short</span><span class="w"> </span><span class="n">ora</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="n">pelda</span><span class="p">;</span> </pre></div> <p>Az évre <code>pelda.dat.ev</code> néven hivatkozhatunk, <code>pelda.ev</code> néven nem. </p><p><a href="#struktmut">Mutatóval adott struktúra</a> tagjaira a <code>-></code> művelettel lehet hivatkozni. </p> <div class="mw-heading mw-heading3"><h3 id="Unió"><span id="Uni.C3.B3"></span><span id="unió"></span> Unió</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=23" title="Szakasz szerkesztése: Unió"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Az unió (<code>union</code>) formailag megegyezik a struktúrával, de a tagjai (melyek rendszerint struktúrák) azonos memóriaterületen helyezkednek el. Az unió mérete a legnagyobb tag mérete lesz. Arra szolgál, hogy ugyanazt a memóriaterületet a program különböző időpontokban különböző célokra használhassa. Rendszerprogramokban fordul elő, felhasználói programban ritka. </p> <div class="mw-heading mw-heading3"><h3 id="enum">enum</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=24" title="Szakasz szerkesztése: enum"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Akkor használatos, ha egy egész változó csak néhány értéket vehet fel, és ezekre az értékekre (tipikusan kódokra) névvel akarunk hivatkozni a könnyebb megjegyezhetőség érdekében. Alakja a struktúrához hasonló, pl.: </p> <div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="k">enum</span><span class="w"> </span><span class="n">httpkod</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">VAN</span><span class="o">=</span><span class="mi">200</span><span class="p">,</span><span class="w"> </span><span class="n">TILTOTT</span><span class="o">=</span><span class="mi">403</span><span class="p">,</span><span class="w"> </span><span class="n">NINCS</span><span class="o">=</span><span class="mi">404</span><span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="n">htkod</span><span class="p">;</span> </pre></div> <p><code>httpkod</code> a struktúranév megfelelője, <code>htkod</code> a változó neve. A struktúrához hasonlóan külön is megadható a kettő. A kapcsos zárójelben nem kötelező értékeket megadni, ilyenkor a fordítóprogram 0-tól egyesével növekvő értékeket rendel a felsorolt nevekhez. </p><p>C-ben az enum – a <a href="/wiki/C%2B%2B" title="C++">C++</a>-tól eltérően – nem definiál külön adattípust, egyszerűen hozzárendeli a felsorolt nevekhez az egész értékeket. A nevek ezután bármilyen <a href="#kifejezés">aritmetikai kifejezésben</a> szerepelhetnek, mintha egész típusú konstansok lennének, de a program hordozhatósága érdekében ezt a tulajdonságot nem ajánlatos kihasználni. </p> <div class="mw-heading mw-heading3"><h3 id="Tömbök"><span id="T.C3.B6mb.C3.B6k"></span><span id="tömb"></span> Tömbök</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=25" title="Szakasz szerkesztése: Tömbök"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A programozásban tömbnek olyan változókat neveznek, melyek több azonos típusú adatból állnak. A deklaráció formája azonos a <b>skalár</b> (nem tömb) típusú változóval. Az elemek számát C-ben a változónév után szögletes zárójelben kell megadni (csak egész típusú érték lehet), a kezdőértékeket pedig a struktúráknál megismert módon. Pl: </p> <div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="kt">int</span><span class="w"> </span><span class="n">egesztomb</span><span class="p">[</span><span class="mi">4</span><span class="p">];</span> <span class="k">const</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">allando</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="p">};</span> <span class="k">static</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">datstr</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ev</span><span class="p">;</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ho</span><span class="p">;</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">nap</span><span class="p">;</span><span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="n">dat</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="mi">1954</span><span class="p">,</span><span class="w"> </span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="mi">19</span><span class="w"> </span><span class="p">},</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="mi">2015</span><span class="p">,</span><span class="w"> </span><span class="mi">12</span><span class="p">,</span><span class="w"> </span><span class="mo">06</span><span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="p">};</span> </pre></div> <p>A tömbök indexei 0-val kezdődnek. <code>allando</code> elemeire allando[0], allando[1], allando[2]-vel lehet hivatkozni. C-ben nincs tömbindex-ellenőrzés: allando[3]-ra hivatkozás hibás működést fog eredményezni. A tömbindex-túlcsordulás az egyik leggyakoribb programozási hiba C-ben. </p><p>Bármilyen típusú változó lehet tömbben, beleértve a tömböt is: C-ben a kétdimenziós tömb az egydimenziós tömb tömbje: </p> <div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="kt">double</span><span class="w"> </span><span class="n">matrix</span><span class="p">[</span><span class="mi">3</span><span class="p">][</span><span class="mi">14</span><span class="p">];</span> </pre></div> <p>A többdimenziós tömbök elemei sorfolytonosan tárolódnak. Nem hiba egydimenziós tömbként hivatkozni rájuk, pl. <code>matrix[0][40]</code>. </p><p>A tömb elemszáma megadható fordítási időben kiértékelhető (konstans) kifejezéssel: </p> <div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="kt">int</span><span class="w"> </span><span class="n">tomb</span><span class="p">[</span><span class="mi">3</span><span class="o">+</span><span class="mi">8</span><span class="o">*</span><span class="mi">4</span><span class="p">];</span> </pre></div> <p>Ennek <a href="##define">preprocesszor-változók</a> használatakor van jelentősége. </p><p>Más forrásfájlban deklarált tömbnek nem kell méretet adni. Pl.: </p> <div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="k">extern</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">tomb</span><span class="p">[];</span> </pre></div> <p>Akkor sem kell megadni a tömb méretét, ha az kezdőértéket kapott. Ilyenkor a méret a kezdőértékek száma lesz. </p> <div class="mw-heading mw-heading3"><h3 id="Mutatók"><span id="Mutat.C3.B3k"></span><span id="mutató"></span> Mutatók</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=26" title="Szakasz szerkesztése: Mutatók"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A <b>mutató</b> memóriacímet tároló változó. Leggyakrabban függvények paramétereiben és tömbelem-hivatkozásokban fordul elő. </p><p>A mutató típusa a memóriacímen tárolt adat típusát jelzi. A mutatót a változódeklarációban a név elé tett csillag jelzi: </p> <div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="kt">int</span><span class="w"> </span><span class="o">*</span><span class="n">mut</span><span class="p">;</span> </pre></div> <p>Értéket a címképző operátorral adhatunk a mutatónak: </p> <div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="kt">int</span><span class="w"> </span><span class="n">egesz</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="o">*</span><span class="n">mut</span><span class="p">;</span> <span class="n">mut</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">&</span><span class="n">egesz</span><span class="p">;</span> </pre></div> <p>A mutatóval megadott adat értékére a <code>*</code> operátorral hivatkozunk. A fenti két sor után <code>egesz</code> és <code>*mut</code> értéke egyaránt 3. </p><p>A tömb neve a tömb memóriacímét jelenti; ilyenkor nem kell kitenni az <code>&</code>-et: </p> <div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="kt">int</span><span class="w"> </span><span class="n">tomb</span><span class="p">[</span><span class="mi">8</span><span class="p">],</span><span class="w"> </span><span class="o">*</span><span class="n">mut</span><span class="p">;</span> <span class="n">mut</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">tomb</span><span class="p">;</span> </pre></div> <p>A mutatóhoz 1-et hozzáadva nem eggyel, hanem a fenti példában <code>sizeof(int)</code>-tel nő a mutató értéke, vagyis a következő egészre (a tömb következő elemére) mutat. Ez azt jelenti, hogy <code>*(mut+1)</code> és <code>tomb[1]</code> a fenti példában ugyanazt az értéket adja, és <code>*(mut+1)</code> is leírható <code>mut[1]</code> alakban. </p><p>Különbség csak két azonos típusú mutató között értelmezett, és a két cím különbsége elosztódik a típus hosszával. A fenti példában <code>mut-tomb</code> azt mondja meg, hogy <code>mut</code> <code>tomb</code> hányadik elemére mutat. </p><p>A mutató lehet <code>void</code> típusú; ilyenkor a fordítóprogram nem ellenőrzi a mutató típusát. Pl. a <code>malloc</code> nevű könyvtári függvény, mely memóriát kér a program számára, <code>void</code> mutatót ad vissza, melyet a program a kívánt típusú mutatóba tesz. A void típus miatt az értéket eltároló utasítás nem jelez típuskonverziós hibát. </p><p>A mutató típusa a memóriacímen tárolt adat típusa. Ebbe a <code>const</code> is beleértendő: </p> <div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="kt">int</span><span class="w"> </span><span class="n">egy</span><span class="p">;</span> <span class="k">const</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="o">*</span><span class="n">mut</span><span class="p">;</span> <span class="n">mut</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">&</span><span class="n">egy</span><span class="p">;</span><span class="w"> </span><span class="c1">// helyes</span> <span class="o">*</span><span class="n">mut</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">5</span><span class="p">;</span><span class="w"> </span><span class="c1">// hibas: konstansnak nem adhato ertek</span> </pre></div> <p><span id="struktmut"></span>Struktúramutatók számára külön műveletet vezettek be. Pl.: </p> <div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="k">struct</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ev</span><span class="p">;</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ho</span><span class="p">;</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">nap</span><span class="p">;</span><span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="n">dat</span><span class="p">,</span><span class="w"> </span><span class="o">*</span><span class="n">datmut</span><span class="p">;</span> <span class="n">datmut</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">&</span><span class="n">dat</span><span class="p">;</span> </pre></div> <p>után <code>dat.ev</code>-re <code>(*datmut).ev</code> alakban kellene hivatkozni. (A zárójelre szükség van, mert a <code>.</code>-nak nagyobb a <a href="#prioritás">prioritása</a>, mint a <code>*</code>-nak.) Ezt könnyíti meg a <code>datmut->ev</code> alak. A kettő hatásában teljesen azonos. </p><p>A <a href="#Függvénymutató">függvénymutatók</a> használatát lásd a <a href="#Függvények">függvényeknél</a>. </p><p>A mutatót visszaadó könyvtári függvények <code>NULL</code> értéket adnak vissza sikertelenség esetén (pl. a memóriafoglalás nem sikerült). A <code>NULL</code> az <code>stdio.h</code> <a href="##include">header-fájlban</a> definiált konstans. </p><p>Mutató mutatóra is mutathat: </p> <div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="kt">int</span><span class="w"> </span><span class="n">mut</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span><span class="o">*</span><span class="n">mut1</span><span class="p">,</span><span class="o">**</span><span class="n">mut2</span><span class="p">,</span><span class="o">***</span><span class="n">mut3</span><span class="p">;</span> <span class="n">mut1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">&</span><span class="n">mut</span><span class="p">;</span> <span class="n">mut2</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">&</span><span class="n">mut1</span><span class="p">;</span> <span class="n">mut3</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">&</span><span class="n">mut2</span><span class="p">;</span> </pre></div> <p>A fentiek után a <code>mut</code>, <code>*mut1</code>, <code>**mut2</code> vagy <code>***mut3</code> kifejezések mindegyikének 3 az értéke. </p> <div class="mw-heading mw-heading3"><h3 id="Típusdeklaráció"><span id="T.C3.ADpusdeklar.C3.A1ci.C3.B3"></span>Típusdeklaráció</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=27" title="Szakasz szerkesztése: Típusdeklaráció"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A típusdeklaráció nevet ad egy adattípusnak. A típusnév a deklaráció után úgy használható, mint a beépített típusok, de – a <a href="/wiki/C%2B%2B" title="C++">C++</a>-szal ellentétben – nem hoz létre új típust: a fordítóprogram úgy tekinti, mintha a típusnév helyett a típusdeklarációt írtuk volna le. </p><p>A típusdeklaráció alakja formailag azonos az adattípusokéval, de a <a href="#Tárolási_osztály">tárolási osztályt</a> megadó <code>static</code> vagy <code>extern</code> kulcsszó helyére a <code>typedef</code> kerül. Az adat neve lesz a típusnév: </p> <div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="k">typedef</span><span class="w"> </span><span class="kt">unsigned</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">UINT24</span><span class="p">;</span> <span class="n">UINT24</span><span class="w"> </span><span class="n">valt</span><span class="p">;</span> </pre></div> <p>Ezután <code>valt</code> előjeltelen egész változóként használható. </p> <div class="mw-heading mw-heading2"><h2 id="Aritmetikai_utasítások"><span id="Aritmetikai_utas.C3.ADt.C3.A1sok"></span>Aritmetikai utasítások</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=28" title="Szakasz szerkesztése: Aritmetikai utasítások"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><b>Aritmetikai utasítás</b>nak egy pontosvesszővel lezárt aritmetikai kifejezést nevezünk. <span id="kifejezés"></span> Az <b>aritmetikai kifejezés</b> változók vagy konstansok és <a href="#művelet">műveletek</a> kombinációja. (A C-ben csak aritmetikai művelet létezik, ezért a jelzőt el lehet hagyni.) </p><p>Az aritmetikai utasításban nem okvetlenül van értékadás: aritmetikai utasítás lehet egy függvényhívás, de szintaktikusan helyes a <code>1;</code> utasítás is, bár a fordítóprogram ilyenkor figyelmeztet, hogy az utasításnak nincs semmilyen hatása. </p><p>A C-ben az értékadás ugyanolyan aritmetikai művelet, mint pl. a szorzás. Pl. megengedett az </p> <div style="width: 300pt" class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">b</span><span class="p">)</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="p">(</span><span class="n">c</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">d</span><span class="p">);</span> </pre></div> <p>utasítás, melyet a többi programnyelvben </p> <div style="width: 300pt" class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">b</span><span class="p">;</span> <span class="w"> </span><span class="n">c</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">d</span><span class="p">;</span> <span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">c</span><span class="p">;</span> </pre></div> <p>alakban írnánk (természetesen C-ben is írható így). Az értékadás művelet (szükség esetén) automatikus konverziót végez, és ez a konvertált érték a művelet eredménye. „Mellékhatásként” az érték az <code>=</code> bal oldalán levő változóba<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> is eltárolódik. (E mellékhatás miatt használjuk a műveletet, hiszen <a href="#konverzió">konverziós művelet</a> is létezik.) </p><p>Miután az aritmetikai utasításoknak nincs külön nevük (mint pl. az <code>if</code> vagy a többi programnyelv értékadó utasításának <code>=</code> karaktere), ezért a fordító minden utasítást aritmetikai utasításnak tekint, ami nem fenntartott szóval kezdődik. Ebből az is következik, hogy C-ben nem szabad a fenntartott szavakat változónévnek használni. </p><p>A másik érdekesség, hogy a nyelvben nincs eljárás, csak függvény, de ez a tulajdonság is az aritmetikai utasítások jellegzetességéből adódik.<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="Műveletek"><span id="M.C5.B1veletek"></span><span id="művelet"></span> Műveletek</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=29" title="Szakasz szerkesztése: Műveletek"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <table class="wikitable"> <tbody><tr> <th>Precedencia </th> <th>Operátor </th> <th>Leírás </th> <th>Asszociativitás </th></tr> <tr> <th>1<br /><small>legmagasabb</small> </th> <td><code>::</code> </td> <td>Látókör meghatározás (csak C++) </td> <td>Nincs </td></tr> <tr> <th rowspan="11">2 </th> <td style="border-bottom-style: none"><code>++</code> </td> <td style="border-bottom-style: none">Postfix növelés </td> <td style="vertical-align: top" rowspan="11">Balról jobbra </td></tr> <tr> <td style="border-bottom-style: none; border-top-style: none"><code>--</code> </td> <td style="border-bottom-style: none; border-top-style: none">Postfix csökkentés </td></tr> <tr> <td style="border-bottom-style: none; border-top-style: none"><code>()</code> </td> <td style="border-bottom-style: none; border-top-style: none">Függvényhívás </td></tr> <tr> <td style="border-bottom-style: none; border-top-style: none"><code>[]</code> </td> <td style="border-bottom-style: none; border-top-style: none">Tömbindexelés </td></tr> <tr> <td style="border-bottom-style: none; border-top-style: none"><code>.</code> </td> <td style="border-bottom-style: none; border-top-style: none">Adattag kiválasztás referencia szerint </td></tr> <tr> <td style="border-bottom-style: none; border-top-style: none"><code>-></code> </td> <td style="border-bottom-style: none; border-top-style: none">Adattag kiválasztás pointeren keresztül </td></tr> <tr> <td style="border-bottom-style: none; border-top-style: none"><code>typeid()</code> </td> <td style="border-bottom-style: none; border-top-style: none">Futásidejű típusinformáció (csak C++) </td></tr> <tr> <td style="border-bottom-style: none; border-top-style: none"><code>const_cast</code> </td> <td style="border-bottom-style: none; border-top-style: none">Típuskonverzió (csak C++) </td></tr> <tr> <td style="border-bottom-style: none; border-top-style: none"><code>dynamic_cast</code> </td> <td style="border-bottom-style: none; border-top-style: none">Típuskonverzió (csak C++) </td></tr> <tr> <td style="border-bottom-style: none; border-top-style: none"><code>reinterpret_cast</code> </td> <td style="border-bottom-style: none; border-top-style: none">Típuskonverzió (csak C++) </td></tr> <tr> <td style="border-top-style: none"><code>static_cast</code> </td> <td style="border-top-style: none">Típuskonverzió (csak C++) </td></tr> <tr> <th rowspan="13">3 </th> <td style="border-bottom-style: none"><code>++</code> </td> <td style="border-bottom-style: none">Prefix növelés </td> <td rowspan="13" style="vertical-align: top">Jobbról balra </td></tr> <tr> <td style="border-bottom-style: none; border-top-style: none"><code>--</code> </td> <td style="border-bottom-style: none; border-top-style: none">Prefix csökkentés </td></tr> <tr> <td style="border-bottom-style: none; border-top-style: none"><code>+</code> </td> <td style="border-bottom-style: none; border-top-style: none">Unáris plusz </td></tr> <tr> <td style="border-bottom-style: none; border-top-style: none"><code>-</code> </td> <td style="border-bottom-style: none; border-top-style: none">Unáris mínusz </td></tr> <tr> <td style="border-bottom-style: none; border-top-style: none"><code>!</code> </td> <td style="border-bottom-style: none; border-top-style: none">Logikai NEM </td></tr> <tr> <td style="border-bottom-style: none; border-top-style: none"><code>~</code> </td> <td style="border-bottom-style: none; border-top-style: none">Bitenkénti NEM </td></tr> <tr> <td style="border-bottom-style: none; border-top-style: none"><code>(<i>type</i>)</code> </td> <td style="border-bottom-style: none; border-top-style: none">Típuskonverzió </td></tr> <tr> <td style="border-bottom-style: none; border-top-style: none"><code>*</code> </td> <td style="border-bottom-style: none; border-top-style: none">Indirekció (dereferencia) </td></tr> <tr> <td style="border-bottom-style: none; border-top-style: none"><code>&</code> </td> <td style="border-bottom-style: none; border-top-style: none">Memóriacím lekérése </td></tr> <tr> <td style="border-bottom-style: none; border-top-style: none"><code>sizeof</code> </td> <td style="border-bottom-style: none; border-top-style: none">Méret lekérése </td></tr> <tr> <td style="border-bottom-style: none; border-top-style: none"><code>_Alignof</code> </td> <td style="border-bottom-style: none; border-top-style: none">Igazítási követelmény (C11 óta) </td></tr> <tr> <td style="border-bottom-style: none; border-top-style: none"><code>new</code>, <code>new[]</code> </td> <td style="border-bottom-style: none; border-top-style: none">Dinamikus memóriafoglalás (csak C++) </td></tr> <tr> <td style="border-top-style: none"><code>delete</code>, <code>delete[]</code> </td> <td style="border-top-style: none">Dinamikus memóriafelszabadítás (csak C++) </td></tr> <tr> <th rowspan="2">4 </th> <td style="border-bottom-style: none"><code>.*</code> </td> <td style="border-bottom-style: none">Pointerből adattag (csak C++) </td> <td style="vertical-align: top" rowspan="2">Balról jobbra </td></tr> <tr> <td style="border-bottom-style: none; border-top-style: none"><code>->*</code> </td> <td style="border-bottom-style: none; border-top-style: none">Pointerből adattag (csak C++) </td></tr> <tr> <th rowspan="3">5 </th> <td style="border-bottom-style: none"><code>*</code> </td> <td style="border-bottom-style: none">Szorzás </td> <td style="vertical-align: top" rowspan="3">Balról jobbra </td></tr> <tr> <td style="border-bottom-style: none; border-top-style: none"><code>/</code> </td> <td style="border-bottom-style: none; border-top-style: none">Osztás </td></tr> <tr> <td style="border-bottom-style: none; border-top-style: none"><code>%</code> </td> <td style="border-bottom-style: none; border-top-style: none">Maradék </td></tr> <tr> <th rowspan="2">6 </th> <td style="border-bottom-style: none"><code>+</code> </td> <td style="border-bottom-style: none">Összeadás </td> <td style="vertical-align: top" rowspan="2">Balról jobbra </td></tr> <tr> <td style="border-bottom-style: none; border-top-style: none"><code>-</code> </td> <td style="border-bottom-style: none; border-top-style: none">Kivonás </td></tr> <tr> <th rowspan="2">7 </th> <td style="border-bottom-style: none"><code><<</code> </td> <td style="border-bottom-style: none">Bitenkénti balra tolás </td> <td style="vertical-align: top" rowspan="2">Balról jobbra </td></tr> <tr> <td style="border-bottom-style: none; border-top-style: none"><code>>></code> </td> <td style="border-bottom-style: none; border-top-style: none">Bitenkénti jobbra tolás </td></tr> <tr> <th rowspan="1">8 </th> <td style="border-bottom-style:none;"><code><=></code> </td> <td style="border-bottom-style:none;">Háromirányú összehasonlítás<br />(nagyobb: 1, kisebb: -1, egyenlő: 0)<br />(C++20 óta, csak C++) </td> <td style="vertical-align: top" rowspan="1">Balról jobbra </td></tr> <tr> <th rowspan="4">9 </th> <td style="border-bottom-style: none"><code><</code> </td> <td style="border-bottom-style: none">Kisebb mint </td> <td style="vertical-align: top" rowspan="4">Balról jobbra </td></tr> <tr> <td style="border-bottom-style: none; border-top-style: none"><code><=</code> </td> <td style="border-bottom-style: none; border-top-style: none">Kisebb-egyenlő </td></tr> <tr> <td style="border-bottom-style: none; border-top-style: none"><code>></code> </td> <td style="border-bottom-style: none; border-top-style: none">Nagyobb mint </td></tr> <tr> <td style="border-bottom-style: none; border-top-style: none"><code>>=</code> </td> <td style="border-bottom-style: none; border-top-style: none">Nagyobb-egyenlő </td></tr> <tr> <th rowspan="2">10 </th> <td style="border-bottom-style: none"><code>==</code> </td> <td style="border-bottom-style: none">Egyenlő </td> <td style="vertical-align: top" rowspan="2">Balról jobbra </td></tr> <tr> <td style="border-bottom-style: none; border-top-style: none"><code>!=</code> </td> <td style="border-bottom-style: none; border-top-style: none">Nem egyenlő </td></tr> <tr> <th>11 </th> <td><code>&</code> </td> <td>Bitenkénti ÉS </td> <td>Balról jobbra </td></tr> <tr> <th>12 </th> <td><code>^</code> </td> <td>Bitenkénti XOR (kizáró vagy) </td> <td>Balról jobbra </td></tr> <tr> <th>13 </th> <td><code>|</code> </td> <td>Bitenkénti VAGY (megengedő vagy) </td> <td>Balról jobbra </td></tr> <tr> <th>14 </th> <td><code>&&</code> </td> <td>Logikai ÉS </td> <td>Balról jobbra </td></tr> <tr> <th>15 </th> <td><code>||</code> </td> <td>Logikai VAGY </td> <td>Balról jobbra </td></tr> <tr> <th rowspan="2">16 </th> <td style="border-bottom-style: none"><code>co_await</code> </td> <td rowspan="2">Párhuzamos folyamat feldolgozása (csak C++) </td> <td rowspan="2">Jobbról balra </td></tr> <tr> <td style="border-top-style: none"><code>co_yield</code> </td></tr> <tr> <th rowspan="13">17 </th> <td style="border-bottom-style: none"><code>?:</code> </td> <td style="border-bottom-style: none">Hármas feltételes elágazás<br />(ha-akkor-különben) </td> <td rowspan="13">Jobbról balra </td></tr> <tr> <td style="border-bottom-style: none; border-top-style: none"><code>=</code> </td> <td style="border-bottom-style: none; border-top-style: none">Értékadás </td></tr> <tr> <td style="border-bottom-style: none; border-top-style: none"><code>+=</code> </td> <td style="border-bottom-style: none; border-top-style: none">Értékadás és összeg </td></tr> <tr> <td style="border-bottom-style: none; border-top-style: none"><code>-=</code> </td> <td style="border-bottom-style: none; border-top-style: none">Értékadás és különbség </td></tr> <tr> <td style="border-bottom-style: none; border-top-style: none"><code>*=</code> </td> <td style="border-bottom-style: none; border-top-style: none">Értékadás és szorzás </td></tr> <tr> <td style="border-bottom-style: none; border-top-style: none"><code>/=</code> </td> <td style="border-bottom-style: none; border-top-style: none">Értékadás és osztás </td></tr> <tr> <td style="border-bottom-style: none; border-top-style: none"><code>%=</code> </td> <td style="border-bottom-style: none; border-top-style: none">Értékadás és maradék </td></tr> <tr> <td style="border-bottom-style: none; border-top-style: none"><code><<=</code> </td> <td style="border-bottom-style: none; border-top-style: none">Értékadás és bitenkénti balra tolás </td></tr> <tr> <td style="border-bottom-style: none; border-top-style: none"><code>>>=</code> </td> <td style="border-bottom-style: none; border-top-style: none">Értékadás és bitenkénti jobbra tolás </td></tr> <tr> <td style="border-bottom-style: none; border-top-style: none"><code>&=</code> </td> <td style="border-bottom-style: none; border-top-style: none">Értékadás és bitenkénti ÉS </td></tr> <tr> <td style="border-bottom-style: none; border-top-style: none"><code>^=</code> </td> <td style="border-bottom-style: none; border-top-style: none">Értékadás és bitenkénti XOR </td></tr> <tr> <td style="border-bottom-style: none; border-top-style: none"><code>|=</code> </td> <td style="border-bottom-style: none; border-top-style: none">Értékadás és bitenkénti VAGY </td></tr> <tr> <td style="border-top-style: none"><code>throw</code> </td> <td style="border-top-style: none">Dobás operátor (kivételdobás, csak C++) </td></tr> <tr> <th>18<br /><small>legalacsonyabb</small> </th> <td><code>,</code> </td> <td>Vessző </td> <td>Balról jobbra </td></tr></tbody></table> <p>Egy több műveletet tartalmazó kifejezésben a műveletek prioritás szerinti sorrendben hajtódnak végre (lásd a jobb oldali táblázatot). Az azonos prioritású műveletek közötti sorrendet az asszociativitás dönti el. Miután az asszociativitásnak csak a prioritási szinten belül van szerepe, az egyes prioritási szintek asszociativitása eltérhet egymástól. A C nyelv – a „szokásos” programnyelvekkel ellentétben – használja ezt a lehetőséget.<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> A műveletek végrehajtási sorrendjét zárójelekkel téríthetjük el a prioritás szerintitől. </p><p>Ha a művelet két operandusa nem azonos típusú, akkor a „kisebb” típus automatikusan a „nagyobbra” konvertálódik a művelet előtt. Ez alól kivételek a nem szimmetrikus műveletek (pl. struktúra tagjára hivatkozás, tömbindexelés, léptetés). </p> <ul><li>(): <a href="#függvényhívás">függvényhívás</a>. A C-ben a függvény neve a függvény memóriacímét jelenti. Ezen cím meghívása a művelet. A zárójelben a függvény paraméterei adhatók meg. A zárójeleket akkor is ki kell írni, ha a függvénynek nincs paramétere.<sup id="cite_ref-fvnev_10-0" class="reference"><a href="#cite_note-fvnev-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup></li> <li>[]: <a href="#tömb">tömb</a> indexelés.</li> <li>. és ->: hozzáférés <a href="#struktúra">struktúra</a> vagy <a href="#unió">unió</a> tagjához. <code>.</code> esetén a struktúra változóval, <code><a href="#struktmut">-></a></code> esetén memóriacímmel (<a href="#mutató">mutatóval</a>) adott.</li> <li>!: logikai nem. <code>!c</code> értéke 1, ha c == 0, egyébként 0.</li> <li>~: bitenkénti negálás.</li> <li><span id="++"></span>++: egyváltozós értékadás, mely eggyel növeli a változó értékét. A művelet eredménye <code>++n</code> esetén n+1, <code>n++</code> esetén n (vagyis utóbbi esetben a növelés előtti érték).</li> <li>--: egyváltozós értékadás, mely eggyel csökkenti a változó értékét. A művelet eredménye <code>--n</code> esetén n-1, <code>n--</code> esetén n (vagyis utóbbi esetben a csökkentés előtti érték).</li> <li>változó előtti -: előjelváltás.</li> <li>változó előtti +: hatástalan, de az olvashatóság érdekében megengedett (pl. <code>x = +a;</code>)</li> <li><span id="konverzió"></span> (<i>típus</i>): explicit konverzió. Pl. a <code>(unsigned long)c</code> kifejezés a c változó értékét előjeltelen hosszú egésszé alakítja.</li> <li>változó előtti *: a <a href="#mutató">mutatóban</a> tárolt érték</li> <li>változó előtti &: a változó memóriacíme</li> <li>sizeof(): a változó vagy típus mérete byte-ban.<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> Ha pl. tomb-ot így deklaráltuk: <code>int tomb[6];</code>, akkor a <code>sizeof(tomb)/sizeof(int)</code> kifejezés értéke tomb elemszáma (ez esetben 6) lesz. A változó vagy típus összetett is lehet (<a href="#struktúra">struktúra</a> vagy <a href="#unió">unió</a>).<sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup></li> <li>*: szorzás</li> <li>/: osztás</li> <li>%: maradékképzés. Fixpontos adatokon végezhető. Negatív osztási eredmény esetén a maradék előjele nem definiált.</li> <li>+: összeadás.</li> <li>-: kivonás.</li> <li><<: bitenkénti balra léptetés; balról 0-k lépnek be. A második operandus a léptetésszám. Pl. <code>1<<5</code> értéke 32.</li> <li>>>: bitenkénti jobbra léptetés. Negatív szám esetén a balról bejövő bitek értéke nem definiált.</li> <li><span id="reláció"></span> relációk: <, <=, >, >=, ==, !=. A kifejezés értéke 1, ha teljesül a reláció, 0, ha nem. Az egyenlőséget vizsgáló <code>==</code> nem tévesztendő össze az értékadó <code>=</code> művelettel.</li> <li>& (két operandussal): bitenkénti ÉS művelet</li> <li>^: bitenkénti kizáró vagy művelet. (Hatványozás művelet nincs C-ben, de van rá <a href="#libc">könyvtári függvény</a>: a <code>pow</code>.)</li> <li>|: bitenkénti VAGY művelet.</li> <li>&&: logikai ÉS művelet. Ha a bal operandus értéke 0, a művelet eredménye 0, és a jobb operandus nem értékelődik ki. Így pl. az <code>a != 0 && 1000/a < 2</code> kifejezés sohasem vezet 0-val osztáshoz.</li> <li>||: logikai VAGY művelet. Ha a bal operandus értéke nem 0, a művelet eredménye 1, és a jobb operandus nem értékelődik ki.</li> <li>? és: háromváltozós művelet, feltételes értékadáshoz használható. Az ? előtti kifejezés a feltétel, azt követi az igaz, majd a : után a hamishoz tartozó érték. Pl. az <code>5 < 3? 1 : 2</code> kifejezés értéke 2. A példabeli számok helyén tetszőleges kifejezés állhat.</li> <li>kétváltozós értékadó műveletek: =, *=, /=, %=, +=, -=, <<=, >>=, &=, ^=, |=. Az = az egyszerű értékadás. <code>a += 2;</code> a értékéhez 2-t ad, az eredményt a-ba teszi, egyúttal ez az érték a kifejezés értéke. A többi művelet teljesen hasonló.</li> <li>,: először kiértékelődik a vessző előtti, utána a vessző utáni kifejezés, és ez utóbbi lesz a vesszős kifejezés értéke. A műveletet szinte kizárólag a <a href="#for">for utasításban</a> használják.</li></ul> <p>A <b>bitműveletek</b> (~, <<, >>, &, ^, |, <<= és >>=) és a maradékképzés (%) csak fixpontos típusokon értelmezettek. </p> <div class="mw-heading mw-heading2"><h2 id="Vezérlő_utasítások"><span id="Vez.C3.A9rl.C5.91_utas.C3.ADt.C3.A1sok"></span>Vezérlő utasítások</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=30" title="Szakasz szerkesztése: Vezérlő utasítások"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Három típusuk van: </p> <ul><li>elágazások (<a href="#if">if</a> és <a href="#switch">switch</a>)</li> <li>ciklusutasítások (<a href="#while">while</a>, <a href="#for">for</a>, <a href="#dowhile">do/while</a>)</li> <li><a href="#goto">goto</a></li></ul> <div class="mw-heading mw-heading3"><h3 id="Az_if_utasítás"><span id="Az_if_utas.C3.ADt.C3.A1s"></span><span id="if"></span> Az if utasítás</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=31" title="Szakasz szerkesztése: Az if utasítás"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Alakja: </p> <pre>if(<i>feltétel</i>) <i>utasítás</i>; else <i>utasítás2</i>; </pre> <p>A többi programnyelvtől eltérően C-ben nincs <code>then</code> kulcsszó (ezért kell a feltételt zárójelbe tenni). Az <code>else</code> elmaradhat. </p><p>Az <code>if</code> és <code>else</code> után <i>egy</i> utasítás állhat, ami <a href="#blokk">blokk</a> is lehet (és majdnem mindig az is). Ha <i>utasítás</i> is <code>if</code>, és a két <code>if</code>-nek egy <code>else</code>-e van, az a belsőhöz tartozik. Az ilyen helyzeteket a <code>{</code> <code>}</code> használatával célszerű elkerülni. </p><p>C-ben nincs logikai változó vagy kifejezés (a relációs műveletek is egész típusú értéket adnak vissza), ezért a feltétel egész<sup id="cite_ref-logkif_5-1" class="reference"><a href="#cite_note-logkif-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> típusú <a href="#kifejezés">aritmetikai kifejezés</a>, melynek 0 értéke esetén a feltétel nem teljesül (<code>else</code> ág), nem 0 érték esetén teljesül. </p><p>Példa: az alábbi kód: </p> <div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="k">if</span><span class="p">(</span><span class="n">a</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="mi">5</span><span class="p">)</span> <span class="p">{</span> <span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">3</span><span class="p">;</span> <span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span> <span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">8</span><span class="p">;</span> <span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">9</span><span class="p">;</span> <span class="p">}</span> </pre></div> <p>így is írható (bár a könnyű téveszthetőség miatt nem javasolt): </p> <div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="k">if</span><span class="p">(</span><span class="n">a</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="mi">5</span><span class="p">)</span> <span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span> <span class="k">else</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">8</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">9</span><span class="p">;</span> </pre></div> <div class="mw-heading mw-heading3"><h3 id="A_switch_utasítás"><span id="A_switch_utas.C3.ADt.C3.A1s"></span><span id="switch"></span> A switch utasítás</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=32" title="Szakasz szerkesztése: A switch utasítás"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Többirányú elágazás egy egész típusú <a href="#kifejezés">aritmetikai kifejezés</a> lehetséges értékei szerint. A lehetséges értékek egész típusú konstansok. Alakja: </p> <pre>switch(<i>kifejezés</i>) { case <i>érték1</i>: ... break; case <i>érték2</i>: ... break; default: ... } </pre> <p>A <code>case</code> utáni egész konstansok különbözőek kell legyenek. Arra a <code>case</code>-ra kerül a vezérlés, melynek értékével egyezik a kifejezés értéke. Ha egyikkel sem, a <code>default</code> ágra kerül a vezérlés. A <code>default</code> elhagyható, ilyenkor a <code>switch</code> semmit sem csinál, ha a kifejezés értéke mindegyik <code>case</code>-tól különbözik. </p><p>A <code>break</code> kilép a <code>switch</code> utasításból. Nem kötelező minden ág végére kitenni: ilyenkor az ág „átcsurog” a következőbe. Miután ez rendszerint programhiba, ha szándékos, célszerű megjegyzésben jelezni. </p><p>Példa (<a href="/wiki/HTTP-%C3%A1llapotk%C3%B3dok" title="HTTP-állapotkódok">HTTP-státuszokkal</a>): </p> <div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="k">enum</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">VAN</span><span class="o">=</span><span class="mi">200</span><span class="p">,</span><span class="w"> </span><span class="n">NINCS</span><span class="o">=</span><span class="mi">404</span><span class="p">,</span><span class="w"> </span><span class="n">TILTOTT</span><span class="o">=</span><span class="mi">403</span><span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="n">kod</span><span class="p">;</span> <span class="p">...</span> <span class="k">switch</span><span class="p">(</span><span class="n">kod</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="no">VAN</span><span class="p">:</span><span class="w"> </span><span class="n">puts</span><span class="p">(</span><span class="s">"Van ilyen lap"</span><span class="p">);</span> <span class="w"> </span><span class="k">break</span><span class="p">;</span> <span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="no">NINCS</span><span class="p">:</span><span class="w"> </span><span class="n">puts</span><span class="p">(</span><span class="s">"Nincs ilyen lap"</span><span class="p">);</span> <span class="w"> </span><span class="k">break</span><span class="p">;</span> <span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="no">TILTOTT</span><span class="p">:</span><span class="w"> </span><span class="n">puts</span><span class="p">(</span><span class="s">"Nincs engedély a lap olvasására"</span><span class="p">);</span> <span class="w"> </span><span class="k">break</span><span class="p">;</span> <span class="w"> </span><span class="k">default</span><span class="o">:</span><span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">"Ismeretlen kód: %d</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="n">kod</span><span class="p">);</span> <span class="w"> </span><span class="k">break</span><span class="p">;</span> <span class="p">}</span> </pre></div> <div class="mw-heading mw-heading3"><h3 id="A_while_utasítás"><span id="A_while_utas.C3.ADt.C3.A1s"></span><span id="while"></span> A while utasítás</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=33" title="Szakasz szerkesztése: A while utasítás"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Alakja: </p> <pre>while(<i>feltétel</i>) <i>utasítás</i>; </pre> <p>A <i>feltétel</i> az <a href="#if">if</a> utasításhoz hasonlóan egész <a href="#kifejezés">kifejezés</a>, az <i>utasítás</i> – a ciklusmag – szinte mindig <a href="#blokk">blokk</a>. </p><p>Először <i>feltétel</i> értékelődik ki. Ha ez nem 0, végrehajtódik az <i>utasítás</i>, majd újra <i>feltétel</i> kiértékelése következik mindaddig, amíg <i>feltétel</i> a 0 értéket nem veszi fel. </p><p>A <code>break</code> utasítás kilép a ciklusból. A <code>continue</code> kilép a ciklusmagból, és <i>feltétel</i> kiértékelésével folytatja. </p><p>Végtelen ciklus: </p> <div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="k">while</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span> </pre></div> <p>A pontosvessző az üres utasítást jelenti. </p> <div class="mw-heading mw-heading3"><h3 id="A_for_utasítás"><span id="A_for_utas.C3.ADt.C3.A1s"></span><span id="for"></span> A for utasítás</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=34" title="Szakasz szerkesztése: A for utasítás"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Alakja: </p> <pre>for(<i>előkifejezés</i>; <i>feltétel</i>; <i>utókifejezés</i>) <i>utasítás</i>; </pre> <p>Hatása ugyanaz, mintha ezt írtuk volna: </p> <pre><i>előkifejezés</i>; while(<i>feltétel</i>) { <i>utasítás</i>; <i>utókifejezés</i>; } </pre> <p>Ha a feltétel elmarad, igaznak számít. A két kifejezés bármelyike elhagyható; a <code>for(;<i>feltétel</i>;)</code> azonos a <code>while(<i>feltétel</i>)</code> utasítással. <i>utasítás</i> is elmaradhat, de a pontosvessző nem (üres utasítás). Ez elég gyakori: a ciklus feladatát a ciklus fejléce látja el. </p><p>A <code>break</code> utasítás kilép a ciklusból. A <code>continue</code> kilép a ciklusmagból, és <i>utókifejezés</i> végrehajtásával folytatja. </p><p>Példa: megszámoljuk, hogy <code>tomb</code>-ben hány 1-es érték van, és a <code>szaml</code> változóba tesszük. </p> <div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="kt">int</span><span class="w"> </span><span class="n">tomb</span><span class="p">[</span><span class="mi">1000</span><span class="p">],</span><span class="n">szaml</span><span class="p">,</span><span class="o">*</span><span class="n">mut</span><span class="p">;</span> <span class="p">...</span> <span class="k">for</span><span class="p">(</span><span class="n">mut</span><span class="o">=</span><span class="n">tomb</span><span class="p">,</span><span class="n">szaml</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">mut</span><span class="o">-</span><span class="n">tomb</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="k">sizeof</span><span class="p">(</span><span class="n">tomb</span><span class="p">)</span><span class="o">/</span><span class="k">sizeof</span><span class="p">(</span><span class="kt">int</span><span class="p">);</span><span class="w"> </span><span class="n">mut</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span> <span class="w"> </span><span class="k">if</span><span class="p">(</span><span class="o">*</span><span class="n">mut</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">szaml</span><span class="o">++</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> <span class="p">}</span> </pre></div> <p><code>sizeof(tomb)</code> a <code>tomb</code> mérete byte-ban. <code>sizeof(int)</code> az egész típus hossza byte-ban. A kettő hányadosa megadja <code>tomb</code> elemszámát, így azt egyszer kellett csak leírni. <code>mut-tomb</code> azt adja meg, hogy hányadik tömbelemnél jár a ciklus. </p><p>A ciklus lefutása után a <code>mut</code> változó értéke <code>tomb+1000</code> lesz. A C-ben nincs igazi ciklusváltozó; a <code>for</code> utasításban szereplő változók értékét – a legtöbb nyelvtől eltérően – a ciklus lefutása vagy a <code>break</code>-kel történő kilépés után is megkötés nélkül használhatjuk. </p><p>Végtelen ciklus: </p> <div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="k">for</span><span class="p">(;;);</span> </pre></div> <div class="mw-heading mw-heading3"><h3 id="A_do/while_utasítás"><span id="A_do.2Fwhile_utas.C3.ADt.C3.A1s"></span><span id="dowhile"></span> A do/while utasítás</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=35" title="Szakasz szerkesztése: A do/while utasítás"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A ciklusutasítások harmadik formája. Abban különbözik <code>while</code>-tól, hogy először hajtja végre a ciklusmagot, utána értékeli ki a feltételt (<a href="/wiki/Fortran" title="Fortran">Fortran</a>-típusú ciklus). C-ben ritkán használatos. Alakja: </p> <pre>do <i>utasítás</i>; while <i>feltétel</i>; </pre> <div class="mw-heading mw-heading3"><h3 id="A_goto_utasítás"><span id="A_goto_utas.C3.ADt.C3.A1s"></span><span id="goto"></span> A goto utasítás</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=36" title="Szakasz szerkesztése: A goto utasítás"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A strukturált programozást a goto utasítás elkerülésére, a program olvashatóbbá tételére találták ki, ezért a goto használata egyáltalán nem javasolt. </p><p>Alakja: <code>goto <i>címke</i>;</code> A <i>címke</i> egy név, melyet kettőspont követ. A goto hatására a program a címkével megjelölt utasítással folytatódik. </p><p>Példa: </p> <div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="k">goto</span><span class="w"> </span><span class="n">cimke</span><span class="p">;</span> <span class="p">...</span> <span class="nl">cimke</span><span class="p">:</span><span class="w"> </span><span class="p">...</span> </pre></div> <div class="mw-heading mw-heading2"><h2 id="Függvények"><span id="F.C3.BCggv.C3.A9nyek"></span>Függvények</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=37" title="Szakasz szerkesztése: Függvények"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A függvények a hívó programtól kapott <b>paraméterek</b> alapján kiszámítanak egy értéket, és visszaadják a hívónak. A paraméterek és a visszatérési értékek helyes értelmezéséről a függvény deklarációja gondoskodik. A deklaráció nyomatékosan ajánlott, de nem kötelező. </p><p>A C-ben nincs eljárás, de a hívó program – az aritmetikai utasítások szabályai miatt – nem köteles felhasználni a függvény visszatérési értékét, ezért a függvények használhatók eljárásként. A gyakorlatban így is zavart okozott a függvények eljárásként történő használata, ezért az ANSI C-ben bevezették a void típust, mellyel semmilyen művelet nem végezhető. Ez azt jelenti, hogy a void típust visszaadó függvény gyakorlatilag eljárásnak tekinthető. </p> <div class="mw-heading mw-heading3"><h3 id="Függvénydeklaráció"><span id="F.C3.BCggv.C3.A9nydeklar.C3.A1ci.C3.B3"></span>Függvénydeklaráció</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=38" title="Szakasz szerkesztése: Függvénydeklaráció"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Két módja van: </p> <ul><li>típusdeklaráció: csak a függvény visszatérési értékének típusát mondja meg, a paraméterekét nem.</li> <li>prototípus: a visszatérési érték típusán felül megadja a paraméterek számát és típusát is.</li></ul> <p>A függvényérték típusa bármilyen C-típus lehet, beleértve az egyszerű és összetett típusokat, a mutatót (a tömböt mutató formájában adja vissza a függvény) és a már említett <code>void</code> típust. </p><p>Példa: a <code>strcmp</code> könyvtári függvény két stringet hasonlít össze. Ha a kettő azonos, 0-t ad vissza, ha az első előbb van az abc-ben, -1-et, ha hátrébb, 1-et. A típusdeklaráció: </p> <div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="kt">int</span><span class="w"> </span><span class="nf">strcmp</span><span class="p">();</span> </pre></div> <p>A függvény prototípusa a <code>string.h</code> header-fájlban van: </p> <div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="kt">int</span><span class="w"> </span><span class="nf">strcmp</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">string1</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">string2</span><span class="p">);</span> </pre></div> <p>Ha a deklaráció elmarad, a függvényt egész típusúnak tekinti a fordítóprogram. Ha a paraméterek deklarációja marad el, azok típusát az első hívás alapján állapítja meg. </p><p>Ha a függvénynek nincs paramétere, a prototípusban – a típusdeklarációtól való megkülönböztetés érdekében – a <code>void</code> kulcsszót kell megadni: <code>int fv(void);</code>. </p> <div class="mw-heading mw-heading3"><h3 id="Függvénydefiníció"><span id="F.C3.BCggv.C3.A9nydefin.C3.ADci.C3.B3"></span>Függvénydefiníció</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=39" title="Szakasz szerkesztése: Függvénydefiníció"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A függvény utasításait adja meg. Két részből áll: a fej adja meg a paramétereket és az érték típusát, az azt követő <a href="#blokk">blokk</a> az utasításokat. </p><p>A fej kétféle formában írható a kétféle függvénydefinícióhoz hasonlóan.<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> Az eredeti, típusdefiníció-szerű alak: </p> <div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="kt">int</span><span class="w"> </span><span class="nf">memcmp</span><span class="p">(</span><span class="n">string1</span><span class="p">,</span><span class="n">string2</span><span class="p">)</span> <span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">string1</span><span class="p">,</span><span class="o">*</span><span class="n">string2</span><span class="p">;</span> <span class="p">{...}</span> </pre></div> <p>A másik alak ugyanolyan, mint a prototípus, csak a <code>;</code> helyén áll a blokk. Ma már kizárólag ez az alak használatos: </p> <div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="kt">int</span><span class="w"> </span><span class="nf">strcmp</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">string1</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">string2</span><span class="p">)</span> <span class="p">{...}</span> </pre></div> <p>A függvény a <code>return</code> utasítás utáni <a href="#kifejezés">kifejezéssel</a> adja meg a visszatérési értékét. A kifejezés automatikusan átkonvertálódik a függvény típusára. <code>void</code> típusú függvény esetén a <code>return</code> utáni kifejezés elmarad, és a <code>return</code>-t sem kell kiírni, ha az a függvény utolsó utasítása a záró <code>}</code> előtt. </p><p>Ha a függvény <a href="#mutató">mutatót</a> ad vissza, az nem mutathat dinamikus adatra (verembeli területre). A függvényből való visszatéréskor ui. a dinamikus változók memóriaterülete felszabadul, és a terület bármikor megváltozhat. </p> <div class="mw-heading mw-heading3"><h3 id="A_függvény_hívása"><span id="A_f.C3.BCggv.C3.A9ny_h.C3.ADv.C3.A1sa"></span><span id="függvényhívás"></span> A függvény hívása</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=40" title="Szakasz szerkesztése: A függvény hívása"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A paramétereket a függvény neve után kell írni zárójelbe, vesszővel elválasztva. A zárójelet akkor is ki kell írni, ha a függvénynek nincs paramétere,<sup id="cite_ref-fvnev_10-1" class="reference"><a href="#cite_note-fvnev-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> ui. a zárójel a függvényhívó művelet. </p><p>A paraméterek átadása érték szerint történik, azaz a függvény az értékek másolatát kapja meg. Ebből az is következik, hogy nem tudja megváltoztatni a hívó változóinak értékét. Ezt úgy hidalják át, hogy a változó címét (mutatóját) adják át a függvénynek.<sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup> </p><p>Függvényhívásra példák a <a href="#libc">könyvtári függvények</a> fejezetben találhatók. </p> <div class="mw-heading mw-heading3"><h3 id="Függvénymutató"><span id="F.C3.BCggv.C3.A9nymutat.C3.B3"></span>Függvénymutató</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=41" title="Szakasz szerkesztése: Függvénymutató"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A <b>függvénymutató</b> egy függvény memóriacímét tároló változó, melyen a függvényhívás művelete (<code>()</code>) hajtható végre. </p><p>Függvénymutató is kétféleképpen deklarálható: </p> <div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="kt">int</span><span class="w"> </span><span class="p">(</span><span class="o">*</span><span class="n">comp</span><span class="p">)();</span><span class="w"> </span><span class="c1">// típusdeklarációs forma</span> <span class="kt">int</span><span class="w"> </span><span class="p">(</span><span class="o">*</span><span class="n">comp</span><span class="p">)(</span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">string1</span><span class="p">,</span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">string2</span><span class="p">);</span><span class="w"> </span><span class="c1">// prototípus forma</span> </pre></div> <p>Mindkettő azt jelenti, hogy a <code>comp</code> nevű változó egy egész típusú függvény címét tartalmazza.<sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup> Érték így adható neki: </p> <div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="n">comp</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">strcmp</span><span class="p">;</span> </pre></div> <p>Ezután pl. a <code>comp("egyik",valt)</code> és <code>strcmp("egyik",valt)</code> kifejezés teljesen azonos hatású. </p><p>Függvénymutatót kap paraméterként a rendezést végző <code>qsort</code> és a szimbóltáblában kereső <code>lsearch</code>, <code>lfind</code> és <code>bsearch</code> <a href="#libc">könyvtári függvény</a>. </p> <div class="mw-heading mw-heading2"><h2 id="Preprocesszor_utasítások"><span id="Preprocesszor_utas.C3.ADt.C3.A1sok"></span><span id="preproc"></span> Preprocesszor utasítások</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=42" title="Szakasz szerkesztése: Preprocesszor utasítások"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A preprocesszor-utasítások hatására a fordítás első menete a forrásprogramon hajt végre módosításokat, melynek eredménye a preprocesszor-utasítás nélküli C-program. </p><p>A preprocesszor-utasítások nem szabad formátumúak: a sor eleji <code>#</code>-jellel kezdődnek, és a sor végével végződnek. Folytatósor a sor végi <code>\</code>-sel írható. </p> <div class="mw-heading mw-heading3"><h3 id="#include"><span id=".23include"></span>#include</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=43" title="Szakasz szerkesztése: #include"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Alakja: </p> <pre>#include <<i>fájlnév</i>> #include "<i>fájlnév</i>" </pre> <p>Hatására a preprocesszor az <code>include</code> utasítást a megadott nevű fájl (<b>header-fájl</b>) tartalmával helyettesíti (mintha beírtuk volna a programba). A két alak között az a különbség, hogy az első a fordítóprogram fájljai között keresi a megadott fájlt (linuxban pl. a <code>/usr/include</code> könyvtárban), míg a második a C-programmal azonos könyvtárban (saját header-fájl). </p><p>A fájlnév tartalmazhat path-t, kiterjesztése a kialakult szokások szerint <code>.h</code> Ugyancsak kialakult az a szokás, hogy a header-fájl végrehajtható utasítást nem, csak adat-, függvény- és típusdeklarációkat tartalmaz (a preprocesszor-utasításokon kívül). </p><p>A header-fájlok használata lehetővé teszi, hogy a deklarációkat egy helyen lehessen leírni. A forrásprogramoknak csak hivatkozniuk kell rá az <code>#include</code> utasítással. </p> <div class="mw-heading mw-heading3"><h3 id="#define"><span id=".23define"></span>#define</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=44" title="Szakasz szerkesztése: #define"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Preprocesszor-változóhoz rendel értéket. A preprocesszor a változó helyére szövegszerűen behelyettesíti az értéket. Például ha egy tömb méretére több helyen hivatkozunk a programban: </p> <div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="cp">#define TOMBMERET 100</span> <span class="kt">int</span><span class="w"> </span><span class="n">tomb</span><span class="p">[</span><span class="n">TOMBMERET</span><span class="p">],</span><span class="n">i</span><span class="p">;</span> <span class="k">for</span><span class="p">(</span><span class="n">i</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">TOMBMERET</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">...</span> </pre></div> <p>Ezzel a tömb méretét egy helyen lehet változtatni a programban. </p><p>A <code>#define</code> értéke bármilyen szöveg lehet. Ha C-kifejezésnek akarunk így nevet adni, nyomatékosan ajánlott a <a href="#kifejezés">kifejezést</a> zárójelbe tenni. A használatkor ui. szöveges másolás történik, nincs prioritásellenőrzés. </p><p>A legtöbb fordítóprogram lehetővé teszi, hogy a fordítóprogram hívásakor adhassunk meg preprocesszor-változókat. Pl. linuxban a fenti változó a </p> <pre>gcc -DTOMBMERET=100 ... </pre> <p>kapcsolóval adható meg. Több <code>-D</code> kapcsoló írható. A <code>#ifndef</code> utasítással meg lehet vizsgálni, hogy a változó létezik-e (és default érték is rendelhető hozzá, ha a fordításkor nem adtunk meg értéket). </p> <div class="mw-heading mw-heading3"><h3 id="#ifdef,_#ifndef"><span id=".23ifdef.2C_.23ifndef"></span>#ifdef, #ifndef</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=45" title="Szakasz szerkesztése: #ifdef, #ifndef"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Megvizsgálja, hogy létezik-e egy preprocesszor-változó. Alakja: </p> <pre>#ifdef <i>preproc-változó</i> ... #else ... #endif </pre> <p>A <code>#else</code> ág elmaradhat. Több utasítás skatulyázható egymásba. A <code>#ifdef</code> akkor teljesül, ha a változó létezik, <code>#ifndef</code> akkor, ha nem. </p><p>Az utasítással forráskódot hagyhatunk ki a programból. A <code>#else</code>-ig (ha elmarad, <code>#endif</code>-ig) leírt szöveg (program) csak akkor kelül a programba, ha a feltétel teljesül. Ha nem teljesül, a <code>#else</code> után leírt; ha nincs <code>#else</code>, akkor semmi. </p><p>Példa. Gyakran okoz furcsa hibákat az, ha egy header-fájlt többször hívunk be a programba (esetleg nem is közvetlenül .c-ből, hanem másik headerfájlból). Ezért a headerfájlt így célszerű megírni (legyen a neve <code>pelda.h</code>): </p> <div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="cp">#ifndef PROBA_H</span> <span class="cp">#define PROBA_H </span><span class="c1">// létrehozzuk a változót, hogy a következő híváskor ne teljesüljön a feltétel</span> <span class="c1">// Ide jön a header-fájl tartalma</span> <span class="cp">#endif</span> </pre></div> <div class="mw-heading mw-heading3"><h3 id="#if"><span id=".23if"></span>#if</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=46" title="Szakasz szerkesztése: #if"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Abban különbözik <code>#ifdef</code>-től, hogy a <code>#if</code> után tetszőleges konstans (konstansokból és értéket kapott preprocesszor-változókból) álló fixpontos <a href="#kifejezés">kifejezés</a> írható. Ha a kifejezés értéke nem 0, a <code>#if</code> utáni, ha 0, a <code>#else</code> utáni kód kerül a programba. </p><p>Példa: szükségünk van egy legalább 24 bites előjeltelen egész típusra. A szabvány szerint az <code>unsigned</code> típus legalább 16, az <code>unsigned long</code> legalább 32 bites. A legnagyobb előjeltelen egész értékét a <code>limits.h</code> header-fájl definiálja az <code>UINT_MAX</code> nevű preprocesszor-változóban. </p> <div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="cp">#include</span><span class="w"> </span><span class="cpf"><limits.h></span> <span class="cp">#if 1L << 24 < UINT_MAX</span> <span class="k">typedef</span><span class="w"> </span><span class="kt">unsigned</span><span class="w"> </span><span class="n">INT24</span><span class="p">;</span> <span class="cp">#else</span> <span class="k">typedef</span><span class="w"> </span><span class="kt">unsigned</span><span class="w"> </span><span class="kt">long</span><span class="w"> </span><span class="n">INT24</span><span class="p">;</span> <span class="cp">#endif</span> </pre></div> <div class="mw-heading mw-heading2"><h2 id="Standard_könyvtári_függvények"><span id="Standard_k.C3.B6nyvt.C3.A1ri_f.C3.BCggv.C3.A9nyek"></span><span id="libc"></span> Standard könyvtári függvények</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=47" title="Szakasz szerkesztése: Standard könyvtári függvények"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading3"><h3 id="I/O_függvények"><span id="I.2FO_f.C3.BCggv.C3.A9nyek"></span><span id="stdio"></span> I/O függvények</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=48" title="Szakasz szerkesztése: I/O függvények"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <table class="wikitable floatright"> <caption>Standard kiíró függvények </caption> <tbody><tr> <th>Adat</th> <th>stdout</th> <th>fájl </th></tr> <tr> <td>karakter</td> <td>putchar</td> <td>fputc </td></tr> <tr> <td>string</td> <td>puts</td> <td>fputs </td></tr> <tr> <td>formátumozott</td> <td>printf</td> <td>fprintf </td></tr></tbody></table> <p>Szinte minden program használja az input-output függvények valamelyikét. Ezek fájlból olvasnak vagy fájlba írnak, és a <code>stdio.h</code> header-fájlban vannak definiálva. </p><p>A fájlt meg kell nyitni. A <code>fopen</code> függvény <code>FILE</code> típusú mutatót ad vissza, és ugyancsak <code>stdio.h</code>-ban van definiálva (fordítóprogramtól függően általában <code>typedef struct ... FILE;</code> alakban). A többi fájlkezelő függvény erre az ún. <b>fájlleíró</b>ra hivatkozik. </p><p>A program az induláskor az operációs rendszertől kap három nyitott fájlt (az alábbi globális nevek ugyancsak <code>stdio.h</code>-ban vannak): </p> <ul><li><code>stdin</code>: standard bemenet</li> <li><code>stdout</code>: standard kimenet</li> <li><code>stderr</code>: standard hibakimenet</li></ul> <table class="wikitable floatright"> <caption>Standard beolvasó függvények </caption> <tbody><tr> <th>Adat</th> <th>stdin</th> <th>fájl </th></tr> <tr> <td>karakter</td> <td>getchar</td> <td>fgetc </td></tr> <tr> <td>string</td> <td align="center">-<sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup></td> <td>fgets </td></tr> <tr> <td>formátumozott</td> <td>scanf</td> <td>fscanf </td></tr></tbody></table> <p>Ezeket nem kell megnyitni, de le lehet zárni, ha a program nem használja őket. Néhány I/O függvénynek nem kell fájleírót adni: ezek <code>stdout</code>-ra írnak vagy <code>stdin</code>-ről olvasnak. </p><p>A függvények pufferelnek: a kiírt adatok a memóriába kerülnek, és csak bizonyos mennyiség után, a fájl lezárásakor (<code>fclose</code>) vagy a <code>fflush</code> függvény meghívására íródnak ki. </p><p>A printf és scanf függvénycsaládnak a formátumot stringben kell megadni. A formátum <code>%</code>-jellel kezdődik, és az adat típusára utaló betűvel végződik. A kettő között további információkat lehet megadni. A formátumstring utáni első paraméter az első %-hoz tartozó adat stb. A paraméterek száma tetszőleges, de a %-ok és a paraméterek párban kell legyenek. </p><p>Az <code>sprintf</code> függvény fájl helyett karaktertömbbe írja a kimenetet. A <code>sscanf</code> karaktertömbből veszi a bemenetet. A két családnak további függvényei is vannak. </p><p>Az alábbi programrészlet a <code>meretek.txt</code> nevű fájlba írja, hány bájtos a gépen a <code>short</code>, <code>int</code>, <code>long</code> és <code>long long</code> típus. </p> <div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="kt">FILE</span><span class="w"> </span><span class="o">*</span><span class="n">fp</span><span class="p">;</span> <span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="n">fnev</span><span class="p">[]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"meretek.txt"</span><span class="p">;</span> <span class="p">...</span> <span class="k">if</span><span class="p">(</span><span class="w"> </span><span class="p">(</span><span class="n">fp</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">fopen</span><span class="p">(</span><span class="n">fnev</span><span class="p">,</span><span class="s">"w"</span><span class="p">))</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="nb">NULL</span><span class="p">)</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">fprintf</span><span class="p">(</span><span class="n">stderr</span><span class="p">,</span><span class="s">"Nem tudom írásra megnyitni a %s fájlt</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="n">fnev</span><span class="p">);</span> <span class="w"> </span><span class="n">exit</span><span class="p">(</span><span class="mi">2</span><span class="p">);</span><span class="w"> </span><span class="c1">// 2-es hibakóddal kilép a programból</span> <span class="w"> </span><span class="p">}</span> <span class="n">fprintf</span><span class="p">(</span><span class="n">fp</span><span class="p">,</span><span class="s">"short = %d</span><span class="se">\n</span><span class="s">int = %d</span><span class="se">\n</span><span class="s">long = %d</span><span class="se">\n</span><span class="s">long long = %d</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span> <span class="w"> </span><span class="k">sizeof</span><span class="p">(</span><span class="kt">short</span><span class="p">),</span><span class="k">sizeof</span><span class="p">(</span><span class="kt">int</span><span class="p">),</span><span class="k">sizeof</span><span class="p">(</span><span class="kt">long</span><span class="p">),</span><span class="k">sizeof</span><span class="p">(</span><span class="kt">long</span><span class="w"> </span><span class="kt">long</span><span class="p">));</span> <span class="k">if</span><span class="p">(</span><span class="n">ferror</span><span class="p">(</span><span class="n">fp</span><span class="p">)</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">fclose</span><span class="p">(</span><span class="n">fp</span><span class="p">))</span><span class="w"> </span><span class="c1">// || nem jó, mert hiba esetén nem zárja be a fájlt</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">fprintf</span><span class="p">(</span><span class="n">stderr</span><span class="p">,</span><span class="s">"I/O hiba a %s fájlban</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="n">fnev</span><span class="p">);</span> <span class="w"> </span><span class="n">exit</span><span class="p">(</span><span class="mi">2</span><span class="p">);</span><span class="w"> </span><span class="c1">// 2-es hibakóddal kilép a programból</span> <span class="w"> </span><span class="p">}</span> </pre></div><p> A <code>meretek.txt</code> tartalma linuxban, x86_64 architektúrában:</p><pre>short = 2 int = 4 long = 8 long long = 8</pre> <div class="mw-heading mw-heading3"><h3 id="Néhány_egyéb_könyvtári_függvény"><span id="N.C3.A9h.C3.A1ny_egy.C3.A9b_k.C3.B6nyvt.C3.A1ri_f.C3.BCggv.C3.A9ny"></span>Néhány egyéb könyvtári függvény</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=49" title="Szakasz szerkesztése: Néhány egyéb könyvtári függvény"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <table class="wikitable"> <tbody><tr> <th>headerfájl</th> <th>feladat</th> <th>példák </th></tr> <tr> <td rowspan="4">stdlib.h</td> <td>kilépés a programból</td> <td>exit, abort </td></tr> <tr> <td>memóriakérés futás közben</td> <td>malloc, calloc, realloc, free </td></tr> <tr> <td>rendezés, szimbóltábla kezelés</td> <td>qsort, lsearch, lfind, bsearch </td></tr> <tr> <td>string konverziója C-típussá</td> <td>atoi, atol, atof </td></tr> <tr> <td>string.h</td> <td>stringkezelés</td> <td>strlen, strcmp, strcat, strchr, strstr, strspn, strcspn </td></tr> <tr> <td>ctype.h</td> <td>karakterosztályozás</td> <td>isalpha, isalnum, isupper, toupper, islower, tolower, isspace </td></tr> <tr> <td>math.h</td> <td>matematikai függvények</td> <td>sin, asin, cos, acos, tan, atan, atan2, pow, sqrt </td></tr> <tr> <td>limits.h</td> <td>értékhatárok</td> <td>preprocesszor-változók a különböző típusok minimális és maximális értékeire </td></tr> <tr> <td>errno.h</td> <td>hibakódok</td> <td>az <code>errno</code> globális változó definíciója és lehetséges értékei az utolsó művelet sikerességéről </td></tr> <tr> <td>unistd.h</td> <td>paranccsori paraméterek átvétele</td> <td>getopt </td></tr> <tr> <td>setjmp.h</td> <td>fatális hiba kezelése</td> <td>setjmp, longjmp </td></tr></tbody></table> <div class="mw-heading mw-heading2"><h2 id="Kapcsolódó_szócikkek"><span id="Kapcsol.C3.B3d.C3.B3_sz.C3.B3cikkek"></span>Kapcsolódó szócikkek</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=50" title="Szakasz szerkesztése: Kapcsolódó szócikkek"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><span typeof="mw:File"><a href="/wiki/F%C3%A1jl:Wikibooks-logo-hu.svg" class="mw-file-description" title="Wikikönyvek"><img alt="Wikikönyvek" src="//upload.wikimedia.org/wikipedia/commons/thumb/8/82/Wikibooks-logo-hu.svg/15px-Wikibooks-logo-hu.svg.png" decoding="async" width="15" height="15" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/8/82/Wikibooks-logo-hu.svg/23px-Wikibooks-logo-hu.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/8/82/Wikibooks-logo-hu.svg/30px-Wikibooks-logo-hu.svg.png 2x" data-file-width="400" data-file-height="400" /></a></span> A magyar <a href="/wiki/Wikik%C3%B6nyvek" title="Wikikönyvek">Wikikönyvekben</a> további információk találhatók <b><a href="https://en.wikibooks.org/wiki/hu:Programoz%C3%A1s_C_nyelven" class="extiw" title="wikibooks:hu:Programozás C nyelven">Programozás C nyelven</a></b> témában.</li></ul> <div class="mw-heading mw-heading2"><h2 id="Jegyzetek">Jegyzetek</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=C_(programoz%C3%A1si_nyelv)&action=edit&section=51" title="Szakasz szerkesztése: Jegyzetek"><span>szerkesztés</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="ref-1col"><div style="-moz-column-count:2; -webkit-column-count:2; column-count:2; -webkit-column-gap: 3em; -moz-column-gap: 3em; column-gap: 3em;"><ol class="references"> <li id="cite_note-dottcl_2-1"><span class="mw-cite-backlink"><a href="#cite_ref-dottcl_2_1-0">↑</a></span> <span class="reference-text"><span class="citation"><a href="/wiki/Dennis_Ritchie" class="mw-redirect" title="Dennis Ritchie">Ritchie, Dennis M.</a>: <a rel="nofollow" class="external text" href="https://www.webcitation.org/6HZA6qfVb?url=http://cm.bell-labs.com/cm/cs/who/dmr/chist.html"><i>The Development of the C Language</i></a>, 1993. January. [2013. június 22-i dátummal az <a rel="nofollow" class="external text" href="http://cm.bell-labs.com/cm/cs/who/dmr/chist.html">eredetiből</a> archiválva]. (Hozzáférés: 2008. január 1.) „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.”</span></span> </li> <li id="cite_note-ie-2"><span class="mw-cite-backlink"><a href="#cite_ref-ie_2-0">↑</a></span> <span class="reference-text"><cite class="book citation" style="font-style:normal"> <a rel="nofollow" class="external text" href="http://www.wiley.com/WileyCDA/WileyTitle/productCd-0471222011.html">C/C++</a>, <i>The Internet encyclopedia 1</i>. John Wiley and Sons (2004). <a href="/wiki/Speci%C3%A1lis:K%C3%B6nyvforr%C3%A1sok/0-471-22201-1" title="Speciális:Könyvforrások/0-471-22201-1">ISBN 0-471-22201-1</a>. Hozzáférés ideje: 2012. december 16.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=The+Internet+encyclopedia+1&rft.atitle=C%2FC%2B%2B&rft.date=2004&rft.pub=John+Wiley+and+Sons&rft.isbn=0-471-22201-1"><span style="display: none;"> </span></span> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20131213023923/http://www.wiley.com/WileyCDA/WileyTitle/productCd-0471222011.html">Archiválva</a> <span style="white-space:nowrap">2013. december 13-i</span> dátummal a <a href="/wiki/Internet_Archive" title="Internet Archive">Wayback Machine</a>-ben <span class="citation"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20131213023923/http://www.wiley.com/WileyCDA/WileyTitle/productCd-0471222011.html"><i>Archivált másolat</i></a>. [2013. december 13-i dátummal az <a rel="nofollow" class="external text" href="http://www.wiley.com/WileyCDA/WileyTitle/productCd-0471222011.html">eredetiből</a> archiválva]. (Hozzáférés: 2013. december 7.)</span></span> </li> <li id="cite_note-AutoTX-2-3"><span class="mw-cite-backlink"><a href="#cite_ref-AutoTX-2_3-0">↑</a></span> <span class="reference-text"><span class="citation"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20090116080326/http://www.langpop.com/"><i>Programming Language Popularity</i></a>, 2009. [2009. január 16-i dátummal az <a rel="nofollow" class="external text" href="http://www.langpop.com/">eredetiből</a> archiválva]. (Hozzáférés: 2009. január 16.)</span></span> </li> <li id="cite_note-AutoTX-3-4"><span class="mw-cite-backlink"><a href="#cite_ref-AutoTX-3_4-0">↑</a></span> <span class="reference-text"><span class="citation"><a rel="nofollow" class="external text" href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html"><i>TIOBE Programming Community Index</i></a>, 2009. (Hozzáférés: 2009. május 6.)</span></span> </li> <li id="cite_note-logkif-5"><span class="mw-cite-backlink">↑ <a href="#cite_ref-logkif_5-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-logkif_5-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text">Kerülni kell két lebegőpontos szám egyenlőségének vizsgálatát, mert valamelyik érték kerekített lehet. Az egyenlőség helyett azt érdemes megnézni, hogy a különbségük abszolút értéke elég kicsi-e. Ezért előírás, hogy a logikainak használt érték fixpontos legyen.</span> </li> <li id="cite_note-6"><span class="mw-cite-backlink"><a href="#cite_ref-6">↑</a></span> <span class="reference-text">A kezdőértéket kapott összetett adat fordítóprogramtól függően kivétel lehet: ilyenkor a konstans adatterületről másolja a verembe a kezdőértéket a kód.</span> </li> <li id="cite_note-7"><span class="mw-cite-backlink"><a href="#cite_ref-7">↑</a></span> <span class="reference-text">Az <code>=</code> bal oldalán is lehet bizonyos korlátoknak eleget tevő kifejezés, ún. <b>lvalue</b>. Az lvalue lehet változónév (de nem lehet tömb- vagy függvénynév), vagy olyan aritmetikai kifejezés, melynek legutoljára végrehajtott művelete az indirekció (<code>*</code>, ill. az ezzel azonos tömbindexelés).</span> </li> <li id="cite_note-8"><span class="mw-cite-backlink"><a href="#cite_ref-8">↑</a></span> <span class="reference-text">Az értékadás nélküli függvényhívás szintaktikusan az <code>1;</code> utasításnak felel meg, de figyelmeztetést nem kapunk, mert a fordítóprogram tisztában van a mellékhatások lehetőségével.</span> </li> <li id="cite_note-9"><span class="mw-cite-backlink"><a href="#cite_ref-9">↑</a></span> <span class="reference-text">Egyváltozós műveleteket vagy a többszörös értékadást nem is lehet máshogyan kiértékelni – függetlenül attól, hogy az adott nyelv kimondja-e a jobbról balra asszociativitást, vagy műveletnek tekinti-e az értékadást.</span> </li> <li id="cite_note-fvnev-10"><span class="mw-cite-backlink">↑ <a href="#cite_ref-fvnev_10-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-fvnev_10-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text">A zárójel nélküli függvénynévből álló utasítás – a függvény memóriacíme – egy konstans érték, vagyis ugyanolyan utasítás, mint az <code>1;</code>: szintaktikusan helyes, de nem csinál semmit.</span> </li> <li id="cite_note-11"><span class="mw-cite-backlink"><a href="#cite_ref-11">↑</a></span> <span class="reference-text">Pontosabban: a char típus hosszában. <code>sizeof(char)</code> értéke definíció szerint 1.</span> </li> <li id="cite_note-12"><span class="mw-cite-backlink"><a href="#cite_ref-12">↑</a></span> <span class="reference-text">A sizeof művelet fordítási időben elvégezhető, ezért nem generál kódot. A C-fordító a konstans kifejezéseket fordítási időben értékeli ki, így az előbbi példában az osztást is. A kódban a 6 konstans kerül a helyére.</span> </li> <li id="cite_note-13"><span class="mw-cite-backlink"><a href="#cite_ref-13">↑</a></span> <span class="reference-text"><code>float</code> típus esetén a két forma nem ugyanazt teszi. Az eredeti, típusdefiníciós forma a <code>float</code> típust <code>double</code>-re konvertálta, és a fejlécbeli <code>float</code> deklarációt automatikusan <code>double</code>-nek vette. A prototípus formában már lehet konverzió nélküli <code>float</code> típust átadni paraméternek – feltéve, hogy az első hívást megelőzi a prototípus alakú deklaráció.</span> </li> <li id="cite_note-14"><span class="mw-cite-backlink"><a href="#cite_ref-14">↑</a></span> <span class="reference-text">C++-ban ezt a fordítóprogram is megteszi a referencia szerinti paraméterátadásnál.</span> </li> <li id="cite_note-15"><span class="mw-cite-backlink"><a href="#cite_ref-15">↑</a></span> <span class="reference-text">A deklarációban a zárójelre szükség van. A <code>int *comp();</code> utasítás ui. egy egész mutatót visszaadó függvény típusdeklarációja lenne.</span> </li> <li id="cite_note-16"><span class="mw-cite-backlink"><a href="#cite_ref-16">↑</a></span> <span class="reference-text">A <code>gets</code> függvény tömbtúlcsordulást okozhat, ezért helyette a <code>fgets(<i>tömb</i>,<i>méret</i>,stdin)</code>-t kell használni.</span> </li> </ol></div></div><div class="ref-1col"><div style="-moz-column-count:2; -webkit-column-count:2; column-count:2; -webkit-column-gap: 3em; -moz-column-gap: 3em; column-gap: 3em;"></div></div> <div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r26593303">.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}</style><style data-mw-deduplicate="TemplateStyles:r26641489">.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{width:100%;line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}</style></div><div role="navigation" class="navbox" aria-labelledby="Főbb_programozási_nyelvek" style="padding:3px"><table class="nowraplinks hlist mw-collapsible mw-autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div class="navbar noprint hlist plainlinks mini" style=";;background:none transparent;border:none;box-shadow:none;padding:0;;font-size:xx-small"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r26593303"><span style="display:none"><a href="/wiki/Sablon:F%C5%91bb_programoz%C3%A1si_nyelvek" title="Sablon:Főbb programozási nyelvek">Sablon:Főbb programozási nyelvek</a></span><ul style="display:inline"><li class="nv-view"><a class="external text" href="https://hu.wikipedia.org/wiki/Sablon:F%C5%91bb_programoz%C3%A1si_nyelvek"><span title="Mutasd ezt a sablont" style=";;background:none transparent;border:none;box-shadow:none;padding:0;">m</span></a></li> <li class="nv-talk"><a class="external text" href="https://hu.wikipedia.org/wiki/Sablonvita:F%C5%91bb_programoz%C3%A1si_nyelvek"><span title="A sablon vitalapja" style=";;background:none transparent;border:none;box-shadow:none;padding:0;">v</span></a></li> <li class="nv-edit"><a class="external text" href="https://hu.wikipedia.org/w/index.php?title=Sablon:F%C5%91bb_programoz%C3%A1si_nyelvek&action=edit"><span title="A sablon szerkesztése" style=";;background:none transparent;border:none;box-shadow:none;padding:0;">sz</span></a></li></ul></div><div id="Főbb_programozási_nyelvek" style="font-size:114%;margin:0 4em">Főbb programozási nyelvek</div></th></tr><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/ABAP" title="ABAP">ABAP</a></li> <li><a href="/wiki/Ada_(programoz%C3%A1si_nyelv)" title="Ada (programozási nyelv)">Ada</a></li> <li><a href="/wiki/ALGOL" title="ALGOL">ALGOL</a></li> <li><a href="/wiki/APL" title="APL">APL</a></li> <li><a href="/wiki/Assembly" title="Assembly">Assembly</a></li> <li><a href="/wiki/Asymptote" title="Asymptote">Asymptote</a></li> <li><a href="/wiki/Awk" title="Awk">Awk</a></li> <li><a href="/wiki/BASIC" title="BASIC">BASIC</a></li> <li><a href="/wiki/C%2B%2B" title="C++">C++</a></li> <li><a href="/wiki/Clipper_(programoz%C3%A1si_nyelv)" title="Clipper (programozási nyelv)">Clipper</a></li> <li><a href="/wiki/COBOL" title="COBOL">COBOL</a></li> <li><a class="mw-selflink selflink">C</a></li> <li><a href="/wiki/C_Sharp" title="C Sharp">C#</a></li> <li><a href="/wiki/Eiffel_(programoz%C3%A1si_nyelv)" title="Eiffel (programozási nyelv)">Eiffel</a></li> <li><a href="/wiki/F_Sharp" title="F Sharp">F#</a></li> <li><a href="/wiki/Fortran" title="Fortran">Fortran</a></li> <li><a href="/wiki/Haskell_(programoz%C3%A1si_nyelv)" title="Haskell (programozási nyelv)">Haskell</a></li> <li><a href="/wiki/IBM_RPG" title="IBM RPG">RPG</a></li> <li><a href="/wiki/Java_(programoz%C3%A1si_nyelv)" title="Java (programozási nyelv)">Java</a></li> <li><a href="/wiki/JavaScript" title="JavaScript">JavaScript</a></li> <li><a href="/wiki/Lisp_(programoz%C3%A1si_nyelv)" title="Lisp (programozási nyelv)">Lisp</a></li> <li><a href="/wiki/Logo_(programoz%C3%A1si_nyelv)" title="Logo (programozási nyelv)">Logo</a></li> <li><a href="/wiki/Modula-2_(programoz%C3%A1si_nyelv)" title="Modula-2 (programozási nyelv)">Modula-2</a></li> <li><a href="/wiki/MATLAB" title="MATLAB">MATLAB</a></li> <li><a href="/w/index.php?title=MUMPS&action=edit&redlink=1" class="new" title="MUMPS (a lap nem létezik)">MUMPS</a></li> <li><a href="/wiki/Objective-C" title="Objective-C">Objective-C</a></li> <li><a href="/wiki/Object_Pascal" title="Object Pascal">Delphi</a></li> <li><a href="/wiki/Pascal_(programoz%C3%A1si_nyelv)" title="Pascal (programozási nyelv)">Pascal</a></li> <li><a href="/wiki/Perl_(programoz%C3%A1si_nyelv)" title="Perl (programozási nyelv)">Perl</a></li> <li><a href="/wiki/PHP" title="PHP">PHP</a></li> <li><a href="/wiki/PL/I" title="PL/I">PL/I</a></li> <li><a href="/wiki/PL/SQL" title="PL/SQL">PL/SQL</a></li> <li><a href="/wiki/Python_(programoz%C3%A1si_nyelv)" title="Python (programozási nyelv)">Python</a></li> <li><a href="/w/index.php?title=SAS_programoz%C3%A1si_nyelv&action=edit&redlink=1" class="new" title="SAS programozási nyelv (a lap nem létezik)">SAS</a></li> <li><a href="/wiki/Scheme" title="Scheme">Scheme</a></li> <li><a href="/wiki/Scratch" title="Scratch">Scratch</a></li> <li><a href="/wiki/Bash" title="Bash">sh</a></li> <li><a href="/wiki/Simula" title="Simula">Simula</a></li> <li><a href="/wiki/Smalltalk" title="Smalltalk">Smalltalk</a></li> <li><a href="/wiki/SML" title="SML">SML</a></li> <li><a href="/wiki/Visual_Basic" title="Visual Basic">Visual Basic</a></li> <li><a href="/wiki/Programoz%C3%A1si_nyelvek_list%C3%A1ja_bet%C5%B1rendben" title="Programozási nyelvek listája betűrendben">további nyelvek...</a></li></ul> </div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div><span typeof="mw:File"><span title="List-Class article"><img alt="List-Class article" src="//upload.wikimedia.org/wikipedia/commons/thumb/d/db/Symbol_list_class.svg/16px-Symbol_list_class.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/d/db/Symbol_list_class.svg/24px-Symbol_list_class.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/d/db/Symbol_list_class.svg/32px-Symbol_list_class.svg.png 2x" data-file-width="180" data-file-height="185" /></span></span> Listák: <a href="/wiki/Programoz%C3%A1si_nyelvek_list%C3%A1ja_bet%C5%B1rendben" title="Programozási nyelvek listája betűrendben">betűrendes</a> <span typeof="mw:File"><span title="Category"><img alt="Category" src="//upload.wikimedia.org/wikipedia/commons/thumb/4/48/Folder_Hexagonal_Icon.svg/16px-Folder_Hexagonal_Icon.svg.png" decoding="async" width="16" height="14" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/4/48/Folder_Hexagonal_Icon.svg/24px-Folder_Hexagonal_Icon.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/4/48/Folder_Hexagonal_Icon.svg/32px-Folder_Hexagonal_Icon.svg.png 2x" data-file-width="36" data-file-height="31" /></span></span> <a href="/wiki/Kateg%C3%B3ria:Programoz%C3%A1si_nyelvek" title="Kategória:Programozási nyelvek">Kategória</a></div></td></tr></tbody></table></div> <div class="navbox-styles"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r26593303"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r26641489"><style data-mw-deduplicate="TemplateStyles:r26643308">@media screen and (max-width:719px){.mw-parser-output div.navbox.authoritycontrol{display:block}.mw-parser-output .authoritycontrol tbody,.mw-parser-output .authoritycontrol tr,.mw-parser-output .authoritycontrol th,.mw-parser-output .authoritycontrol td,.mw-parser-output .authoritycontrol .navbox-row>th+td{display:block;text-align:center}.mw-parser-output .authoritycontrol .navbox-list-with-group{border:none}}</style><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r26593303"></div><div role="navigation" class="navbox authoritycontrol" aria-labelledby="Nemzetközi_katalógusok" style="padding:3px"><table class="nowraplinks hlist navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th id="Nemzetközi_katalógusok" scope="row" class="navbox-group" style="width:auto"><a href="/wiki/Sablon:Nemzetk%C3%B6zi_katal%C3%B3gusok/doc" title="Sablon:Nemzetközi katalógusok/doc">Nemzetközi katalógusok</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Kongresszusi_K%C3%B6nyvt%C3%A1r" title="Kongresszusi Könyvtár">LCCN</a>: <span class="uid"><a rel="nofollow" class="external text" href="http://lccn.loc.gov/sh85018532">sh85018532</a></span></li> <li><a href="/wiki/Integr%C3%A1lt_katal%C3%B3gust%C3%A1r" title="Integrált katalógustár">GND</a>: <span class="uid"><a rel="nofollow" class="external text" href="https://d-nb.info/gnd/4113195-2">4113195-2</a></span></li> <li>SUDOC: <span class="uid"><a rel="nofollow" class="external text" href="https://www.idref.fr/027672441">027672441</a></span></li> <li><a href="/wiki/A_Cseh_K%C3%B6zt%C3%A1rsas%C3%A1g_Nemzeti_K%C3%B6nyvt%C3%A1ra" title="A Cseh Köztársaság Nemzeti Könyvtára">NKCS</a>: <span class="uid"><a rel="nofollow" class="external text" href="https://aleph.nkp.cz/F/?func=find-c&local_base=aut&ccl_term=ica=ph116955&CON_LNG=ENG">ph116955</a></span></li> <li><a href="/wiki/Francia_Nemzeti_K%C3%B6nyvt%C3%A1r" title="Francia Nemzeti Könyvtár">BNF</a>: <span class="uid"><a rel="nofollow" class="external text" href="https://catalogue.bnf.fr/ark:/12148/cb119665180">cb119665180</a></span></li></ul> </div></td></tr></tbody></table></div> <div class="noprint noviewer" style="overflow: hidden; clear: both;"><div style="margin-left:0; margin-right:2px;"><ul style="display:block; list-style-image:none; list-style-type:none; width:100%; vertical-align:middle; margin:0; padding:0; min-height: 27px;"><li style="float:left; min-height: 27px; line-height:25px; width:100%; margin:0; margin-top:.5em; margin-left:0; margin-right:0; padding:0; border:1px solid #CCF; background-color:#F0EEFF"><span typeof="mw:File"><a href="/wiki/F%C3%A1jl:P_computing.svg" class="mw-file-description" title="Informatika"><img alt="Informatika" src="//upload.wikimedia.org/wikipedia/commons/thumb/d/d6/P_computing.svg/25px-P_computing.svg.png" decoding="async" width="25" height="23" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/d/d6/P_computing.svg/38px-P_computing.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/d/d6/P_computing.svg/50px-P_computing.svg.png 2x" data-file-width="400" data-file-height="360" /></a></span> <b><a href="/wiki/Port%C3%A1l:Informatika" title="Portál:Informatika">Informatikai portál</a></b> • összefoglaló, színes tartalomajánló lap</li></ul></div></div></div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">A lap eredeti címe: „<a dir="ltr" href="https://hu.wikipedia.org/w/index.php?title=C_(programozási_nyelv)&oldid=27224636">https://hu.wikipedia.org/w/index.php?title=C_(programozási_nyelv)&oldid=27224636</a>”</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Wikip%C3%A9dia:Kateg%C3%B3ri%C3%A1k" title="Wikipédia:Kategóriák">Kategória</a>: <ul><li><a href="/wiki/Kateg%C3%B3ria:Imperat%C3%ADv_programoz%C3%A1si_nyelvek" title="Kategória:Imperatív programozási nyelvek">Imperatív programozási nyelvek</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Rejtett kategóriák: <ul><li><a href="/wiki/Kateg%C3%B3ria:Wikip%C3%A9dia-sz%C3%B3cikkek_LCCN-azonos%C3%ADt%C3%B3val" title="Kategória:Wikipédia-szócikkek LCCN-azonosítóval">Wikipédia-szócikkek LCCN-azonosítóval</a></li><li><a href="/wiki/Kateg%C3%B3ria:Wikip%C3%A9dia-sz%C3%B3cikkek_GND-azonos%C3%ADt%C3%B3val" title="Kategória:Wikipédia-szócikkek GND-azonosítóval">Wikipédia-szócikkek GND-azonosítóval</a></li><li><a href="/wiki/Kateg%C3%B3ria:Wikip%C3%A9dia-sz%C3%B3cikkek_BNF-azonos%C3%ADt%C3%B3val" title="Kategória:Wikipédia-szócikkek BNF-azonosítóval">Wikipédia-szócikkek BNF-azonosítóval</a></li></ul></div></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> A lap utolsó módosítása: 2024. június 19., 22:45</li> <li id="footer-info-copyright">A lap szövege <a rel="nofollow" class="external text" href="http://creativecommons.org/licenses/by-sa/4.0/deed.hu">Creative Commons Nevezd meg! – Így add tovább! 4.0</a> licenc alatt van; egyes esetekben más módon is felhasználható. Részletekért lásd a <a href="/wiki/Wikip%C3%A9dia:Felhaszn%C3%A1l%C3%A1si_felt%C3%A9telek" title="Wikipédia:Felhasználási feltételek">felhasználási feltételeket</a>.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Adatvédelmi irányelvek</a></li> <li id="footer-places-about"><a href="/wiki/Wikip%C3%A9dia:R%C3%B3lunk">A Wikipédiáról</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikip%C3%A9dia:Jogi_nyilatkozat">Jogi nyilatkozat</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Magatartási kódex</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Fejlesztők</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/hu.wikipedia.org">Statisztikák</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Sütinyilatkozat</a></li> <li id="footer-places-mobileview"><a href="//hu.m.wikipedia.org/w/index.php?title=C_(programoz%C3%A1si_nyelv)&mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobil nézet</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/w/resources/assets/poweredby_mediawiki.svg" alt="Powered by MediaWiki" width="88" height="31" loading="lazy"></a></li> </ul> </footer> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-6df7948d6c-bxbp8","wgBackendResponseTime":248,"wgPageParseReport":{"limitreport":{"cputime":"0.461","walltime":"3.771","ppvisitednodes":{"value":3029,"limit":1000000},"postexpandincludesize":{"value":32815,"limit":2097152},"templateargumentsize":{"value":9406,"limit":2097152},"expansiondepth":{"value":12,"limit":100},"expensivefunctioncount":{"value":39,"limit":500},"unstrip-depth":{"value":0,"limit":20},"unstrip-size":{"value":60051,"limit":5000000},"entityaccesscount":{"value":1,"limit":400},"timingprofile":["100.00% 3383.318 1 -total"," 3.58% 121.020 1 Sablon:Programozási_nyelv_infobox"," 2.57% 87.108 1 Sablon:Főbb_programozási_nyelvek"," 2.47% 83.486 1 Sablon:Navbox"," 1.96% 66.313 1 Sablon:Jegyzetek"," 1.89% 64.107 2 Sablon:References"," 1.68% 56.859 10 Sablon:Wikidata"," 1.32% 44.743 14 Sablon:Infobox/Általános"," 0.97% 32.745 1 Sablon:Nemzetközi_katalógusok"," 0.93% 31.346 4 Sablon:Cite_web"]},"scribunto":{"limitreport-timeusage":{"value":"0.134","limit":"10.000"},"limitreport-memusage":{"value":1880676,"limit":52428800}},"cachereport":{"origin":"mw-web.eqiad.main-75c465f4c6-fh9jj","timestamp":"20241125122243","ttl":2592000,"transientcontent":false}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"C (programoz\u00e1si nyelv)","url":"https:\/\/hu.wikipedia.org\/wiki\/C_(programoz%C3%A1si_nyelv)","sameAs":"http:\/\/www.wikidata.org\/entity\/Q15777","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q15777","author":{"@type":"Organization","name":"Contributors to Wikimedia projects"},"publisher":{"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2004-01-05T21:26:24Z","image":"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/3\/35\/The_C_Programming_Language_logo.svg","headline":"programoz\u00e1si nyelv"}</script> </body> </html>