我已经将这两种数据结构定义为类型:
typedef struct {
float x,y,z;
} location3d;
typedef struct {
location3d location;
float radius;
} particle3d;
Run Code Online (Sandbox Code Playgroud)
我的问题是:我可以创建一个常量location3d还是一个常量particle3d?我搜索了常量,但我发现的只是如何定义常量整数或chars... 等。
您使用const用户定义的类型的方式与使用内置类型的方式完全相同。与其他常量一样,您需要对其进行初始化。
const particle3d my_particle = { {10.0, 21.5, 3}, 1.23};
Run Code Online (Sandbox Code Playgroud)
您还可以使用指定的初始值设定项。
const particle3d my_particle = {.radius = 1.23, .location = {.x = 10.0, .y = 21.5, .z = 3}};
Run Code Online (Sandbox Code Playgroud)
您可以使用const与内置类型相同的方式。
看看下面的实现:
#include <stdio.h>
typedef struct {
float x,y,z;
} location3d;
typedef struct {
location3d location;
float radius;
} particle3d;
int main(){
const particle3d particle = {{1, 2, 3}, 8.9};
printf("%f %f %f\n", particle.location.x, particle.location.y, particle.location.z);
printf("%f\n", particle.radius);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
1.000000 2.000000 3.000000
8.900000
Run Code Online (Sandbox Code Playgroud)
PS:作者最近删除了 C++ 标签。删除了 C++ 代码并转移到 C。