C (programmeertaal): Verskil tussen weergawes

in Wikipedia, die vrye ensiklopedie
Content deleted Content added
Oorsig van C bygevoeg. Kort woord vir Enumerated. Verskeie bladsye ontbreek. (String, Skikking, struct, enum, ens)
Operatore bygevoeg. Moet van die terme nog verder naslaan. Baie beperkte informasie beskikbaar so ek sal by die rekenaarwetenskapfakulteit gaan hoor.
Lyn 86: Lyn 86:
{{col-end}}
{{col-end}}
Soos gesien kan word uit die "Hello World" voorbeeld , is die funksie printf nie 'n sleutelwoord nie terwyl return is. Dit is omdat printf in 'n verkseidenheid manier vir verskillende platforme gedefineerd kan word. In die voorbeeld is printf in stdio.h gedefineerd en sal dit 'n string op die relevante venster vertoon. Op byvoorbeeld 'n verwerkerbord kan printf gedefineerd word om data oor 'n konneksie te stuur. Die ander data punt is dan verantwoordelik om iets met die data te doen. Hierdie verskil van return, wat altyd in enige c program dieselfde sal doen (naamlik dit sal terug gaan na die roeperfunksie met die argument wat saam met dit gegee is.)
Soos gesien kan word uit die "Hello World" voorbeeld , is die funksie printf nie 'n sleutelwoord nie terwyl return is. Dit is omdat printf in 'n verkseidenheid manier vir verskillende platforme gedefineerd kan word. In die voorbeeld is printf in stdio.h gedefineerd en sal dit 'n string op die relevante venster vertoon. Op byvoorbeeld 'n verwerkerbord kan printf gedefineerd word om data oor 'n konneksie te stuur. Die ander data punt is dan verantwoordelik om iets met die data te doen. Hierdie verskil van return, wat altyd in enige c program dieselfde sal doen (naamlik dit sal terug gaan na die roeperfunksie met die argument wat saam met dit gegee is.)

=== Operators ===
* Toekenning: <code>=</code>
* Gelykheid : <code>==</code> , en ongelykheid: <code>!=</code>
* grootte van objekte:<code>sizeof</code>
* wiskundig: <code>+</code>, <code>-</code>, <code>*</code>, <code>/</code>, <code>%</code>
* aangepaste toekenning: <code>+=</code>, <code>-=</code>, <code>*=</code>, <code>/=</code>, <code>%=</code>, <code>&=</code>, <code>|=</code>, <code>^=</code>, <code><<=</code>, <code>>>=</code>
* boolse logika: <code>!</code>, <code>&&</code>, <code>||</code>
* tipe verandering: <code>''(nuwe tipe bv int)''</code>
* per-bis logika:<code>~</code>, <code>&</code>, <code>|</code>, <code>^</code>
* per-bis skyf: <code><<</code>, <code>>></code>
* voorwardelike evalueering: <code>? :</code>
* roep van funksies: <code>( )</code>
* inkrement en dekrement: <code>++</code>, <code>--</code>
* kies van lede: <code>.</code>, <code>-></code>
* verhouding van ordes: <code><</code>, <code><=</code>, <code>></code>, <code>>=</code>
* volgordes: <code>,</code>
* groepering van substellings: <code>( )</code>
* ''referencing and dereferencing:'' <code>&</code>, <code>*</code>, <code>[ ]</code>


== "Hello, world!" Voorbeeld ==
== "Hello, world!" Voorbeeld ==

Wysiging soos op 12:52, 19 Julie 2016

Logo van C

C is 'n hoëvlak programmeertaal ontwikkel deur Dennis Ritchie by Bell Labs in die vroeë 1970's. Dit is oorspronklik gebruik vir stelselprogrammering, maar het gou getoon dat dit kragtig en buigsaam genoeg is vir ontwikkeling van 'n verskeidenheid van programmatuur.

Die eerste intensiewe program ontwikkel in C is die Unix-bedryfstelsel. Dit word steeds grootliks geassosieer met hierdie bedryfstelsel.

Alhoewel dit 'n hoëvlak programeertaal is, is dit baie soortgelyk aan laevlak programeertale.

Oorsig

In die C taal word alle uitvoerbare kode omskryf in afsonderlike subroetines bekend as "funksies"(hierdie moet nie verwar word met funksionele programmering nie). Funksie parameters word altyd deur gegee met hul waardes , aangesien verwysings nie werklik in C bestaa nie. Wanneer jy direk 'n veranderlike se waarde verander (meer bekend as werk met verwysings) , word dan eintlik indirek aan die veranderlike verander deur gebruik te maak van wysers.

'n Enkele stelling in C sal geëndig word met 'n kommapunt, terwyl krulhakies gebruik word om groepe van stellings te vorms.

Die C taal het ook die volgende eienskappe:

  • Daar is 'n klein, vaste hoeveelheid beskikbare sleutelwoorde.
  • Daar is 'n groot hoeveelheid beskikbare logiese en wiskundige operatore, soos +, +=, ++, &, ~, ens.
  • Meer as een waarde mag aan 'n veranderlike toegeken word in 'n enkele stelling (slegs die laas toegekende waarde word egter behou)
  • Die waarde wat deur funksies terug gestuur word kan geïgroneer word indien nodig.
  • Alle datatypes het 'n swak vaste tipe - in ander woorde dit kan maklik omgestel word in 'n ander type (byvoorbeeld om die char 8 as die int 8 te gebruik).
  • Die verklarings sintaks stem oorreen met die gebruik van die taal. Daar is byvoorbeeld nie 'n defineer sleutelwoord om aan te dui jy defineer 'n nuwe veranderlike nie, eerder word die veranderlike se tipe gebruik om aan te dui dat 'n nuwe veranderlike gedefineer word (byvoorbeeld nie define num as int; nie maar slegs int num;) Daar is ook nie 'n sleutelwoord vir 'n funksie nie, in plaas daarvan word 'n funksie uitgeken deur rondehakies wat die argument lys omsluit.
  • Deur gebruik te maak van die typedef sleutelwoord kan saamgestelde datatipes opgestel word ; daar is ook ander gedefineerde samegestelde tipes
    • Verwante data element kan met die struct sleutelwoord as 'n eenheid behandel word
    • Skikkings kan gebruik word om verskeie van 'n enkele data tipe te verklaar. Dit werk as 'n effektiewe groep van data wat sekwensieel in geheue gestoor word. Die soek van 'n spesifieke elemenet kan dis met wyser operasies uitgevoer word. Daar is geen skikking sleutelwoord nie, eerder word blokhakkies na die veranderlike aangedui om die skikking te defineer (byvoorbeeld int maande[12] defineer 12 int's, wat almal gevind kan word deur gebruik te maak van die maande veranderlike naam.)
    • Enumerated tipes is ook moontlik met die enum sleutelwoord. Dit stel sekere terme direk gelyk aan spesifieke waardes.
    • Strings word nie as 'n afsonderlike datatipe behandel nie, maar eerder as 'n skikking van karakters met "\0" aan die einde.
  • Laevlak toegang tot geheue is moontlik deur masjienaddresse na wysers toe om te skakel.
  • Prosedures (funksies wat nie waardes terugvoer nie), is 'n spesiale tipe funksie wat die tipe void gegee word.
  • Funksies moet afsonderlik van mekaar gedefineer word
  • Verskeie tipe komplekse funksies, soos nodig vir intree, uittree, string-manipulasie en ingewikkelde wiskundige operasies word gewoonlik gedefineer in spesiale biblioteke.

Ontwerp

C is 'n prosedure gedrewe taal. Die ontwerp is so opgestel om baie direkte omskakeling vanaf kode tot mikroverwerker instruksies te doen, om minimale hardloop ondersteuning te kort vanaf die sisteem en laevlak toegang tot geheue te verseker. C is dus ideal om programe oor te skryf wat in samestellertaal geskryf is.

C is opgestel om redelik eenvoudig op verkillende platforme gebruik te kan word.'n C program wat die standarde van die taal volg behoort op 'n verskeidenheid platforme te kan hardloop met minimale veranderinge aan die bronkode.

Sintaks

Karakters

Die basiese C opstelling herken die volgende karakters:

  • Hoofletters en kleinletters :az AZ
  • Desimale syfers: 09
  • Grafiese karakters ! " # % & ' ( ) * + , - . / : ; < = > ? [ \ ] ^ _ { | } ~
  • Whitespace karakters

Sleutelwoorde

C het 32 standaard sleutelwoorde. Hierdie verwys na spesifieke programmerings instruksies wat vir geen ander doel as dit waarvoor hulle gedefineerd is gebruik kan word nie.

auto
break
case
char
const
continue
default
do

double
else
enum
extern
float
for
goto
if

int
long
register
return
short
signed
sizeof
static

struct
switch
typedef
union
unsigned
void
volatile
while

Soos gesien kan word uit die "Hello World" voorbeeld , is die funksie printf nie 'n sleutelwoord nie terwyl return is. Dit is omdat printf in 'n verkseidenheid manier vir verskillende platforme gedefineerd kan word. In die voorbeeld is printf in stdio.h gedefineerd en sal dit 'n string op die relevante venster vertoon. Op byvoorbeeld 'n verwerkerbord kan printf gedefineerd word om data oor 'n konneksie te stuur. Die ander data punt is dan verantwoordelik om iets met die data te doen. Hierdie verskil van return, wat altyd in enige c program dieselfde sal doen (naamlik dit sal terug gaan na die roeperfunksie met die argument wat saam met dit gegee is.)

Operators

  • Toekenning: =
  • Gelykheid : == , en ongelykheid: !=
  • grootte van objekte:sizeof
  • wiskundig: +, -, *, /, %
  • aangepaste toekenning: +=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>=
  • boolse logika: !, &&, ||
  • tipe verandering: (nuwe tipe bv int)
  • per-bis logika:~, &, |, ^
  • per-bis skyf: <<, >>
  • voorwardelike evalueering: ? :
  • roep van funksies: ( )
  • inkrement en dekrement: ++, --
  • kies van lede: ., ->
  • verhouding van ordes: <, <=, >, >=
  • volgordes: ,
  • groepering van substellings: ( )
  • referencing and dereferencing: &, *, [ ]

"Hello, world!" Voorbeeld

Die volgende C kode is 'n eenvoudige program wat bloot die string "Hello, world!" druk op die skerm:

#include <stdio.h>

int main() {
    printf("Hello, world!\n");

    return 0;

}
#include <stdio.h>

Hierdie lyn veroorsaak die voorverwerker ('n program wat die kode verwerk voordat dit vertaal word) om die inhoud van die stdio.h lêer in die plek van hierdie lyn in te voeg. stdio.h vorm deel van die standaard C biblioteek, en bevat definisies vir verskeie funksies om I/O te behandel, soos printf.

int main() {

Die volgende lyn verklaar die main funksie. In C programme dien die main funksie as beginpunt vir die program deurdat dit die eerste funksie is wat geroep word deur die bedryfstelsel wanneer die program uitgevoer word. Die int spesifiseer dat die funksie 'n heelgetal waarde as afvoer lewer. Die hakies aan die einde van main spesifiseer dat die funksie geen argumente neem nie; dit kan ook as (void) geskryf word. Die krulhakies dui die bestek van die funksie aan.

    printf("Hello, world!\n");

Hierdie lyn roep die printf funksie met een argument (die string "Hello, world!\n") om die boodskap te vertoon op die skerm. Die funksie se implementasie word bevat in 'n sogenoemde biblioteek wat bekend staan as die standaard C biblioteek, wat 'n groot hoeveelheid nuttige funksies bevat.

    return 0;

}

Omdat main verklaar is met 'n int afvoer, moet die funksie spesifiseer watter waarde terug gestuur gaan word na die funksie/omgewing wat dit geroep het. In hierdie geval word 'n 0 terug gestuur. In UNIX stelsels is die konvensie dat 'n afvoer van 0 van die program (in hierdie geval, vanaf die main funksie) beteken dat die program suksesvol uitgevoer het, terwyl enige ander waarde 'n fout aandui.