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

Usunięta treść Dodana treść
m Wycofano edycje użytkownika 91.230.222.224 (dyskusja). Autor przywróconej wersji to 89.70.224.127.
Znacznik: Wycofanie zmian
Ololuki (dyskusja | edycje)
→‎# oraz ##: Usunięcie zduplikowanego tekstu.
Linia 264:
 
Natomiast znaki "##" łączą dwie nazwy w jedną. Przykład:
<source lang="c">
#include <stdio.h>
#define abc(x) int x##_zmienna
#define wypisz(x) printf("%s=%i", #x, x)
int main()
{
abc(nasza) = 2; /* dzięki temu zadeklarujemy zmienną o nazwie nasza_zmienna */
wypisz(nasza_zmienna);
return 0;
}
</source>
 
Więcej o dobrych zwyczajach w tworzeniu makr można się dowiedzieć w rozdziale
[[C/Powszechne praktyki#Konwencje pisania makr|Powszechne praktyki]].
 
 
Natomiast znaki "# #" łączą dwie nazwy w jedną. Przykład:
<source lang="c">
#include <stdio.h>
 
#define abc(x) int x##_zmienna
#define wypisz(xy) printf("%s=%i", #xy, xy)// Można by użyć "y" dla większej przejrzystości.
// #define wypisz(y) printf("%s=%i", #y, y)
int main()
{
abc(nasza) = 2; // Robi dwie rzeczy:
// 1. Wstawia słowo „nasza” przed słowem „ _zmienna”.
// 2. ADzięki takżetemu inicjalizujezadeklarujemy „nasza_zmienna”zmienną wartościąo nazwie "2nasza_zmienna".
// 2. Inicjalizuje „nasza_zmienna” wartością "2".
 
wypisz(nasza_zmienna);
return 0;
Linia 300 ⟶ 282:
Program wypisze:
nasza_zmienna=2
 
Więcej o dobrych zwyczajach w tworzeniu makr można się dowiedzieć w rozdziale
[[C/Powszechne praktyki#Konwencje pisania makr|Powszechne praktyki]].
 
==Makra==