Я читаю исходный код телефона. Это реализация FOSS JavaME. Это написано на С++, и я наткнулся на это:
// Makes a string of the argument (which is not macro-expanded)
#define STR(a) #a
Я знаю C и С++, но я никогда не читал что-то вроде этого. Что делает #
in #a
?
Кроме того, в том же файле есть:
// Makes a string of the macro expansion of a
#define XSTR(a) STR(a)
Я имею в виду, что использование определения нового макроса, если все это происходит, - это вызов существующего макроса?
Исходный код находится в https://phoneme.dev.java.net/source/browse/phoneme/releases/phoneme_feature-mr2-rel-b23/cldc/src/vm/share/utilities/GlobalDefinitions.hpp?rev=5525&view=markup. Вы можете найти его с помощью CTRL + F.