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

Z Wikibooks, biblioteki wolnych podręczników.
< C
Usunięta treść Dodana treść
m →‎w nazwach zmiennych: indentyfikator
Linia 21: Linia 21:
*** nazwy zmiennych i stałych<ref>[http://www.studytonight.com/c/keywords-and-identifier.php studytonight.com: c keywords-and-identifier]</ref>
*** nazwy zmiennych i stałych<ref>[http://www.studytonight.com/c/keywords-and-identifier.php studytonight.com: c keywords-and-identifier]</ref>
*** komentarze
*** komentarze
** 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>
** dyrektywy preprocesora<ref>Można napisać program bez dyrektyw preprocesora. Np.: <code>void main(){}</code>, ale wtedy mamy ostrzeżenie: . 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

==Jaki jest minimalny program ? ==

<source lang=c>
void main(){}
</source>

Jeśli skompilujemy :

gcc m.c -Wall

to otrzymujemy ostrzeżenie :

<source lang=bash>
m.c:1:6: warning: return type of ‘main’ is not ‘int’ [-Wmain]
void main(){}
</source>

Rozwiązanie: zmienić typ wyniku funkcji main na int<ref>[https://stackoverflow.com/questions/204476/what-should-main-return-in-c-and-c stackoverflow question: what-should-main-return-in-c-and-c]</ref>

<source lang=c>
int main(){

return 0;}
</source>

Teraz program kompiluje i wykonuje się bez problemów



==Zestaw znaków i kodowanie ==
==Zestaw znaków i kodowanie ==

Wersja z 17:13, 12 lis 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[1]
      • komentarze
    • dyrektywy preprocesora[2]
  • procedury (podprogramy)
  • pliki
    • źródłowe (c lub h)
    • binarne

Jaki jest minimalny program ?

void main(){}

Jeśli skompilujemy :

 gcc m.c -Wall

to otrzymujemy ostrzeżenie :

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

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

int main(){

	return 0;}

Teraz program kompiluje i wykonuje się bez problemów


Zestaw znaków i kodowanie

w programie

Zestaw znaków dopuszczalnych w programie [4]

  • 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[5] (UTF-8[6]) z rozszerzeniem c lub h. Oczywiście w c można przetwarzać tekst zakodowany w innych systemach, jak UTF[7]

Problemem mogą być:

w nazwach (identyfikatorach)

Identyfikator ( nazwa) :

  • zmiennej
  • funkcji
  • struktury


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

  • 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

Ź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. stackoverflow question: what-should-main-return-in-c-and-c
  4. C's Character Set by Richard Mobbs
  5. stackoverflow question: ascii-english-text-ascii-c-program-text-question
  6. 21st-century-c-2nd-edition: the_encoding_for_c_code
  7. Unicode in C and C++: What You Can Do About It Today by Jeff Bezanson
  8. wikipedia:en:Newline#In_programming_languages
  9. c4learn : c-variable-nameing-rules