Home Tekniikka c kieli

c kieli



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.

Kieli kehittyy jatkuvasti.Vuonna 1982 monet ihmiset näkevät jaAmerican National StandardsInstitute (ANSI) päätti perustaa CstandardsCommitteeClanguagestandardin perustamiseksi. valmistajat,ohjelmistosuunnittelijat,konsultit,tutkijat,kielikirjoittajat ja sovellusohjelmoijat.Vuonna 1989 ANSI julkaisi ensimmäisen täydellisenClanguagestandard-ANSIX3.159-1989,johon viitattiin "C89",mutta ihmiset ovat todellakin tottuneet 9-tottuneeseenlaskutukseen (ISO) muuttumaton vuonna 1990 .ISO:n antama virallinen nimi:ISO/IEC9899,​soISO/IEC9899:1990pehmennetään nimellä"C90".Vuonna 1999,joidenkin välttämättömien muutosten ja parannuksien jälkeen,ISOjulkaisiuusiClanguage-standardi99:lle 8. joulukuuta 2011 ISO julkaisi virallisesti uuden standardin nimeltä ISO/IEC9899:2011 tai "C11" lyhyesti.

Languagefeatures

Mainfeatures

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

(1) Lyhytkieli

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

(2)Strukturoidut ohjauslausekkeet

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

(3)Richdatatypes

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

(4)Richoperators

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

(5)Fyysistä osoitetta voidaan muokata suoraan

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

(6)Koodilla on hyvä siirrettävyys

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

(7)Ohjelmat, jotka voivat tuottaa korkealaatuista ja tehokasta kohdekoodin suoritusta

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.

Haitat

1.Kielen haitat ovat pääasiassa heikko tietokapselointi, mikä tekee tuulen tietoturvasta suuren virheen, joka on myösCandC++Yksi suuri ero.

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

Languagecomposition

Peruskoostumus

Tietotyyppi

Sisältyvien tietotyyppi: kokonaisluku(lyhyt,int,pitkä,pitkä),merkkityyppi(merkki),reaalityyppi tai liukulukutyyppi(yksitarkkuuskellukeja tuplatarkkuuskaksois), enumaatiotyyppi(enum), taulukkotyyppi, rakennetyyppi(rakenne), jaettuBodytype(union), tyyppi(void) ).

Vakiot ja muuttujat

Thevalueofaconstantcannotbechanged,andthenameofasymbolicconstantisusuallycapitalized.

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

Matriisi

Ifavariablenameisfollowedbyabracketwithanumber,thedeclarationisanarraydeclaration.Stringisalsoanarray.TheyendwithASCIINULLastheendofthearray.Itisimportanttonotethattheindexvalueinthebracketsiscountedfrom0.

Osoitin

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.

Merkkijono

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

Tiedoston syöttö/tulostus

InClanguage,inputandoutputareimplementedthroughasetoffunctionsinthestandardlibrary.InANSIC,thesefunctionsaredefinedintheheaderfile;.

Vakiotulo/lähtö

On olemassa kolme standardituloa/lähtöä, jotka standardiI/olibrary määrittää ennalta:

stdinstandardin tulo

stdoutstandardoutput

stderrinputandoutputerror

Laskenta

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

Keywords

Keywordsarealsocalledreservedwords,whicharewordsthathavebeenusedbytheClanguageitselfandcannotbeusedforotherpurposes.Forexample,keywordscannotbeusedasidentifierssuchasvariablenamesandfunctionnames.

Datatypekeyword

lyhyt:Modifiedint,lyhyet lukutiedot,muokattuina voidaan jättää pois.(K&R-jaksossa)

pitkä:Modifiedint,longintegerdata,modifiedinvoidaan jättää pois.(K&R-jaksolla)

pitkäpitkä:Modifiedint,superlongintegerdata,modifiedint voidaan jättää pois.(NewtoC99standardi)

allekirjoitettu:Modifiedintegerdata,signeddatatype.(NewtoC89standard)

allekirjoittamaton:Modifiedintegerdata,unsigneddatatype.(Otettu käyttöön K&R-kauden aikana)

rajoitus:Käytetään osoittimen rajoittamiseen ja rajoittamiseen ja osoittaa, että osoitin onalkuperäinen ja vainyksipääsytietoobjektitie.(NewtoC99-standardi)

Monimutkaiset avainsanat

struct:structuredeclaration.(K&R-kauden aikana)

liitto: Liittolausunto.(Otettu käyttöön K&kauden aikana)

enum:Enumerationdeclaration.(NewtoC89standardi)

typedef:Ilmoita tyyppialias.(K&R-jaksossa)

koko:Hae tietyn tyypin tai muuttujan tietyn tyypin koko.(K&R-kauden aikana)

inline:Sisäisiä toimintoja käytetään makromääritelmien korvaamiseen ja niitä laajennetaan aina, kun niitä kutsutaan. (NewtoC99-standardi)

Tallennustason avainsanat

automaattinen:määritetty automaattisiksi muuttujiksi, kääntäjän automaattisesti määrittämäAndrelease.Tavallisesti varattu pinoon. Vastakohtaisesti staattinen. Kun muuttujaa ei ole määritetty, se on oletusarvoisesti automaattinen.(K&periodissa)

staattinen:Määritä staattinen muuttuja ja kohdista se staattiselle muuttujaalueelle. Kun muokkaat toimintoa, määritä funktiot, jotka ovat tiedoston sisällä.(K&R-jakson aikana)

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

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

const:Määritettyä muuttujaa ei voi muuttaa nykyisellä säikeellä (mutta järjestelmä tai muut säikeet voivat muuttaa sitä).(Uusi C89-standardiin)

volatile:Thevalueofthespecifiedvariablemaybechangedbythesystemorotherthreads,forcingthecompilertoobtainthevalueofthevariablefrommemoryeverytime.Preventthecompilerfromoptimizingthisvariableintoaregistervariable.(NewtoC89standard)

Prosessinhallinnan avainsanat

Jumpstructure

palautus:Käytetään toiminnon rungossa tietyn arvon palauttamiseksi (jos on tyhjätyyppi, funktion arvoa ei palauteta).

Jatka: Lopeta nykyinen sykli ja aloitaseuraava. (Esitetty K&R-kauden aikana)

katko: hyppää pois nykyisestä silmukasta.

goto:Unconditional Jumpstatement.(K&R-kauden aikana)

Haararakenne

jos:Ehdollinen lauseke,ei noneedtoputasemicolonafterit.(Otettu käyttöön K&periodin aikana)

muuta:Negatiivinen haaraehtolauseke(käytetään yhdessä jos kanssa).(K&R-kauden aikana)

kytkin:switchstatement(multiplebranchstatement).(Esitetty K&R-kauden aikana)

tapaus:Switch-lauseen haaramerkki, jota käytetään kytkimen kanssa.(K&R-kauden aikana)

oletus:"Muu"-haarakytkinlause, valinnainen.(K&R-kauden aikana)

Kielioppirakenne

Järjestörakenne

Theprogramdesignofsequencestructureisthesimplest,aslongasJustwritethecorrespondingstatementsintheorderofsolvingtheproblem,andtheorderofexecutionisfromtoptobottom,inturn.

Esimerkki:a=3,b=5,vaihda nyt a:n jab jos muutat järjestystä,kirjoita:a=b;c=a;b=c;Suorituksen tulokseksi tulee=b=c=5,joka ei voi saavuttaa odotettua tarkoitusta,ja aloittelijatodennäköisimmin tekee tämäntyyppisen virheen. sekvenssirakenne.Esimerkiksi laskea ympyrän pinta-ala,nämä ohjelman lauseiden sekvenssi on tuloympyrän säde ja laskelmat=3,14159 *r*r,ulostuloympyrän alueet. Useimmissa tapauksissa tätä sekvenssirakennetta käytetään kuitenkin osana ohjelmaa ja muodostaa monimutkaisen ohjelman yhdessä muiden rakenteiden kanssa, kuten yhdistelmälausekkeet haararakenteissa, silmukkarungot silmukkarakenteissa ja pian.

Valitserakenne

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

Pykälärakenne

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.

Tietty sisältö:

Forloop

Forsilmukan rakenne on erottuvin kielelläSilmukkalauseke onjoustavin ja kätevin käyttää. Sen yleinen muoto on:for(lauseke1;lauseke2;lauseke3)silmukkalauseke.(joista;ei voi jättää pois)

Expression1isaninitialvalueexpression,whichisusedtoassigninitialvalues​​totheloopvariablesbeforetheloopstarts.

Expression2isaloopcontrollogicexpression,whichcontrolstheconditionofloopexecutionanddeterminesthenumberofloops.

Expression3modifiestheexpressionfortheloopcontrolvariable,whichmakestheforlooptendtoend.

Theloopbodystatementisastatementthatisexecutedrepeatedlywhentheloopcontrolconditionissatisfied.

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

Suorita ensin lauseke2, suorita sitten silmukkarakenne ja lopuksi lauseke3, ja jatka silmukoita näin.

TheforloopstatementisthemostpowerfulstatementintheClanguage,anditcanevenreplaceotherloopstatementstoacertainextent.

tee

doloopstructure,do1while(2);executionorderis1->2->1...silmukka,2onthecyclecondition.

kun

whileloopstructure,suoritusjärjestyswhile(1)2;on1->2->1...silmukka,1isheloopehto

Ylempänä oleva lauseke, kun silmukkaehtoilmaisua,silmukka jatkuu ja jos se on väärä, se hyppää pois silmukasta.

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.

ANSICtarjoaa standardinmukaisia ​​kielikirjastotoimintoja.

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.

Alhaalta tulevien operaattorien etusija on karkeasti: yksioperaattorit, aritmeettiset operaattorit, relaatiooperaattorit, loogiset operaattorit, ehdolliset operaattorit, määritysoperaattorit(=)ja pilkkuoperaattorit.

Ohjelmointikehitys

Kääntäjä

GNU-organisaation kehittämä GCC,avoinlähde ja ilmainen kääntäjä

MinGW,Windows-käyttöjärjestelmän GCC

Clang, avoimen lähdekoodin BSD-protokollapohjainen LLVM-pohjainen kääntäjä

VisualC++::cl.exe, MicrosoftVC++:n mukana tuleva käännös

integraatiokehitysympäristö

Koodi::Blocks,avoin lähdekoodi ja ilmainen C/C++IDE

CodeLite,avoin lähdekoodi, cross-platform C/C++integroitu kehitysympäristö

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

C-vapaa

LightTable

VisualStudioseries

Esimerkkiohjelma

Seuraava on yksinkertainen ohjelma, joka tulostaa merkkijonon "Hei, maailma!" vakiotulostuslaitteessa (stdout). Samankaltaista ohjelmaa käytetään yleensä ensimmäisenä ohjelmana ohjelmointikieltä opetettaessa:

#includeintmain(){printf("Hello,World!\n");return0;}
  1. Ohjelman ensimmäinen rivi#includeispreprocessordirective, joka käskee kääntäjälle sisällyttäädio.h-tiedoston ennen varsinaista käännöstä.c-kieli

  2. Seuraava riviinmain()onpäätoiminto,jaohjelma suoritetaan täältä.

  3. SittenNextlineprintf(...)on toinen käytettävissä oleva toimintoC, joka näyttää näytöllä viestin "Hei, maailma!".

  4. Sittenreturn0;Lopetamain()functionandreturnthevalue0.

#includeintmain{voidmove(int*xa,int*xb);inta,b;printf("Pleasetwonumbersa,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.Kolmas rivi on funktion ilmoitus,joka ilmaisee toiminnon ilman palautusarvoa kahdella osoitinparametrilla. Koska funktion määritelmä on kutsutoiminnon alla, se on ilmoitettava.

2.Neljäs rivi onmuuttujien määritelmä, joka määrittelee kaksi kokonaislukumuuttujaa.

3.Syötäkaksi numeroa kuudennelle riville,joka on kirjoitettava pilkulla kuin1,0.Laita kaksi numeroa muuttujiksijab."&"istheaddressoperaattori.

4.Nämä seitsemäs rivi kutsuusiirtofunktionmuuntaakahden muuttujan arvot.

5.Päätoiminnon jälkeen onsiirtotoiminnon määritelmä.

Ascanbeseenfromthisexample,pointervariablescangetmorereturnvalues,whichisveryconvenient.

This article is from the network, does not represent the position of this station. Please indicate the origin of reprint
TOP