【发布时间】:2022-12-15 01:04:28
【问题描述】:
我正在开发一个用于读取 GRIB2 文件的新 API - 这是气象学家和气候科学家开源库的一部分。
该库需要处理 64 位整数(以及 8、16 和 32 位整数)。必须处理有符号和无符号整数类型。
在netcdf-c库中,我们使用unsigned long long:
int
nc_put_att_ulonglong(int ncid, int varid, const char *name, nc_type xtype,
size_t len, const unsigned long long *op);
但我们有时也会使用 size_t:
int
nc_inq_grpname_full(int ncid, size_t *lenp, char *full_name);
尽管我写了那个函数,但我不记得为什么选择 size_t 而不是 unsigned long long。 ;-)
在编写通用库时,是否有充分的理由更喜欢 size_t 而不是 unsigned long long?
现在我正在编写一个新的 API,我应该使用 uint64_t 类型吗?它似乎最适合表示数据文件中实际为 64 位的内容。
【问题讨论】:
标签: netcdf netcdf4 grib pygrib