请对不起,我是JavaScript和打字稿,而不是C 一个。
但是JS引擎V8是用C 编写的,这是其中的代码:
// Convert the result to an UTF8 string and print it.
v8::String::Utf8Value utf8(isolate, result);
printf("%sn", *utf8);
在上面的代码中有两行。第一行包含utf8
功能...它来自哪里?我以前没有在文件中看到它,也没有导入(或者(?
第二行包含utf8
变量(对吗?(,尽管使用我不知道的*
修饰符。变量从何而来?恒星修饰符的作用是什么?
抱歉,这类问题,但是在这一点上,我无法深入研究最复杂的语言之一的文档,即C ...
utf8
不是函数,而是变量。摘要(isolate, result)
是参数传递给其构造函数。
这可以按以下方式重写,以便在功能上相同,并且以JavaScript程序员更熟悉的方式:
auto utf8 = v8::String::Utf8Value(isolate, result);
其中auto
侵入变量的类型。
至于*utf8
中的*
,其含义将取决于实现。*
作为前缀运算符,可以给出用户定义的含义,尽管通常它具有"触及并从中获取价值"的语义,就像原始指针以及诸如std::unique_ptr
和std::optional
之类的东西一样。我个人不熟悉v8
。您应该在*
操作员上查看v8::String::Utf8Value
类型的文档,以确切查看其作用。
您还应该非常意识到C 需要很长时间才能学习,而且误解或做错事非常容易。如果您想学习C ,我建议阅读一本好的C 书籍以获得基本的理解。