Przestrzenie nazw
Warianty
Działania

# i ##

Z cppreference.com


Operatory # i ## używane są razem z dyrektywą #define.

  • # zwraca pierwszy argument za # jako łańcuch znaków otoczony cudzysłowami.
  • ## łączy to co znajduje się przed ## z tym co znajduje się za ##.

Na przykład, dyrektywa:

    #define to_string( s ) # s

spowoduje że poniższy kod:

    cout << to_string( Witaj swiecie! ) << endl;

zostanie zamieniony na:

    cout << "Witaj swiecie!" << endl;

Oto przykład użycia operatora ##:

    #define zlaczenie( x, y ) x ## y
    int xy = 10;

Powyższy kod spowoduje że następujący fragment:

    cout << zlaczenie( x, y ) << endl;

zostanie zamieniony na:

    cout << xy << endl;

Efektem jego działania będzie oczywiście wyświetlenie "10" na standardowym wyjściu.

Zagadnienia pokrewne: #define