Copyright © 2022-2025 aizws.net · 网站版本: v1.2.6·内部版本: v1.24.0·
页面加载耗时 0.00 毫秒·物理内存 61.6MB ·虚拟内存 1302.1MB
欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
Carbon语言与C++互操作,是Carbon宣传的重点,也是最大难点。
现在Carbon语言还不完善,这里举一个Keynote中演示的例子。
有一个C++的头文件 circle.h:
struct Circle { float r; }
编写一个Carbon代码文件:geometry.carbon:
package Geometry api; import Math; import Cpp library "circle.h"; fn PrintArea(circles: Slice(Cpp.Circle)) { var area: f32 = 0; for (c: Cpp.Circle in circles) { area += Math.Pi * c.r * c.r; } Print("Total area: {0}", area); }
可以通过 import Cpp library "circle.h"; 这种语法来引用C++头文件中声明的类型。
在写一个C++的源文件:
#include #include "circle.h" #include "geometry.carbon.h" auto main(int argc, char* argv) -> int { std::vector circles = {{1.0}, {2.0}}; Geometry::PrintArea(circles); return 0; }