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

Z Wikibooks, biblioteki wolnych podręczników.
< C
Usunięta treść Dodana treść
literówki, formatowanie
Linia 17: Linia 17:
* znaki
* znaki
* słowa
* słowa
** kluczowe C
** [[C/Program#S.C5.82owa_kluczowe|kluczowe C]]
** pozostałe (niekluczowe)
** pozostałe (niekluczowe)
*** nazwy zmiennych i stałych
*** nazwy zmiennych i stałych

Wersja z 17:19, 19 lip 2017

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