我从 the PocketSphinx tutorial 中读取了以下代码
config = cmd_ln_init(NULL, ps_args(), TRUE,
"-hmm", MODELDIR "/en-us/en-us",
"-lm", MODELDIR "/en-us/en-us.lm.bin",
"-dict", MODELDIR "/en-us/cmudict-en-us.dict",
NULL);
这是我第一次看到一个变量--MODELDIR
--在一个字符串--"/en-us/en-us"
旁边。这怎么可能?我从未在 C/C++ 教程书中看到过这样的内容!
如果我想搜索这方面的更多信息,我应该使用什么关键字进行搜索?
MODELDIR
是一个扩展为字符串的宏。 C 将相邻的字符串连接成单个字符串*,因此如果 MODELDIR
将 #define
d 到 "/foo/bar"
,这将导致以下函数调用:
config = cmd_ln_init(NULL, ps_args(), TRUE,
"-hmm", "/foo/bar/en-us/en-us",
"-lm", "/foo/bar/en-us/en-us.lm.bin",
"-dict", "/foo/bar/en-us/cmudict-en-us.dict",
NULL);
*) 所以,写
"Hello, " "World!"
完全一样
"Hello, World!"
我是一名优秀的程序员,十分优秀!