---
title: 定义新变量相关函数
description: "- 定义一个新变量。"
url: https://www.hikunpeng.com/document/detail/zh/hpchistory/hpckit/develop2400/userg_hyperio_0048.html
sourcePath: /source/zh/hpchistory/hpckit/develop2400/userg_hyperio_0048.html
indexId: 9711bdd6f07a254f4ac28334503bf613182fbaf32d6a4748b5c03de56096b37764
---
# 定义新变量相关函数

#### 函数定义

- 定义一个新变量。
  nc_def_var(int ncid, const char *name, nc_type xtype, int ndims, const int *dimidsp, int *varidp)

- 设置新的过滤器。
  nc_def_var_filter(int ncid, int varid, unsigned int id, size_t nparams, const unsigned int *params)

- 设置netCDF/HDF5文件中变量的zlib压缩和随机设置。
  nc_def_var_deflate(int ncid, int varid, int shuffle, int deflate, int deflate_level)


#### 参数

| 参数名 | 描述 | 取值范围 | 输入/输出 |
| --- | --- | --- | --- |
| ncid | 文件ID | 非负整数 | 输入 |
| \*name | 变量名称 | 非空，长度小于256字节 | 输入 |
| xtype | 变量数据类型 | 非负整数 | 输入 |
| ndims | 维度数量 | [1,1024] | 输入 |
| \*dimidsp | 维度ID列表 | 非空 | 输入 |
| \*varidp | 变量ID的指针 | 非空 | 输入 |
| id | 过滤器ID | 整数 | 输入 |
| nparams | 参数个数 | 非空 | 输入 |
| \*params | 指向设置的参数的指针 | 非空 | 输入 |
| varid | 变量ID | 非负整数 | 输入 |
| shuffle | 随机设置参数 | 非空 | 输入 |
| deflate | 压缩设置参数 | 非空 | 输入 |
| deflate\_level | 压缩等级 | 非空 | 输入 |


#### 返回值

- 成功：返回NC_NOERR。
- 失败：返回错误码。


#### 错误码

| 错误码 | 描述 |
| --- | --- |
| NC\_EBADID | 无效ncid |
| NC\_EBADTYPE | 无效数据类型 |
| NC\_EINVAL | 无效参数 |


#### 注意

- 目前仅支持有限数据类型：NC_BYTE、NC_UBYTE、NC_CHAR、NC_SHORT、NC_USHORT、NC_INT、NC_UINT、NC_INT64、NC_UINT64、NC_FLOAT、NC_DOUBLE。
- 维度ID列表内存大小需要与维度数量对应，不进行检查。
