Dyskusja:C/Podstawy: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Derbeth (dyskusja | edycje)
m jeszcze brakujący podpis, jeśli można
Kj (dyskusja | edycje)
m drobny błąd w kodzie
Linia 21:
 
::Szczegółowe różnice pomiędzy stałymi, zadeklarowanymi za pomocą '''const''' a tymi, zadeklarowanymi przez #define (nazywane przez Ciebie makrami) w pierwszych rozdziałach tego podręcznika na pewno namieszałyby w głowie czytelnikom. Masz rację, że stała definiowana za pomocą #define w zasadzie nie ma adresu. Zauważ jednak, że programista ma za zadanie osiągnąć pewien cel. W większości wypadków użycie #define jak i '''const''' daje dokładnie ten sam efekt - obie metody są funkcjonalnie równoważne. Mało tego - często wykorzystanie preprocesora jest dużo bardziej opłacalne (procesor ma mniej odwołań do pamięci - operacje przenoszenia wykonywane są tylko w obrębie rejestrów procesora). Zauważ także, że dużo wygodniejszą metodą jest użycie #define - nie musisz się przejmować typem danych, itp. Zauważ także, że nie ma sensu odwoływać się do adresu stałej - skoro ma ona być stała, to po co odwoływać się do jej adresu? Ponadto słowo '''const''' ma szereg innych zastosowań, których #define z pewnością nie zastąpi. Dobry przykładem jest np. poniższa funkcja:
int funkcja (const int *a)
{
/* ... */
Powrót do strony „C/Podstawy”.