文件
JGZ_YES 83fe7bfb83 Initial commit: PazeE Language Alpha-0.1
PazeE 编译器(.NET 8/C# 实现),直接生成原生 x64/ARM64 机器码,无需 gcc/clang/nasm。

主要特性:
- 词法/语法/语义分析、AST 生成、代码生成
- 目标平台:Windows (PE32+)、Linux (ELF64)、macOS (Mach-O 64)、Los4
- 架构:AMD64 与 ARM64 独立后端
- C 语法特性:匿名结构体/联合、位域、灵活数组成员、语句表达式+typeof
- printf 颜色格式化、time.get.utc 时区支持
- GUI 支持:Windows (Win11 API)、Los4、Linux (X11)、macOS (ObjC)
- Windows GUI 程序无控制台窗口(PE 子系统自动检测)
- WiX Bundle 安装器(仅输出 .exe,MSI 作为中间产物内嵌)
2026-08-02 16:29:31 +08:00

54 行
1.1 KiB
Plaintext

// struct.pe — 验证结构体、成员访问、指针、结构体数组
struct Point {
int x;
int y;
};
struct Rect {
struct Point lo;
struct Point hi;
};
int area(struct Rect r)
{
int w = r.hi.x - r.lo.x;
int h = r.hi.y - r.lo.y;
return w * h;
}
int main(void)
{
struct Point p;
p.x = 3;
p.y = 4;
printf("p = (%d, %d)\n", p.x, p.y); // (3, 4)
printf("dist^2 = %d\n", p.x * p.x + p.y * p.y); // 25
// 指针访问成员
struct Point *pp = &p;
pp->x = 10;
pp->y = 20;
printf("pp-> = (%d, %d)\n", pp->x, pp->y); // (10, 20)
// 嵌套结构体 + 按值传参
struct Rect r;
r.lo.x = 0; r.lo.y = 0;
r.hi.x = 6; r.hi.y = 7;
printf("area = %d\n", area(r)); // 42
// 结构体数组
struct Point pts[3];
for (int i = 0; i < 3; i++) {
pts[i].x = i;
pts[i].y = i * i;
}
int sx = 0, sy = 0;
for (int i = 0; i < 3; i++) {
sx += pts[i].x;
sy += pts[i].y;
}
printf("pts sum = (%d, %d)\n", sx, sy); // (0+1+2, 0+1+4) = (3, 5)
return 0;
}