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

Z Wikibooks, biblioteki wolnych podręczników.
< C
Usunięta treść Dodana treść
m →‎Program złożony: nieźródłowe
Linia 156: Linia 156:
** 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)
* dodatkowe pliki inne niż źródłowe, np. graficzne


=Źródła=
=Źródła=

Wersja z 16:32, 12 lis 2017

Składniki programu

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

Zestaw znaków i kodowanie

w programie

Zestaw znaków dopuszczalnych w programie [3]

  • A - Z ( duże litery, ang. capital letters)
  • a -z ( małe litery, ang. small letters)
  • 0 - 9 ( cyfry, ang. digits)
  • znaki specjalne ( ang. Special Characters)
    • 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[4] (UTF-8[5]) z rozszerzeniem c lub h. Oczywiście w c można przetwarzać tekst zakodowany w innych systemach, jak UTF[6]

Problemem mogą być:

w nazwach (identyfikatorach)

Identyfikator ( nazwa) :

  • zmiennej
  • funkcji
  • struktury


Jest to podzbiór zbioru znaków dopuszczalnych w programie:[8]

  • A - Z ( duże litery, ang. capital letters)
  • a -z ( małe litery, ang. small letters)
  • 0 - 9 ( cyfry, ang. digits)
  • Underscore(_)

Użycie pozostałych znaków w nazwie zmiennej jest niedozwolone. Np. użycie

 font-size // dopuszczalne w svg

powoduje błąd.

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

Typy programów

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

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

Program prosty

Jaki jest minimalny program ?

Najmniejszy program, który daje się skompilować i uruchomić:

void main(){}

Jeśli skompilujemy :

 gcc m.c -Wall

to otrzymujemy ostrzeżenie ( nie błąd) :

m.c:1:6: warning: return type of ‘main’ is not ‘int’ [-Wmain]
 void main(){}

Rozwiązanie: zmienić typ wyniku funkcji main na int[9]

int main(){

	return 0;}

Teraz program kompiluje i wykonuje się bez problemów

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)
  • dodatkowe pliki inne niż źródłowe, np. graficzne

Źródła

  1. studytonight.com: c keywords-and-identifier
  2. Można napisać program bez dyrektyw preprocesora. Np.: void main(){}, ale wtedy mamy ostrzeżenie: . Zwykle nawet mały program zawiera przynajmniej 1 dyrektywę.
  3. C's Character Set by Richard Mobbs
  4. stackoverflow question: ascii-english-text-ascii-c-program-text-question
  5. 21st-century-c-2nd-edition: the_encoding_for_c_code
  6. Unicode in C and C++: What You Can Do About It Today by Jeff Bezanson
  7. wikipedia:en:Newline#In_programming_languages
  8. c4learn : c-variable-nameing-rules
  9. stackoverflow question: what-should-main-return-in-c-and-c