C语言中unsigned long long int是否有官方typedef?自定义命名咨询
关于
unsigned long long的简写与strtoull的使用问题 C标准里没有官方认可的
unsigned long long简写形式。你提到的uint64_t(来自<stdint.h>)和unsigned long long并不完全等价:uint64_t是固定64位的无符号整数类型,而unsigned long long的宽度取决于平台(绝大多数现代平台是64位,但特殊架构下可能是128位);size_t是和内存寻址绑定的类型,宽度由平台内存模型决定,同样不等于unsigned long long。你完全可以自行定义该类型的简写,只要在项目范围内保持命名统一,就不会有语法或兼容性问题。
自定义名称的话,不推荐用
u128int_t——这个名字会误导他人认为这是128位无符号整数,但unsigned long long在多数平台上是64位,命名不符合实际类型宽度。uLLong是更合适的选择,能直接关联到原类型的全称;你也可以用更简洁的ull,比如:
typedef unsigned long long ull;
如果是多人协作项目,建议在公共头文件中统一定义,并加上重复定义保护,避免冲突:
#ifndef ULL_TYPEDEF #define ULL_TYPEDEF typedef unsigned long long ull; #endif
内容的提问来源于stack exchange,提问作者sueszli
相关产品推荐
相关产品推荐

