C/Program: Różnice pomiędzy wersjami

Z Wikibooks, biblioteki wolnych podręczników.
< C
Usunięta treść Dodana treść
literówki, formatowanie
Linia 1: Linia 1:
=Typy programów=
=Typy programów=
Typy programów wg liczby składników :
Typy programów wg liczby składników:
* [[C/Pierwszy_program|proste]] ( tylko 1 plik źródłowy )
* [[C/Pierwszy_program|proste]] (tylko 1 plik źródłowy)
* złożone
* złożone
==Program prosty==
==Program prosty==
Linia 8: Linia 8:
== Program złożony ==
== Program złożony ==


Składniki programu złożonego :
Składniki programu złożonego:
* główny plik programu ( żródłowy ) : main.c
* główny plik programu (źródłowy): <code>main.c</code>
* dodatkowe pliki źródłowe ( moduły = jednostki translacji)
* dodatkowe pliki źródłowe (moduły = jednostki translacji)
** tylko c
** tylko c
** c i h
** c i h
* [[C/Biblioteki|biblioteki]] = pliki nagłówkowe ( .h) oraz pliki binarne (skompilowane)
* [[C/Biblioteki|biblioteki]] = pliki nagłówkowe (.h) oraz pliki binarne (skompilowane)


=Składniki programu =
=Składniki programu =
* znaki
* znaki
* słowa
* słowa
** kluczowe C
** kluczowe C
** pozostałe ( niekluczowe)
** pozostałe (niekluczowe)
*** nazwy zmiennych i stałych
*** nazwy zmiennych i stałych
*** komentarze
*** komentarze
** dyrektywy preprocesora<ref>Można napisać program bez dyrektyw preprocesora. Np. : "void main(){}". Zwykle nawet mały porgram zawiera przynajmniej 1 dyrektywę</ref>
** dyrektywy preprocesora<ref>Można napisać program bez dyrektyw preprocesora. Np.: <code>void main(){}</code>. Zwykle nawet mały program zawiera przynajmniej 1 dyrektywę.</ref>
* procedury ( podprogramy)
* procedury (podprogramy)
* pliki
* pliki
** źródłowe ( c lub h )
** źródłowe (c lub h)
** binarne
** binarne


Linia 38: Linia 36:
* + - / * = ? < >
* + - / * = ? < >


jest fragmentem znaków ASCII i UTF-8 ( ASCII jest podzbiorem UTF-8).
jest fragmentem znaków ASCII i UTF-8 (ASCII jest podzbiorem UTF-8).


Z punktu widzenia kodowania plik  źródłowy w c jest to tekst zakodowany w ASCII<ref>[http://stackoverflow.com/questions/7075731/ascii-english-text-ascii-c-program-text-question stackoverflow question : ascii-english-text-ascii-c-program-text-question]</ref>
Z punktu widzenia kodowania plik źródłowy w c jest to tekst zakodowany w ASCII<ref>[http://stackoverflow.com/questions/7075731/ascii-english-text-ascii-c-program-text-question stackoverflow question: ascii-english-text-ascii-c-program-text-question]</ref>
( UTF-8 <ref>[https://library.oreilly.com/book/0636920033677/21st-century-c-2nd-edition/123.xhtml?ref=toc#_the_encoding_for_c_code 21st-century-c-2nd-edition : the_encoding_for_c_code]</ref>) z rozszerzeniem c lub h.
(UTF-8<ref>[https://library.oreilly.com/book/0636920033677/21st-century-c-2nd-edition/123.xhtml?ref=toc#_the_encoding_for_c_code 21st-century-c-2nd-edition: the_encoding_for_c_code]</ref>) z rozszerzeniem c lub h.
Oczywiście w c można przetwarzać tekst zakodowany w innych systemach, jak UTF<ref>[http://www.cprogramming.com/tutorial/unicode.html Unicode in C and C++: What You Can Do About It Today by Jeff Bezanson]</ref>
Oczywiście w c można przetwarzać tekst zakodowany w innych systemach, jak UTF<ref>[http://www.cprogramming.com/tutorial/unicode.html Unicode in C and C++: What You Can Do About It Today by Jeff Bezanson]</ref>


Problemem mogą być :
Problemem mogą być:
* znaki końca linii ( ang. line-endings ) <ref>[[wikipedia:en:Newline#In_programming_languages]]</ref>
* znaki końca linii (ang. line-endings) <ref>[[wikipedia:en:Newline#In_programming_languages]]</ref>
** CRLF = \r\n ( Windows)
** CRLF = <code>\r\n</code> (Windows)
** LF = \n (Linux)
** LF = <code>\n</code> (Linux)
* [[Programowanie_w_systemie_UNIX/Kodowanie#Podobne_znaki|kopiowanie i wklejanie]]
* [[Programowanie_w_systemie_UNIX/Kodowanie#Podobne_znaki|kopiowanie i wklejanie]]


Linia 71: Linia 69:
|-
|-
| <code>[[Znakowy typ danych|char]]</code>
| <code>[[Znakowy typ danych|char]]</code>
| <code>[[Instrukcja skoku|goto]]</code>
| <code>[[C/Instrukcje sterujące#goto|goto]]</code>
| <code>[[Zmienna statyczna|static]]</code>
| <code>[[Zmienna statyczna|static]]</code>
| <code>_Atomic</code>
| <code>_Atomic</code>
Linia 82: Linia 80:
| <code>continue</code>
| <code>continue</code>
| <code>[[Inline (programowanie)|inline]]</code>
| <code>[[Inline (programowanie)|inline]]</code>
| <code>[[Instrukcja wyboru|switch]]</code>
| <code>[[C/Instrukcje sterujące#switch|switch]]</code>
| <code>_Complex</code>
| <code>_Complex</code>
|-
|-
Linia 111: Linia 109:
|}
|}


=Źródła=
=Żródła=
<references/>
<references/>

Wersja z 22:16, 3 gru 2016

Typy programów

Typy programów wg liczby składników:

  • proste (tylko 1 plik źródłowy)
  • złożone

Program prosty

Pierwszy program

Program złożony

Składniki programu złożonego:

  • główny plik programu (źródłowy): main.c
  • dodatkowe pliki źródłowe (moduły = jednostki translacji)
    • tylko c
    • c i h
  • biblioteki = pliki nagłówkowe (.h) oraz pliki binarne (skompilowane)

Składniki programu

  • znaki
  • słowa
    • kluczowe C
    • pozostałe (niekluczowe)
      • nazwy zmiennych i stałych
      • komentarze
    • dyrektywy preprocesora[1]
  • procedury (podprogramy)
  • pliki
    • źródłowe (c lub h)
    • binarne

Zestaw znaków i kodowanie

Zestaw znaków dopuszczalnych w programie [2]

  • A - Z
  • a -z
  • 0 - 9
  • space . , : ; ' $ "
  • # % & ! _ {} [] () $ & |
  • + - / * = ? < >

jest fragmentem znaków ASCII i UTF-8 (ASCII jest podzbiorem UTF-8).

Z punktu widzenia kodowania plik źródłowy w c jest to tekst zakodowany w ASCII[3] (UTF-8[4]) z rozszerzeniem c lub h. Oczywiście w c można przetwarzać tekst zakodowany w innych systemach, jak UTF[5]

Problemem mogą być:

Słowa kluczowe

Lista słów kluczowych języka C na podstawie normy ISO/IEC 9899:2011 (C11).

auto extern short while
break float signed _Alignas
case for sizeof _Alignof
char goto static _Atomic
const if struct _Bool
continue inline switch _Complex
default int typedef _Generic
do long union _Imaginary
double register unsigned _Noreturn
else restrict void _Static_assert
enum return volatile _Thread_local

Źródła

  1. Można napisać program bez dyrektyw preprocesora. Np.: void main(){}. Zwykle nawet mały program zawiera przynajmniej 1 dyrektywę.
  2. C's Character Set by Richard Mobbs
  3. stackoverflow question: ascii-english-text-ascii-c-program-text-question
  4. 21st-century-c-2nd-edition: the_encoding_for_c_code
  5. Unicode in C and C++: What You Can Do About It Today by Jeff Bezanson
  6. wikipedia:en:Newline#In_programming_languages