Introduction
Clanguageisaprocess-orientedcomputerprogramminglanguage,whichisdifferentfromobject-orientedprogramminglanguagessuchasC++,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,Italsohasdatatypesthatotherprogramminglanguagesdonothave.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 hodnotyofaandb.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,whichisusedtoassigninitialvaluestotheloopvariablesbeforetheloopstarts.
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;}
První řádek programu#include je preprocesor nebo direktiva, která říká kompilátoru, aby zahrnul nejlepší dio.hsoubor před skutečnou kompilací.
Další řádekintmain()je hlavní funkce a program se spouští odtud.
Další řádek printf(...)je další funkce dostupná v C, která zobrazí na obrazovce zprávu „Ahoj, světe!“.
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 hodnotdvou proměnných.
5.Po hlavní funkci následuje definice funkce pohybu.
Ascanbeseenfromthisexample,pointervariablescangetmorereturnvalues,whichisveryconvenient.