Domov Technika c jazyk

c jazyk



Introduction

Clanguageisaprocess-orientedcomputerprogramminglanguage,whichisdifferentfromobject-orientedprogramminglanguages​​suchasC++,C#,andJava.ThedesigngoalofClanguageistoprovideaprogramminglanguagethatcancompileandprocesslow-levelmemoryinasimplemanner,generateonlyasmallamountofmachinecode,andrunwithoutanyoperatingenvironmentsupport.Clanguagedescribesproblemsfasterthanassemblylanguage,withlessworkload,betterreadability,easytodebug,modifyandtransplant,andthecodequalityisequivalenttoassemblylanguage.Clanguageisgenerallyonly10%-20%lessefficientthanthetargetprogramgeneratedbyassemblylanguagecode.Therefore,Clanguagecanwritesystemsoftware.

Atthecurrentstage,inthefieldofprogramming,Clanguageisusedverymuch.Ittakesintoaccounttheadvantagesofhigh-levellanguageandassemblylanguage,andhasgreateradvantagescomparedtootherprogramminglanguages.ComputersystemdesignandapplicationprogrammingaretwomajorareasofClanguageapplication.Atthesametime,theClanguageismoreuniversalandcanbeappliedinmanycomputeroperatingsystems,anditsefficiencyissignificant.

TheClanguagehasacompletetheoreticalsystemthathasgonethroughalonghistoryofdevelopment,andhasapivotalpositioninprogramminglanguages.

DevelopmentHistory

TheClanguagewasborninBellLabsintheUnitedStates.ItwasdesignedbyDennisMacAlistairRitchiebasedontheBlanguagedesignedbyKennethLaneThompson.Thefoundationdeveloped.Afteritsmaindesignwascompleted,ThompsonandRichusedittocompletelyrewriteUNIX.WiththedevelopmentofUNIX,theclanguagehasalsobeencontinuouslyimproved.InordertofacilitatetheoverallpromotionoftheClanguage,manyexperts,scholarsandhardwaremanufacturersjointlyformedtheCLanguageStandardsCommittee,andin1989,thefirstcompleteCstandardwasborn,referredtoas"C89",thatis,"ANSIC"Asof2020,thelatestClanguagestandardis"C18"releasedinJune2018.

TheClanguageisnamedCbecausetheClanguageisderivedfromtheBlanguageinventedbyKenThompson,andtheBlanguageisderivedfromtheBCPLlanguage.

In1967,MartinRichardsofCambridgeUniversitysimplifiedtheCPLlanguage,whichresultedintheBCPL(BasicCombinedProgrammingLanguage)language.

Inthe1960s,KennethLaneThompson(KennethLaneThompson),aresearcheratAT&TBellLaboratoriesintheUnitedStates,hadnothingtodowithhishands.Hewantedtoplaywithhim.Myownvideogamethatsimulatessailinginthesolarsystem-SpaceTravel.Withhisbossonhisback,hefoundanidlesmallcomputer-PDP-7.Butthiscomputerdoesnothaveanoperatingsystem,andthegamemustusesomeofthefunctionsoftheoperatingsystem,sohesetaboutdevelopinganoperatingsystemforthePDP-7.Later,thisoperatingsystemwasnamed-UNICS(UniplexedInformationandComputingService).

In1969,KenThompsonofBellLaboratories,USA,basedontheBCPLlanguage,designedaverysimpleandclosetothehardwareBlanguage(takethefirstletterofBCPL),andwrotethefirstversioninBlanguageTheUNIXoperatingsystem(calledUNICS).

In1971,DennisRich,whoalsolovesSpaceTravel,joinedThompson'sdevelopmentprojecttodevelopUNIXinordertoplaythegameearlier.HismainjobistotransformtheBlanguagetomakeitmoremature.

In1972,DennisRichofBellLabsintheUnitedStatesfinallydesignedanewlanguagebasedontheBlanguage.HetookthesecondletterofBCPLasthenameofthelanguage,ThisistheClanguage.

Inearly1973,themainbodyoftheClanguagewascompleted.ThompsonandRichcouldn'twaittouseittocompletelyrewriteUNIX.Atthistime,thejoyofprogrammingmadethemcompletelyforgetthe"SpaceTravel"anddevotedthemselvestothedevelopmentofUNIXandClanguage.WiththedevelopmentofUNIX,theClanguageitselfisconstantlyimproving.Until2020,variousversionsoftheUNIXkernelandperipheraltoolsstillusetheClanguageasthemaindevelopmentlanguage,andtherearemanycodesinheritedfromthehandsofThompsonandRich.

Duringdevelopment,theyarealsoconsideringportingUNIXtoothertypesofcomputers.ThestrongportabilityoftheClanguageappearshere.Machinelanguageandassemblylanguagearenotportable.Programsdevelopedforx86cannotrunonAlpha,SPARC,ARMandothermachines.TheClanguageprogramcanbeusedonprocessorsofanyarchitecture,aslongastheprocessorofthatarchitecturehasacorrespondingClanguagecompilerandlibrary,andthentheCsourcecodeiscompiledandlinkedintoatargetbinaryfile.Thearchitectureoftheprocessorruns.

In1977,DennisRichpublishedtheClanguagecompiledtext"PortableCLanguageCompiler"thatdoesnotdependonspecificmachinesystems.

Jazyk se nadále vyvíjí. V roce 1982 se mnoho lidí s přehledem a Americký institut národních norem (ANSI) rozhodlo zavést výbor CSnorem za účelem vytvoření jazykového standardu, aby byl software pro ovládání jazyků zdravý, aby byl software pro ovládání jazyků zdravý. ers,softwaroví designéři,konzultanti,akademici,autoři jazykůaaplikačníprogramátoři.V roce 1989 ANSI publikovala první úplnou jazykovou normu-ANSIX3.159-1989,označovanou jako "C89",ale lidé jsou v mezinárodní organizaci zvyklí na 9(ANSIC10.C)změnu. .Oficiální název daný ISO je:ISO/IEC9899,​​soISO/IEC9899:1990 je dále označován jako "C90". 011,ISO oficiálně vydán nový standard s názvem ISO/IEC9899:2011 nebo "C11" krátce.

Languagefeatures

Mainfeatures

Clanguageisastructuredlanguagewithclearlevelsandcanbeprogrammedinamodulemanner.Itisveryconducivetothedebuggingoftheprogram,andtheprocessingandperformancecapabilitiesoftheClanguageareverypowerful.Relyingonaverycomprehensiveoperatorandavarietyofdatatypes,theconstructionofvariousdatastructurescanbeeasilycompleted,andthememorycanbedirectlyaccessedthroughthepointertype.Addressinganddirectmanipulationofhardware,soitcanbeusedtodevelopsystemprogramsaswellasapplicationsoftware.ThroughtheresearchandanalysisoftheClanguage,themainfeaturesaresummarizedasfollows:

(1)Výstižný jazyk

Clanguagecontainsonly9kindsofcontrolstatements,keywordsThereareonly32.Theprogrammingrequirementsarenotstrictandmainlyinlowercaseletters,andmanyunnecessarypartshavebeenstreamlined.Infact,thesentencecompositionislessrelatedtothehardware,andtheClanguageitselfdoesnotprovidehardware-relatedinputandoutput,filemanagementandotherfunctions.Ifsuchfunctionsareneeded,theyneedtobeprogrammedwithvariouslibrariessupportedbythecompilationsystem.,Sotheclanguagehasaveryconcisecompilationsystem.

(2)Strukturované kontrolní příkazy

Clanguageisastructuredlanguage,andthecontrolstatementsprovidedhavestructuredfeatures,suchasforstatements,if...Elsestatementandswitchstatement,etc.Itcanbeusedtorealizethelogiccontrolofthefunctionandfacilitatetheprocess-orientedprogramming.

(3)Richdatatypes

Clanguagecontainsawiderangeofdatatypes,includingnotonlytraditionalcharacter,integer,floating-point,arraytypesandotherdatatypes,Italsohasdatatypesthatotherprogramminglanguages​​donothave.Thepointertypedataisthemostflexibletouse,andvariousdatastructurescanbecalculatedthroughprogramming.

(4) Richoperátoři

TheClanguagecontains34operators.Ittreatsassignments,parentheses,etc.asoperatorstooperate,makingtheexpressiontypeoftheCprogramAndoperatortypesareveryrich.

(5) S fyzickou adresou lze přímo manipulovat

TheClanguageallowsdirectreadingandwritingofthehardwarememoryaddress,whichcanrealizethemainfunctionsofassemblylanguageandcanbedirectlymanipulatedhardware.Clanguagenotonlyhasthegoodcharacteristicsofhigh-levellanguages,butalsocontainsmanyadvantagesoflow-levellanguages,soithasawiderangeofapplicationsinthefieldofsystemsoftwareprogramming.

(6) Kód má dobrou přenositelnost

Clanguageisaprocess-orientedprogramminglanguage,usersonlyneedtopayattentiontotheproblemtobesolved,withouthavingtospendtoomuchtimeMoreenergytounderstandtherelevanthardware,andfordifferenthardwareenvironments,thecodeisbasicallythesamewhenusingtheClanguagetoachievethesamefunction,andthetransplantationcanbecompletedwithoutoronlyafewchanges,whichmeansthatforacomputerThewrittenCprogramcanbeeasilyrunonanothercomputer,whichgreatlyreducestheworkintensityofprogramtransplantation.

(7)Programy, které mohou generovat vysoce kvalitní a vysoce účinné provádění cílového kódu

Comparedwithotherhigh-levellanguages,Clanguagecangeneratehigh-qualityandhigh-efficiencytargetcodes,soItisusuallyusedtowriteembeddedsystemprogramsthatrequirehighcodequalityandexecutionefficiency.

Uniquefeatures

Clanguageisthemostuniversallyapplicablecomputerprogrameditinglanguage.Itcannotonlyexertthefunctionsofhigh-levelprogramminglanguage,butalsohastheadvantagesofassemblylanguage.Therefore,ithasitsownuniquecharacteristicscomparedtootherprogramminglanguages.Itisembodiedinthefollowingthreeaspects:

First,extensiveness.ThesizeoftheoperationrangeoftheClanguagedirectlydeterminesitsprosandcons.Clanguagecontains34kindsofoperators,sothescopeofoperationisbeyondmanyotherlanguages,andtheexpressionoftheresultofitsoperationisalsoveryrich.Inaddition,theClanguagecontainsavarietyofdatastructureformssuchascharactertypeandpointertype,soitcanalsohandlelargerdatastructureoperations.

Second,simplicity.Ninetypesofcontrolstatementsand32keywordsarethebasicfeaturesoftheClanguage,whichmakesitwidelyapplicableincomputerapplicationprogramming.Itcannotonlyapplytotheoperationofthemajorityofprogrammers,improvetheirworkefficiency,butalsosupportAdvancedprogrammingavoidsthecumbersomelanguageswitching.

Thirdly,thestructureisperfect.Clanguageisastructuredlanguage.Itcanrealizemodularizedapplicationsintheformofmodularunits.Ithassignificantadvantagesinsystemdescription.Atthesametime,thisfeatureenablesittoadapttoavarietyofdifferentprogrammingrequirementsandexecuteefficient.

Nevýhody

1.NevýhodouJazyka jsou především slabé zapouzdření dat, což způsobuje, že Chave má velkou bezpečnost proti větru, což je také velký rozdíl mezi C++ a C++.

2.ThegrammaticalrestrictionofClanguageisnottoostrict,andthetyperestrictionofvariablesisnotstrict,whichaffectsthesafetyoftheprogram,anddoesnotcheckthearraysubscriptbeyondtheboundary.Fromtheapplicationpointofview,Clanguageismoredifficulttomasterthanotherhigh-levellanguages.Inotherwords,peoplewhouseClanguagearerequiredtobemoreproficientinprogramming.

Languagecomposition

Základní složení

Datový typ

Datový typ zahrnuje: celé číslo (krátké, vnitřní, dlouhé, dlouhé dlouhé), typ znaku (znak), skutečný typ nebo typ plovoucí čárky (s jednoduchou přesností a dvojitou přesností), typ výčtu (výčet), typ pole, typ struktury (struktura), sdílenýTyp těla (spojení), typ ukazatele a typ prázdnoty (void ).

Konstantyaproměnné

Thevalueofaconstantcannotbechanged,andthenameofasymbolicconstantisusuallycapitalized.

Avariableistheamountwhosevaluecanbechangedwithanidentifierasitsname.Anidentifierisasequenceofletters,numbersorunderscoresstartingwithaletterorunderscore.Pleasenotethatthefirstcharactermustbealetterorunderscore,otherwiseitisanillegalvariablename.Variablesareallocatedcorrespondingstorageunitsatcompiletime.

Pole

Ifavariablenameisfollowedbyabracketwithanumber,thedeclarationisanarraydeclaration.Stringisalsoanarray.TheyendwithASCIINULLastheendofthearray.Itisimportanttonotethattheindexvalueinthebracketsiscountedfrom0.

Ukazatel

Ifavariableisdeclaredwith*infrontofit,itmeansthatitisapointervariable.Inotherwords,thevariablestoresanaddress,and*(herespecificallyreferstotheunaryoperator*,thesamebelow.Thereisalsoabinaryoperator*intheClanguage)isacontentoperator,whichmeanstotakethismemoryaddressThecontentstoredin.PointerisoneofthemainfeaturesthatdistinguishesClanguagefromothercontemporaryhigh-levellanguages.

Pointerscanbenotonlytheaddressesofvariables,butalsotheaddressesofarrays,arrayelements,andfunctions.Usingpointersasformalparameterscangetmorethanonereturnvalueinthecallingprocessofthefunction,unlikereturn(z),whichcanonlygetonereturnvalue.

Pointersareadouble-edgedsword.Manyoperationscanbeexpressednaturallythroughpointers,butincorrectorexcessiveuseofpointerswillbringalotofpotentialerrorstotheprogram.

Řetězec

Clanguagestringsareactuallychararraysendingwith'\0'characters,andtheuseofcharactertypesdoesnotrequirereferencetothelibrary,ButtheuseofstringsrequiressomefunctionsintheCstandardlibraryformanipulatingstrings.Theyaredifferentfromcharacterarrays.Tousethesefunctions,youneedtoquotetheheaderfile.

Vstup/výstup souboru

InClanguage,inputandoutputareimplementedthroughasetoffunctionsinthestandardlibrary.InANSIC,thesefunctionsaredefinedintheheaderfile;.

Standardní vstup/výstup

Existují tři standardní vstupy/výstupy, které jsou předdefinovány standardní I/Knihovnou:

Stdinstandardinput

Stdoutstandardní výstup

stderrinputandoutputerror

Výpočet

TheoperationofClanguageisveryflexible,thefunctionisveryrich,andtheoperationtypeFarmorethanotherprogramminglanguages.Intermsofexpressions,itismoreconcisethanotherprogramminglanguages.Forexample,addition,subtraction,commaoperationsandtrinocularoperationsmakeexpressionseasier,butbeginnersoftenfindsuchexpressionsdifficulttoread.ThekeyreasonisthatTheoperatorsandtheorderofoperationsarenotfullyunderstood.Whenmultipledifferentoperationsformanoperationexpression,thatis,whenmultipleoperatorsappearinanexpression,theorderofprecedenceandcombinationrulesofoperationswillbecomeveryimportant.

Keywords

Keywordsarealsocalledreservedwords,whicharewordsthathavebeenusedbytheClanguageitselfandcannotbeusedforotherpurposes.Forexample,keywordscannotbeusedasidentifierssuchasvariablenamesandfunctionnames.

Klíčové slovo datového typu

krátké:Modifiedint,shortintegerdata,modifiedintlze vynechat.(Zavedeno v období K&R)

long:Modifiedint,longintegerdata,modifiedintlze vynechat.(Zavedeno v období K&R)

longlong:Modifiedint,superlongintegerdata,modifiedintlze vynechat.(NewtoC99standard)

signed:Modifiedintegerdata,signeddatatype.(NewtoC89standard)

unsigned: Upravená celočíselná data, nepodepsaný datový typ. (Zavedeno během období K&R)

omezit:Používá se k omezení a omezení ukazatele a označí, že ukazatel je inicialitou a pouze jedním přístupem k datovému objektuWay. (Nové ke standardu C99)

Klíčová slova komplexního typu

struct: prohlášení o struktuře. (Zavedeno během období K&R)

Unie: Prohlášení o unii. (Zavedeno během období K&R)

výčet: Deklarace výčtu. (NewtoC89standard)

typedef:Declaretypealias. (Představeno v období K&R)

velikost: Získejte velikost konkrétního typu nebo konkrétního typu proměnné. (Zavedeno během období K&R)

inline:Inlinefunkce se používají k nahrazení makrodefinic a budou rozšiřovány, kdekoli je voláno. (NewtoC99standard)

Klíčová slova na úrovni úložiště

auto:označeno jako automatické proměnné, automaticky přiřazené kompilátorem a uvolnění. Obvykle se přiděluje na zásobníku. Naopak. Když proměnná není specifikována, je ve výchozím nastavení automaticky. (Zavedeno v období K&R)

statický: Určete jako statickou proměnnou a přidělte ji do oblasti statických proměnných. Při úpravě funkce zadejte rozsah funkce, který má být v souboru. (Zavedeno během období K&R)

register:Specifyasaregistervariable,itisrecommendedthatthecompilerstorethevariableintheregisterforuse,ormodifythefunctionparameters,itisrecommendedthatthecompilerpassParametersarepassedinregistersinsteadofthestack.(IntroducedintheK&Rperiod)

extern:Specifythecorrespondingvariableasanexternalvariable,thatis,markthedefinitionofthevariableorfunctioninanotherfile,promptingthecompilertoencounterthisvariableLookfordefinitionsinothermoduleswhensumfunctions.(IntroducedduringtheK&Rperiod)

const:Zadaná proměnná nemůže být změněna aktuálním vláknem (ale může být změněna systémem nebo jinými vlákny). (Nové na standard C89)

volatile:Thevalueofthespecifiedvariablemaybechangedbythesystemorotherthreads,forcingthecompilertoobtainthevalueofthevariablefrommemoryeverytime.Preventthecompilerfromoptimizingthisvariableintoaregistervariable.(NewtoC89standard)

Klíčová slova řízení procesu

Skoková struktura

návrat: Používá se v tělefunkce k vrácení konkrétní hodnoty (pokud je typu void, hodnota funkce se nevrací). (Zavedeno během období K&R)

pokračovat: Ukončete aktuální cyklus a začněte další cyklus. (Zavedeno během období K&R)

break: Vyskočit z aktuální struktury spínačů smyčky. (Zavedeno během období K&R)

goto: Bezpodmínečné skokové prohlášení. (Zavedeno během období K&R)

Struktura pobočky

if:Podmíněné prohlášení,není za ním vkládat středník.(Zavedeno během období K&R)

jinak:Záporná větev podmíněného prohlášení (používá se ve spojení s if). (Zavedeno během období K&R)

switch:switchstatement(multiplebranch statement).(Zavedeno během období K&R)

případ: Značka pobočky v prohlášení o přepínači, která se používá ve spojení s přepínačem. (Zavedena během období K&R)

výchozí: "Ostatní" větev příkazu přepínače, volitelné. (Zavedeno během období K&R)

Gramatická struktura

Sekvenční struktura

Theprogramdesignofsequencestructureisthesimplest,aslongasJustwritethecorrespondingstatementsintheorderofsolvingtheproblem,andtheorderofexecutionisfromtoptobottom,inturn.

Například:a=3,b=5,nyní vyměňte hodnoty​​ofaandb.Tento problém je jako výměna vody ve dvou hrncích.Samozřejmě, že se použije třetí hrnek.Pokud je třetí Pokud je hrnek, pak je správný program:c=a;a=b;b=c,výsledek provedení 5,b=c Pokud změníte pořadí, napište:a=b;c=a;b=c;Pak se výsledkem provedení stane=b=c=5, které nemůže dosáhnout očekávaného účelu a začátečníci s největší pravděpodobností udělají takovou chybu. Strukturu sekvence lze použít nezávisle na vytvoření jednoduchého, sekvenčně-krokového programu. Například pro výpočet plochy kružnice, posloupnosti příkazů v programu je poloměr vstupní kružnice a výpočty=3,14159 *r*r, oblast výstupního kruhu. Ve většině případů se však sekvenční struktura používá jako součást programu a tvoří komplexní program spolu s dalšími strukturami, jako jsou složené příkazy v konstrukcích větví, těla smyček ve strukturách smyček a brzy.

Vyberte strukturu

Althoughtheprogramofthesequencestructurecansolvetheproblemsofcalculationandoutput,itcannotbejudgedandthenselected.Forproblemsthatneedtobejudgedfirstandthenselected,aselectionstructureshouldbeused.Theexecutionoftheselectionstructureisbasedoncertainconditionstoselecttheexecutionpath,ratherthanstrictlyinaccordancewiththephysicalorderofthestatements.Thekeytotheprogramdesignmethodofselectingthestructureistoconstructappropriatebranchconditionsandanalyzetheprogramflow,andselecttheappropriateselectionstatementaccordingtothedifferentprogramflow.Theselectedstructureissuitableforcalculationswithconditionaljudgmentssuchaslogicorrelationalcomparison.Whendesigningsuchprograms,itisoftennecessarytodrawtheprogramflowchartfirst,andthenwritethesourceprogramaccordingtotheprogramflow.Inthisway,theprogramdesignanalysisisseparatedfromthelanguage.Makestheproblemsimpleandeasytounderstand.Theprogramflowchartisbasedontheprogramexecutionflowchartdrawnbytheproblem-solvinganalysis.

Cyklická struktura

Thecyclicstructurecanreducetheworkloadofrepetitivewritingofthesourceprogram,andisusedtodescribetheproblemofrepeatedexecutionofacertainalgorithm.ThisisprogramdesignTheprogramstructurethatcangivefullplaytocomputerspecialtiesinClanguageprovidesfourkindsofloops,namelygotoloop,whileloop,dowhileloopandforloop.Thefourloopscanbeusedtodealwiththesameproblem.Undernormalcircumstances,theycanreplaceeachother.However,itisgenerallynotrecommendedtousegotoloops,becauseforciblychangingtheorderoftheprogramwilloftenbringunexpectederrorstotheoperationoftheprogram.

Specialattentionshouldbepaidtotheendingstatement(thatis,thechangeoftheloopvariablevalue)intheloopbody,otherwiseitmaybecomeanendlessloop,whichisacommonmistakeofbeginners.

Thesimilaritiesanddifferencesofthethreeloops:whenusingwhileanddowhileloops,theinitializationofloopvariablesshouldbebeforetheloopbody,andtheforloopisgenerallycarriedoutinstatement1;whileloopandforloopTheexpressionisjudgedfirst,andthentheloopbodyisexecuted.Thedowhileloopexecutestheloopbodyfirstandthenjudgestheexpression.Thatistosay,theloopbodyofdowhileisexecutedatleastonce,whilethewhileloopandformaynotbeexecutedonce..Alsonotethatthesethreetypesofloopscanallusethebreakstatementtojumpoutoftheloop,andusethecontinuestatementtoendtheloop.Theloopformedbythegotostatementandtheifcannotbecontrolledbythebreakandcontinuestatements.

Sequentialstructure,branchstructureandloopstructurearenotisolatedfromeachother.Therecanbebranchesandsequencestructuresinloops,andloopsandsequencestructuresinbranches.Infact,nomatterwhichstructure,itcanbegeneralizedThinkofthemasonesentence.Intheactualprogrammingprocess,thesethreestructuresareoftencombinedtoimplementvariousalgorithmsanddesigncorrespondingprograms.However,theprogrammingproblemsarerelativelylarge.Theprogramswrittenareoftenverylongandthestructureisrepeated,resultinginpoorreadabilityanddifficulty.UnderstandthatthewaytosolvethisproblemistodesigntheCprogramintoamodularstructure.

Konkrétní obsah:

Forloop

Struktura smyčky je nejvýraznější v jazyce.Příkaz smyčky je nejflexibilnější a nejpohodlnější k použití. Jeho obecný tvar je:pro(výraz1;výraz2;výraz3)příkaz smyčky.(Mezi nimi;nelze vynechat)

Expression1isaninitialvalueexpression,whichisusedtoassigninitialvalues​​totheloopvariablesbeforetheloopstarts.

Expression2isaloopcontrollogicexpression,whichcontrolstheconditionofloopexecutionanddeterminesthenumberofloops.

Expression3modifiestheexpressionfortheloopcontrolvariable,whichmakestheforlooptendtoend.

Theloopbodystatementisastatementthatisexecutedrepeatedlywhentheloopcontrolconditionissatisfied.

Butintheentireforloopprocess,expression1isonlycalculatedonce,expression2andexpression3maybecalculatedmultipletimes,ormaynotbecalculatedonce.Thebodyoftheloopmaybeexecutedmultipletimes,oritmaynotbeexecutedonce.

Nejprve spusťte výraz2, poté spusťte strukturu smyčky a nakonec výraz3 a pokračujte takto.

TheforloopstatementisthemostpowerfulstatementintheClanguage,anditcanevenreplaceotherloopstatementstoacertainextent.

dělat

struktura doloop,do1while(2);pořadí provedení je1->2->1...smyčka,2jepodmínka cyklu.

zatímco

při struktuře smyčky je pořadí provedení while(1)2;1->2->1...smyčka,1podmínka smyčky

Výše uvedený příkaz smyčky, když výraz podmínka smyčky pohasne, smyčka bude pokračovat a pokud bude nepravdivá, vyskočí ze smyčky.

Function

Cprogramiscomposedofasetofvariablesorexternalobjectsoffunctions.Afunctionisaself-containedexecutioncodesegmentthatcompletescertainrelatedfunctions.Wecanthinkofafunctionasa"blackbox",youcangettheresultaslongasyousendthedatain,andtheexternalprogramdoesn'tknowhowthefunctionworksinside.Whattheexternalprogramknowsislimitedtowhatisinputtothefunctionandwhatthefunctionoutputs.Functionsprovideameansofprogrammingtomakeiteasytoread,write,understand,eliminateerrors,modify,andmaintain.

ThenumberoffunctionsinaCprogramisactuallyunlimited.Ifthereisanyrestriction,thatis,theremustbeatleastonefunctioninaCprogram,andtheremustbeoneandonlyoneofthemThefunctionnamedmain,thisfunctioniscalledthemainfunction,andtheentireprogramisexecutedfromthismainfunction.

Clanguageprogramsencourageandencouragepeopletodivideabigproblemintosub-problems,whichcorrespondstosolvingasub-problemandcompileafunction.Therefore,ClanguageprogramsgenerallyconsistofalargenumberofsmallfunctionsratherthanafewLargefunctionsconstitutetheso-called"smallfunctionsconstitutealargeprogram."Theadvantageofthisisthateachpartisfullyindependentofeachotherandthetaskissingle.Therefore,thesesufficientlyindependentsmallmodulescanalsobeusedasasmall"component"withafixedspecificationtoformanewlargeprogram.

ForsomanyyearsinthedevelopmentofClanguage,thereareavastarrayofsystemsandprogramsdevelopedinClanguage.Alotoflibraryfunctionsthatcanbeuseddirectlyhavebeenaccumulatedwhiledeveloping.

ANSIC poskytuje standardní funkce knihovny jazyků.

TurboC2.0,whichispreferredbyClanguagebeginners,providesmorethan400runtimefunctions,eachofwhichperformsaspecificfunction,whichuserscancallatwill.Thesefunctionsaregenerallydividedintoinputandoutputfunctions,mathematicalfunctions,stringandmemoryfunctions,functionsrelatedtoBIOSandDOS,characterscreenandgraphicsfunctionfunctions,processcontrolfunctions,directoryfunctions,etc.

TheWindowsSDKprovidedbytheWindowssystemcontainsthousandsoffunctionsrelatedtoWindowsapplicationdevelopment.Otheroperatingsystems,suchasLinux,alsoprovidealargenumberoffunctionsforapplicationdeveloperstocall.

Asaprogrammer,youshouldtrytobefamiliarwiththefunctionsofthetargetplatformlibraryfunctions.Inthisway,youcandevelopapplicationsforaspecificplatformwithease.Forexample,asaWindowsapplicationdeveloper,youshouldbeasfamiliarwiththeWindowsSDKaspossible;asaLinuxapplicationdeveloper,youshouldbeasfamiliarwithLinuxsystemcallsandPOSIXfunctionspecificationsaspossible.

Operationsymbol

Whatismorespecialisthatthebitshiftright(>>)operatorcanbearithmetic(complementthemostsignificantbitontheleftend)orlogic(complement0ontheleftend)Displacement.Forexample,if11100011isshiftedtotherightby3bits,thearithmeticshifttotherightbecomes11111100,andthelogicalshifttotherightbecomes00011100.Sincetherightshiftofarithmeticbitsismoresuitableforprocessingnegativeintegers,almostallcompilersshiftrightarithmeticbits.

Přednost operátorů z výše uvedeného je zhruba: unární operátory, aritmetické operátory, relační operátory, logické operátory, podmíněné operátory, operátory přiřazení (=) a čárkové operátory.

Vývoj programování

Kompilátor

GCC, open source a bezplatný kompilátor vyvinutý organizací GNU

MinGW, pod operačním systémem Windows GCC

Clang,překladač založený na protokolu LLVM s otevřeným zdrojovým kódem BD

VisualC++::cl.exe,kompilátor, který je součástí MicrosoftVC++

integrationDevelopmentenvironment

Code::Blocks,opensourceandfreeC/C++IDE

CodeLite, opensource, multiplatformní C/C++ integrované vývojové prostředí

Dev-C++,portableC/C++IDE

C-Free

LightTable

VisualStudioseries

Ukázkový program

Následující je jednoduchý program, který vytiskne řetězec "Ahoj, světe!" na standardním výstupním zařízení (stdout). Podobný program se obvykle používá jako první program, když se učíte programovací jazyk:

#includeintmain(){printf("Dobrý den, světe!\n");return0;}
  1. První řádek programu#include je preprocesor nebo direktiva, která říká kompilátoru, aby zahrnul nejlepší dio.hsoubor před skutečnou kompilací.jazyk c

  2. Další řádekintmain()je hlavní funkce a program se spouští odtud.

  3. Další řádek printf(...)je další funkce dostupná v C, která zobrazí na obrazovce zprávu „Ahoj, světe!“.

  4. Thenextlinereturn0;Ukončete hlavní()funkci a vraťte hodnotu0.

#includeintmain{voidmove(int*xa,int*xb);inta,b;printf("Pleaseentertwonumbersa,b:");scanf("%d,%d",& ;a,&b);move(&a,&b);printf("a=%d,b=%d\n",a,b);return0;}voidmove(int*xa,int *xb){inta;a=*xa;*xa=*xb;*xb=a;}

1.Třetí řádek je deklarace funkce, která deklaruje funkci bez vratné hodnoty se dvěma parametry ukazatele. Vzhledem k tomu, že definice funkce je pod volací funkcí, musí být deklarována.

2.Čtvrtý řádek je definice proměnných, které definují dvě celočíselné proměnné.

3.Na šestém řádku zadejte dvě čísla, která musí být zadána s čárkou 1,0. Do proměnných vložte dvě čísla ab."&"istheaddressoperator.

4. Sedmý řádek zavolá funkci pohybu pro převod hodnot​​dvou proměnných.

5.Po hlavní funkci následuje definice funkce pohybu.

Ascanbeseenfromthisexample,pointervariablescangetmorereturnvalues,whichisveryconvenient.

Tento článek je ze sítě, nereprezentuje pozici této stanice. Uveďte prosím původ dotisku
HORNÍ