You're using c2.x for a variable name. Variable names cannot contain a dot (.). You can use underscore (_) or just call your variables x, y, z instead. :)
Another solution is to return a new Point3D and initialize it while you return it:
Point3D AddTwoPoints(Point3D a, Point3D b)
{
return Point3D { a.x + b.x, a.y + b.y, a.z + b.z };
}
Point3D SubtractTwoPoints(Point3D a, Point3D b)
{
return Point3D { a.x - b.x, a.y - b.y, a.z - b.z };
}