C/Program: Różnice pomiędzy wersjami
< 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]] ( |
* [[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 ( |
* główny plik programu (źródłowy): <code>main.c</code> |
||
* dodatkowe pliki źródłowe ( |
* 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 ( |
* [[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 ( |
** 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. |
** 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 ( |
* procedury (podprogramy) |
||
* pliki |
* pliki |
||
** źródłowe ( |
** źródłowe (c lub h) |
||
** binarne |
** binarne |
||
Linia 38: | Linia 36: | ||
* + - / * = ? < > |
* + - / * = ? < > |
||
jest fragmentem znaków ASCII i UTF-8 ( |
jest fragmentem znaków ASCII i UTF-8 (ASCII jest podzbiorem UTF-8). |
||
Z punktu widzenia kodowania plik |
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. |
||
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 ( |
* znaki końca linii (ang. line-endings) <ref>[[wikipedia:en:Newline#In_programming_languages]]</ref> |
||
** CRLF = \r\n ( |
** 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>[[ |
| <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>[[ |
| <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
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ć:
- znaki końca linii (ang. line-endings) [6]
- CRLF =
\r\n
(Windows) - LF =
\n
(Linux)
- CRLF =
- kopiowanie i wklejanie
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
- ↑ Można napisać program bez dyrektyw preprocesora. Np.:
void main(){}
. Zwykle nawet mały program zawiera przynajmniej 1 dyrektywę. - ↑ C's Character Set by Richard Mobbs
- ↑ stackoverflow question: ascii-english-text-ascii-c-program-text-question
- ↑ 21st-century-c-2nd-edition: the_encoding_for_c_code
- ↑ Unicode in C and C++: What You Can Do About It Today by Jeff Bezanson
- ↑ wikipedia:en:Newline#In_programming_languages