Copyright © 2022-2025 aizws.net · 网站版本: v1.2.6·内部版本: v1.25.2·
页面加载耗时 0.00 毫秒·物理内存 161.8MB ·虚拟内存 1438.3MB
欢迎来到 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;
}