Sklejanie zawartości zmiennych operatorem ##
Ostatnio zmodyfikowano 2016-08-13 15:47
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ę #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 #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; }
|
|
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. |
|
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 :) |
|
« 1 » |