Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Sklejanie zawartości zmiennych operatorem ##

Ostatnio zmodyfikowano 2016-08-13 15:47
Autor Wiadomość
latajacaryba
Temat założony przez niniejszego użytkownika
Sklejanie zawartości zmiennych operatorem ##
» 2016-08-13 11:44:37
Witam. W ramach nauki napisałem prosty program który skleja dwie cyfry w jedną liczbę
C/C++
#include<iostream>
using namespace std;
int main()
{
    int test1 = 5, test2 = 6, test3;
    #define polacz(a,b) a ## b
    test3 = polacz( test1, test2 );
    cout << test3;
}

I jakież było moje zdziwienie, kiedy zakomunikowano mi, że w programie nie ma deklaracji "test1test2". Cóż...
Jak zrobić, by ## sklejało zawartość zmiennych tzn. Jeśli test1=5 a test2=6  to test1##test2 równałoby się 56.
Tak samo np. słowa
C/C++
#include<iostream>
using namespace std;
int main()
{
    char * test1 = "dzien", * test2 = "dobry", * test3;
    #define polacz(a,b) a ## b
    test3 = polacz( test1, test2 );
    cout << test3;
}
P-150794
Monika90
» 2016-08-13 15:34:33
To nie służy do sklejania zwartości zmiennych, to skleja ciągi znaków występujące w tekście programu.
Tak więc test3 = polacz(test1, test2); da test3 = test1test2; , dokładnie tak jakbyś po po prostu napisał w programie: test3 = test1test2;

Poza tym tracisz czas, zamiast uczyć się technik programowania które są przydatne na co dzień, to się uczysz szczegółów języka, jakichś operatorów ##, których pewnie nigdy nie użyjesz.
P-150803
latajacaryba
Temat założony przez niniejszego użytkownika
» 2016-08-13 15:47:36
Ohhh... Dziękuję za wyjaśnie i porade. Temat zamykam
Ps. Ucze sie tego co mam w książce Symfonia c++ standard ale jestem otwarty na wszelkie rady :)
P-150804
« 1 »
  Strona 1 z 1