谁能解释一下“->”是如何在#define 中实现的

can anyone explain how the "->" is implemented in the #define

我正在使用这条线作为#define

进行参考设计
#define MEDIA_EXT_STATE "\"adv7611 12-004c\":1 -> \"40080000.tpg\":0[%d]"

sprintf 函数使用它,然后传递给 media_parse_setup_links() 函数。

sprintf(media_formats, MEDIA_EXT_STATE, 1);
ret = media_parse_setup_links(media, media_formats);

简单翻译为:

 sprintf(media_formats, "\"adv7611 12-004c\":1 -> \"40080000.tpg\":0[%d]", 1);

没有指针操作,因为它只是字符串的一部分。

当删除引号时,它变得更加明显:

 sprintf(media_formats, "'adv7611 12-004c':1 -> '40080000.tpg':0[%d]", 1);

can anyone explain how the “->” is implemented

这只是文字。它的“实现”方式与此相同:

std::string example = "->";

宏将MEDIA_EXT_STATE定义为字符串文字,类似于

#define FOOBAR "foo -> bar"

FOOBAR 定义为字符串文字 "foo -> bar"。也许您对转义的 " 感到困惑,但这就像普通的字符串文字一样:

std::cout << "\"123";

打印 "123.

要了解字符串中 -> 的含义,您必须查看 media_parse_setup_links 的实现或阅读文档。